On 06/07/2013 05:09:54 PM, Benjamin Herrenschmidt wrote:
On Fri, 2013-06-07 at 17:02 -0500, Scott Wood wrote:
> O
> > I thought the device tree was for describing the hardware, rather
> > than configuration? :-)
A bit of both really. See things like /chosen etc...
Also to what extent a MAC address is HW vs. configuration ? :-)
Normally I'd consider that hardware, unless you're overriding it for
some reason.
The HW configuration for a given boards (ie, internal address map,
location of the various bridge windows etc...) is a fairly common
thing
to put in a device-tree.
Sure, there's some stuff that is technically software config, but which
is easier to treat as a fixed property of the hardware once U-Boot is
done setting it up. But U-Boot doesn't have anything to do with this
DMA window...
If the PCI outbound windows are there (and they are), why not the
inbound ones ? IE, it's not far fetched.
PCI outbound windows (and the LAWs that back them up) are set up by
U-Boot. With the current FSL kernel code, if you set it to something
that isn't covered by a PCIe LAW from U-Boot, it won't work.
> > A kernel command line option might be more appropriate, unless you
> > just mean describing the difference between e6500 (which supports
40
> > bit addresses) and previous chips (which support 36 bits), rather
> > than an ability to move it earlier even on e6500.
Well, so we could indeed locate it at 36 on e5500 and that would clear
the current use case and break again on e6500... or we can make it
depend on the overall address map of the board, which is described
in the device-tree. IE, if you don't "locate" anything above 39-bit
in our address map, then using 39 for the window is ok. IE. It's a
choice. A server board setup that doesn't need gfx but want address
space for some other things wouldn't care.
I suppose we could put in the device tree the highest address that has
been configured for anything... though for that to be useful we'd need
to get out of the habit of putting CCSR near the top of the physical
address space.
> > Maybe we could by default use the size of actual RAM, rather than
the
> > physical address space. Then only odd scenarios such as DMA to
> > non-kernel-owned RAM would need manual adjustment (MSIs would
still
> > go through the special window below 4G).
You also need to account for other on-chip MMIOs no ? Or do you never
intend to let PCI devices hit them ?
I don't think we normally need that (other than MSIs, which have a
special window under 4G)... The question is whether it's better to let
odd use cases work without having to manually move the DMA window, at
the cost of decreased out-of-the-box performance with common PCIe cards.
-Scott
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev