From owner-freebsd-current Sun Mar 10 12:57:08 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA18988 for current-outgoing; Sun, 10 Mar 1996 12:57:08 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id MAA18980 for ; Sun, 10 Mar 1996 12:57:04 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id HAA14288; Mon, 11 Mar 1996 07:53:04 +1100 Date: Mon, 11 Mar 1996 07:53:04 +1100 From: Bruce Evans Message-Id: <199603102053.HAA14288@godzilla.zeta.org.au> To: bde@zeta.org.au, rgrimes@GndRsh.aac.dev.com Subject: Re: booting from sd5 when wd3 is also installed Cc: current@freebsd.org Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >> I haven't decided exactly how to handle these points: >> - how sticky should the drive number be? What is the default drive number >> after 1:sd(0,a)/nonesuch followed by /kernel? >IMHO, 0. Does ``1:?'' or even ``1:xx(y,z)/kernel?'' work? I had `1:' by itself working for a while, but decided that it shouldn't be so easy to change the BIOS number without changing the unit number, so I made `1:' only work with `xx(y,z)'. `1:xx(y,z)any' should work. `xx(y,z)any' works the same as now - the BIOS drive number is set to match `y'. This isn't the best behaviour (you often want to keep the BIOS boot drive number and change the FreeBSD unit number) but it is required for compatibility and is the best behaviour for changing the drive type from fd to sd. >I can't test them, but have a small nit I found doing a visual over the >context diff.... ohh... and can you bounds check the BIOS drive number Thanks. >against the number of drives reported by the BIOS, I seem to recall >an infinite error loop if you did something like wd(1,a)/kernel with >only one BIOS drive. It's still easy to get these. I got a lot when I forgot to subtract '0' from the drive number :-). Does the BIOS report the number of drives reliably? The byte at physical 0x475 seems to correctly give the total number of non-floppy drives here (not the number of wd drives like I once thought). BTW there is a bug in `gdb -k /kernel /dev/mem': gdb loops internally for `p/x *(int *)0xf0000475'; it ignores ^C but can be suspended. Bruce