On Friday, July 11, 2014 6:50:43 pm Matthew D. Fuller wrote:
> On Fri, Jul 11, 2014 at 03:38:56PM -0700 I heard the voice of
> Nathan Whitehorn, and lo! it spake thus:
> > I don't honestly remember where that number came from. It's at line
> > 72 of usr.sbin/bsdinstall/partedit/partedit_x86.c. If 128 works
> > better, I'm happy to change it, but it would be nice to know what
> > the actual bounds here are before putting in a new arbitrary number.
> src/sys/boot/i386/pmbr/pmbr.s says
> next_boot:. incl (%si). . . # Next LBA
> . . adcl $0,4(%si)
> . . mov %es,%ax. . . # Adjust segment for next
> . . addw $SECSIZE/16,%ax. . # sector
> . . cmp $0x9000,%ax.. . # Don't load past 0x90000,
> . . jae err_big. . . # 545k should be enough for
> . . mov %ax,%es. . . # any boot code. :)
> (err_big being printing the "Boot loader too large" message). Though
> 0x90000 is actually 576k, not 545, but presumably there's some other
> adjustment lopping off bits somewhere; that's 62 sectors diff.
The boot code is not loaded at offset 0, it is loaded at offset 0x7c00 (the
same address the BIOS loads boot loaders):
.set LOAD,0x7c00 # Load address
# We found a boot partition. Load it into RAM starting at 0x7c00.
movw %bx,%di # Save partition pointer in %di
> Regardless, I settled on 512k for my boot partitions (after finding
> the above error when I previously decided "it's a few dozen k, I'll
> just set aside a meg to be safe" and then discovered the whole
> "not-booting" thing that caused.
512k should be fine even if it is a bit excessive. Also, larger partitions
might actually increase boot time, but perhaps not noticably.
email@example.com mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"