|
From: | 林揆斌 |
Subject: | Re: Questions about booting Linux kernel using AARCH64 GRUB |
Date: | Thu, 13 Mar 2014 10:51:09 +0800 |
Hi Cedric,
The answer to all three questions is actually the same:
On Wed, Mar 12, 2014 at 11:00:43AM +0800, 林揆斌 wrote:
> I got some questions about the routine "grub_linux_boot" in "grub-core/loader/
> arm64/linux.c"
> from master branch of this repo: "git://git.savannah.gnu.org/grub.git" and
> would like your help.
> The questions are as follows:
>
> 1. From my understanding, this routine uses bootservice->load_image in line 274
> and bootservice->start_image in line 297 to load/start the Linux kernel (i.e.
> zImage), is it correct?
> Or it is actually loading something else?
>
> 2. If question 1 were true, does it mean that the Linux kernel should be in PE
> format? Because
> bootservice->load_image requires the file to be in that format otherwise it
> will return "UNSUPPORTED", which is the problem I'm facing now.
>
> 3. If question 2 were true, how to solve this problem? Do I have to tweak
> zImage to PE format?
You are correct that load_image/start_image require a valid EFI
application.
On (U)EFI platforms, Linux can be compiled with a built-in "stub" loader,
while at the same time remaining a valid bzImage-zImage/Image. The stub
loader is a PE/COFF EFI application.
The Linux configuration option is CONFIG_EFI_STUB.
The support for doing this on arm64 is not yet in mainline Linux, but
we are hoping it can be merged for 3.15. If you want to use it before
then, support is in https://git.linaro.org/arm/acpi/leg-kernel.git.
Best Regards,
Leif
[Prev in Thread] | Current Thread | [Next in Thread] |