qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] hw/arm/virt-acpi-build: _CCA attribute is compulsary
@ 2015-11-02 10:39 Graeme Gregory
  2015-11-03  2:25 ` Shannon Zhao
  0 siblings, 1 reply; 5+ messages in thread
From: Graeme Gregory @ 2015-11-02 10:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: Graeme Gregory, shannon.zhao, tomasz.nowicki

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(+)

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);
-- 
2.4.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/arm/virt-acpi-build: _CCA attribute is compulsary
  2015-11-02 10:39 [Qemu-devel] [PATCH] hw/arm/virt-acpi-build: _CCA attribute is compulsary Graeme Gregory
@ 2015-11-03  2:25 ` Shannon Zhao
  2015-11-03  8:31   ` Graeme Gregory
  0 siblings, 1 reply; 5+ messages in thread
From: Shannon Zhao @ 2015-11-03  2:25 UTC (permalink / raw)
  To: Graeme Gregory, qemu-devel; +Cc: shannon.zhao, tomasz.nowicki

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/arm/virt-acpi-build: _CCA attribute is compulsary
  2015-11-03  2:25 ` Shannon Zhao
@ 2015-11-03  8:31   ` Graeme Gregory
  2015-11-03  9:08     ` Shannon Zhao
  0 siblings, 1 reply; 5+ messages in thread
From: Graeme Gregory @ 2015-11-03  8:31 UTC (permalink / raw)
  To: Shannon Zhao, Graeme Gregory, qemu-devel; +Cc: shannon.zhao, tomasz.nowicki



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.

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/arm/virt-acpi-build: _CCA attribute is compulsary
  2015-11-03  8:31   ` Graeme Gregory
@ 2015-11-03  9:08     ` Shannon Zhao
  2015-11-03 13:26       ` Peter Maydell
  0 siblings, 1 reply; 5+ messages in thread
From: Shannon Zhao @ 2015-11-03  9:08 UTC (permalink / raw)
  To: Graeme Gregory, Shannon Zhao, Graeme Gregory, qemu-devel; +Cc: tomasz.nowicki



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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/arm/virt-acpi-build: _CCA attribute is compulsary
  2015-11-03  9:08     ` Shannon Zhao
@ 2015-11-03 13:26       ` Peter Maydell
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2015-11-03 13:26 UTC (permalink / raw)
  To: Shannon Zhao
  Cc: tomasz.nowicki, Graeme Gregory, QEMU Developers, Graeme Gregory,
	Shannon Zhao

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-11-03 13:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-02 10:39 [Qemu-devel] [PATCH] hw/arm/virt-acpi-build: _CCA attribute is compulsary Graeme Gregory
2015-11-03  2:25 ` Shannon Zhao
2015-11-03  8:31   ` Graeme Gregory
2015-11-03  9:08     ` Shannon Zhao
2015-11-03 13:26       ` Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).