[ros-dev] Freeldr problems resolved

Phillip Susi psusi at cfl.rr.com
Sun Apr 10 13:37:58 CEST 2005


Hrm... I thought it was a standard left over from the PC/AT days at 
least that the bios would pass the device number in to the boot loader.  
Otherwise it has no clue from where it is being loaded.  For instance, 
one person could format the disk in their A drive, and the boot sector 
would get 0 written for the device number, then you try to boot it in 
the B drive and the boot sector erroneously tries to access the A 
drive.  Likewise for hard disks 80, or 81 and so on, and even when 
booting from no emulation cdroms, the bios passes in C0 for the first 
cdrom iirc. 

If there are some bioses that do not pass the device number, then 
setting it to 0xff in freeldr.asm would not fix the problem either, as 
it would still expect the number from the bios.  You would have to 
manually set it to the right device number for the drive in your system, 
and only use it in that drive. 

Brian Palmer wrote:

>I don't agree with this fix. It removes (valuable) functionality from the
>boot code and possibly breaks booting on some machines.
>
>There is no spec for how a machine should boot, and the value passed in DL
>is not standard for all BIOSes. It is basically a left over register value
>from the MSDOS MBR code. You can't guarantee that it will always be there. I
>am in charge of the MBR boot code at my day job and I have seen BIOSes which
>do not pass this value in DL.
>
>Could you please revert the change and fix your value to be either 0xFF or
>your boot device number (probably 0x80)?
>
>-Brian
>  
>



More information about the Ros-dev mailing list