Re: yet more TP 600E fun...

1999-08-16 Thread David E. Cross

Ok I just tried some other mods... the first was to hard-wire disk0 to
be bios device 0x8b.  no-go.  The second was to patch to 'continue' if it
missed a probe, and to limit the probe to the first 0x10 entries... for
example: 0x00-0x0f and 0x80-0x8f.  

How is it that the old boot code works?  What is it doing differently, is
0x8b perhaps not the "real" bios boot device unit?

--
David Cross   | email: [EMAIL PROTECTED] 
Systems Administrator/Research Programmer | Web: http://www.cs.rpi.edu/~crossd 
Rensselaer Polytechnic Institute, | Ph: 518.276.2860
Department of Computer Science| Fax: 518.276.4033
I speak only for myself.  | WinNT:Linux::Linux:FreeBSD


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



Re: yet more TP 600E fun...

1999-08-16 Thread David E. Cross

I modified the biosdisk.c code as follows

(first part of function)

for (unit=0;unitbi_bios_dev)
break;
if ((unit == nbdinfo ) && (nbdinfo < MAXBDDEV) ) {
unit=initial_bootinfo->bi_bios_dev;
bdinfo[nbdinfo].bd_unit=unit;
bdinfo[nbdinfo].bd_flags=(unit <0x80) ? BD_FLOPPY : 0;

printf("Probiobing for bios disk 0x%02x\n", unit);
/* I did that to make sure my code was being run*/
if (!bd_int13probe(&bdinfo[nbdinfo]))
return 0;

printf ("BIOS drive %c is disk%d\n", ...);
nbdinfo++;
 }
return 0;
} /*end of function */


With these mods it will not find the "0x8b" device, event though the "probing
got bios disk..." does indeed print.

Suggestions?

--
David Cross   | email: [EMAIL PROTECTED] 
Systems Administrator/Research Programmer | Web: http://www.cs.rpi.edu/~crossd 
Rensselaer Polytechnic Institute, | Ph: 518.276.2860
Department of Computer Science| Fax: 518.276.4033
I speak only for myself.  | WinNT:Linux::Linux:FreeBSD


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



Re: yet more TP 600E fun...

1999-08-13 Thread Mike Smith

> 
> 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



Re: yet more TP 600E fun...

1999-08-13 Thread Tom Bartol


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.

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



Re: yet more TP 600E fun...

1999-08-13 Thread Mike Smith

> 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



Re: yet more TP 600E fun...

1999-08-13 Thread Tom Bartol


I see the same problem when trying to boot FreeBSD-3.0-RELEASE (or there
abouts) and later cdroms on my TP770.
I can boot FreeBSD-2.2.8 and earlier FreeBSD-3.0-SNAP cdroms just fine.  I
think it has something to do with the new boot loader that went in just
before 3.0-RELEASE.

Tom


On Fri, 13 Aug 1999, David E. Cross 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?
> 
> --
> David Cross   | email: [EMAIL PROTECTED] 
> Systems Administrator/Research Programmer | Web: http://www.cs.rpi.edu/~crossd 
> Rensselaer Polytechnic Institute, | Ph: 518.276.2860
> Department of Computer Science| Fax: 518.276.4033
> I speak only for myself.  | WinNT:Linux::Linux:FreeBSD
> 
> 
> 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