grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: embedding filesystems in core image (Re: moving ata initialisation t


From: Bean
Subject: Re: embedding filesystems in core image (Re: moving ata initialisation to a command)
Date: Mon, 24 Dec 2007 16:29:19 +0800

On Dec 22, 2007 8:18 PM, Robert Millan <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]