Subject: Re: Son of diskless boot
To: Matthias Drochner <drochner@zelux6.zel.kfa-juelich.de>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: port-i386
Date: 05/23/1997 02:40:59
Matthias Drochner <drochner@zelux6.zel.kfa-juelich.de> writes:

>Excerpts from netbsd: 23-May-97 Re: Son of diskless boot Jonathan
>Stone@DSG.Stanf (1454)

>> >tanstaafl# config FOO
>> >FOO85: netbsd says root on ep0, but there's no ep0
>> >*** Stop.
>> 
>> That may be a bug.  The following works in your config file:

>This IS a bug in "config".cfcrosscheck() assumes only disks,
>it tries to interpret a non-existent minor number.

Oh :)

>I don't understand why "config" deals with major and minor
>numbers at all. The new setroot et al. should be clever enough.


>> Sounds like the kernel not finding recognising ep0 at boot time might
>> be a bootblock problem. Perhaps with booting from DOS.

>Same reason: networks cards mave no major/minor number.
>The traditional layout of arguments passed to the kernel by
>the bootblocks has no room for such devices (on i386).
>If you don't want to change this, you have to wire enough
>information into the kernel.
>The new bootblocks contain code to pass device names.
>To make use of it, you need to change the startup a bit.
>(You can contact me for patches.)

Hmm. But I'm using the new bootblocks on a floppy, to boot a kernel
with root and swap on NFS. (and so is entropy@zippy.bernstein.com).
That setup finds the network interface just fine.  Why is booting a
"root on ? type nfs" kernel from DOS (or from a Netbsd native floppy)
different?

Does booting from flopppy cause the kernel to receive the major/minor
for the floppy, tricking setroot() into continuing far enouhg to call
nfs_setroot()?  If the i386 kernel needs _some_ kind of major/minor,
and it's not getting one from dosboot, then isn't that a bug in
dosboot ( or the kernel)?

I'm not sure I want bootblock patches.  If the bootblocks find and
load a kernel, and that kernel is configured for root on NFS only,
then surely the kernel should get root on NFS irrespective of what the
bootblocks pass it. 

I would like patches to do a Sun-style "boot -a" (the bootprom prompts
for the device name and type from which to load the kernel, and the
kernel does the smea thing for root and swap), but I don't think
config supports multiple root types in a single kernel yet.