[PATCH] boot loader fixes #2

Jung-uk Kim jkim at FreeBSD.org
Thu Sep 8 12:21:30 PDT 2005


This is the second iteration of the previous patch.

http://docs.freebsd.org/cgi/mid.cgi?200509011507.23432.jkim

This one removes the redundant bound checks that I added, and fixes a 
new parsing bug that I introduced (blush, blush...).

New things in this version:

7.  Do not modify boot device until everything's good.  Previously any 
failed attempt could modify default device.

8.  Print 'FreeBSD/amd64 boot' banner on amd64 instead of 
'FreeBSD/i386 boot'.  It was confusing many users who have multiple 
drives and/or slices for a while now.  Also print slice information.  
For example,

	FreeBSD/amd64 boot
	Default: 0:ad0(0,3,a)/boot/loader
	boot:

9.  Remove 'compatibility slice', which has been broken for more than 
two years but I haven't seen a single complaint. ;-) This function 
can be revived by defining BOOT2_COMPAT_SLICE.  In that case, 
supposedly it does the correct things now (not tested).

10. Slice 4 is allowed to boot again.

Both 10 and 11 were broken from Rev 1.58.

11. Add '\n' before error messages.

Unfortunately, the patch virtually exhausts all the space left for 
boot2. :-(

Please test and let me know,

Thanks,

Jung-uk Kim

* Note: Bigger boot block is required for more fixes.

http://docs.freebsd.org/cgi/mid.cgi?200509081418.47794.jkim

In fact, keyboard probing is quite broken on many BIOSes.

http://docs.freebsd.org/cgi/mid.cgi?200305091456.40582.jkim
http://docs.freebsd.org/cgi/mid.cgi?200305131427.20811.jkim

If I had more space, I could do the correct thing in C. :-(

* Note: '-S' or '-S0' option is only good for the BIOS which 
initializes serial port correctly.  Your mileage may vary.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: boot2.diff
Type: text/x-diff
Size: 11826 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20050908/00995095/boot2-0001.bin


More information about the freebsd-current mailing list