Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

A bug in pbr.S perhaps

First, the pbr code rarely goes to no_netbsd_ptn in pbr.S, right ?

it will get there when no expected partition is found, and if the ESI
register holding the LBA sector number pass by mbr is not zero, maybe
there is a netbsd partition, so pbr code will try to clear the ESI
register and the lba_sector and then boot the netbsd partition found

The code is below:
204 no_netbsd_ptn:
205     /* Specific sector not found: try again looking for first NetBSD ptn */
206     testl   %esi, %esi
207     set_err(ERR_PTN)
208     jz      error
209     xorl    %esi, %esi
210     movl    %esi, lba_sector
211     jmp     start

But, the start's address is PRIMARY_LOAD_ADDRESS but not 0x7c00, so
maybe it will crash when booting the last-checked partition.

Thanks for any comments.

Home | Main Index | Thread Index | Old Index