Computation of the real mode CS value is corrected.
Real mode debugging feature is corrected.

Signed-off-by: Roman Kononov <[EMAIL PROTECTED]>
 

diff -ur kexec-tools-testing-20061214.orig/kexec/arch/i386/kexec-bzImage.c kexec-tools-testing-20061214/kexec/arch/i386/kexec-bzImage.c
--- kexec-tools-testing-20061214.orig/kexec/arch/i386/kexec-bzImage.c	2006-12-14 01:12:03.000000000 -0600
+++ kexec-tools-testing-20061214/kexec/arch/i386/kexec-bzImage.c	2007-02-01 14:56:56.000000000 -0600
@@ -270,7 +270,7 @@
 	/*
 	 * 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 @@
 		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 */
_______________________________________________
fastboot mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/fastboot

Reply via email to