Subject: Re: Porting to IBM Risc 6000
To: Jochen Kunz <jkunz@unixag-kl.fh-kl.de>
From: Matt Thomas <matt@3am-software.com>
List: port-powerpc
Date: 08/11/2002 12:22:05
At 11:22 AM 8/11/2002, Jochen Kunz wrote:
>On 2002.08.09 16:34 David Edelsohn wrote:
>
> >       PReP is not the same as CHRP.
>Yes, of course. My question was more like "Are they similar enough to
>support them with a single NetBSD port?" I don't know PReP and CHRP
>internas yet. I started to read the CHRP spec to get an overview...

With enough indirection/abstraction we could have one port.  The
question is whether it's worth it.

> > PReP machines do not have the same
> > Open Firmware device tree, client services, and RTAS.
>[...]
> >       RPA is the IBM-specific continuation of CHRP.
> >  It supports Open Firmware (device tree, client services, RTAS),
> > but it may have different devices than specified in the CHRP
> > specification.  It may use different interrupt controllers
> > (not OpenPIC), etc.
>So we would end with port-prep for the PReP only machines and port-chrp
>(port-rpa?) for CHRP and RPA machines? And perhaps an additional
>port-chrp64 for 64 bit CHRP/RPA machines? Analogus to port-sparc and
>port-sparc64? (I know I can ask a lot of stupid questions. ;-) )

My inclination is to have to move to a rs6k port and have
GENERIC and GENERIC64 for 32bit and 64bit PPC platforms.
The real question is do we want a single kernel which can work
on 32bit and 64bit platforms?

>And where to get the RPA spec? PReP and CHRP are at
>ftp://ftp.software.ibm.com/rs6000/technology/spec/

The most significant thing is to create a RTAS module with the
various functions we need.  Now if we do it right, there could
be an RTAS work-alike implemented for PReP.  But the most
significant difference is that one uses a PC'ish PNP database
and CHRP uses OFW.

For instance, the 43p model 260 device tree will look something
like:

ofbus* at root
cpu* at ofbus?
rtas* at ofbus?
pci* at ofbus?
pcn* at pci? dev ? function ?
ukphy* at pcn? phy ?
siop* at pci? dev ? function ?
scsibus* at siop?
sd* at scsibus?
ofisa* at pci? dev ? function ?
com* at ofisa?
lpt* at ofisa?
fdc* at ofisa?

Eventually in prep we should switch to a pnpbios bus as is used
in the i386 port.

-- 
Matt Thomas               Internet:   matt@3am-software.com
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt/
Cupertino, CA             Disclaimer: I avow all knowledge of this message