Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: [PATCH v2 4/4] pci: Add support for creating a generic host_bridge from device tree | Date | Thu, 27 Feb 2014 17:45:24 +0100 |
| |
On Thursday 27 February 2014 16:20:03 Liviu Dudau wrote: > On Thu, Feb 27, 2014 at 03:58:41PM +0000, Arnd Bergmann wrote: > > On Thursday 27 February 2014 14:13:22 Liviu Dudau wrote: > > > > > > It is useful for host bridge drivers as this is the only place where we store > > > the physical CPU address for the IO range. This is then needed when setting up the > > > translation registers. Also used when calling the pci_ioremap_io function that I'm > > > introducing in the AArch64 patches. > > > > I don't understand what translation windows you are talking about. Is this > > about how the PCI spaces are mapped into the CPU address space? If so, I > > would strongly recommend to have this handled by the boot loader before > > calling into the kernel. For ARM32, we have a lot of embedded systems > > that require the PCI host driver to set up those windows, but actually > > it would be much better to just have the firmware tell us what the setup > > is and that use that. > > The AXI to PCI bridge that I'm using has a set of registers for doing address translation. > When it sees an AXI translation that matches the programmed translation window will > convert it into a PCI write using the PCI address base written in that translation window. > In other words you basically program the DT range into those address translation registers > and the bridge does the AXI to PCI conversion for you.
Right. That should definitely be done in the boot loader before Linux is started.
Arnd
| |