On Thu, Feb 14, 2008 at 07:12:54PM +0100, Segher Boessenkool wrote:
The general syntax of a pathname component in OF is:
name@unit-addr:args
Thanks for the insight!
"unit-addr" is (the text representation of) the address for the node, in the parent's address space.
This statement sounds so good. But the current suggestion is:
+++ mainboard/pcengines/alix1c/dts (working copy) @@ -22,26 +22,17 @@ + apic@0 {
Enumerated "bus", just a list of devices. This is the first, addr 0.
+ domain@0 {
Another "device". Also addr 0. Can this really be right?
+ pci@1,0 {
Within domain 0 a PCI device devfn 1,0. No problems.
+ pci@15,0 {
Ditto devfn 15,0.
+ lpc@46 {
This is quite different.
The unit-addr type depends not only on the parent node, but also on the name of the new node. For pci nodes, unit-addr is a pci devfn within domain 0. For lpc nodes (superio), it is an io port which supposed also is within domain 0, but that isn't really the case since ioports exist in a separate address space on x86, which isn't even parallell to the PCI domain devfn space, but parallell even to the domain space. (ie. global in the system)
What to do? Mixing-and-matching address spaces is confusing.
Maybe we can hack around it, and not have to implement three dimensions in a two-dimensional tree just yet? :p
//Peter