]> git.proxmox.com Git - grub2.git/commitdiff
* util/grub-mkimagexx.c (generate_elf): Fix module address on coreboot.
authorVladimir Serbinenko <phcoder@gmail.com>
Sun, 10 Nov 2013 18:34:19 +0000 (19:34 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sun, 10 Nov 2013 18:34:19 +0000 (19:34 +0100)
ChangeLog
util/grub-mkimagexx.c

index e071c9ca12f68eb61d46e599ded9d6714d529c4d..04547ed03c179ae8ac94d97d5b1f9af40f45be81 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * util/grub-mkimagexx.c (generate_elf): Fix module address on coreboot.
+
 2013-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/term/ieee1275/escc.c (GRUB_MOD_INIT): Fix order of channels.
index acfa71f1d1be691cd9fccc94be09b6e5d0d3eb2c..36a683d6ff2aacbac92963e6a35dce4a25630c98 100644 (file)
@@ -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);