summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg/ArmJunoPkg
diff options
context:
space:
mode:
authorJeremy Linton <jeremy.linton@arm.com>2015-10-19 15:14:13 +0000
committerleiflindholm <leiflindholm@Edk2>2015-10-19 15:14:13 +0000
commit368002a31c7998d8f00f5e77acee14d49afc2b2d (patch)
tree33041bb34537d77041cca9c81dedef514eec1c92 /ArmPlatformPkg/ArmJunoPkg
parentae52e921c493666014166682e24654e9df5b1457 (diff)
downloadedk2-platforms-368002a31c7998d8f00f5e77acee14d49afc2b2d.tar.xz
Update the ACPI device information for ARM Juno.
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
Diffstat (limited to 'ArmPlatformPkg/ArmJunoPkg')
-rw-r--r--ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl1
-rw-r--r--ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl14
2 files changed, 13 insertions, 2 deletions
diff --git a/ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl b/ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl
index 1c893b2336..800d2cb3b2 100644
--- a/ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl
+++ b/ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl
@@ -51,6 +51,7 @@ DefinitionBlock("SsdtPci.aml", "SSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_OEM
Name(_CID, EISAID("PNP0A03")) // Compatible PCI Root Bridge
Name(_SEG, Zero) // PCI Segment Group number
Name(_BBN, Zero) // PCI Base Bus Number
+ Name(_CCA, 1) // Initially mark the PCI coherent (for JunoR1)
// Root Complex 0
Device (RP0) {
diff --git a/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl b/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl
index 7a56f001a6..c80f46a4ce 100644
--- a/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl
+++ b/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl
@@ -68,6 +68,15 @@ DefinitionBlock("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_O
Memory32Fixed(ReadWrite, 0x1A000000, 0x1000)
Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 192 }
})
+ Name(_DSD, Package() {
+ ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package() {
+ Package(2) {"phy-mode", "mii"},
+ Package(2) {"reg-io-width", 4 },
+ Package(2) {"smsc,irq-active-high",1},
+ Package(2) {"smsc,irq-push-pull",1}
+ }
+ }) // _DSD()
}
// UART PL011
@@ -82,16 +91,17 @@ DefinitionBlock("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_O
}
//
- // USB Host Controller
+ // USB EHCI Host Controller
//
Device(USB0){
Name(_HID, "ARMH0D20")
Name(_CID, "PNP0D20")
Name(_UID, 2)
+ Name(_CCA, 0) //EHCI on this platform is not coherent!
Method(_CRS, 0x0, Serialized){
Name(RBUF, ResourceTemplate(){
- Memory32Fixed(ReadWrite, 0x7FFC0000, 0x000000B0)
+ Memory32Fixed(ReadWrite, 0x7FFC0000, 0x10000)
Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) {149} // INT ID=149 GIC IRQ ID=117 for Juno SoC USB EHCI Controller
})
Return(RBUF)