Reviewed-by: Andrei Warkentin ________________________________ From: Jeremy Linton Sent: Thursday, April 8, 2021 12:58 AM To: devel@edk2.groups.io Cc: ard.biesheuvel@arm.com ; leif@nuviainc.com ; pete@akeo.ie ; samer.el-haj-mahmoud@arm.com ; Andrei Warkentin ; Jeremy Linton Subject: [PATCH 2/3] Platform/RaspberryPi/AcpiTables: Add further named components Add some additional IORT nodes for the USB & EMMC devices, realistically we probably only need to have a single node with the lowest AddressSizeLimit but this is conceptually "cleaner" should anyone actually try and use these values rather than the _DMA provided ones. Signed-off-by: Jeremy Linton --- Platform/RaspberryPi/AcpiTables/Iort.aslc | 44 ++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/Platform/RaspberryPi/AcpiTables/Iort.aslc b/Platform/RaspberryPi/AcpiTables/Iort.aslc index 00720194bb..810307ae37 100644 --- a/Platform/RaspberryPi/AcpiTables/Iort.aslc +++ b/Platform/RaspberryPi/AcpiTables/Iort.aslc @@ -20,6 +20,8 @@ typedef struct { typedef struct { EFI_ACPI_6_0_IO_REMAPPING_TABLE Iort; RPI4_NC_NODE NamedCompNode; + RPI4_NC_NODE NamedCompNode2; + RPI4_NC_NODE NamedCompNode3; } RPI4_IO_REMAPPING_STRUCTURE; STATIC RPI4_IO_REMAPPING_STRUCTURE Iort = { @@ -27,7 +29,7 @@ STATIC RPI4_IO_REMAPPING_STRUCTURE Iort = { ACPI_HEADER (EFI_ACPI_6_0_IO_REMAPPING_TABLE_SIGNATURE, RPI4_IO_REMAPPING_STRUCTURE, EFI_ACPI_IO_REMAPPING_TABLE_REVISION), - 1, // NumNodes + 3, // NumNodes sizeof (EFI_ACPI_6_0_IO_REMAPPING_TABLE), // NodeOffset 0 // Reserved }, { @@ -50,6 +52,46 @@ STATIC RPI4_IO_REMAPPING_STRUCTURE Iort = { }, { "\\_SB_.SCB0.XHC0" // ObjectName } + }, { + // gpu/dwc usb named component node + { + { + EFI_ACPI_IORT_TYPE_NAMED_COMP, // Type + sizeof (RPI4_NC_NODE), // Length + 0x0, // Revision + 0x0, // Reserved + 0x0, // NumIdMappings + 0x0, // IdReference + }, + 0x0, // Flags + 0x0, // CacheCoherent + 0x0, // AllocationHints + 0x0, // Reserved + 0x0, // MemoryAccessFlags + 30, // AddressSizeLimit + }, { + "\\_SB_.GDV0.USB0" // ObjectName + } + }, { + // emmc2 named component node + { + { + EFI_ACPI_IORT_TYPE_NAMED_COMP, // Type + sizeof (RPI4_NC_NODE), // Length + 0x0, // Revision + 0x0, // Reserved + 0x0, // NumIdMappings + 0x0, // IdReference + }, + 0x0, // Flags + 0x0, // CacheCoherent + 0x0, // AllocationHints + 0x0, // Reserved + 0x0, // MemoryAccessFlags + 30, // AddressSizeLimit + }, { + "\\_SB_.GDV1.SDC3" // ObjectName + } } }; -- 2.13.7