]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Update the ACPI device information for ARM Juno.
authorJeremy Linton <jeremy.linton@arm.com>
Mon, 19 Oct 2015 15:14:13 +0000 (15:14 +0000)
committerleiflindholm <leiflindholm@Edk2>
Mon, 19 Oct 2015 15:14:13 +0000 (15:14 +0000)
These patches correct a number of problems with the JUNO ACPI tables.

First, put CCA attributes on the devices which can do DMA. This is
because the linux kernel now requires ARM64 devices specify a coherency
model. Without CCA the devices are unable to perform DMA.

Update the EHCI window to a full 64k as documented in the
Juno Platform SoC TRM. This makes it match the values used in some
other places.

Finally, add some _DSD entries for the SMSC ethernet chip.
The latter changes are required for the mainline kernels to use the adapter.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18628 6f19259b-4bc3-4df7-8a09-765794883524

ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl
ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl

index 1c893b23364a93edcc750e9e4823ad01c37e62e8..800d2cb3b2fbf8f5435a69d7befa51014acee982 100644 (file)
@@ -51,6 +51,7 @@ DefinitionBlock("SsdtPci.aml", "SSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_OEM
                Name(_CID, EISAID("PNP0A03")) // Compatible PCI Root Bridge\r
                Name(_SEG, Zero) // PCI Segment Group number\r
                Name(_BBN, Zero) // PCI Base Bus Number\r
                Name(_CID, EISAID("PNP0A03")) // Compatible PCI Root Bridge\r
                Name(_SEG, Zero) // PCI Segment Group number\r
                Name(_BBN, Zero) // PCI Base Bus Number\r
+               Name(_CCA, 1)    // Initially mark the PCI coherent (for JunoR1)\r
 \r
         // Root Complex 0\r
         Device (RP0) {\r
 \r
         // Root Complex 0\r
         Device (RP0) {\r
index 7a56f001a64b94ecfdf73db5983709b302a31194..c80f46a4ce64467b7ce4eece0a551691627a98cd 100644 (file)
@@ -68,6 +68,15 @@ DefinitionBlock("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_O
               Memory32Fixed(ReadWrite, 0x1A000000, 0x1000)\r
               Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 192 }\r
       })\r
               Memory32Fixed(ReadWrite, 0x1A000000, 0x1000)\r
               Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 192 }\r
       })\r
+      Name(_DSD, Package() {\r
+                   ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),\r
+                       Package() {\r
+                               Package(2) {"phy-mode", "mii"},\r
+                               Package(2) {"reg-io-width", 4 },\r
+                               Package(2) {"smsc,irq-active-high",1},\r
+                               Package(2) {"smsc,irq-push-pull",1}\r
+                      }\r
+      }) // _DSD()\r
     }\r
 \r
     // UART PL011\r
     }\r
 \r
     // UART PL011\r
@@ -82,16 +91,17 @@ DefinitionBlock("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_O
     }\r
 \r
     //\r
     }\r
 \r
     //\r
-    // USB Host Controller\r
+    // USB EHCI Host Controller\r
     //\r
     Device(USB0){\r
         Name(_HID, "ARMH0D20")\r
         Name(_CID, "PNP0D20")\r
         Name(_UID, 2)\r
     //\r
     Device(USB0){\r
         Name(_HID, "ARMH0D20")\r
         Name(_CID, "PNP0D20")\r
         Name(_UID, 2)\r
+        Name(_CCA, 0) //EHCI on this platform is not coherent!\r
 \r
         Method(_CRS, 0x0, Serialized){\r
             Name(RBUF, ResourceTemplate(){\r
 \r
         Method(_CRS, 0x0, Serialized){\r
             Name(RBUF, ResourceTemplate(){\r
-                Memory32Fixed(ReadWrite, 0x7FFC0000, 0x000000B0)\r
+                Memory32Fixed(ReadWrite, 0x7FFC0000, 0x10000)\r
                 Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) {149}  // INT ID=149 GIC IRQ ID=117 for Juno SoC USB EHCI Controller\r
             })\r
             Return(RBUF)\r
                 Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) {149}  // INT ID=149 GIC IRQ ID=117 for Juno SoC USB EHCI Controller\r
             })\r
             Return(RBUF)\r