diff options
author | Roman Kononov <kononov195-uclibc@yahoo.com> | 2007-02-01 14:16:45 -0800 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2007-02-02 11:37:19 +0900 |
commit | a6eee1488fd9a9fb3ca483eed92977dd9e4cacb6 (patch) | |
tree | ae1250f03c58ad89b58c2a562917b556585c73a9 | |
parent | 5299e8183dd984d485c5037cc717a0c0b04cd5be (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.c | 4 |
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 */ |