diff options
author | Tom Rini <trini@konsulko.com> | 2022-10-31 14:43:04 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-10-31 14:43:04 -0400 |
commit | a90afc6730e6c67ad37f4c98a02891a93b4ff971 (patch) | |
tree | 724c085433631e142a56c052d667139cba29b4a6 /arch/x86/cpu | |
parent | 6f38d91158e7e4199753b79e0a25c1a65175aba4 (diff) | |
parent | 77bec9e3d8bd2dc307447b92a3d5cefd693a62ad (diff) |
Merge branch '2022-10-31-vbe-implement-the-full-firmware-flow'
To quote Simon:
This series provides an implementation of VBE from TPL through to U-Boot
proper, using VBE to load the relevant firmware stages. It buils a single
image.bin file containing all the phases:
TPL - initial phase, loads VPL using binman symbols
VPL - main firmware phase, loads SPL using VBE parameters
SPL - loads U-Boot proper using VBE parameters
U-Boot - final firmware phase, where OS booting is processed
This series does not include the OS-booting phase. That will be the
subject of a future series.
The implementation is entirely handled by sandbox. It should be possible
to enable this on a real board without much effort, but that is also the
subject of a future series.
Diffstat (limited to 'arch/x86/cpu')
-rw-r--r-- | arch/x86/cpu/apollolake/spl.c | 2 | ||||
-rw-r--r-- | arch/x86/cpu/quark/quark.c | 2 | ||||
-rw-r--r-- | arch/x86/cpu/start.S | 6 | ||||
-rw-r--r-- | arch/x86/cpu/u-boot-64.lds | 4 | ||||
-rw-r--r-- | arch/x86/cpu/u-boot.lds | 2 |
5 files changed, 8 insertions, 8 deletions
diff --git a/arch/x86/cpu/apollolake/spl.c b/arch/x86/cpu/apollolake/spl.c index f2d25734c6..6078d5a200 100644 --- a/arch/x86/cpu/apollolake/spl.c +++ b/arch/x86/cpu/apollolake/spl.c @@ -118,7 +118,7 @@ static int spl_fast_spi_load_image(struct spl_image_info *spl_image, spl_image->size = CONFIG_SYS_MONITOR_LEN; /* We don't know SPL size */ spl_image->entry_point = spl_phase() == PHASE_TPL ? - CONFIG_SPL_TEXT_BASE : CONFIG_SYS_TEXT_BASE; + CONFIG_SPL_TEXT_BASE : CONFIG_TEXT_BASE; spl_image->load_addr = spl_image->entry_point; spl_image->os = IH_OS_U_BOOT; spl_image->name = "U-Boot"; diff --git a/arch/x86/cpu/quark/quark.c b/arch/x86/cpu/quark/quark.c index e016fae04f..0a1fbb34d4 100644 --- a/arch/x86/cpu/quark/quark.c +++ b/arch/x86/cpu/quark/quark.c @@ -49,7 +49,7 @@ static void quark_setup_mtrr(void) /* variable range MTRR#0: ROM area */ mask = ~(CONFIG_SYS_MONITOR_LEN - 1); - base = CONFIG_SYS_TEXT_BASE & mask; + base = CONFIG_TEXT_BASE & mask; msg_port_write(MSG_PORT_HOST_BRIDGE, MTRR_VAR_PHYBASE(MTRR_VAR_ROM), base | MTRR_TYPE_WRBACK); msg_port_write(MSG_PORT_HOST_BRIDGE, MTRR_VAR_PHYMASK(MTRR_VAR_ROM), diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S index 897fd926c0..0ef27cc5a0 100644 --- a/arch/x86/cpu/start.S +++ b/arch/x86/cpu/start.S @@ -237,15 +237,15 @@ multiboot_header: /* checksum */ .long -0x1BADB002 - (1 << 16) /* header addr */ - .long multiboot_header - _x86boot_start + CONFIG_SYS_TEXT_BASE + .long multiboot_header - _x86boot_start + CONFIG_TEXT_BASE /* load addr */ - .long CONFIG_SYS_TEXT_BASE + .long CONFIG_TEXT_BASE /* load end addr */ .long 0 /* bss end addr */ .long 0 /* entry addr */ - .long CONFIG_SYS_TEXT_BASE + .long CONFIG_TEXT_BASE #ifdef CONFIG_X86_LOAD_FROM_32_BIT /* diff --git a/arch/x86/cpu/u-boot-64.lds b/arch/x86/cpu/u-boot-64.lds index 53c56043a9..d0398ff00d 100644 --- a/arch/x86/cpu/u-boot-64.lds +++ b/arch/x86/cpu/u-boot-64.lds @@ -15,8 +15,8 @@ SECTIONS /DISCARD/ : { *(__u_boot_list_2_cmd_*) } #endif -#ifdef CONFIG_SYS_TEXT_BASE - . = CONFIG_SYS_TEXT_BASE; /* Location of bootcode in flash */ +#ifdef CONFIG_TEXT_BASE + . = CONFIG_TEXT_BASE; /* Location of bootcode in flash */ #endif __text_start = .; diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds index 7c87209834..a31f4220a0 100644 --- a/arch/x86/cpu/u-boot.lds +++ b/arch/x86/cpu/u-boot.lds @@ -15,7 +15,7 @@ SECTIONS /DISCARD/ : { *(__u_boot_list_2_cmd_*) } #endif - . = CONFIG_SYS_TEXT_BASE; /* Location of bootcode in flash */ + . = CONFIG_TEXT_BASE; /* Location of bootcode in flash */ __text_start = .; .text.start : { *(.text.start); } |