Browse Source

x86: qemu: Support operation as an EFI payload

Disable a few things which interfere with the EFI init. This allows QEMU to
to boot into EFI, load a U-Boot payload then boot to the U-Boot prompt.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass 9 years ago
parent
commit
eeae510007
3 changed files with 9 additions and 3 deletions
  1. 4 1
      arch/x86/cpu/qemu/Makefile
  2. 2 0
      arch/x86/cpu/qemu/qemu.c
  3. 3 2
      board/emulation/qemu-x86/Kconfig

+ 4 - 1
arch/x86/cpu/qemu/Makefile

@@ -4,5 +4,8 @@
 # SPDX-License-Identifier:	GPL-2.0+
 # SPDX-License-Identifier:	GPL-2.0+
 #
 #
 
 
-obj-y += car.o dram.o qemu.o
+ifndef CONFIG_EFI_STUB
+obj-y += car.o dram.o
+endif
+obj-y += qemu.o
 obj-$(CONFIG_PCI) += pci.o
 obj-$(CONFIG_PCI) += pci.o

+ 2 - 0
arch/x86/cpu/qemu/qemu.c

@@ -25,11 +25,13 @@ int arch_cpu_init(void)
 	return 0;
 	return 0;
 }
 }
 
 
+#ifndef CONFIG_EFI_STUB
 int print_cpuinfo(void)
 int print_cpuinfo(void)
 {
 {
 	post_code(POST_CPU_INFO);
 	post_code(POST_CPU_INFO);
 	return default_print_cpuinfo();
 	return default_print_cpuinfo();
 }
 }
+#endif
 
 
 void reset_cpu(ulong addr)
 void reset_cpu(ulong addr)
 {
 {

+ 3 - 2
board/emulation/qemu-x86/Kconfig

@@ -13,11 +13,12 @@ config SYS_CONFIG_NAME
 	default "qemu-x86"
 	default "qemu-x86"
 
 
 config SYS_TEXT_BASE
 config SYS_TEXT_BASE
-	default 0xfff00000
+	default 0xfff00000 if !EFI_STUB
+	default 0x01110000 if EFI_STUB
 
 
 config BOARD_SPECIFIC_OPTIONS # dummy
 config BOARD_SPECIFIC_OPTIONS # dummy
 	def_bool y
 	def_bool y
-	select X86_RESET_VECTOR
+	select X86_RESET_VECTOR if !EFI_STUB
 	select QEMU
 	select QEMU
 	select BOARD_ROMSIZE_KB_1024
 	select BOARD_ROMSIZE_KB_1024