public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms][PATCH V1 0/6] Add non-discoverable IO block for Rd-N2
@ 2022-02-14 12:13 Vivek Kumar Gautam
  2022-02-14 12:13 ` [edk2-platforms][PATCH V1 1/6] Platform/Sgi: add PCDs for SMMUv3 base address and interrupts Vivek Kumar Gautam
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Vivek Kumar Gautam @ 2022-02-14 12:13 UTC (permalink / raw)
  To: devel; +Cc: Sami Mujawar, Ard Biesheuvel, Leif Lindholm, Vivek Gautam

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


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-01-27  6:17 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-14 12:13 [edk2-platforms][PATCH V1 0/6] Add non-discoverable IO block for Rd-N2 Vivek Kumar Gautam
2022-02-14 12:13 ` [edk2-platforms][PATCH V1 1/6] Platform/Sgi: add PCDs for SMMUv3 base address and interrupts Vivek Kumar Gautam
2022-02-14 12:13 ` [edk2-platforms][PATCH V1 2/6] Platform/Sgi: add ssdt table for non-discoverable IO virtualization block Vivek Kumar Gautam
2022-12-07 13:34   ` [edk2-devel] " PierreGondois
2023-01-27  6:17     ` Vivek Kumar Gautam
2022-02-14 12:13 ` [edk2-platforms][PATCH V1 3/6] Platform/Sgi: Initialize additional uart controllers Vivek Kumar Gautam
2022-12-07 13:34   ` [edk2-devel] " PierreGondois
2022-02-14 12:13 ` [edk2-platforms][PATCH V1 4/6] Platform/Sgi: add helper macros for ITS, SMMUv3 and DMA IORT nodes Vivek Kumar Gautam
2022-02-14 12:13 ` [edk2-platforms][PATCH V1 5/6] Platform/Sgi: add IORT table for IO virtualization block on RD-N2-Cfg1 Vivek Kumar Gautam
2022-02-14 12:13 ` [edk2-platforms][PATCH V1 6/6] Platform/Sgi: add IORT table for IO virtualization block on RD-N2 Vivek Kumar Gautam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox