[U-Boot] [PATCH] efi: Update README.efi to clarify build and test instructions
Stoppa, Igor
igor.stoppa at intel.com
Fri Aug 14 13:46:57 CEST 2015
Hi Bin,
On 14 August 2015 at 13:47, Bin Meng <bmeng.cn at gmail.com> wrote:
> The doc has a misleading 'make menuconfig' when building the EFI
> application and payload. Clarify this and also update information
> on test with QEMU.
>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
> ---
>
> doc/README.efi | 28 ++++++++++++++++++----------
> 1 file changed, 18 insertions(+), 10 deletions(-)
>
> diff --git a/doc/README.efi b/doc/README.efi
> index 7c95579..e4872ed 100644
> --- a/doc/README.efi
> +++ b/doc/README.efi
> @@ -49,18 +49,21 @@ Build Instructions
> First choose a board that has EFI support and obtain an EFI implementation
> for that board. It will be either 32-bit or 64-bit.
Here I would add something like:
Alternatively, you can opt for using QEMU and the OVMF, as detailed below.
>
> -To build U-Boot as an EFI application (32-bit EFI required), enable
> -CONFIG_EFI and CONFIG_EFI_APP. The efi-x86 config is set up for this.
> +To build U-Boot as an EFI application (32-bit EFI required), enable CONFIG_EFI
> +and CONFIG_EFI_APP. The efi-x86 config (efi-x86_defconfig) is set up for this.
>
> -To build U-Boot as an EFI payload (32-bit or 64-bit EFI can be used), adjust
> -an existing config to enable CONFIG_EFI, CONFIG_EFI_STUB and either
> -CONFIG_EFI_STUB_32BIT or CONFIG_EFI_STUB_64BIT.
> +To build U-Boot as an EFI payload (32-bit or 64-bit EFI can be used), adjust an
> +existing config (like qemu-x86_defconfig) to enable CONFIG_EFI, CONFIG_EFI_STUB
> +and either CONFIG_EFI_STUB_32BIT or CONFIG_EFI_STUB_64BIT.
It might also be useful to give a short explanation (or a link to a
short explanation, if you know of any) of EFI application vs EFI
payload.
I'm still not sure I got that right, even after consulting the EFI specs.
> Then build U-Boot as normal, e.g.
>
> +For building an EFI application, run:
> + make efi-x86_defconfig
> + make
Why is this one named efi-x86_defconfig, while the other is not?
Could it be efi-x86-application_defconfig, or something similarly
stating what sort of EFI binary it is?
> +For building an EFI payload, run:
> make qemu-x86_defconfig
> - make menuconfig (or make xconfig if you prefer)
> - # change the settings as above
> make
It is mostly redundant, but I'd still prefer to have a reference
defconfig that just works also for the payload. Maybe not one for each
word size, but at least one.
>
> You will end up with one of these files:
> @@ -71,8 +74,9 @@ You will end up with one of these files:
>
> Trying it out
> -------------
> -Qemu is an emulator and it can emulate an x86 machine. You can run the
> -payload with something like this:
> +QEMU [1] is an emulator and it can emulate an x86 machine. Please make sure
> +your QEMU version is 2.3.0 or above to test this. You can run the payload with
> +something like this:
>
> mkdir /tmp/efi
> cp /path/to/u-boot*.efi /tmp/efi
> @@ -80,7 +84,8 @@ payload with something like this:
>
> Add -nographic if you want to use the terminal for output. Once it starts
> type 'fs0:u-boot-payload.efi'
This didn't work for me, with the Tianocore binary
I had to use uppercase for the drive name, as in:
FS0:u-boot-payload.efi
to run the payload or 'fs0:u-boot-app.efi' to
> -run the application. 'bios.bin' is the EFI 'BIOS'.
> +run the application. 'bios.bin' is the EFI 'BIOS'. Check [2] to obtain a
> +prebuilt EFI BIOS for QEMU or you can build one from source as well.
>
> To try it on real hardware, put u-boot-app.efi on a suitable boot medium,
> such as a USB stick. Then you can type something like this to start it:
> @@ -235,3 +240,6 @@ common/cmd_efi.c
> Ben Stoltz, Simon Glass
> Google, Inc
> July 2015
> +
> +[1] http://www.qemu.org
> +[2] http://www.tianocore.org/ovmf/
> --
> 1.8.2.1
>
One more thing that I found somewhat confusing, but maybe it's just
because of my very limited experience with U-Boot on x86: where is the
prompt supposed to appear vs where is the logging happening?
In some cases the logging seems to go to the screen (that's what I
used), but in some other cases the logging goes to a serial port.
And maybe (but I could have misunderstood) it goes also to some
reserved memory area (maybe inspected with an ICE/ICD tool?).
--
igor
More information about the U-Boot
mailing list