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