aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2013-02-08 21:00:46 -0500
committerKevin O'Connor <kevin@koconnor.net>2013-02-08 21:28:25 -0500
commitb1885fc3a7998fe91f488a5e54705e606223dc4c (patch)
tree11ee3b681caaf9bc0f0f3e35abdd6401932a0ddd
parent9e4d41cd7c157a1d7037b06f9d830a7dfc6d1441 (diff)
downloadseabios-b1885fc3a7998fe91f488a5e54705e606223dc4c.tar.gz
Undo incorrect assumptions about Xen in commit 6ca0460f.
Xen invokes SeaBIOS via entry_post, not entry_elf. As a result commit 6ca0460f broke Xen. This change effectively undoes that commit. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/post.c30
-rw-r--r--src/romlayout.S2
2 files changed, 8 insertions, 24 deletions
diff --git a/src/post.c b/src/post.c
index f2fabbb..9930ae5 100644
--- a/src/post.c
+++ b/src/post.c
@@ -315,9 +315,6 @@ reloc_preinit(void *f, void *arg)
void VISIBLE32INIT
dopost(void)
{
- // Check if we are running under Xen.
- xen_preinit();
-
// Detect ram and setup internal malloc.
qemu_cfg_preinit();
if (CONFIG_COREBOOT)
@@ -332,30 +329,17 @@ dopost(void)
reloc_preinit(maininit, NULL);
}
-// Startup debug output and display software version.
-static void
-debug_splash(void)
+// Entry point for Power On Self Test (POST) - the BIOS initilization
+// phase. This function makes the memory at 0xc0000-0xfffff
+// read/writable and then calls dopost().
+void VISIBLE32FLAT
+handle_post(void)
{
debug_serial_preinit();
dprintf(1, "Start bios (version %s)\n", VERSION);
-}
-// Entry point for Power On Self Test (POST) when running under
-// xen/coreboot.
-void VISIBLE32INIT
-handle_elf(void)
-{
- debug_splash();
- dopost();
-}
-
-// Entry point for Power On Self Test (POST) when running under
-// qemu/kvm/bochs. Under qemu the memory at 0xc0000-0xfffff may be
-// read-only, so unlock the ram as the first step of booting.
-void VISIBLE32FLAT
-handle_post(void)
-{
- debug_splash();
+ // Check if we are running under Xen.
+ xen_preinit();
// Allow writes to modify bios area (0xf0000)
make_bios_writable();
diff --git a/src/romlayout.S b/src/romlayout.S
index a351091..cbe6b1c 100644
--- a/src/romlayout.S
+++ b/src/romlayout.S
@@ -380,7 +380,7 @@ entry_elf:
movw %ax, %gs
movw %ax, %ss
movl $BUILD_STACK_ADDR, %esp
- ljmpl $SEG32_MODE32_CS, $_cfunc32flat_handle_elf
+ ljmpl $SEG32_MODE32_CS, $_cfunc32flat_handle_post
.code16gcc