Re: [PATCH V6 08/13] PCI: generic, thunder: update to use generic ECAM API
From: Bjorn Helgaas
Date: Thu Apr 28 2016 - 16:14:48 EST
On Thu, Apr 21, 2016 at 11:36:53AM +0200, Arnd Bergmann wrote:
> On Thursday 21 April 2016 11:28:15 Tomasz Nowicki wrote:
> > On 19.04.2016 15:06, Arnd Bergmann wrote:
> > > On Monday 18 April 2016 21:31:54 Tomasz Nowicki wrote:
> > >>
> > >> Basically the whole content of pci-thunder-ecam.c and pci-thunder-pem.c.
> > >>
> > >> pci-thunder-ecam.c contains config space accessors. Similar for
> > >> pci-thunder-pem.c but it also has extra init call (it is now called
> > >> thunder_pem_init) which finds and maps related registers.
> > >
> > > They seem to do much more than just override the accessors, they actually
> > > change the contents of the config space as well. Is that really necessary
> > > on ACPI based systems as well?
> >
> > Yes, the pci-thunder-ecam.c accessors are meant to emulate config space
> > capabilities. They are necessary to synthesize EA capabilities (fixed
> > PCI BARs), it wont work without this, for ACPI boot as well.
>
> Why is that? I thought the BARs never get reassigned when using ACPI,
In general, there's no reason we can't reassign BARs, whether we're
using DT, ACPI, or whatever. In many cases, systems with ACPI also
assign all the BARs in firmware, and Linux doesn't reassign them
unless it needs to. But that's just a coincidence. There's no
requirement that Linux leave BARs as firmware programmed them.