public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms][PATCH V2 0/5] Enable SoC expansion block and Virtio-P9 for RD-N2 variants
@ 2023-01-27  9:23 Vivek Kumar Gautam
  2023-01-27  9:23 ` [edk2-platforms][PATCH V2 1/5] Platform/Sgi: Add SSDT table for Virtio-P9 Vivek Kumar Gautam
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Vivek Kumar Gautam @ 2023-01-27  9:23 UTC (permalink / raw)
  To: devel; +Cc: ardb+tianocore, leif, Sami.Mujawar, Pierre.Gondois, Vivek.Gautam

Arm reference design Fixed Virtual Platforms (FVPs) such as the RD-N2
platform variants have multiple IO virtualization blocks that allow
connecting PCIe root bus or non-PCIe SoC peripherals to the system.
Each of these IO virtualization blocks consists of an Arm SMMUv3, a
GIC-ITS and a NCI (network chip interconnect).

SoC expansion blocks connect to the IO virtualization blocks via x4, x8
or x16 ports exposed by the system. A SoC expansion block implementation
includes 2 UARTs, 2 DMA devices and 2 Memory nodes.

In addition, Arm reference design platforms support Virtio-P9 device as
part of the Rest of System (RoS). The Virtio-P9 device implements a
subset of the Plan 9 file protocol over a virtio transport that enables
accessing a shared directory on the host's filesystem from a running
FVP platform.

This patch series adds SSDT tables for various RD-N2 platforms such as
RD-N2, RD-N2-Cfg1, and RD-N2-Cfg2 to describe the SoC expansion block
devices - UARTs, and DMAs and the Virtio-P9 devices present on the
platforms. The patches also add support for platform DXE driver to
initialize the UARTs that are present in SoC expansion blocks. By
default these UARTs are kept disabled and can be enabled with a Pcd -
PcdIoVirtSocExpBlkUartEnable.

This patch series is now a combination of two patch series [1] and [2]
that added Virtio-P9 support and SoC expansion block (non-discoverable)
IO block for RD-N2:
[edk2-platforms][PATCH V1 0/2] Enable Virtio-P9 on RD-N2 platforms
[edk2-platforms][PATCH V1 0/6] Add non-discoverable IO block for Rd-N2

[1] https://edk2.groups.io/g/devel/message/94936
[2] https://edk2.groups.io/g/devel/message/86646

Changes since v1:
 - Minor update to Virtio-P9 SSDT table:
   - Name of the DefinitionBlock() is set to SsdtRosVirtioP9.aml rather
     than SsdtRosVirtioP9Table.aml
 - Updates to SoC expansion block:
   - Removed IORT table for SoC expansion block and kept only the SSDT
     table for devices.
   - SSDT table now uses arithmetic operations to calculate the start
     and end addresses of the devices in QWordMemory() blocks.
   - The number of PCDs for UARTs and DMAs are now reduced as the
     addresses are now calculated within the SSDT table based on the
     SoC expansion block base address and device offsets.
   - Defined macros for Interrupt() block for various DMA nodes.
   - Removed the first patch of the series that added PCDs for SMMU:
     [PATCH V1 1/6] Platform/Sgi: add PCDs for SMMUv3 base address and interrupts
   - Added support for SoC expansion block on RD-N2-Cfg2 platform as
     well.

Shriram K (1):
  Platform/Sgi: Initialize additional UART controllers

Vivek Gautam (4):
  Platform/Sgi: Add SSDT table for Virtio-P9
  Platform/Sgi: Enable virtio-p9 device on RD-N2 platform variants
  Platform/Sgi: Add SSDT table for IO virtualization SoC expansion block
  Platform/Sgi: Enable SoC expansion block for RD-N2 variants

 Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc                |  12 +-
 Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf        |  15 +-
 Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg1AcpiTables.inf    |  15 +-
 Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg2AcpiTables.inf    |  11 +-
 Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf  |  10 +-
 Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf  |   7 +-
 Platform/ARM/SgiPkg/Include/IoVirtSoCExp.h               | 189 ++++++++++++++++++++
 Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c    |  64 ++++++-
 Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c |  43 ++++-
 Platform/ARM/SgiPkg/AcpiTables/SsdtIoVirtSocExp.asl      |  96 ++++++++++
 Platform/ARM/SgiPkg/AcpiTables/SsdtRosVirtioP9.asl       |  42 +++++
 Platform/ARM/SgiPkg/SgiPlatform.dec                      |  13 +-
 12 files changed, 503 insertions(+), 14 deletions(-)
 create mode 100644 Platform/ARM/SgiPkg/Include/IoVirtSoCExp.h
 create mode 100644 Platform/ARM/SgiPkg/AcpiTables/SsdtIoVirtSocExp.asl
 create mode 100644 Platform/ARM/SgiPkg/AcpiTables/SsdtRosVirtioP9.asl

-- 
2.25.1


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

end of thread, other threads:[~2023-02-10  7:54 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-27  9:23 [edk2-platforms][PATCH V2 0/5] Enable SoC expansion block and Virtio-P9 for RD-N2 variants Vivek Kumar Gautam
2023-01-27  9:23 ` [edk2-platforms][PATCH V2 1/5] Platform/Sgi: Add SSDT table for Virtio-P9 Vivek Kumar Gautam
2023-01-27  9:23 ` [edk2-platforms][PATCH V2 2/5] Platform/Sgi: Enable virtio-p9 device on RD-N2 platform variants Vivek Kumar Gautam
2023-01-27  9:23 ` [edk2-platforms][PATCH V2 3/5] Platform/Sgi: Add SSDT table for IO virtualization SoC expansion block Vivek Kumar Gautam
2023-02-03 15:56   ` PierreGondois
2023-02-07  6:59     ` Vivek Kumar Gautam
2023-02-07  8:50       ` PierreGondois
2023-02-10  7:54         ` Vivek Kumar Gautam
2023-01-27  9:23 ` [edk2-platforms][PATCH V2 4/5] Platform/Sgi: Initialize additional UART controllers Vivek Kumar Gautam
2023-02-03 15:55   ` PierreGondois
2023-02-07  6:10     ` [edk2-devel] " Vivek Kumar Gautam
2023-01-27  9:23 ` [edk2-platforms][PATCH V2 5/5] Platform/Sgi: Enable SoC expansion block for RD-N2 variants Vivek Kumar Gautam
2023-02-03 15:58 ` [edk2-platforms][PATCH V2 0/5] Enable SoC expansion block and Virtio-P9 " PierreGondois
2023-02-07  6:15   ` 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