Project RP015: EFI IOMMU DXE Driver for RISC-V EDK2
Bidding Starts:8/15/2025
Bidding Ends:9/5/2025
Description:
Develop EFI IOMMU DXE driver for RISC-V SOC. This DXE driver will implement EDKII_IOMMU_PROTOCOL. RISC-V IOMMU Architecture Specification v1.0.0 will be the basis for this DXE Driver implementation.
The IOMMU driver will provide memory protection from unauthorized DMA operations during the DXE phase of the UEFI FW execution phase. In terms of the RISC-V IOMMU specification, a non-virtualized OS model will be implemented in the DXE driver.
Testing shall be done in the QEMU environment available as one of the EDK II platforms.
DXE Driver will be contributed to Tiano core/edk2: EDK II (http://github.com ).
Milestones to Deliver:
Phase 1: IOMMU driver skeleton
Discovery of IOMMU in EDK2
when IOMMU is implemented as a platform device.
when IOMMU is implemented as a PCIe device.
Identify the hardware to be initialized to support DMA protection.
Create a UEFI DXE driver template that installs IOMMU protocol.
Phase 2: IOMMU driver implementation
Implement IOMMU DXE driver.
Create documentation with driver implementation details, push the documents
and the source to the public domain (Upstream EDK2).
Phase 3: Driver testing under QEMU
Create a UEFI test application or DXE test driver.
Simulate error conditions - enforce bogus DMA transfers to ensure proper IOMMU code functionality.
Upstream the driver to edk2 repo.
Please provide a breakdown of the total cost along with the individual costs and durations for each phase.
Please reach out to rfpinfo@riseproject.dev if you have any questions.
Please read the RISE RFP instructions PRIOR to bidding.
Some things to note include:
Contracts will be written using the Standard Linux Foundation Europe Paper with the SOW and payment schedule added as an addendum.
Please review prior to your bid submission to address any concerns.
Contract Language is not negotiable as Linux Foundation will be contracting the work and paying the invoices.
Contracts are milestone based, not hourly.
Biweekly progress reporting is a requirement of this contract.