Subject: NetBSD without MacOS: Coding time!
To: None <email@example.com>
From: Mike Frager <firstname.lastname@example.org>
Date: 02/27/1999 16:21:25
I've read the responses to my original ideas and it seems that people are
very interested it this. Most people who responded favored creating an
imposter Apple_Driver partition that would be loaded by the Start Manager
and would then boot NetBSD. If this is how people want to do it than
that's what we should do.
This my current plan for implementing this imposter Apple_Driver:
It will be a two stage system. The first stage will be the actual
Apple_Driver partition. If will (probably) be written completely in
assembler. When run, this first stage will know the current SCSI id (this
is passed in by the Start Manager according to I.M.) and the physical
location on the disk of the second stage loader.
The second stage loader will have knowlegde of the ffs filesystem and will
be able to find the kernel without the physical location. This stage will
then actually load the kernel into memory, setup the environment, detect
and pre-configure the hardware then execute the kernel (please tell me if
I missed something ;).
The second stage loader will be easier and could probably be written in C
(or Pascal... hehehe).
Before we try to actually write this thing we should find solutions for
the problems that we KNOW we will run into. If you have a way (preferably
an assembler or C routine) to do any of these things PLEASE post it:
Detect and/or switch to 32-bit addressing
Read and write to/from PRAM
Access to SCSI from assembler
Using Toolbox traps from ROM without the MacOS
Detect hardware without the MacOS (or are Gestalts in ROM?)
Access partitions from NetBSD in raw (no filesystem) mode
Setup the display/serial ports without the MacOS
Using assembler to move a chunck of data from disk to RAM (should be easy)
If we can get a few of these worked out then we can begin coding. Also,
does anyone have an idea of how we can debug this thing since Macsbug
won't be loaded yet.
Thanks in advance,