diff options
author | Simon Glass <sjg@chromium.org> | 2015-08-04 12:34:00 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-08-05 08:44:08 -0600 |
commit | e49cceac61a0f56beff466f844fb9b3451d564eb (patch) | |
tree | f82a912a899cf687bf46215daa20fabc96acc1ca /arch/x86/lib/bootm.c | |
parent | f1a0bafb5802416d42d685b343110c1557da1739 (diff) | |
download | u-boot-imx-e49cceac61a0f56beff466f844fb9b3451d564eb.zip u-boot-imx-e49cceac61a0f56beff466f844fb9b3451d564eb.tar.gz u-boot-imx-e49cceac61a0f56beff466f844fb9b3451d564eb.tar.bz2 |
x86: Handle running as EFI payload
When U-Boot runs as an EFI payload it needs to avoid setting up the CPU
again. Also U-Boot currently does not handle interrupts for many devices, so
run with interrupts disabled.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/lib/bootm.c')
-rw-r--r-- | arch/x86/lib/bootm.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c index 445ee6e..f441c84 100644 --- a/arch/x86/lib/bootm.c +++ b/arch/x86/lib/bootm.c @@ -164,7 +164,11 @@ int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit) * the data segments are 0x18, 4GB flat, and read/write. * U-boot is setting them up that way for itself in * arch/i386/cpu/cpu.c. + * + * Note that we cannot currently boot a kernel while running as + * an EFI application. Please use the payload option for that. */ +#ifndef CONFIG_EFI_APP __asm__ __volatile__ ( "movl $0, %%ebp\n" "cli\n" @@ -173,6 +177,7 @@ int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit) [boot_params] "S"(setup_base), "b"(0), "D"(0) ); +#endif } /* We can't get to here */ |