Subject: FYI: recent boot block changes...
To: None <port-alpha@NetBSD.ORG>
From: Chris G. Demetriou <cgd@CS.cmu.edu>
List: port-alpha
Date: 01/20/1997 14:57:24
So, as some of you have noticed, i've been doing a fair bunch of work
on the boot blocks lately.

The goals have been to:
	(1) clean them up,
	(2) make them support network booting on older firmware
	    machines,
	(3) make them support booting gzipped kernel images (thanks
	    to the work of Matthias Drochner, who's been doing
	    some similar work on bootblocks for the x86).

(2) is somewhat interesting: my initial work with netbooting was done
on old-firmware machines, so i knew it was possible (and even knew the
... weird tricks necessary to make ti work).  This was actually
necessitated by the fact that I could netboot my 3000/300LX only with
old firmware.  (New firmware results in tftp checksum errors when i
tried to load my boot block... and apparently there are some folks in
DEC who think this is a "hardware problem."  *chuckle*)

The real problem with netbooting from old-firmware machines was
finding out the machine's ethernet address (which the boot block needs
to send out its own bootp requests).  With older versions of firmware,
there's no way (that documented; there might be an undocumented way)
to get the machine's ethernet address without groveling around in the
hardware, which i _really_ want/wanted to avoid.

Therefore, my solution was to write a program
(/usr/mdec/setnetbootinfo) which can hard-code an ethernet address
into a network boot block.  (There are other issues that have to be
dealt with, e.g. the semantics of 'read' are ... weird, at least on my
3000/300LX -- i'd like to see what others run into with old
firmware...)

Unfortunately, i've not yet written documentation for setnetbootinfo.
8-)


(1) and (3) haven't been completely integrated yet, but should be
soon.


As noted in the 'GENERIC' kernel config file (and the current default
for GENERIC kernel builds) you need the kernel to be linked at a
higher address than normal to netboot successfully.  (I don't know why
this is, but i've got a few guesses...)


Anyway, the new boot blocks work on all the machines i've tested
(AlphaStation 200, AlphaStation 255, DEC 3000/300LX), and so i'm
putting binaries up for your consumption.

The /usr/mdec binaries are at:
	ftp://ftp.netbsd.org/pub/incoming/cgd/mdec-970120.tar.gz


Would people who want to netboot old-firmware machines please try out
the 'netboot' and 'setnetboot' programs there?  if you run into
problems, send me mail...


cgd