On Sun, Dec 26, 2010 at 11:33:42PM -0500, Kevin O'Connor wrote: > Replace the bcv list with a full list of all "bootable objects". All > ordering can then be done on this list. The final boot menu, drive > mapping, and BEV list generation is then driven from this > authoritative list. > > Move "Floppy" and "DVD/CD" description prefixes into drive description > generation code to simplify boot menu generation. > > Rework QEMU's CMOS defined bootorder to work with priority scheme in > new boot list. > > Have every CBFS entry create it's own BEV entry (instead of one entry > for all CBFS payloads). Move CBFS payload detection code into > coreboot.c.
Hrmm - I should probably have done the following (incremental patch) to ensure no conflict with bootorder file reading: diff --git a/src/boot.c b/src/boot.c index f7cc8d5..73ac5c8 100644 --- a/src/boot.c +++ b/src/boot.c @@ -70,12 +70,12 @@ loadBootOrder(void) } while(f); } -#define MAX_BOOT_PRIO 0xff +#define DEFAULT_PRIO 9999 -int DefaultFloppyPrio = 1; -int DefaultCDPrio = 2; -int DefaultHDPrio = 3; -int DefaultBEVPrio = 4; +static int DefaultFloppyPrio = 101; +static int DefaultCDPrio = 102; +static int DefaultHDPrio = 103; +static int DefaultBEVPrio = 104; void boot_setup(void) @@ -92,9 +92,10 @@ boot_setup(void) IPL.checkfloppysig = 0; u32 bootorder = (inb_cmos(CMOS_BIOS_BOOTFLAG2) | ((inb_cmos(CMOS_BIOS_BOOTFLAG1) & 0xf0) << 4)); - DefaultFloppyPrio = DefaultCDPrio = DefaultHDPrio = MAX_BOOT_PRIO; + DefaultFloppyPrio = DefaultCDPrio = DefaultHDPrio + = DefaultBEVPrio = DEFAULT_PRIO; int i; - for (i=1; i<4; i++) { + for (i=101; i<104; i++) { u32 val = bootorder & 0x0f; bootorder >>= 4; switch (val) { @@ -157,14 +158,14 @@ boot_add_bev(u16 seg, u16 bev, u16 desc) { bootentry_add(IPL_TYPE_BEV, DefaultBEVPrio, SEGOFF(seg, bev).segoff , desc ? MAKE_FLATPTR(seg, desc) : "Unknown"); - DefaultBEVPrio = MAX_BOOT_PRIO; + DefaultBEVPrio = DEFAULT_PRIO; } // Add a bcv entry for an expansion card harddrive or legacy option rom void boot_add_bcv(u16 seg, u16 ip, u16 desc) { - bootentry_add(IPL_TYPE_BCV, MAX_BOOT_PRIO, SEGOFF(seg, ip).segoff + bootentry_add(IPL_TYPE_BCV, DEFAULT_PRIO, SEGOFF(seg, ip).segoff , desc ? MAKE_FLATPTR(seg, desc) : "Legacy option rom"); } @@ -193,7 +194,7 @@ boot_add_cd(struct drive_s *drive_g) void boot_add_cbfs(void *data, const char *desc) { - bootentry_add(IPL_TYPE_CBFS, MAX_BOOT_PRIO, (u32)data, desc); + bootentry_add(IPL_TYPE_CBFS, DEFAULT_PRIO, (u32)data, desc); } _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org http://www.seabios.org/mailman/listinfo/seabios