Subject: Re: suggested enhancements for the i386 boot mechanisms
To: port-i386@NetBSD.ORG, Luke Mewburn <lm@cs.rmit.edu.au>
From: Matthias Drochner <drochner@zelux6.zel.kfa-juelich.de>
List: port-i386
Date: 02/04/1998 13:33:51
Excerpts from netbsd: 4-Feb-98 suggested enhancements for .. Luke
Mewburn@cs.rmit.edu (2494)

> the ability to set variables that affect
> the boot operation.

That's a number of good ideas (I had some of them myself :-).
One could discuss about some of the options (I'd eg prefer to
control the VGA text mode from inside the kernel to allow
switching at runtime).
As you say, the real problem is "where to store this all?".
It must be on the disk in any case, but it shouldn't happen
that one gets an unusable system if he moves a boot disk
to another machine with different hardware. (eg one should
be able to boot from floppy and change the settings on the
harddisk) A separate file could be a solution, this way
even a boot ROM could make use of it. A drawback is
that such a file cannot be read very early in the bootcode
startup, and it has to know how to access this file.
Is it necessary at all that the variables can be set from
the bootloader prompt or would it be sufficient to have
them edited from a running system?
Apropos ROM: the whole stuff must be separable, and
the kernel should not depend too much on it - even now
it is hard go get a reasonable bootloader into 16 or 32K.

> The console
> stuff should be available to the first stage boot, so all of the
> messages generated by the second stage boot go to the right place.

As things are implemented, the 2 boot stages are so closely
tied that this cannot be separated. The first stage alone
is not able to do console output (besides minimal debugging).

> Other potential enhancements include:
> 	* more detailed help
> 	* simple editing commands

Can you tell more?

> 	* enhanced `ls' (with nicer formatting, sorting, etc. it's
> 	  not difficult, doesn't take too much code, and is *much*
> 	  friendlier to the user)

Do you already have it? Then mail me!

> 	* completion for command words and directories (maybe)

Hmm. Port emacs to standalone operation?

> 	* supporting net booting from bios bootblock? maybe vice-versa

The netboot code can only support 1 type of ethernet interface
at the moment (to save space), so one can't build the "universal"
bootloader. For one specific network card, it should nearly work
out of the box.

best regards
Matthias