mapping a PCI bus

Nicolas Lavocat nicolas.lavocat at fr.thalesgroup.com
Mon Mar 9 21:42:04 EST 2009


Hy everybody!

I’m working on a project:

On a proprietary board, (with a PowerPC 7448), a minimal Linux has been 
embedded. My first aim consist in using a graphic chipset on the board, 
that is to say make work the PCI bus. For the address mapping, I try to 
write a dts, using the dts of the mpc7448hpc2 board as a model. My 
problem is that I don’t understand how to fill the field “range” of the 
PCI. The “width” used and the number of range is different from on board 
to an other where PCI is used. I read the PCI specification, and don’t 
find anything about it.

Here is an extract of my dts, where the field in question is indicated 
thanks to commentaries:

pci at 70000000 { compatible = "abac-pci";

device_type = "pci";

#size-cells = <2>;

#address-cells = <3>;

#interrupt-cells = <1>;

reg = <0x70000000 0x1000>;

bus-range = <0 0>;

/* how can I know how to chose the number of range and their width?*/

ranges = <0x2000000 0x0 0xe0000000 0xe0000000 0x0 0x1a000000

0x1000000 0x0 0x0 0xfa000000 0x0 0x10000>;

…

};

Then, I have a second question: why PCI’s addresses seem to be 
implemented on 96 bits, whereas the addressing is done on 32 bits?

Thanks for Your attention !

Nicolas Lavocat




More information about the devicetree-discuss mailing list