From: Vladimir Serbinenko Date: Sun, 10 Nov 2013 18:34:19 +0000 (+0100) Subject: * util/grub-mkimagexx.c (generate_elf): Fix module address on coreboot. X-Git-Tag: grub-2.02-beta1~409 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=881c6a10493fc22131b596029b61de4d62f0e507;p=thirdparty%2Fgrub.git * util/grub-mkimagexx.c (generate_elf): Fix module address on coreboot. --- diff --git a/ChangeLog b/ChangeLog index e071c9ca1..04547ed03 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-11-10 Vladimir Serbinenko + + * util/grub-mkimagexx.c (generate_elf): Fix module address on coreboot. + 2013-11-10 Vladimir Serbinenko * grub-core/term/ieee1275/escc.c (GRUB_MOD_INIT): Fix order of channels. diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c index acfa71f1d..36a683d6f 100644 --- a/util/grub-mkimagexx.c +++ b/util/grub-mkimagexx.c @@ -171,9 +171,12 @@ SUFFIX (generate_elf) (const struct grub_install_image_target_desc *image_target phdr->p_filesz = phdr->p_memsz = grub_host_to_target32 (*core_size - kernel_size); - target_addr_mods = ALIGN_UP (target_addr + kernel_size + bss_size - + image_target->mod_gap, - image_target->mod_align); + if (image_target->id == IMAGE_COREBOOT) + target_addr_mods = GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR; + else + target_addr_mods = ALIGN_UP (target_addr + kernel_size + bss_size + + image_target->mod_gap, + image_target->mod_align); phdr->p_vaddr = grub_host_to_target_addr (target_addr_mods); phdr->p_paddr = grub_host_to_target_addr (target_addr_mods); phdr->p_align = grub_host_to_target32 (image_target->link_align);