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.z...@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.greg...@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