[coreboot] patch: more path support

Peter Stuge peter at stuge.se
Fri Feb 15 06:11:29 CET 2008

On Thu, Feb 14, 2008 at 07:12:54PM +0100, Segher Boessenkool wrote:
> The general syntax of a pathname component in OF is:
> 	name at 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 at 0 {

Enumerated "bus", just a list of devices. This is the first, addr 0.

+	domain at 0 {

Another "device". Also addr 0. Can this really be right?

+		pci at 1,0 {

Within domain 0 a PCI device devfn 1,0. No problems.

+		pci at 15,0 {

Ditto devfn 15,0.

+		lpc at 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


More information about the coreboot mailing list