Subject: Re: Current EFIKA status?
To: Frank Wille <frank@phoenix.owl.de>
From: Matt Sealey <matt@genesi-usa.com>
List: port-ofppc
Date: 10/06/2007 12:37:22
Frank Wille wrote:
> Matt Sealey wrote:
> 
>> What you need is an RTAS interface and to use the PCI
>> management functions from there. RTAS will also handle the RTC for you.
> 
> There is only one problem: still no RTAS support in NetBSD.

Oh my god! What a showstopper.. :D

It really, really needs one and this has stopped the Pegasos and Efika
ports both; too much "we must poke the hardware directly". If you use the
device-tree to probe PCI and the RTAS functions to access PCI configuration
space, you needn't deal with the host controller at all.

Memory is set up, ready for access, all PCI devices are initialised and
mapped, all relevant peripherals set up by the firmware :D

All you need though is get-time-of-day, set-time-of-day, the PCI config
space access functions, and there are reboot and power-off functionalities
in there too..

> Sorry for the stupid question, but is there any standardization for RTAS?

Yes. It's formalised in CHRP and PAPR. You can't get the CHRP specs anymore
but you can easily download the PAPR spec from Power.org. It's chapter 7.
The entire thing is basically CHRP with knobs and a Hypervisor but IBM and
Power.org would never admit that :D

http://www.power.org/members/developers/specs/PAPR

IBM also ships a set of PowerPC utilities for PAPR for Linux, which is
basically.. an RTAS interface and library for userspace.

http://powerpc-utils.ozlabs.org/
http://librtas.ozlabs.org/

Not all of it (in fact not a great deal of it) is relevant for Pegasos
or Efika as they don't have the hypervisors or control interfaces a
JS20 blade or POWER5 box might have.

> Does it always contain the same functions? Even on an RS6000?

It will always contain certain functions - PCI handling has to be there,
and a few other things. The rest are optional.. or pointless :)

But this is all in the specifications..

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