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
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
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
- // 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