summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Kononov <kononov195-uclibc@yahoo.com>2007-02-01 14:16:45 -0800
committerSimon Horman <horms@verge.net.au>2007-02-02 11:37:19 +0900
commita6eee1488fd9a9fb3ca483eed92977dd9e4cacb6 (patch)
treeae1250f03c58ad89b58c2a562917b556585c73a9
parent5299e8183dd984d485c5037cc717a0c0b04cd5be (diff)
kexec i386 real mode patch
Computation of the real mode CS value is corrected. Real mode debugging feature is corrected. Signed-off-by: Roman Kononov <kononov195-uclibc@yahoo.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/arch/i386/kexec-bzImage.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kexec/arch/i386/kexec-bzImage.c b/kexec/arch/i386/kexec-bzImage.c
index 3d35297..aee5f00 100644
--- a/kexec/arch/i386/kexec-bzImage.c
+++ b/kexec/arch/i386/kexec-bzImage.c
@@ -270,7 +270,7 @@ int do_bzImage_load(struct kexec_info *info,
/*
* Initialize the 16bit start information.
*/
- regs16.cs = setup_base + 0x20;
+ regs16.cs = (setup_base>>4) + 0x20;
regs16.ip = 0;
regs16.ss = (elf_rel_get_addr(&info->rhdr, "stack_end") - 64*1024) >> 4;
regs16.esp = 0xFFFC;
@@ -278,7 +278,7 @@ int do_bzImage_load(struct kexec_info *info,
printf("Starting the kernel in real mode\n");
regs32.eip = elf_rel_get_addr(&info->rhdr, "entry16");
}
- if (real_mode && debug) {
+ if (real_mode_entry && debug) {
unsigned long entry16_debug, pre32, first32;
uint32_t old_first32;
/* Find the location of the symbols */