Message ID | 1446460786-13663-1-git-send-email-graeme.gregory@linaro.org |
---|---|
State | Accepted |
Commit | bc64b96c984abfe84f43562ca7480bb4f2af0613 |
Headers | show |
On 2015/11/3 16:31, Graeme Gregory wrote: > > > On Tue, 3 Nov 2015, at 02:25 AM, Shannon Zhao wrote: >> Hi Graeme, >> >> On 2015/11/2 18:39, Graeme Gregory wrote: >>> According to ACPI specification 6.2.17 _CCA (Cache Coherency Attribute) >>> this attribute is compulsary on ARM systems. Add this attribute to >>> the PCI host bridges as required. >>> >> >> To ACPI 5.1 this object is not compulsory and if not supplied it has >> default value for it. But to ACPI 6.0 it must be supplied on ARM systems. >> Regarding this change, ACPI 6.0 fixes 5.1 for this object, right? >> > > Hi Shannon, the wording in ACPI 5.1 is "On ARM based systems, the _CCA > object must be supplied all such devices." > > So is not functionally different from 6.0. > Oh, I see. It's updated by 5.1 Errata 1189. Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org> > Graeme > >>> Without this the kernel will produce the error >>> [Firmware Bug]: PCI device 0000:00:00.0 fail to setup DMA. >>> >>> Signed-off-by: Graeme Gregory <graeme.gregory@linaro.org> >>> --- >>> hw/arm/virt-acpi-build.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c >>> index 1aaff1f..1430125 100644 >>> --- a/hw/arm/virt-acpi-build.c >>> +++ b/hw/arm/virt-acpi-build.c >>> @@ -180,6 +180,7 @@ static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap, int irq, >>> aml_append(dev, aml_name_decl("_ADR", aml_int(0))); >>> aml_append(dev, aml_name_decl("_UID", aml_string("PCI0"))); >>> aml_append(dev, aml_name_decl("_STR", aml_unicode("PCIe 0 Device"))); >>> + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); >>> >>> /* Declare the PCI Routing Table. */ >>> Aml *rt_pkg = aml_package(nr_pcie_buses * PCI_NUM_PINS); >>> >> >> -- >> Shannon >> >> -- Shannon
On 3 November 2015 at 09:08, Shannon Zhao <shannon.zhao@linaro.org> wrote: > > > On 2015/11/3 16:31, Graeme Gregory wrote: >> >> >> On Tue, 3 Nov 2015, at 02:25 AM, Shannon Zhao wrote: >>> Hi Graeme, >>> >>> On 2015/11/2 18:39, Graeme Gregory wrote: >>>> According to ACPI specification 6.2.17 _CCA (Cache Coherency Attribute) >>>> this attribute is compulsary on ARM systems. Add this attribute to >>>> the PCI host bridges as required. >>>> >>> >>> To ACPI 5.1 this object is not compulsory and if not supplied it has >>> default value for it. But to ACPI 6.0 it must be supplied on ARM systems. >>> Regarding this change, ACPI 6.0 fixes 5.1 for this object, right? >>> >> >> Hi Shannon, the wording in ACPI 5.1 is "On ARM based systems, the _CCA >> object must be supplied all such devices." >> >> So is not functionally different from 6.0. >> > Oh, I see. It's updated by 5.1 Errata 1189. > > Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org> Applied to target-arm.next, thanks. -- PMM
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 1aaff1f..1430125 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -180,6 +180,7 @@ static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap, int irq, aml_append(dev, aml_name_decl("_ADR", aml_int(0))); aml_append(dev, aml_name_decl("_UID", aml_string("PCI0"))); aml_append(dev, aml_name_decl("_STR", aml_unicode("PCIe 0 Device"))); + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); /* Declare the PCI Routing Table. */ Aml *rt_pkg = aml_package(nr_pcie_buses * PCI_NUM_PINS);
According to ACPI specification 6.2.17 _CCA (Cache Coherency Attribute) this attribute is compulsary on ARM systems. Add this attribute to the PCI host bridges as required. Without this the kernel will produce the error [Firmware Bug]: PCI device 0000:00:00.0 fail to setup DMA. Signed-off-by: Graeme Gregory <graeme.gregory@linaro.org> --- hw/arm/virt-acpi-build.c | 1 + 1 file changed, 1 insertion(+) -- 2.4.3