From bda40d5634caa629720b3a47e45517b4ad07df9d Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Wed, 18 Jan 2017 03:33:04 -0800 Subject: x86: qemu: Add a config for 64-bit U-Boot Add a new board config which uses 64-bit U-Boot. Supported features are the same as the other 64-bit board (Google Chromebook Link). It is a start for us to test 64-bit U-Boot easily without the need to access a real hardware. Note CONFIG_SPL_ENV_SUPPORT is required for QEMU 64-bit as without this the SPL build fails at the end. This is just a workaround as CONFIG_SPL_ENV_SUPPORT is not needed at all. common/built-in.o:(.data.env_htab+0xc): undefined reference to 'env_flags_validate' lib/built-in.o: In function `hsearch_r': lib/hashtable.c:380: undefined reference to 'env_callback_init' lib/hashtable.c:382: undefined reference to 'env_flags_init' make[1]: *** [spl/u-boot-spl] Error 1 Except those SPL options required by 64-bit, compared to 32-bit config, the following options are different: - CONFIG_SYS_MALLOC_F_LEN has to be increased to 0x1000 for SPL. - CONFIG_DEBUG_UART has to be included due to the weird issue. See TODO comments in arch/x86/cpu/x86_64/cpu.c:arch_setup_gd(). Once this issue gets fixed, debug uart can be optional. Signed-off-by: Bin Meng Reviewed-by: Simon Glass --- board/emulation/Kconfig | 7 +++++++ board/emulation/qemu-x86/Kconfig | 2 +- board/emulation/qemu-x86/MAINTAINERS | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) (limited to 'board') diff --git a/board/emulation/Kconfig b/board/emulation/Kconfig index 36809fd..6d55dca 100644 --- a/board/emulation/Kconfig +++ b/board/emulation/Kconfig @@ -18,6 +18,13 @@ config TARGET_QEMU_X86 supported by U-Boot. They are via QEMU '-M pc', an i440FX/PIIX chipset platform and '-M q35', a Q35/ICH9 chipset platform. +config TARGET_QEMU_X86_64 + bool "QEMU x86 64-bit" + help + This is the QEMU emulated x86 64-bit board. With this config + U-Boot is built as a 64-bit binary. This allows testing while + this feature is being completed. + endchoice source "board/emulation/qemu-x86/Kconfig" diff --git a/board/emulation/qemu-x86/Kconfig b/board/emulation/qemu-x86/Kconfig index a773e8f..a593f8c 100644 --- a/board/emulation/qemu-x86/Kconfig +++ b/board/emulation/qemu-x86/Kconfig @@ -1,4 +1,4 @@ -if TARGET_QEMU_X86 +if TARGET_QEMU_X86 || TARGET_QEMU_X86_64 config SYS_BOARD default "qemu-x86" diff --git a/board/emulation/qemu-x86/MAINTAINERS b/board/emulation/qemu-x86/MAINTAINERS index 54dc2c5..4cf8ac9 100644 --- a/board/emulation/qemu-x86/MAINTAINERS +++ b/board/emulation/qemu-x86/MAINTAINERS @@ -6,3 +6,10 @@ F: include/configs/qemu-x86.h F: configs/qemu-x86_defconfig F: configs/qemu-x86_efi_payload32_defconfig F: configs/qemu-x86_efi_payload64_defconfig + +QEMU X86 64-bit BOARD +M: Bin Meng +S: Maintained +F: board/emulation/qemu-x86/ +F: include/configs/qemu-x86.h +F: configs/qemu-x86_64_defconfig -- cgit v1.1