{"id":24087353,"url":"https://github.com/kit-ipe/cross-chip-dfx-drivers","last_synced_at":"2025-08-23T18:05:39.220Z","repository":{"id":240906174,"uuid":"801935113","full_name":"kit-ipe/Cross-Chip-DFX-Drivers","owner":"kit-ipe","description":"A collection of FPGA Firmware drivers for the Linux FPGA Subsystem to support various ICAP controllers","archived":false,"fork":false,"pushed_at":"2024-05-21T16:01:38.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-02-27T04:47:47.038Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kit-ipe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-17T07:51:10.000Z","updated_at":"2024-05-21T16:01:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"75d4cdaf-db45-4fa5-a372-356b596b091f","html_url":"https://github.com/kit-ipe/Cross-Chip-DFX-Drivers","commit_stats":null,"previous_names":["kit-ipe/cross-chip-dfx-drivers"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kit-ipe/Cross-Chip-DFX-Drivers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-ipe%2FCross-Chip-DFX-Drivers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-ipe%2FCross-Chip-DFX-Drivers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-ipe%2FCross-Chip-DFX-Drivers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-ipe%2FCross-Chip-DFX-Drivers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kit-ipe","download_url":"https://codeload.github.com/kit-ipe/Cross-Chip-DFX-Drivers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-ipe%2FCross-Chip-DFX-Drivers/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263940225,"owners_count":23533006,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-10T03:24:41.417Z","updated_at":"2025-07-06T17:02:13.997Z","avatar_url":"https://github.com/kit-ipe.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cross-Chip-DFX-Drivers\n\nThis repo contains ***FPGA Manager Drivers*** compatible with the [FPGA subsystem in Linux](https://www.kernel.org/doc/html/v5.10//driver-api/fpga/index.html) for both ICAP controller IP cores from AMD ([HWICAP](https://www.xilinx.com/products/intellectual-property/axi_hwicap.html) and [HBICAP](https://www.xilinx.com/products/intellectual-property/axi-hbicap.html)).\n\n## Building the Drivers\n\nThe source code for both FPGA Managers can either be copied into the Linux Kernel sources and built with them, or they can be built as external Kernel modules directly from this repo. The latter will be described below.\n\n### Preconditions\n\n- A compiler to build for the target platform (most likely AArch64)\n- Kernel sources that allow to build external Kernel modules (e.g. from [here](https://github.com/Xilinx/linux-xlnx))\n\n### Workflow\n\n1. Set the compiler to be used\n\t```\n\t$ export CROSS_COMPILE=aarch64-linux-gnu-\n\t```\n\n2. Prepare the Kernel sources\n\t```\n\t$ cd /path/to/kernel/sources\n\t$ make ARCH=arm64 xilinx_zynqmp_defconfig\n\t$ make ARCH=arm64 modules_prepare\n\t```\n\n3. Build the FPGA Manager drivers\n\t```\n\t$ cd /path/of/this/repo\n\t$ make ARCH=arm64 MAKE=make KERNEL_SRC=/path/to/kernel/sources\n\t```\n\t\n## HWICAP FPGA Manager\n\nThe AXI Hardware Internal Configuration Access Port (HWICAP) IP core is Xilinx's light weight implementation of an ICAP controller. This IP core features a AXI4-Lite interface for data transfer.\n\n### Example device tree entry\n\nThe following device tree excerpt shows the usage of the HWICAP FPGA Manager.\n\n- `0x10_8001_0000` is the address of the HWICAP `S_AXI_LITE` interface\n\n```\n\u0026amba_pl {\n    axi_hwicap_0_client_0: axi_hwicap@1080010000 {\n        compatible = \"xlnx,hwicap-fpga\";\n        reg = \u003c0x10 0x80010000 0x00 0x00001000\u003e;\n    };\n};\n\n\u0026fpga_full {\n    client_0: client_0 {\n        compatible = \"fpga-region\";\n        fpga-mgr = \u003c\u0026axi_hwicap_0_client_0\u003e;\n    };\n};\n```\n\n## HBICAP FPGA Manager\n\nThe AXI High Bandwidth Internal Configuration Access Port (HBICAP) IP core is Xilinx's high performance implementation of an ICAP controller. This IP core features a full AXI4 interface for data transfer. The HBICAP FPGA Manager in this repo expects a AXI Central Direct Memory Access (CDMA) IP core to be used to write configuration data to the `S_AXI` data interface of the HBICAP IP core.\n\n### Example device tree entry\n\nThe following device tree excerpt shows the usage of the HBICAP FPGA Manager.\n\n- `0x10_8001_0000` is the address of the HBICAP `S_AXI_CTRL` interface\n- `0x10_8001_1000` is the address of the HBICAP `S_AXI` interface\n- `0x00_A000_0000` is the address of the AXI Central Direct Memory Access (CDMA) `S_AXI_LITE` interface\n\n```\n\u0026amba_pl {\n    axi_hbicap_0_client_0: axi_hbicap@1080010000 {\n        compatible = \"xlnx,hbicap-fpga\";\n        reg = \u003c0x10 0x80010000 0x00 0x00001000\u003e,\u003c0x10 0x80011000 0x00 0x00001000\u003e,\u003c0x00 0xA0000000 0x00 0x00001000\u003e;\n    };\n};\n\n\u0026fpga_full {\n    client_0: client_0 {\n        compatible = \"fpga-region\";\n        fpga-mgr = \u003c\u0026axi_hbicap_0_client_0\u003e;\n    };\n};\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkit-ipe%2Fcross-chip-dfx-drivers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkit-ipe%2Fcross-chip-dfx-drivers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkit-ipe%2Fcross-chip-dfx-drivers/lists"}