Arm reference design platforms such as RD-N2 and RD-N2-Cfg1 have multiple I/O virtualization blocks that allow connecting PCIe root bus or non-PCIe (non-discoverable) devices to the system. Each of the I/O virtualization blocks consists of an Arm SMMUv3 compliant MMU-700 controller to handle address translations and a GIC-700 Interrupt Translation Service (ITS) to support message signaled interrupts (MSIs). Platforms can connect various devices to these I/O virtualization blocks through x4/x8/x16 ports exposed by the system. For example, there are two PL011 UART controllers and two PL330 DMA controllers connected to the non-PCIe IO virtualization block on RD-N2 and RD-N2-Cfg1 platforms.
This patch series adds ACPI table support - SSDT and IORT, for Rd-N2 and Rd-N2-Cfg1 platforms to describe the devices connected devices to the I/O virtualization block. The patches also add suppot for platform DXE driver to initialize the UART controllers connected on Rd-N2 and Rd-N2-Cfg1 platforms. More details on how to obtain the platform software stack and how to test non-discoverable I/O virtualization blocks can be found on gitlab: https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/infra/common/iovirt_nonpcie.rst Link to github branch with the patches in this series - https://github.com/vivgau01/edk2-platforms/tree/topics/non-PCI-IO-virt-blk Shriram K (1): Platform/Sgi: Initialize additional uart controllers Vivek Gautam (5): Platform/Sgi: add PCDs for SMMUv3 base address and interrupts Platform/Sgi: add ssdt table for non-discoverable IO virtualization block Platform/Sgi: add helper macros for ITS, SMMUv3 and DMA IORT nodes Platform/Sgi: add IORT table for I/O virtualization block on RD-N2-Cfg1 Platform/Sgi: add IORT table for I/O virtualization block on RD-N2 Platform/ARM/SgiPkg/SgiPlatform.dec | 56 ++++- Platform/ARM/SgiPkg/SgiMemoryMap.dsc.inc | 6 +- Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc | 49 ++++- Platform/ARM/SgiPkg/RdN2/RdN2.dsc | 4 + Platform/ARM/SgiPkg/RdN2Cfg1/RdN2Cfg1.dsc | 6 +- .../SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf | 8 +- .../SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf | 8 +- .../AcpiTables/RdN1EdgeX2AcpiTables.inf | 8 +- .../ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf | 58 ++++- .../SgiPkg/AcpiTables/RdN2Cfg1AcpiTables.inf | 57 ++++- .../ARM/SgiPkg/AcpiTables/RdV1AcpiTables.inf | 8 +- .../SgiPkg/AcpiTables/RdV1McAcpiTables.inf | 8 +- .../SgiPkg/AcpiTables/Sgi575AcpiTables.inf | 8 +- .../Drivers/PlatformDxe/PlatformDxe.inf | 7 +- .../Library/PlatformLib/PlatformLib.inf | 8 +- Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h | 197 ++++++++++++++++- .../SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 73 ++++++- .../Library/PlatformLib/PlatformLibMem.c | 19 +- Platform/ARM/SgiPkg/AcpiTables/Iort.aslc | 14 +- .../AcpiTables/RdN2/IortNonPciIoVirtBlk.aslc | 58 +++++ .../RdN2Cfg1/IortNonPciIoVirtBlk.aslc | 58 +++++ .../SgiPkg/AcpiTables/SsdtNonPciIoVirtBlk.asl | 203 ++++++++++++++++++ 22 files changed, 890 insertions(+), 31 deletions(-) create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN2/IortNonPciIoVirtBlk.aslc create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg1/IortNonPciIoVirtBlk.aslc create mode 100644 Platform/ARM/SgiPkg/AcpiTables/SsdtNonPciIoVirtBlk.asl -- 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#86646): https://edk2.groups.io/g/devel/message/86646 Mute This Topic: https://groups.io/mt/89134660/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-