Subject: Re: PM 7200 support issues
To: Jon Buller <jonb@paclink.com>
From: David A. Gatwood <dgatwood@deepspace.mklinux.org>
List: port-macppc
Date: 12/11/1999 20:01:27
On Sat, 11 Dec 1999, Jon Buller wrote:

> Would it be next to impossible to poke through the mklinux sources
> and sort out what it would take to get a 6100 to boot?  I suspect it
> might be, since there is no OF, and no PCI, etc...

Nah.  Shouldn't be that bad at all, booting excluded.  What you need to do
first is get NetBSD to boot via BootX.  It shuldn't be particularly hard,
especially on the x100's.  As a side note, BootX now has direct booting
support for MkLinux, including the x100s.

The nice thing about NetBSD is that MkLinux uses basically a stock BSD
license (minus the advertising material clause, I think).  There's nothing
stopping you guys from blatantly ripping pieces out of MkLinux.  (After
all, we rip stuff blatantly from NetBSD frequently.  ;-)

After the booting stuff, the basic changes that I'm aware of for NetBSD to
support the x100's are:

1.	Support for non-contiguous physiscal RAM
2.	Rip the hard-coded addresses for devices from the MkLinux drivers.
3.	Rip off interrupt handling code (or at least the table) from
	MkLinux.
4.	Rip the MkLinux video driver for those machines and hack it into
	wscons or whatever.
5.	PowerPC 601 support
6.	eieio() and sync() macro changes for compatibility with certain
	x100 machines with certain common NuBus cards (known hardware bug)
7.	Optional: Rip AMIC DMA support for SCSI, Serial, Floppy (if
	desired)

I'm pretty sure that's about it.  All the chips other than the AMIC DMA
controller, the video controller, and the NuBus controller (BART) are
present in the PCI machines, unless I'm forgetting one.

Note that these are roughly in order of neccessity.  You can't do much
without interrupts or hardware addresses.  You should be able to get
around 4, 5, and 6 temporarily just by using a Newer G3 card with
motherboard video (and just treat the motherboard VRAM as being a very
dumb video device).

If anybody wants to tackle this and needs an explanation of anything in
the MkLinux code, just shout.  :-)


Later,
David