Hi Jeremy, Thanks for this.
On Wed, Oct 14, 2015 at 10:10:06AM -0500, Jeremy Linton wrote: > 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 > other places. > > Finally, add the MALI GPU resources to the tables, and add some _DSD > entries for the SMSC ethernet chip. The latter changes are required > for the mainline kernels to use the adapter. So ... I'm not sure there are any ACPI-aware drivers for the Mali bits yet - I would be happier to leave that out until we've verified it works. Could you resubmit with that single change please? > Signed-off-by: Jeremy Linton <[email protected]> > --- > .../ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl | 1 + > ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl | 27 > ++++++++++++++++++++-- > 2 files changed, 26 insertions(+), 2 deletions(-) > > diff --git a/ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl > b/ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiSsdtRootPci.asl > index 7d50a5f..645ba93 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 7a56f00..987186f 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,30 @@ DefinitionBlock("DsdtTable.aml", "DSDT", 1, "ARMLTD", > "ARM-JUNO", EFI_ACPI_ARM_O > } > > // > - // USB Host Controller > + // Mali GPU > + // > + Device(GPU0){ > + Name(_HID, "ARMH0624") > + Name(_UID, Zero) > + Name(_CCA, 1) > + Name(_CRS, ResourceTemplate() { > + Memory32Fixed(ReadWrite, 0x2D000000, 0x10000) > + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) > { 64 } // GPU interrupt 64, job interrupt 65, MMU interrupt 66 > + }) > + } > + > + // > + // 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) > -- > 2.4.3 > > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

