Messages in this thread Patch in this message | | | Date | Thu, 22 Nov 2012 12:18:15 -0800 | Subject | Re: [PATCH v3 11/12] x86, boot: add fields to support load bzImage and ramdisk high | From | Yinghai Lu <> |
| |
On Thu, Nov 22, 2012 at 10:51 AM, H. Peter Anvin <hpa@zytor.com> wrote: > On 11/22/2012 10:50 AM, Yinghai Lu wrote: >> >> >> ok, I will use 0xc0 instead, and at the same time try to fix that from >> kexec. >> >> then user will still have chance to use old kexec tools without enable >> CONFIG_EFI_STUB in kernel. >> > > If we can get the sentinel hack to work that would probably be useful, but > we need to understand the exact pathology.
for kexec bzImage --real-mode-entry, code after setup_header will be executed.
so we could clear value before setup_header after copy 16bit section from bzImage...
Index: kexec-tools/kexec/arch/i386/kexec-bzImage.c =================================================================== --- kexec-tools.orig/kexec/arch/i386/kexec-bzImage.c +++ kexec-tools/kexec/arch/i386/kexec-bzImage.c @@ -212,6 +212,16 @@ int do_bzImage_load(struct kexec_info *i setup_size = kern16_size + command_line_len + PURGATORY_CMDLINE_SIZE; real_mode = xmalloc(setup_size); memcpy(real_mode, kernel, kern16_size); + /* + * clear value before header + * not not clear value after header, --real-mode-entry + * need code after header. + */ + memset(real_mode, 0, 0x1f1); + if (!real_mode_entry) { + /* clear value after setup_header */ + memset((unsigned char *)real_mode + 0x290, 0, kern16_size - 0x290); + }
if (info->kexec_flags & (KEXEC_ON_CRASH | KEXEC_PRESERVE_CONTEXT)) { /* If using bzImage for capture kernel, then we will not be
| |