[SeaBIOS] [PATCH 4/9] Convert boot code EBDA variables to VARLOW variables.

Kevin O'Connor kevin at koconnor.net
Sun May 20 19:43:32 CEST 2012


Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
---
 src/biosvar.h |    2 --
 src/boot.c    |   13 ++++++-------
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/biosvar.h b/src/biosvar.h
index 45561d9..2458308 100644
--- a/src/biosvar.h
+++ b/src/biosvar.h
@@ -234,8 +234,6 @@ struct extended_bios_data_area_s {
 
     // Locks for removable devices
     u8 cdrom_locks[CONFIG_MAX_EXTDRIVE];
-
-    u16 boot_sequence;
 } PACKED;
 
 // The initial size and location of EBDA
diff --git a/src/boot.c b/src/boot.c
index 4447b9a..ef21fe4 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -238,8 +238,6 @@ boot_setup(void)
     if (! CONFIG_BOOT)
         return;
 
-    SET_EBDA(boot_sequence, 0xffff);
-
     if (!CONFIG_COREBOOT) {
         // On emulators, get boot order from nvram.
         if (inb_cmos(CMOS_BIOS_BOOTFLAG1) & 1)
@@ -642,7 +640,7 @@ boot_fail(void)
 
 // Determine next boot method and attempt a boot using it.
 static void
-do_boot(u16 seq_nr)
+do_boot(int seq_nr)
 {
     if (! CONFIG_BOOT)
         panic("Boot support not compiled in.\n");
@@ -679,15 +677,16 @@ do_boot(u16 seq_nr)
     call16_int(0x18, &br);
 }
 
+int BootSequence VARLOW = -1;
+
 // Boot Failure recovery: try the next device.
 void VISIBLE32FLAT
 handle_18(void)
 {
     debug_serial_setup();
     debug_enter(NULL, DEBUG_HDL_18);
-    u16 ebda_seg = get_ebda_seg();
-    u16 seq = GET_EBDA2(ebda_seg, boot_sequence) + 1;
-    SET_EBDA2(ebda_seg, boot_sequence, seq);
+    int seq = BootSequence + 1;
+    BootSequence = seq;
     do_boot(seq);
 }
 
@@ -697,6 +696,6 @@ handle_19(void)
 {
     debug_serial_setup();
     debug_enter(NULL, DEBUG_HDL_19);
-    SET_EBDA(boot_sequence, 0);
+    BootSequence = 0;
     do_boot(0);
 }
-- 
1.7.6.5




More information about the SeaBIOS mailing list