Re: [PATCH] of: When constructing the bus id consider assigned-addresses as well
From: Grant Likely <hidden>
Date: 2012-11-30 09:48:12
Also in:
lkml
From: Grant Likely <hidden>
Date: 2012-11-30 09:48:12
Also in:
lkml
On Thu, 29 Nov 2012 12:38:29 -0700, Jason Gunthorpe [off-list ref] wrote:
On Thu, Nov 29, 2012 at 04:26:48PM +0000, Grant Likely wrote:quoted
Hmmm. okay that makes sense, but something still isn't quite right. So of_translate_address should take care of drilling down through the bus layers, and when it gets to the PCI node it /should/ use of_bus_pci_translate to handle traversing down to the parent node (which uses the 'assigned-addresses' for the pci node.The address translation machinery requires PCI format addresses (ie address-cells=3) for all nodes below a PCI bus. Part of this requirement is that 'assigned-addresses' is used for resources, *not* 'reg'. If you attempt to stick a 'reg' in a block nested below a 'device_type="pci"' the kernel throws lots of error messsages and generates bad address mappings.
Have you added the appropriate #address-cells and #size-cells to the pci device node to go back to a non-pci addressing mode? assigned-addresses only makes sense in the pci-device node itself. reg should work for all nodes below that, and if it doesn't then it is a bug that we need to fix. g.