Merge patch series "64-bit U-Boot configuration without SPL"
Jeremy Compostella <jeremy.compostella@intel.com> says: Introduces a new configuration option X86_RUN_64BIT_NO_SPL to allow building U-Boot as a 64-bit binary without using the SPL (Secondary Program Loader). The motivation is to simplify the boot process for specific x86-based platforms that do not require SPL, such as those booting directly from a 64-bit coreboot firmware. Link: https://lore.kernel.org/r/87bjtyutkp.fsf@jcompost-mobl.amr.corp.intel.com
This commit is contained in:
@@ -30,7 +30,7 @@ config X86_RUN_32BIT
|
|||||||
arch_phys_memset() can be used for basic access to other memory.
|
arch_phys_memset() can be used for basic access to other memory.
|
||||||
|
|
||||||
config X86_RUN_64BIT
|
config X86_RUN_64BIT
|
||||||
bool "64-bit"
|
bool "32-bit SPL followed by 64-bit U-Boot"
|
||||||
select X86_64
|
select X86_64
|
||||||
select SPL if !EFI_APP
|
select SPL if !EFI_APP
|
||||||
select SPL_SEPARATE_BSS if !EFI_APP
|
select SPL_SEPARATE_BSS if !EFI_APP
|
||||||
@@ -40,6 +40,14 @@ config X86_RUN_64BIT
|
|||||||
runs through the 16-bit and 32-bit init, then switches to 64-bit
|
runs through the 16-bit and 32-bit init, then switches to 64-bit
|
||||||
mode and jumps to U-Boot proper.
|
mode and jumps to U-Boot proper.
|
||||||
|
|
||||||
|
config X86_RUN_64BIT_NO_SPL
|
||||||
|
bool "64-bit"
|
||||||
|
select X86_64
|
||||||
|
help
|
||||||
|
Build U-Boot as a 64-bit binary without SPL. As U-Boot enters
|
||||||
|
in 64-bit mode, the assumption is that the silicon is fully
|
||||||
|
initialized (MP, page tables, etc.).
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config X86_64
|
config X86_64
|
||||||
|
@@ -26,7 +26,7 @@ config SYS_COREBOOT
|
|||||||
imply CBMEM_CONSOLE
|
imply CBMEM_CONSOLE
|
||||||
imply X86_TSC_READ_BASE
|
imply X86_TSC_READ_BASE
|
||||||
imply USE_PREBOOT
|
imply USE_PREBOOT
|
||||||
select BINMAN if X86_64
|
select BINMAN if X86_RUN_64BIT
|
||||||
select SYSINFO
|
select SYSINFO
|
||||||
imply SYSINFO_EXTRA
|
imply SYSINFO_EXTRA
|
||||||
|
|
||||||
|
@@ -22,7 +22,7 @@ int arch_cpu_init(void)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = IS_ENABLED(CONFIG_X86_RUN_64BIT) ? x86_cpu_reinit_f() :
|
ret = IS_ENABLED(CONFIG_X86_64) ? x86_cpu_reinit_f() :
|
||||||
x86_cpu_init_f();
|
x86_cpu_init_f();
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -423,7 +423,7 @@ int zboot_go(struct bootm_info *bmi)
|
|||||||
|
|
||||||
entry = bmi->load_address;
|
entry = bmi->load_address;
|
||||||
image_64bit = false;
|
image_64bit = false;
|
||||||
if (IS_ENABLED(CONFIG_X86_RUN_64BIT) &&
|
if (IS_ENABLED(CONFIG_X86_64) &&
|
||||||
(hdr->xloadflags & XLF_KERNEL_64)) {
|
(hdr->xloadflags & XLF_KERNEL_64)) {
|
||||||
image_64bit = true;
|
image_64bit = true;
|
||||||
}
|
}
|
||||||
|
@@ -8,3 +8,8 @@ COREBOOT64 BOARD
|
|||||||
M: Simon Glass <sjg@chromium.org>
|
M: Simon Glass <sjg@chromium.org>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: configs/coreboot64_defconfig
|
F: configs/coreboot64_defconfig
|
||||||
|
|
||||||
|
COREBOOT64 NO SPL
|
||||||
|
M: Jeremy Compostella <jeremy.compostella@intel.com>
|
||||||
|
S: Maintained
|
||||||
|
F: configs/coreboot64-no-spl_defconfig
|
||||||
|
62
configs/coreboot64-no-spl_defconfig
Normal file
62
configs/coreboot64-no-spl_defconfig
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
CONFIG_X86=y
|
||||||
|
CONFIG_TEXT_BASE=0x1110000
|
||||||
|
CONFIG_SYS_MALLOC_LEN=0x2000000
|
||||||
|
CONFIG_NR_DRAM_BANKS=8
|
||||||
|
CONFIG_ENV_SIZE=0x1000
|
||||||
|
CONFIG_DEFAULT_DEVICE_TREE="coreboot"
|
||||||
|
CONFIG_PRE_CON_BUF_ADDR=0x100000
|
||||||
|
CONFIG_X86_RUN_64BIT_NO_SPL=y
|
||||||
|
CONFIG_VENDOR_COREBOOT=y
|
||||||
|
CONFIG_TARGET_COREBOOT=y
|
||||||
|
CONFIG_FIT=y
|
||||||
|
CONFIG_FIT_SIGNATURE=y
|
||||||
|
CONFIG_BOOTSTD_FULL=y
|
||||||
|
CONFIG_BOOTSTD_DEFAULTS=y
|
||||||
|
CONFIG_SYS_MONITOR_BASE=0x01110000
|
||||||
|
CONFIG_SHOW_BOOT_PROGRESS=y
|
||||||
|
CONFIG_USE_BOOTARGS=y
|
||||||
|
CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro"
|
||||||
|
CONFIG_BOOTCOMMAND="bootflow scan -l; if bootflow menu; then bootflow boot; fi"
|
||||||
|
CONFIG_PRE_CONSOLE_BUFFER=y
|
||||||
|
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||||
|
CONFIG_LOG=y
|
||||||
|
CONFIG_LOGF_LINE=y
|
||||||
|
CONFIG_LOGF_FUNC=y
|
||||||
|
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
||||||
|
CONFIG_CMD_IDE=y
|
||||||
|
CONFIG_CMD_MMC=y
|
||||||
|
CONFIG_CMD_SATA=y
|
||||||
|
CONFIG_CMD_USB=y
|
||||||
|
# CONFIG_CMD_SETEXPR is not set
|
||||||
|
CONFIG_BOOTP_BOOTFILESIZE=y
|
||||||
|
CONFIG_CMD_TIME=y
|
||||||
|
CONFIG_CMD_SOUND=y
|
||||||
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
|
CONFIG_MAC_PARTITION=y
|
||||||
|
CONFIG_ENV_OVERWRITE=y
|
||||||
|
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||||
|
CONFIG_USE_BOOTFILE=y
|
||||||
|
CONFIG_BOOTFILE="bzImage"
|
||||||
|
CONFIG_TFTP_TSIZE=y
|
||||||
|
CONFIG_USE_ROOTPATH=y
|
||||||
|
CONFIG_REGMAP=y
|
||||||
|
CONFIG_SYSCON=y
|
||||||
|
# CONFIG_ACPIGEN is not set
|
||||||
|
CONFIG_SYS_IDE_MAXDEVICE=4
|
||||||
|
CONFIG_SYS_ATA_DATA_OFFSET=0
|
||||||
|
CONFIG_SYS_ATA_REG_OFFSET=0
|
||||||
|
CONFIG_SYS_ATA_ALT_OFFSET=0
|
||||||
|
CONFIG_ATAPI=y
|
||||||
|
CONFIG_LBA48=y
|
||||||
|
CONFIG_SYS_64BIT_LBA=y
|
||||||
|
CONFIG_NVME_PCI=y
|
||||||
|
# CONFIG_PCI_PNP is not set
|
||||||
|
CONFIG_SYS_NS16550_MEM32=y
|
||||||
|
CONFIG_SOUND=y
|
||||||
|
CONFIG_SOUND_I8254=y
|
||||||
|
CONFIG_VIDEO_COPY=y
|
||||||
|
CONFIG_CONSOLE_TRUETYPE=y
|
||||||
|
CONFIG_CONSOLE_SCROLL_LINES=5
|
||||||
|
CONFIG_CMD_DHRYSTONE=y
|
||||||
|
# CONFIG_GZIP is not set
|
||||||
|
CONFIG_SMBIOS_PARSER=y
|
@@ -112,7 +112,7 @@
|
|||||||
#define BOOTEFI_NAME "bootarm.efi"
|
#define BOOTEFI_NAME "bootarm.efi"
|
||||||
#elif defined(CONFIG_X86_RUN_32BIT)
|
#elif defined(CONFIG_X86_RUN_32BIT)
|
||||||
#define BOOTEFI_NAME "bootia32.efi"
|
#define BOOTEFI_NAME "bootia32.efi"
|
||||||
#elif defined(CONFIG_X86_RUN_64BIT)
|
#elif defined(CONFIG_X86_64)
|
||||||
#define BOOTEFI_NAME "bootx64.efi"
|
#define BOOTEFI_NAME "bootx64.efi"
|
||||||
#elif defined(CONFIG_ARCH_RV32I)
|
#elif defined(CONFIG_ARCH_RV32I)
|
||||||
#define BOOTEFI_NAME "bootriscv32.efi"
|
#define BOOTEFI_NAME "bootriscv32.efi"
|
||||||
|
Reference in New Issue
Block a user