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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-