Port-ofppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Current EFIKA status?




Frank Wille wrote:
Matt Sealey wrote:

Since you *require* RTAS for RTC, reliable poweroff/reboot, it's
worth implementing, and you may as well use RTAS as your config
space interface as this would be the very start of supporting the
IBM hypervisor (NetBSD on a JS21? It could happen...)

Currently I'm not smart enough to see a reason why the "PCI domain" can be a
problem, but the rest sounds conclusive.

For instance if you send a configuration space request for bus 0, device 1,
function 8.. how does it know which host controller? :)

The Discovery II includes two really distinct host controllers which are
accessed through the same configuration mechanism. Intel chipsets handle
this by having a weird, hacky, BIOS-legacy "transparent host bridge" so
all independant host controllers are merely visible as buses - under a
single "domain".

Therefore, on a PC, you may have PCI bus 0 which is your AGP bus, and
PCI bus 1, and PCI bus 2, but they are really independant host controllers,
do not share bandwidth with each other.

On Itanium, SPARC, and PowerPC, there was never a PC BIOS to remain too
compatible with, so they implement discrete host controllers as domains;
you can have 3 bus '0' on seperate host controllers.

It's really complicated and stupid, but one upshot is that Linux for
ppc implements a really f**ked up bus munging and renumbering system so
no bus number is duplicated, to get around this problem.

But do all OFW implementations offer RTAS? Or is it more compatible to use
the config-l@/config-l! methods as a fallback?

Yeah. I would use RTAS if possible, and config-* if necessary. RTAS will
be faster - but it won't be present on non-CHRP systems. That means SPARC
can stick to config-* if it wants, but on PPC, if you have an RTAS node,
then you should be using it.

--
Matt Sealey <matt%genesi-usa.com@localhost>
Genesi, Manager, Developer Relations



Home | Main Index | Thread Index | Old Index