> 
> I'd be more than happy to do the pestering if some one could write down
> a detailed description of exactly how the TP's BIOS is non-compliant.
> I don't know enough about the boot process and BIOS to write such a
> description.

It's expected that the BIOS numbers disk units sequentially; floppies 
from 0 upwards, fixed-disk devices from 0x80 upwards.   The loader 
searches upwards from 0 and from 0x80 until it fails to find a unit and 
stops there. It doesn't search all of the unit numbers because 
many BIOS implementations seem to wrap, eg. you may find that unit 0x90 
is the same as unit 0x80.  You can't be sure about where the wrap point 
will be, either.

Normally, when you're booting an El Torito image, the virtual floppy is
substituted for drive 0 (ie. you can't get at the real first floppy
drive). I can see why IBM would move it elsewhere, but 0x8b is just
about the most stupid place they could have put it.

This is the code (in /sys/boot/i386/libi386/biosdisk.c) that probes for 
BIOS disk units.  You try replacing the 'break' with 'continue' and see 
if it finds a device at 0x8b.  If it does, let me know and I'll send 
you some more complete patches that will always probe the claimed boot 
device.

static int
bd_init(void) 
{
    int         base, unit;

    /* sequence 0, 0x80 */
    for (base = 0; base <= 0x80; base += 0x80) {
        for (unit = base; (nbdinfo < MAXBDDEV); unit++) {
            bdinfo[nbdinfo].bd_unit = unit;
            bdinfo[nbdinfo].bd_flags = (unit < 0x80) ? BD_FLOPPY : 0;

            /* XXX add EDD probes */
            if (!bd_int13probe(&bdinfo[nbdinfo]))
                break;

            /* XXX we need "disk aliases" to make this simpler */
            printf("BIOS drive %c: is disk%d\n", 
                   (unit < 0x80) ? ('A' + unit) : ('C' + unit - 0x80), nbdinfo);
            nbdinfo++;
        }
    }
    return(0);
}


> Tom
> 
> 
> On Fri, 13 Aug 1999, Mike Smith wrote:
> 
> > > I attempt to boot a CD off of the TP600E and I get the following errors:
> > > 
> > > "Can't work out which disk we are booting from."
> > > "Guessed BIOS device 0x8b not found by probes, defaulting to disk0:"
> > > 
> > > Then whenever it attmpts to access "disk0:" it goes to the floppy drive.
> > > 
> > > Suggestions?
> > 
> > Known weirdness in the TP's BIOS not handled properly by the 
> > bootloader.  I don't have immediate plans to do anything about this; 
> > you could try hacking the loader to accept the 0x8b value and see if 
> > that actually works.  Or you could pester IBM to DTRT.
> > 
> > -- 
> > \\  The mind's the standard       \\  Mike Smith
> > \\  of the man.                   \\  [EMAIL PROTECTED]
> > \\    -- Joseph Merrick           \\  [EMAIL PROTECTED]
> > 
> > 
> > 
> > 
> > To Unsubscribe: send mail to [EMAIL PROTECTED]
> > with "unsubscribe freebsd-current" in the body of the message
> > 
> 
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-current" in the body of the message
> 

-- 
\\  The mind's the standard       \\  Mike Smith
\\  of the man.                   \\  [EMAIL PROTECTED]
\\    -- Joseph Merrick           \\  [EMAIL PROTECTED]




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to