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 <jeremy.linton@arm.com>
---
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