Subject: Re: NetBSD/ofppc boots multiuser on Pegasos
To: None <email@example.com, firstname.lastname@example.org,>
From: Jochen Kunz <email@example.com>
Date: 07/28/2006 17:00:56
On Fri, 28 Jul 2006 11:53:22 +0200
"Matt Sealey" <firstname.lastname@example.org> wrote:
> Do you care that the "ranges" property is empty?
Yes. My code will call panic(9) if there is a PCI-ISA bridge without or
with an invalid "ranges" property. The ISA/EISA binding to OFW clearly
states on page 11, section 3.1.1
The [ranges] property _shall_ be present for all ISA/EISA bus
bridges. There _shall_ be an entry in the "ranges" property for each
of the Memory and/or I/O spaces if that address space is mapped
through the bridge.
I am no native englich speaker, but this sounds to me like:
"It is broken, if it is not there."
> The Linux guys seem to think it is really important (even though they
> never needed it before :)
As most PCI to ISA bridges do mostly the same mapping we can guess what
the ISA ranges are, add a quirk to the bus_space(9) code and get away
with it. The Linux guys seem to do this already.
Anyway: Thanks for your immediate reply. This is certainly informative
and helpfull. :-)
BTW: My code relies on the "config-l@" and "config-l!" methods of the
PCI device node for PCI configuration space access. I.e. these methods
are called from the kernel during (multi user) runtime. If the Pegasos
firmware doesn't suport them it needs an other quirk...