On 16.06.2011 17:04, Matthew Garrett wrote:
> I'm currently handling some issues related to the kernel ending up on 
> top of used EFI regions on some machines. These seem to be exacerbated 
> by some of grub's behaviour. It seems that the kernel will always be 
> loaded at GRUB_LINUX_BZIMAGE_ADDR, which is problematic in two cases - 
> one being that the kernel can be configured with a different start 
> address, and also that the firmware may have put code there that we wish 
> to preserve.
>
> At present it doesn't seem possible to indicate to the relocator that if 
> there isn't enough space for the decompressed kernel (ie, the init_size 
> parameter from the header) at the desired address, it should put the 
> kernel somewhere else making sure to adhere to the alignment constraints 
> the kernel provides. The load address and the alignment then need to be 
> written back into the kernel header.
You would need to add a new argument dont_kill_useless_firmware,
propagate it to EFI and IEEE1275-specific functions and make relocator
ignore the runtime regions if this argument is set. Then if *_addr fails
use *_align.
> Or am I misinterpreting the behaviour of the relocation code?
>


-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to