* include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
to create a gap between _end and the modules added to the image with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC. * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP. * util/elf/grub-mkimage.c (add_segments): Likewise.
This commit is contained in:
parent
2033f53e0a
commit
3f51de772d
4 changed files with 15 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
|||
2008-01-27 Pavel Roskin <proski@gnu.org>
|
||||
|
||||
* include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
|
||||
to create a gap between _end and the modules added to the image
|
||||
with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
|
||||
* kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
|
||||
* util/elf/grub-mkimage.c (add_segments): Likewise.
|
||||
|
||||
2008-01-26 Pavel Roskin <proski@gnu.org>
|
||||
|
||||
* kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
|
||||
|
|
|
@ -23,6 +23,11 @@
|
|||
|
||||
#define GRUB_MOD_ALIGN 0x1000
|
||||
|
||||
/* Minimal gap between _end and the start of the modules. It's a hack
|
||||
for PowerMac to prevent "CLAIM failed" error. The real fix is to
|
||||
rewrite grub-mkimage to generate valid ELF files. */
|
||||
#define GRUB_MOD_GAP 0x8000
|
||||
|
||||
void EXPORT_FUNC (grub_reboot) (void);
|
||||
void EXPORT_FUNC (grub_halt) (void);
|
||||
|
||||
|
|
|
@ -242,5 +242,5 @@ grub_get_rtc (void)
|
|||
grub_addr_t
|
||||
grub_arch_modules_addr (void)
|
||||
{
|
||||
return ALIGN_UP(_end, GRUB_MOD_ALIGN);
|
||||
return ALIGN_UP(_end + GRUB_MOD_GAP, GRUB_MOD_ALIGN);
|
||||
}
|
||||
|
|
|
@ -218,7 +218,7 @@ add_segments (char *dir, FILE *out, int chrp, char *mods[])
|
|||
grub_addr_t modbase;
|
||||
|
||||
/* Place modules just after grub segment. */
|
||||
modbase = ALIGN_UP(grub_end, GRUB_MOD_ALIGN);
|
||||
modbase = ALIGN_UP(grub_end + GRUB_MOD_GAP, GRUB_MOD_ALIGN);
|
||||
|
||||
/* Construct new segment header for modules. */
|
||||
phdr = phdrs + grub_target_to_host16 (ehdr.e_phnum);
|
||||
|
|
Loading…
Reference in a new issue