diff --git a/ChangeLog b/ChangeLog index 5a654270d..c3c3b1c36 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2011-12-15 Vladimir Serbinenko + + * grub-core/boot/i386/pc/startup_raw.S: Move realmode routines to + non-RS part to avoid RS messing with GDT. + * include/grub/offsets.h (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): + Increase to suit in realmode routines. + +2011-12-15 Vladimir Serbinenko + + * grub-core/kern/i386/realmode.S: Increase alignment. + * grub-core/boot/i386/pc/startup_raw.S: Likewise. + 2011-12-14 Vladimir Serbinenko * grub-core/lib/reed_solomon.c (init_powx): Set gf_powx_inv[0] just to diff --git a/grub-core/boot/i386/pc/startup_raw.S b/grub-core/boot/i386/pc/startup_raw.S index 3fae1e4e1..ade2883b0 100644 --- a/grub-core/boot/i386/pc/startup_raw.S +++ b/grub-core/boot/i386/pc/startup_raw.S @@ -108,6 +108,8 @@ LOCAL (codestart): call EXT_C (grub_reed_solomon_recover) jmp post_reed_solomon +#include "../../../kern/i386/realmode.S" + #include .text @@ -185,8 +187,6 @@ post_reed_solomon: movl $real_to_prot, %ecx jmp *%esi -#include "../../../kern/i386/realmode.S" - /* * grub_gate_a20(int on) * diff --git a/include/grub/offsets.h b/include/grub/offsets.h index 68ed084cb..75a46e128 100644 --- a/include/grub/offsets.h +++ b/include/grub/offsets.h @@ -28,7 +28,7 @@ /* Offset of reed_solomon_redundancy. */ #define GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY 0x10 -#define GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART 0x6e0 +#define GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART 0x7e0 /* The segment where the kernel is loaded. */ #define GRUB_BOOT_I386_PC_KERNEL_SEG 0x800