On 08/24/2012 10:27 AM, Timur Tabi wrote:
> Stephen Warren wrote:
>>>>>> Then, that'd have to be <9 1>;
>>>>
>>>> Actually, I had #size-cells = <0>.
> 
>> I think that if you have #size-cells=<0>, then you'll see the following
>> error message when attempting to translate the address into the parent's
>> address space:
>>
>> prom_parse: Bad cell count for /board-control@3,0/mdio-mux-emi2
> 
> It doesn't appear to be working.  Here's my tree:
> 
> / {
>       model = "fsl,P5020DS";
>       compatible = "fsl,P5020DS";
>       #address-cells = <2>;
>       #size-cells = <2>;
>       interrupt-parent = <&mpic>;
> 
>       lbc: localbus@ffe124000 {
>               reg = <0xf 0xfe124000 0 0x1000>;
>               ranges = <0 0 0xf 0xe8000000 0x08000000
>                         2 0 0xf 0xffa00000 0x00040000
>                         3 0 0xf 0xffdf0000 0x00008000>;
> 
>               fpga: board-control@3,0 {
>                       #address-cells = <1>;
>                       #size-cells = <1>;
>                       compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis";
>                       reg = <3 0 0x30>;
> 
>                       mdio-mux-emi1 {
>                               compatible = "mdio-mux-mmioreg";
>                               mdio-parent-bus = <&mdio0>;
>                               #address-cells = <1>;
>                               #size-cells = <0>;
>                               reg = <9 1>; // BRDCFG1
>                               mux-mask = <0x78>; // EMI1
> 
> That means that the physical address that I need is fffdf0009.  However,
> when I call of_address_to_resource(), the returned address I get is fe8000009.
> 
> So it's not picking up the "3" in the 'reg' property of the
> board-control@3,0 node.  What am I missing?  Do I need a 'ranges' property
> in the board-control@3,0 node?

Yes.

When translating the child node's reg property into the parent's address
space, the parent's reg property shouldn't even be used at all; all the
mapping is done through the ranges property.

I thought the code error-checked for a missing ranges property, but I
guess not...
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to