Thread (1 message) 1 message, 1 author, 2012-06-22

Re: [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support

From: Thierry Reding <hidden>
Date: 2012-06-22 14:02:10
Also in: linux-arm-kernel, linux-pci, linux-tegra

On Fri, Jun 22, 2012 at 01:48:39PM +0000, Arnd Bergmann wrote:
On Friday 22 June 2012, Thierry Reding wrote:
quoted
quoted
It seems like this isn't working properly. For some reason both the reg
property of pci@0 and pci@1 are translated to the same parent address
0x80000000. I'll have to investigate where exactly this goes wrong.
So it turns out that while of_read_number() can actually read any number
of cells, only the two least significant are kept because it returns a
u64. Since of_bus_default_map() uses of_read_number() the addresses
<0 0 0> and <1 0 0> are in fact the same. I'm not sure how best to solve
this. I'm not aware of a 128 bit integer type in the kernel, so I guess
the better alternative would be to fix of_bus_default_map() to cope with
#address-cells > 2 properly.
of_translate_address should get it right. Which codes uses of_read_number()?
Can it be converted to use of_translate_address()?
Actually this is from of_translate_address(). The calling sequence looks
like this:

	of_address_to_resource()
	  __of_address_to_resource()
	    of_translate_address()
	      __of_translate_address()
	        of_translate_one()
	          of_bus_default_map()
	            of_read_number()

Thierry

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help