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 <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
							parent
							
								
									73d2de2b59
								
							
						
					
					
						commit
						bda40d5634
					
				| 
						 | 
				
			
			@ -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"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
if TARGET_QEMU_X86
 | 
			
		||||
if TARGET_QEMU_X86 || TARGET_QEMU_X86_64
 | 
			
		||||
 | 
			
		||||
config SYS_BOARD
 | 
			
		||||
	default "qemu-x86"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 <bmeng.cn@gmail.com>
 | 
			
		||||
S:	Maintained
 | 
			
		||||
F:	board/emulation/qemu-x86/
 | 
			
		||||
F:	include/configs/qemu-x86.h
 | 
			
		||||
F:	configs/qemu-x86_64_defconfig
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,80 @@
 | 
			
		|||
CONFIG_X86=y
 | 
			
		||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
 | 
			
		||||
CONFIG_SYS_MALLOC_F_LEN=0x1000
 | 
			
		||||
CONFIG_MAX_CPUS=2
 | 
			
		||||
CONFIG_SPL_SERIAL_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_ENV_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_SPI_FLASH_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_SPI_SUPPORT=y
 | 
			
		||||
CONFIG_X86_RUN_64BIT=y
 | 
			
		||||
CONFIG_DEFAULT_DEVICE_TREE="qemu-x86_i440fx"
 | 
			
		||||
CONFIG_TARGET_QEMU_X86_64=y
 | 
			
		||||
CONFIG_SMP=y
 | 
			
		||||
CONFIG_GENERATE_PIRQ_TABLE=y
 | 
			
		||||
CONFIG_GENERATE_MP_TABLE=y
 | 
			
		||||
CONFIG_GENERATE_ACPI_TABLE=y
 | 
			
		||||
CONFIG_FIT=y
 | 
			
		||||
CONFIG_SPL_LOAD_FIT=y
 | 
			
		||||
CONFIG_BOOTSTAGE=y
 | 
			
		||||
CONFIG_BOOTSTAGE_REPORT=y
 | 
			
		||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y
 | 
			
		||||
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
 | 
			
		||||
CONFIG_SPL_CPU_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_NET_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_PCI_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_PCH_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_RTC_SUPPORT=y
 | 
			
		||||
CONFIG_SPL_TIMER_SUPPORT=y
 | 
			
		||||
CONFIG_HUSH_PARSER=y
 | 
			
		||||
CONFIG_CMD_CPU=y
 | 
			
		||||
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set
 | 
			
		||||
# CONFIG_CMD_IMLS is not set
 | 
			
		||||
# CONFIG_CMD_FLASH is not set
 | 
			
		||||
CONFIG_CMD_SF=y
 | 
			
		||||
CONFIG_CMD_SPI=y
 | 
			
		||||
CONFIG_CMD_USB=y
 | 
			
		||||
# CONFIG_CMD_SETEXPR is not set
 | 
			
		||||
CONFIG_CMD_DHCP=y
 | 
			
		||||
# CONFIG_CMD_NFS is not set
 | 
			
		||||
CONFIG_CMD_PING=y
 | 
			
		||||
CONFIG_CMD_TIME=y
 | 
			
		||||
CONFIG_CMD_QFW=y
 | 
			
		||||
CONFIG_CMD_BOOTSTAGE=y
 | 
			
		||||
CONFIG_CMD_EXT2=y
 | 
			
		||||
CONFIG_CMD_EXT4=y
 | 
			
		||||
CONFIG_CMD_EXT4_WRITE=y
 | 
			
		||||
CONFIG_CMD_FAT=y
 | 
			
		||||
CONFIG_CMD_FS_GENERIC=y
 | 
			
		||||
CONFIG_OF_CONTROL=y
 | 
			
		||||
CONFIG_SPL_OF_CONTROL=y
 | 
			
		||||
CONFIG_SPL_DM=y
 | 
			
		||||
CONFIG_REGMAP=y
 | 
			
		||||
CONFIG_SPL_REGMAP=y
 | 
			
		||||
CONFIG_SYSCON=y
 | 
			
		||||
CONFIG_SPL_SYSCON=y
 | 
			
		||||
CONFIG_CPU=y
 | 
			
		||||
CONFIG_SPI_FLASH=y
 | 
			
		||||
CONFIG_SPI_FLASH_GIGADEVICE=y
 | 
			
		||||
CONFIG_SPI_FLASH_MACRONIX=y
 | 
			
		||||
CONFIG_SPI_FLASH_WINBOND=y
 | 
			
		||||
CONFIG_DM_ETH=y
 | 
			
		||||
CONFIG_E1000=y
 | 
			
		||||
CONFIG_DM_PCI=y
 | 
			
		||||
CONFIG_DM_RTC=y
 | 
			
		||||
CONFIG_DEBUG_UART=y
 | 
			
		||||
CONFIG_DEBUG_UART_BASE=0x3f8
 | 
			
		||||
CONFIG_DEBUG_UART_CLOCK=1843200
 | 
			
		||||
CONFIG_SYS_NS16550=y
 | 
			
		||||
CONFIG_TIMER=y
 | 
			
		||||
CONFIG_USB=y
 | 
			
		||||
CONFIG_DM_USB=y
 | 
			
		||||
CONFIG_USB_STORAGE=y
 | 
			
		||||
CONFIG_USB_KEYBOARD=y
 | 
			
		||||
CONFIG_DM_VIDEO=y
 | 
			
		||||
CONFIG_VIDEO_VESA=y
 | 
			
		||||
CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
 | 
			
		||||
CONFIG_FRAMEBUFFER_VESA_MODE_111=y
 | 
			
		||||
CONFIG_CONSOLE_SCROLL_LINES=5
 | 
			
		||||
CONFIG_USE_PRIVATE_LIBGCC=y
 | 
			
		||||
		Loading…
	
		Reference in New Issue