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