On Dec 22, 2007 8:18 PM, Robert Millan <[EMAIL PROTECTED]> wrote: > > Here's a new patch, with some cleanup. The main difference is that memdisk.c > doesn't include any arch-specific code. > > I've spotted a memory management problem. The memdisk image, at the location > that it's usually uncompressed, tends to collide with the payload loading > region (grub_os_area_{addr,size}). > > I'm not sure what would be a good solution to this. Perhaps we could copy it > to dynamic memory in grub_memdisk_init() ? However, if user plays with > payload > images without booting them, and then loads memdisk.mod manually, things could > break. > > Although, embedding a memdisk image without embedding memdisk.mod is kind of > silly; perhaps grub-mkimage shouldn't allow it. > > What do you think?
I think you can copy the memdisk to the end of memory, and in grub_machine_init, make sure to exclude this area: grub_mm_init_region ((void *) (grub_os_area_addr + grub_os_area_size), quarter); -> grub_mm_init_region ((void *) (grub_os_area_addr + grub_os_area_size), quarter - memdisk_size); I also recommend to add a variable grub_memdisk_image_base in startup.S, normally, this value will be zero, but loader like lnxboot.S can set it to the address of the external initrd image. -- Bean _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel