Subject: ROM ADB kernel available for testing
To: None <macbsd-development@netbsd.org>
From: Brad Grantham <grantham@rain.org>
List: macbsd-development
Date: 11/13/1994 22:17:40
*** What is Brad doing

I have provided these two kernels and the 1.6 MacBSD Booter as part
of a test distribution of the Mac ROM Glue (MRG) kernel.  The MRG
module allows the NetBSD/Mac68K (MacBSD) kernel to use the Macintosh
ROMs directly in order to provide functionality that would otherwise
be unavailable because of a lack of documentation, time, and motivation.

To be more specific, the current MRG (only) provides access to the
ADB driver in the Mac ROMs.  This driver fixes the problems users
have encountered with the 1.0 kernel, including lock-ups after a
random number of key events, incompatibility with ADB devices, and
the hard-coded ADB device table.  The kernel included as part of
this test kit has successfully booted with an original ADB mouse,
an original ADB keyboard, a MacTouch extended ADB keyboard, an
Animas 3-button mouse, and a Kensington Turbo Mouse trackball, and
all of these devices worked with the "dt" terminal multiplexer.
The kernels included with this kit are up to date with the MacBSD
1.0 kernel source plus late patches as of Nov 13th, 1994.


*** What to do with it

The kit consists of two parts, and should be available at
"ftp://ftp.netcom.com/pub/grantham/NetBSD_Mac/" and
"ftp://puma.bevd.blacksburg.va.us/pub/test/":

	mrgkit.1.0a.sea.hqx
	mrgkit.1.0a.tgz

("1.0a" is the kit version string, indicating that it is the "a"
release of the kit, based on MacBSD 1.0.  This may never be relevant.)

mrgkit.1.0a.sea.hqx
---------------------

The first package is a BinHex'd self-extracting archive of the "1.6
MacBSD Booter", "netbsd", and "netbsd.nofpu".  The "netbsd" kernel
is compiled with floating point code and the "netbsd.nofpu" kernel
is compiled without.  (Note that, although the netbsd.nofpu may
boot on your FPU-less computer, you'd also need binaries compiled
without FPU instructions ("-msoft-float") in order to run MacBSD
on your Mac without an FPU; the kernel is supplied just for testing
and feedback.)  This archive will extract itself into a folder
containing the MacBSD booter and MacBSD kernels.

The MacBSD booter is configured to load the kernels from MacOS,
and is thus a convenient package with which to test your hardware
configuration.  When you launch the MacBSD booter included with
"mrgkit.1.0a.sea.hqx", the booter will not automatically launch.
If you choose "Boot Now" from the "Options" menu, the Booter will
launch the "netbsd" (has FPU code) kernel.  You may wish to choose
"Booting..." from the "Options" menu and alter the kernel name (to
"netbsd.nofpu"), the amount of memory, or whether or not to display
diagnostic gray bars.  Note that you will have to substantially
change the "Booting..." parameters to normally launch an installed
MacBSD.

(*IIsi USERS* : You may have to turn off "Auto-size RAM" and set
your RAM field to your installed RAM size minus one megabyte.  I
do not know if this bug has been fixed yet, but I'd rather not
debug this as well as the Mac ROM crap.)

If your boot is successful, you will note a few new output lines
during the kernel initialization, like this:

mrg: 'Mac II class ROMs' rom glue, tracing off, debug off, silent traps
adb: bus subsystem
adb: extended keyboard at 2
adb: 100 dpi mouse at 3

"MRG" will print a line indicating the options provided to the Mac
ROM Glue module, and a brief description of the kind of ROM
information it is using for your machine.  Immediately afterwards,
the "ADB" subsystem driver will print out a list of the kind of
devices connected to your system.

If you have not provided parameters to the MacBSD Booter to launch
your own MacBSD distribution, then this kernel will probably drop
into the debugger when it discovers you have no UFS filesystems to
mount.  This is okay.  If you can type keys to the debugger, the
MRG kernel has successfully initialized the ADB bus and everything
is great.  It's more than likely, however, that you won't get that
far.  (To reboot, try typing "call boot" as a command to the debugger.)
If you *are* booting your own installed MacBSD distribution, you're
probably going to be okay if you see the output I mentioned above.


mrgkit.1.0a.tgz
----------------

This file contains the "netbsd" kernel for use with the MacBSD
Installer.  In order to install this kernel, you would run the
Installer, choose "Install" from the "File" menu, and then choose
"mrgkit.1.0a.tgz".  It will install the kernel as "netbsd.mrg" at
the root directory of your filesystem.  You will have to move
"netbsd.mrg" to "netbsd" yourself.  (I did it this way so people
wouldn't inadvertently overwrite their existing "netbsd".)  The
main reason I've provided this file is that I don't want to confuse
anyone by explaining how to copy the kernel in via the Installer
Mini-shell.  The tgz doesn't include "netbsd.nofpu" because you
wouldn't be able to run anything anyway.


*** How to report your results

I'd appreciate mail on whatever happens to you when you try these
kernels.  (If you don't see "mrg:" or "adb:" on your kernel bootup
screen, your problem is with some other part of the installation;
mail to "macbsd-general@netbsd.org".)

Most importantly, I'd like to know
	- What machine you're using (IIcx, Quadra 840AV, Duo 270c, etc...)
	- What ADB devices you have installed
	- Whether the other 1.0 kernels worked or not
	- What "mrg" and "adb" printed on boot.

Send your report to "grantham@tenon.com", and no MIME mail if you
can help it, please.  If everything looked fine, you don't need to
send me any mail, but I'm always happy to know that something I
wrote works.

The MRG ADB driver should work on the following machines:
	II	IIx	IIcx	SE/30	IIci
	PB 140	PB 170	Q 700	Q 900

The MRG ADB may work on:
	Other PowerBooks and Duos

The MRG probably won't work on the IIsi, but maybe I'm just having a bad
karma year, and because of this it also probably won't work on:
	IIvx	IIvi	Other Quadras 	Other Macs


*** What next?

If your boot was successful, you can start using this kernel as
the regular MacBSD "/netbsd".

I'm trying really hard to figure out the IIsi/vx/etc machine ADB,
but, as usual, I have a real job and other chores that restrict the
time I have to work on MacBSD.  (Not to mention I don't *own* a
IIsi/IIvx/etc.)  I just wanted to provide this kernel so that those
people who have machines in the "working" category could take
advantage of the ROM glue.

		-Brad Grantham
		 grantham@tenon.com
		 (or grantham@netcom.com
		 or grantham@acm.vt.edu),
		 November 13th, 1994
-- 
 '1' means a BLACK pixel, '1' means button UP, what will Apple think of next?
Brad Grantham, grantham@netcom.com >+------+< Happily slaved to NetBSD/Mac68k!
	I thought I would have to go without dinner tonight until I
       remembered the container of chocolate frosting in the fridge!