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.
This commit is contained in:
Tom Rini 2022-10-31 14:43:04 -04:00
commit a90afc6730
1197 changed files with 3682 additions and 1802 deletions

View File

@ -274,7 +274,7 @@ config HAS_CUSTOM_SYS_INIT_SP_ADDR
config CUSTOM_SYS_INIT_SP_ADDR config CUSTOM_SYS_INIT_SP_ADDR
hex "Static location for the initial stack pointer" hex "Static location for the initial stack pointer"
depends on HAS_CUSTOM_SYS_INIT_SP_ADDR depends on HAS_CUSTOM_SYS_INIT_SP_ADDR
default SYS_TEXT_BASE if TFABOOT default TEXT_BASE if TFABOOT
config SYS_MALLOC_F config SYS_MALLOC_F
bool "Enable malloc() pool before relocation" bool "Enable malloc() pool before relocation"

View File

@ -1028,7 +1028,7 @@ LDFLAGS_u-boot += -z notext $(call ld-option,--apply-dynamic-relocs)
LDFLAGS_u-boot += --build-id=none LDFLAGS_u-boot += --build-id=none
ifeq ($(CONFIG_ARC)$(CONFIG_NIOS2)$(CONFIG_X86)$(CONFIG_XTENSA),) ifeq ($(CONFIG_ARC)$(CONFIG_NIOS2)$(CONFIG_X86)$(CONFIG_XTENSA),)
LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE) LDFLAGS_u-boot += -Ttext $(CONFIG_TEXT_BASE)
endif endif
# insure the checker run with the right endianness # insure the checker run with the right endianness
@ -1311,7 +1311,7 @@ shell_cmd = { $(call echo-cmd,$(1)) $(cmd_$(1)); }
quiet_cmd_objcopy_uboot = OBJCOPY $@ quiet_cmd_objcopy_uboot = OBJCOPY $@
ifdef cmd_static_rela ifdef cmd_static_rela
cmd_objcopy_uboot = $(cmd_objcopy) && $(call shell_cmd,static_rela,$<,$@,$(CONFIG_SYS_TEXT_BASE)) || { rm -f $@; false; } cmd_objcopy_uboot = $(cmd_objcopy) && $(call shell_cmd,static_rela,$<,$@,$(CONFIG_TEXT_BASE)) || { rm -f $@; false; }
else else
cmd_objcopy_uboot = $(cmd_objcopy) cmd_objcopy_uboot = $(cmd_objcopy)
endif endif
@ -1365,7 +1365,7 @@ u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE
# from the SPL U-Boot version. # from the SPL U-Boot version.
# #
ifndef CONFIG_SYS_UBOOT_START ifndef CONFIG_SYS_UBOOT_START
CONFIG_SYS_UBOOT_START := $(CONFIG_SYS_TEXT_BASE) CONFIG_SYS_UBOOT_START := $(CONFIG_TEXT_BASE)
endif endif
# Boards with more complex image requirements can provide an .its source file # Boards with more complex image requirements can provide an .its source file
@ -1390,7 +1390,7 @@ endif
ifdef CONFIG_SPL_LOAD_FIT ifdef CONFIG_SPL_LOAD_FIT
MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \ MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
-p $(CONFIG_FIT_EXTERNAL_OFFSET) \ -p $(CONFIG_FIT_EXTERNAL_OFFSET) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \ -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb,$(subst ",,$(DEVICE_TREE))) \ $(patsubst %,-b arch/$(ARCH)/dts/%.dtb,$(subst ",,$(DEVICE_TREE))) \
@ -1398,10 +1398,10 @@ MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
$(patsubst %,-b arch/$(ARCH)/dts/%.dtbo,$(subst ",,$(CONFIG_OF_OVERLAY_LIST))) $(patsubst %,-b arch/$(ARCH)/dts/%.dtbo,$(subst ",,$(CONFIG_OF_OVERLAY_LIST)))
else else
MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \ MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
MKIMAGEFLAGS_u-boot-ivt.img = -A $(ARCH) -T firmware_ivt -C none -O u-boot \ MKIMAGEFLAGS_u-boot-ivt.img = -A $(ARCH) -T firmware_ivt -C none -O u-boot \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
u-boot-ivt.img: MKIMAGEOUTPUT = u-boot-ivt.img.log u-boot-ivt.img: MKIMAGEOUTPUT = u-boot-ivt.img.log
endif endif
@ -1420,10 +1420,10 @@ KWD_CONFIG_FILE = $(shell \
fi) fi)
MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \ MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) -T kwbimage -a $(CONFIG_TEXT_BASE) -e $(CONFIG_TEXT_BASE)
MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \ MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \ -T kwbimage -a $(CONFIG_TEXT_BASE) -e $(CONFIG_TEXT_BASE) \
$(if $(KEYDIR),-k $(KEYDIR)) $(if $(KEYDIR),-k $(KEYDIR))
MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \ MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
@ -1432,7 +1432,7 @@ MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
UBOOT_BIN := u-boot.bin UBOOT_BIN := u-boot.bin
MKIMAGEFLAGS_u-boot-lzma.img = -A $(ARCH) -T standalone -C lzma -O u-boot \ MKIMAGEFLAGS_u-boot-lzma.img = -A $(ARCH) -T standalone -C lzma -O u-boot \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
u-boot.bin.lzma: u-boot.bin FORCE u-boot.bin.lzma: u-boot.bin FORCE
@ -1540,7 +1540,7 @@ u-boot.uim: u-boot.bin FORCE
u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL $(if $(CONFIG_OF_SEPARATE),u-boot.img,u-boot.uim) FORCE u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL $(if $(CONFIG_OF_SEPARATE),u-boot.img,u-boot.uim) FORCE
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@ $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_SYS_TEXT_BASE) MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_TEXT_BASE)
u-boot.ubl: u-boot-with-spl.bin FORCE u-boot.ubl: u-boot-with-spl.bin FORCE
$(call if_changed,mkimage) $(call if_changed,mkimage)
@ -1684,8 +1684,8 @@ u-boot-img-spl-at-end.bin: u-boot.img spl/u-boot-spl.bin FORCE
quiet_cmd_u-boot-elf ?= LD $@ quiet_cmd_u-boot-elf ?= LD $@
cmd_u-boot-elf ?= $(LD) u-boot-elf.o -o $@ \ cmd_u-boot-elf ?= $(LD) u-boot-elf.o -o $@ \
$(if $(CONFIG_SYS_BIG_ENDIAN),-EB,-EL) \ $(if $(CONFIG_SYS_BIG_ENDIAN),-EB,-EL) \
-T u-boot-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_SYS_TEXT_BASE) \ -T u-boot-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_TEXT_BASE) \
-Ttext=$(CONFIG_SYS_TEXT_BASE) -Ttext=$(CONFIG_TEXT_BASE)
u-boot.elf: u-boot.bin u-boot-elf.lds u-boot.elf: u-boot.bin u-boot-elf.lds
$(Q)$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< u-boot-elf.o $(Q)$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< u-boot-elf.o
$(call if_changed,u-boot-elf) $(call if_changed,u-boot-elf)
@ -1706,7 +1706,7 @@ u-boot-mtk.bin: u-boot-with-spl.bin
$(call if_changed,copy) $(call if_changed,copy)
else else
MKIMAGEFLAGS_u-boot-mtk.bin = -T mtk_image \ MKIMAGEFLAGS_u-boot-mtk.bin = -T mtk_image \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_TEXT_BASE) \
-n "$(patsubst "%",%,$(CONFIG_MTK_BROM_HEADER_INFO))" -n "$(patsubst "%",%,$(CONFIG_MTK_BROM_HEADER_INFO))"
u-boot-mtk.bin: u-boot.bin FORCE u-boot-mtk.bin: u-boot.bin FORCE

View File

@ -10,7 +10,7 @@ OUTPUT_ARCH(arc)
ENTRY(_start) ENTRY(_start)
SECTIONS SECTIONS
{ {
. = CONFIG_SYS_TEXT_BASE; . = CONFIG_TEXT_BASE;
__image_copy_start = .; __image_copy_start = .;
. = ALIGN(1024); . = ALIGN(1024);
__ivt_start = .; __ivt_start = .;

View File

@ -93,7 +93,7 @@ config LNX_KRNL_IMG_TEXT_OFFSET_BASE
depends on LINUX_KERNEL_IMAGE_HEADER depends on LINUX_KERNEL_IMAGE_HEADER
hex hex
help help
The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the The value subtracted from CONFIG_TEXT_BASE to calculate the
TEXT_OFFSET value written to the Linux kernel image header. TEXT_OFFSET value written to the Linux kernel image header.
config GICV2 config GICV2

View File

@ -88,7 +88,7 @@ cpu_init_crit:
/* Prepare to disable the MMU */ /* Prepare to disable the MMU */
adr r2, mmu_disable_phys adr r2, mmu_disable_phys
sub r2, r2, #(CONFIG_SYS_PHY_UBOOT_BASE - CONFIG_SYS_TEXT_BASE) sub r2, r2, #(CONFIG_SYS_PHY_UBOOT_BASE - CONFIG_TEXT_BASE)
b mmu_disable b mmu_disable
.align 5 .align 5

View File

@ -60,14 +60,14 @@ spl/u-boot-spl.ivt: spl/u-boot-spl.bin
u-boot.ivt: u-boot.bin u-boot.ivt: u-boot.bin
$(call if_changed,mkalign_mxs) $(call if_changed,mkalign_mxs)
$(call if_changed,mkivt_mxs,$(CONFIG_SYS_TEXT_BASE),\ $(call if_changed,mkivt_mxs,$(CONFIG_TEXT_BASE),\
0x40001000,0x40001040) 0x40001000,0x40001040)
spl/u-boot-spl.csf: spl/u-boot-spl.ivt spl/u-boot-spl.bin board/$(VENDOR)/$(BOARD)/sign/u-boot-spl.csf spl/u-boot-spl.csf: spl/u-boot-spl.ivt spl/u-boot-spl.bin board/$(VENDOR)/$(BOARD)/sign/u-boot-spl.csf
$(call if_changed,mkcsfreq_mxs,$(CONFIG_SPL_TEXT_BASE),0x8000) $(call if_changed,mkcsfreq_mxs,$(CONFIG_SPL_TEXT_BASE),0x8000)
u-boot.csf: u-boot.ivt u-boot.bin board/$(VENDOR)/$(BOARD)/sign/u-boot.csf u-boot.csf: u-boot.ivt u-boot.bin board/$(VENDOR)/$(BOARD)/sign/u-boot.csf
$(call if_changed,mkcsfreq_mxs,$(CONFIG_SYS_TEXT_BASE),0x40001000) $(call if_changed,mkcsfreq_mxs,$(CONFIG_TEXT_BASE),0x40001000)
%.sig: %.csf %.sig: %.csf
$(call if_changed,mkcst_mxs) $(call if_changed,mkcst_mxs)

View File

@ -146,9 +146,9 @@ void ft_cpu_setup(void *blob, struct bd_info *bd)
* Since second uboot binary has a head, that space need to be * Since second uboot binary has a head, that space need to be
* reserved either(assuming its size is less than 0x1000). * reserved either(assuming its size is less than 0x1000).
*/ */
off = fdt_add_mem_rsv(blob, CONFIG_SYS_TEXT_BASE - UBOOT_HEAD_LEN, off = fdt_add_mem_rsv(blob, CONFIG_TEXT_BASE - UBOOT_HEAD_LEN,
CONFIG_SYS_MONITOR_LEN + CONFIG_SYS_SPL_MALLOC_SIZE + CONFIG_SYS_MONITOR_LEN +
UBOOT_HEAD_LEN); CONFIG_SYS_SPL_MALLOC_SIZE + UBOOT_HEAD_LEN);
if (off < 0) if (off < 0)
printf("Failed to reserve memory for SD boot deep sleep: %s\n", printf("Failed to reserve memory for SD boot deep sleep: %s\n",
fdt_strerror(off)); fdt_strerror(off));

View File

@ -69,7 +69,7 @@
(__HEAD_FLAG_PAGE_SIZE << 1) | \ (__HEAD_FLAG_PAGE_SIZE << 1) | \
(__HEAD_FLAG_PHYS_BASE << 3)) (__HEAD_FLAG_PHYS_BASE << 3))
#define TEXT_OFFSET (CONFIG_SYS_TEXT_BASE - \ #define TEXT_OFFSET (CONFIG_TEXT_BASE - \
CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE) CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE)
/* /*

View File

@ -35,7 +35,7 @@ _start:
.globl _TEXT_BASE .globl _TEXT_BASE
_TEXT_BASE: _TEXT_BASE:
.quad CONFIG_SYS_TEXT_BASE .quad CONFIG_TEXT_BASE
/* /*
* These are defined in the linker script. * These are defined in the linker script.

View File

@ -36,7 +36,7 @@
os = "u-boot"; os = "u-boot";
arch = "arm"; arch = "arm";
compression = "none"; compression = "none";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
u-boot-nodtb { u-boot-nodtb {
}; };

View File

@ -90,7 +90,7 @@
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
description = "U-Boot (64-bit)"; description = "U-Boot (64-bit)";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
type = "standalone"; type = "standalone";
uboot-blob { uboot-blob {

View File

@ -152,7 +152,7 @@
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
description = "U-Boot (64-bit)"; description = "U-Boot (64-bit)";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
type = "standalone"; type = "standalone";
uboot-blob { uboot-blob {

View File

@ -113,7 +113,7 @@
type = "standalone"; type = "standalone";
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
uboot_blob: blob-ext { uboot_blob: blob-ext {
filename = "u-boot-nodtb.bin"; filename = "u-boot-nodtb.bin";

View File

@ -77,7 +77,7 @@
type = "standalone"; type = "standalone";
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
uboot_blob: blob-ext { uboot_blob: blob-ext {
filename = "u-boot-nodtb.bin"; filename = "u-boot-nodtb.bin";

View File

@ -105,7 +105,7 @@
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
description = "U-Boot (64-bit)"; description = "U-Boot (64-bit)";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
type = "standalone"; type = "standalone";
uboot-blob { uboot-blob {

View File

@ -21,7 +21,7 @@
os = "U-Boot"; os = "U-Boot";
arch = "arm"; arch = "arm";
compression = "none"; compression = "none";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
u-boot-nodtb { u-boot-nodtb {
}; };

View File

@ -47,7 +47,7 @@
os = "u-boot"; os = "u-boot";
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
u-boot-nodtb { u-boot-nodtb {
}; };

View File

@ -1,7 +1,7 @@
#include <config.h> #include <config.h>
#ifdef CONFIG_SPL_TEXT_BASE #ifdef CONFIG_SPL_TEXT_BASE
#define U_BOOT_OFFSET (CONFIG_SYS_TEXT_BASE - CONFIG_SPL_TEXT_BASE) #define U_BOOT_OFFSET (CONFIG_TEXT_BASE - CONFIG_SPL_TEXT_BASE)
#else #else
#define U_BOOT_OFFSET 0 #define U_BOOT_OFFSET 0
#endif #endif

View File

@ -85,7 +85,7 @@ static const struct mxs_pair mxs_boot_modes[] = {
#define MXS_BM_SDMMC1_3V3 0x0a #define MXS_BM_SDMMC1_3V3 0x0a
#define MXS_BM_SDMMC1_1V8 0x1a #define MXS_BM_SDMMC1_1V8 0x1a
#define MXS_SPL_DATA ((struct mxs_spl_data *)(CONFIG_SYS_TEXT_BASE - 0x200)) #define MXS_SPL_DATA ((struct mxs_spl_data *)(CONFIG_TEXT_BASE - 0x200))
struct mxs_spl_data { struct mxs_spl_data {
uint8_t boot_mode_idx; uint8_t boot_mode_idx;

View File

@ -47,7 +47,7 @@
#ifdef CONFIG_SPL_BUILD #ifdef CONFIG_SPL_BUILD
.word CONFIG_SPL_TEXT_BASE .word CONFIG_SPL_TEXT_BASE
#else #else
.word CONFIG_SYS_TEXT_BASE .word CONFIG_TEXT_BASE
#endif #endif
.word fel_stash - . .word fel_stash - .
#else #else

View File

@ -144,7 +144,7 @@ ENTRY(_main)
adr r0, _main adr r0, _main
ldr r1, _start_ofs ldr r1, _start_ofs
add r0, r1 add r0, r1
ldr r1, =CONFIG_SYS_TEXT_BASE ldr r1, =CONFIG_TEXT_BASE
sub r1, r0 sub r1, r0
add lr, r1 add lr, r1
#endif #endif

View File

@ -37,7 +37,7 @@ ENTRY(relocate_code)
* correctly apply relocations, we need to know the linked value. * correctly apply relocations, we need to know the linked value.
* *
* Linked &__image_copy_start, which we know was at * Linked &__image_copy_start, which we know was at
* CONFIG_SYS_TEXT_BASE, which is stored in _TEXT_BASE, as a non- * CONFIG_TEXT_BASE, which is stored in _TEXT_BASE, as a non-
* relocated value, since it isn't a symbol reference. * relocated value, since it isn't a symbol reference.
*/ */
ldr x1, _TEXT_BASE /* x1 <- Linked &__image_copy_start */ ldr x1, _TEXT_BASE /* x1 <- Linked &__image_copy_start */

View File

@ -1,6 +1,6 @@
if ARCH_APPLE if ARCH_APPLE
config SYS_TEXT_BASE config TEXT_BASE
default 0x00000000 default 0x00000000
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
@ -16,6 +16,6 @@ config SYS_MALLOC_F_LEN
default 0x4000 default 0x4000
config LNX_KRNL_IMG_TEXT_OFFSET_BASE config LNX_KRNL_IMG_TEXT_OFFSET_BASE
default SYS_TEXT_BASE default TEXT_BASE
endif endif

View File

@ -6,7 +6,7 @@ config SYS_ARCH
config SYS_SOC config SYS_SOC
default "aspeed" default "aspeed"
config SYS_TEXT_BASE config TEXT_BASE
default 0x00000000 default 0x00000000
choice choice

View File

@ -22,9 +22,9 @@
_MTEXT_BASE: _MTEXT_BASE:
#undef START_FROM_MEM #undef START_FROM_MEM
#ifdef START_FROM_MEM #ifdef START_FROM_MEM
.word CONFIG_SYS_TEXT_BASE-PHYS_FLASH_1 .word CONFIG_TEXT_BASE-PHYS_FLASH_1
#else #else
.word CONFIG_SYS_TEXT_BASE .word CONFIG_TEXT_BASE
#endif #endif
.globl lowlevel_init .globl lowlevel_init

View File

@ -32,7 +32,7 @@ lowlevel_init:
POS1: POS1:
adr r5, POS1 /* r5 = POS1 run time */ adr r5, POS1 /* r5 = POS1 run time */
ldr r0, =POS1 /* r0 = POS1 compile */ ldr r0, =POS1 /* r0 = POS1 compile */
sub r5, r5, r0 /* r0 = CONFIG_SYS_TEXT_BASE-1 */ sub r5, r5, r0 /* r0 = CONFIG_TEXT_BASE-1 */
/* memory control configuration 1 */ /* memory control configuration 1 */
ldr r0, =SMRDATA ldr r0, =SMRDATA

View File

@ -251,7 +251,7 @@ void copy_uboot_to_ram(void)
#ifdef CONFIG_SPI_BOOTING #ifdef CONFIG_SPI_BOOTING
case BOOT_MODE_SERIAL: case BOOT_MODE_SERIAL:
/* Customised function to copy u-boot from SF */ /* Customised function to copy u-boot from SF */
exynos_spi_copy(param->uboot_size, CONFIG_SYS_TEXT_BASE); exynos_spi_copy(param->uboot_size, CONFIG_TEXT_BASE);
break; break;
#endif #endif
case BOOT_MODE_SD: case BOOT_MODE_SD:
@ -267,7 +267,7 @@ void copy_uboot_to_ram(void)
copy_bl2_from_emmc = get_irom_func(EMMC44_INDEX); copy_bl2_from_emmc = get_irom_func(EMMC44_INDEX);
end_bootop_from_emmc = get_irom_func(EMMC44_END_INDEX); end_bootop_from_emmc = get_irom_func(EMMC44_END_INDEX);
copy_bl2_from_emmc(BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE); copy_bl2_from_emmc(BL2_SIZE_BLOC_COUNT, CONFIG_TEXT_BASE);
end_bootop_from_emmc(); end_bootop_from_emmc();
break; break;
#endif #endif
@ -279,7 +279,7 @@ void copy_uboot_to_ram(void)
*/ */
is_cr_z_set = config_branch_prediction(0); is_cr_z_set = config_branch_prediction(0);
usb_copy = get_irom_func(USB_INDEX); usb_copy = get_irom_func(USB_INDEX);
usb_copy(0, (u32 *)CONFIG_SYS_TEXT_BASE); usb_copy(0, (u32 *)CONFIG_TEXT_BASE);
config_branch_prediction(is_cr_z_set); config_branch_prediction(is_cr_z_set);
break; break;
#endif #endif
@ -288,7 +288,7 @@ void copy_uboot_to_ram(void)
} }
if (copy_bl2) if (copy_bl2)
copy_bl2(offset, size, CONFIG_SYS_TEXT_BASE); copy_bl2(offset, size, CONFIG_TEXT_BASE);
} }
void memzero(void *s, size_t n) void memzero(void *s, size_t n)
@ -329,7 +329,7 @@ void board_init_f(unsigned long bootflag)
copy_uboot_to_ram(); copy_uboot_to_ram();
/* Jump to U-Boot image */ /* Jump to U-Boot image */
uboot = (void *)CONFIG_SYS_TEXT_BASE; uboot = (void *)CONFIG_TEXT_BASE;
(*uboot)(); (*uboot)();
/* Never returns Here */ /* Never returns Here */
} }

View File

@ -126,7 +126,7 @@ DEPFILE_EXISTS := 0
endif endif
MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \ MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \
-T $(IMAGE_TYPE) -e $(CONFIG_SYS_TEXT_BASE) -T $(IMAGE_TYPE) -e $(CONFIG_TEXT_BASE)
u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
@ -134,7 +134,7 @@ u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
ifeq ($(CONFIG_MULTI_DTB_FIT),y) ifeq ($(CONFIG_MULTI_DTB_FIT),y)
MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \
-T $(IMAGE_TYPE) -e $(CONFIG_SYS_TEXT_BASE) -T $(IMAGE_TYPE) -e $(CONFIG_TEXT_BASE)
u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log
u-boot-dtb.imx: u-boot-fit-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE u-boot-dtb.imx: u-boot-fit-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE
@ -143,7 +143,7 @@ ifeq ($(DEPFILE_EXISTS),0)
endif endif
else ifeq ($(CONFIG_OF_SEPARATE),y) else ifeq ($(CONFIG_OF_SEPARATE),y)
MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \
-T $(IMAGE_TYPE) -e $(CONFIG_SYS_TEXT_BASE) -T $(IMAGE_TYPE) -e $(CONFIG_TEXT_BASE)
u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log
u-boot-dtb.imx: u-boot-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE u-boot-dtb.imx: u-boot-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE
@ -207,8 +207,8 @@ SPL: MKIMAGEOUTPUT = SPL.log
SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout $(PLUGIN).bin FORCE SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout $(PLUGIN).bin FORCE
$(call if_changed,mkimage) $(call if_changed,mkimage)
MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \ MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_TEXT_BASE) \
-e $(CONFIG_SYS_TEXT_BASE) -C none -T firmware -e $(CONFIG_TEXT_BASE) -C none -T firmware
u-boot.uim: u-boot.bin FORCE u-boot.uim: u-boot.bin FORCE
$(call if_changed,mkimage) $(call if_changed,mkimage)

View File

@ -313,8 +313,8 @@ phys_size_t get_effective_memsize(void)
/* Find the memory region runs the U-Boot */ /* Find the memory region runs the U-Boot */
if (start >= phys_sdram_1_start && start <= end1 && if (start >= phys_sdram_1_start && start <= end1 &&
(start <= CONFIG_SYS_TEXT_BASE && (start <= CONFIG_TEXT_BASE &&
end >= CONFIG_SYS_TEXT_BASE)) { end >= CONFIG_TEXT_BASE)) {
if ((end + 1) <= if ((end + 1) <=
((sc_faddr_t)phys_sdram_1_start + ((sc_faddr_t)phys_sdram_1_start +
phys_sdram_1_size)) phys_sdram_1_size))

View File

@ -16,7 +16,7 @@ config MX7D
select ROM_UNIFIED_SECTIONS select ROM_UNIFIED_SECTIONS
imply CMD_FUSE imply CMD_FUSE
config SYS_TEXT_BASE config TEXT_BASE
default 0x87800000 default 0x87800000
config SPL_TEXT_BASE config SPL_TEXT_BASE

View File

@ -341,7 +341,7 @@ void *board_spl_fit_buffer_addr(ulong fit_size, int sectors, int bl_len)
if (bl_len < 512) if (bl_len < 512)
bl_len = 512; bl_len = 512;
return (void *)((CONFIG_SYS_TEXT_BASE - fit_size - bl_len - return (void *)((CONFIG_TEXT_BASE - fit_size - bl_len -
align_len) & ~align_len); align_len) & ~align_len);
} }
#endif #endif

View File

@ -6,7 +6,7 @@ config SYS_SOC
config SYS_MALLOC_F_LEN config SYS_MALLOC_F_LEN
default 0x2000 default 0x2000
config SYS_TEXT_BASE config TEXT_BASE
default 0x87300000 default 0x87300000
config NR_DRAM_BANKS config NR_DRAM_BANKS

View File

@ -30,7 +30,7 @@ tispl.bin_HS: $(obj)/u-boot-spl-nodtb.bin_HS $(patsubst %,$(obj)/dts/%.dtb_HS,$(
$(call if_changed,mkfitimage) $(call if_changed,mkfitimage)
MKIMAGEFLAGS_u-boot.img_HS = -f auto -A $(ARCH) -T firmware -C none -O u-boot \ MKIMAGEFLAGS_u-boot.img_HS = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \ -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb_HS,$(subst ",,$(CONFIG_OF_LIST))) $(patsubst %,-b arch/$(ARCH)/dts/%.dtb_HS,$(subst ",,$(CONFIG_OF_LIST)))

View File

@ -91,7 +91,7 @@ static void *sysfw_load_address;
struct legacy_img_hdr *spl_get_load_buffer(ssize_t offset, size_t size) struct legacy_img_hdr *spl_get_load_buffer(ssize_t offset, size_t size)
{ {
if (sysfw_loaded) if (sysfw_loaded)
return (struct legacy_img_hdr *)(CONFIG_SYS_TEXT_BASE + offset); return (struct legacy_img_hdr *)(CONFIG_TEXT_BASE + offset);
else if (sysfw_load_address) else if (sysfw_load_address)
return sysfw_load_address; return sysfw_load_address;
else else

View File

@ -27,7 +27,7 @@ u-boot-spi.gph: spl/u-boot-spl.gph u-boot.img FORCE
ifndef CONFIG_SPL_BUILD ifndef CONFIG_SPL_BUILD
MKIMAGEFLAGS_MLO = -A $(ARCH) -T gpimage -C none \ MKIMAGEFLAGS_MLO = -A $(ARCH) -T gpimage -C none \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) -n U-Boot -a $(CONFIG_TEXT_BASE) -e $(CONFIG_TEXT_BASE) -n U-Boot
MLO: u-boot.bin FORCE MLO: u-boot.bin FORCE
$(call if_changed,mkimage) $(call if_changed,mkimage)
@dd if=/dev/zero bs=8 count=1 2>/dev/null >> $@ @dd if=/dev/zero bs=8 count=1 2>/dev/null >> $@

View File

@ -5,7 +5,7 @@
* The NSIH (first 512 Bytes of u-boot.bin) is necessary for the * The NSIH (first 512 Bytes of u-boot.bin) is necessary for the
* 2nd-Bootloader to get information like load address of U-Boot. * 2nd-Bootloader to get information like load address of U-Boot.
* *
* 0x400 must be added to CONFIG_SYS_TEXT_BASE to have the actual load and * 0x400 must be added to CONFIG_TEXT_BASE to have the actual load and
* start address because 2nd-Bootloader loads with an offset of 0x400 * start address because 2nd-Bootloader loads with an offset of 0x400
* (NSIH + 0x200 bytes are not loaded into RAM). * (NSIH + 0x200 bytes are not loaded into RAM).
* *
@ -23,9 +23,9 @@
.word (_end - _start) + 20 * 1024 /* 0x50: load size .word (_end - _start) + 20 * 1024 /* 0x50: load size
* (bin + 20k for DTB) */ * (bin + 20k for DTB) */
.space 0x4 .space 0x4
.word CONFIG_SYS_TEXT_BASE + 0x400 /* 0x58: load address */ .word CONFIG_TEXT_BASE + 0x400 /* 0x58: load address */
.word 0x00000000 .word 0x00000000
.word CONFIG_SYS_TEXT_BASE + 0x400 /* 0x60: start address */ .word CONFIG_TEXT_BASE + 0x400 /* 0x60: start address */
.space 0x198 .space 0x198
.byte 'N' /* 0x1FC: "NSIH" signature */ .byte 'N' /* 0x1FC: "NSIH" signature */
.byte 'S' .byte 'S'

View File

@ -3,7 +3,7 @@ if ARCH_NPCM
config SYS_ARCH config SYS_ARCH
default "arm" default "arm"
config SYS_TEXT_BASE config TEXT_BASE
default 0x8000 default 0x8000
choice choice

View File

@ -46,7 +46,7 @@ struct mm_region *mem_map = otx_mem_map;
void mem_map_fill(void) void mem_map_fill(void)
{ {
int banks = OTX_MEM_MAP_USED; int banks = OTX_MEM_MAP_USED;
u32 dram_start = CONFIG_SYS_TEXT_BASE; u32 dram_start = CONFIG_TEXT_BASE;
if (otx_is_soc(CN83XX)) { if (otx_is_soc(CN83XX)) {
otx_mem_map[banks].virt = 0x8c0000000000UL; otx_mem_map[banks].virt = 0x8c0000000000UL;

View File

@ -51,7 +51,7 @@ struct mm_region *mem_map = otx2_mem_map;
void mem_map_fill(void) void mem_map_fill(void)
{ {
int banks = OTX2_MEM_MAP_USED; int banks = OTX2_MEM_MAP_USED;
u32 dram_start = CONFIG_SYS_TEXT_BASE; u32 dram_start = CONFIG_TEXT_BASE;
for (int i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { for (int i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
otx2_mem_map[banks].virt = dram_start; otx2_mem_map[banks].virt = dram_start;

View File

@ -10,7 +10,7 @@ cmd_mkomapsecimg = $(TI_SECURE_DEV_PKG)/scripts/create-boot-image.sh \
$(if $(KBUILD_VERBOSE:1=), >/dev/null) $(if $(KBUILD_VERBOSE:1=), >/dev/null)
else else
cmd_mkomapsecimg = $(TI_SECURE_DEV_PKG)/scripts/create-boot-image.sh \ cmd_mkomapsecimg = $(TI_SECURE_DEV_PKG)/scripts/create-boot-image.sh \
$(patsubst u-boot_HS_%,%,$(@F)) $< $@ $(CONFIG_SYS_TEXT_BASE) \ $(patsubst u-boot_HS_%,%,$(@F)) $< $@ $(CONFIG_TEXT_BASE) \
$(if $(KBUILD_VERBOSE:1=), >/dev/null) $(if $(KBUILD_VERBOSE:1=), >/dev/null)
endif endif
else else
@ -102,7 +102,7 @@ u-boot_HS_XIP_X-LOADER: $(obj)/u-boot.bin FORCE
ifdef CONFIG_SPL_LOAD_FIT ifdef CONFIG_SPL_LOAD_FIT
MKIMAGEFLAGS_u-boot_HS.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \ MKIMAGEFLAGS_u-boot_HS.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \ -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb_HS,$(subst ",,$(CONFIG_OF_LIST))) $(patsubst %,-b arch/$(ARCH)/dts/%.dtb_HS,$(subst ",,$(CONFIG_OF_LIST)))

View File

@ -14,7 +14,7 @@ config MACH_S700
endchoice endchoice
config SYS_TEXT_BASE config TEXT_BASE
default 0x11000000 default 0x11000000
config SYS_CONFIG_NAME config SYS_CONFIG_NAME

View File

@ -431,7 +431,7 @@ config ROCKCHIP_SPI_IMAGE
is built by binman. U-Boot sits near the start of the image. is built by binman. U-Boot sits near the start of the image.
config LNX_KRNL_IMG_TEXT_OFFSET_BASE config LNX_KRNL_IMG_TEXT_OFFSET_BASE
default SYS_TEXT_BASE default TEXT_BASE
source "arch/arm/mach-rockchip/px30/Kconfig" source "arch/arm/mach-rockchip/px30/Kconfig"
source "arch/arm/mach-rockchip/rk3036/Kconfig" source "arch/arm/mach-rockchip/rk3036/Kconfig"

View File

@ -40,7 +40,7 @@ config SYS_MALLOC_F_LEN
default 0x2000 if TARGET_SOCFPGA_ARRIA10 default 0x2000 if TARGET_SOCFPGA_ARRIA10
default 0x2000 if TARGET_SOCFPGA_GEN5 default 0x2000 if TARGET_SOCFPGA_GEN5
config SYS_TEXT_BASE config TEXT_BASE
default 0x01000040 if TARGET_SOCFPGA_ARRIA10 default 0x01000040 if TARGET_SOCFPGA_ARRIA10
default 0x01000040 if TARGET_SOCFPGA_GEN5 default 0x01000040 if TARGET_SOCFPGA_GEN5

View File

@ -19,7 +19,7 @@ config TARGET_ST_STM32MP13x
endchoice endchoice
config SYS_TEXT_BASE config TEXT_BASE
default 0xC0000000 default 0xC0000000
config PRE_CON_BUF_ADDR config PRE_CON_BUF_ADDR

View File

@ -93,7 +93,7 @@ config SPL_STM32MP15_PWR
This config enables implementation of driver-model pmic and This config enables implementation of driver-model pmic and
regulator uclass features for access to STM32MP15x PWR in SPL. regulator uclass features for access to STM32MP15x PWR in SPL.
config SYS_TEXT_BASE config TEXT_BASE
default 0xC0100000 default 0xC0100000
config PRE_CON_BUF_ADDR config PRE_CON_BUF_ADDR

View File

@ -363,7 +363,7 @@ __weak void sunxi_sram_init(void)
static bool sunxi_valid_emmc_boot(struct mmc *mmc) static bool sunxi_valid_emmc_boot(struct mmc *mmc)
{ {
struct blk_desc *bd = mmc_get_blk_desc(mmc); struct blk_desc *bd = mmc_get_blk_desc(mmc);
uint32_t *buffer = (void *)(uintptr_t)CONFIG_SYS_TEXT_BASE; u32 *buffer = (void *)(uintptr_t)CONFIG_TEXT_BASE;
struct boot_file_head *egon_head = (void *)buffer; struct boot_file_head *egon_head = (void *)buffer;
int bootpart = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config); int bootpart = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config);
uint32_t spl_size, emmc_checksum, chksum = 0; uint32_t spl_size, emmc_checksum, chksum = 0;

View File

@ -341,7 +341,7 @@ static int spl_spi_load_image(struct spl_image_info *spl_image,
struct legacy_img_hdr *header; struct legacy_img_hdr *header;
uint32_t load_offset = sunxi_get_spl_size(); uint32_t load_offset = sunxi_get_spl_size();
header = (struct legacy_img_hdr *)CONFIG_SYS_TEXT_BASE; header = (struct legacy_img_hdr *)CONFIG_TEXT_BASE;
load_offset = max_t(uint32_t, load_offset, CONFIG_SYS_SPI_U_BOOT_OFFS); load_offset = max_t(uint32_t, load_offset, CONFIG_SYS_SPI_U_BOOT_OFFS);
spi0_init(); spi0_init();

View File

@ -26,7 +26,7 @@ TEE_LOAD_ADDR_LOW=`printf 0x%x $((TEE_LOAD_ADDR & 0xffffffff))`
TEE_LOAD_ADDR_HIGH=`printf 0x%x $((TEE_LOAD_ADDR >> 32))` TEE_LOAD_ADDR_HIGH=`printf 0x%x $((TEE_LOAD_ADDR >> 32))`
if [ -z "$BL33_LOAD_ADDR" ];then if [ -z "$BL33_LOAD_ADDR" ];then
BL33_LOAD_ADDR=`awk '/CONFIG_SYS_TEXT_BASE/ { print $3 }' include/generated/autoconf.h` BL33_LOAD_ADDR=`awk '/CONFIG_TEXT_BASE/ { print $3 }' include/generated/autoconf.h`
fi fi
BL33_LOAD_ADDR_LOW=`printf 0x%x $((BL33_LOAD_ADDR & 0xffffffff))` BL33_LOAD_ADDR_LOW=`printf 0x%x $((BL33_LOAD_ADDR & 0xffffffff))`
BL33_LOAD_ADDR_HIGH=`printf 0x%x $((BL33_LOAD_ADDR >> 32))` BL33_LOAD_ADDR_HIGH=`printf 0x%x $((BL33_LOAD_ADDR >> 32))`

View File

@ -35,8 +35,8 @@
*/ */
_vectors: _vectors:
.long 0x00000000 /* Flash offset is 0 until we setup CS0 */ .long 0x00000000 /* Flash offset is 0 until we setup CS0 */
#if defined(CONFIG_M5282) && (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) #if defined(CONFIG_M5282) && (CONFIG_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE)
.long _start - CONFIG_SYS_TEXT_BASE .long _start - CONFIG_TEXT_BASE
#else #else
.long _START .long _START
#endif #endif
@ -83,7 +83,7 @@ _vectors:
#if defined(CONFIG_SYS_INT_FLASH_BASE) && \ #if defined(CONFIG_SYS_INT_FLASH_BASE) && \
(defined(CONFIG_M5282) || defined(CONFIG_M5281)) (defined(CONFIG_M5282) || defined(CONFIG_M5281))
#if (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) #if (CONFIG_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE)
.long 0x55AA55AA,0xAA55AA55 /* CFM Backdoorkey */ .long 0x55AA55AA,0xAA55AA55 /* CFM Backdoorkey */
.long 0xFFFFFFFF /* all sectors protected */ .long 0xFFFFFFFF /* all sectors protected */
.long 0x00000000 /* supervisor/User restriction */ .long 0x00000000 /* supervisor/User restriction */
@ -130,7 +130,7 @@ _start:
movec %d0, %RAMBAR1 movec %d0, %RAMBAR1
#if defined(CONFIG_M5282) #if defined(CONFIG_M5282)
#if (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) #if (CONFIG_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE)
/* /*
* Setup code in SRAM to initialize FLASHBAR, * Setup code in SRAM to initialize FLASHBAR,
* if start from internal Flash * if start from internal Flash
@ -156,7 +156,7 @@ _after_flashbar_copy:
/* Setup code to initialize FLASHBAR, if start from external Memory */ /* Setup code to initialize FLASHBAR, if start from external Memory */
move.l #(CONFIG_SYS_INT_FLASH_BASE + CONFIG_SYS_INT_FLASH_ENABLE), %d0 move.l #(CONFIG_SYS_INT_FLASH_BASE + CONFIG_SYS_INT_FLASH_ENABLE), %d0
movec %d0, %FLASHBAR movec %d0, %FLASHBAR
#endif /* (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) */ #endif /* (CONFIG_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) */
#endif #endif
#endif #endif
@ -165,7 +165,7 @@ _after_flashbar_copy:
* therefore no VBR to set * therefore no VBR to set
*/ */
#if !defined(CONFIG_MONITOR_IS_IN_RAM) #if !defined(CONFIG_MONITOR_IS_IN_RAM)
#if defined(CONFIG_M5282) && (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) #if defined(CONFIG_M5282) && (CONFIG_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE)
move.l #CONFIG_SYS_INT_FLASH_BASE, %d0 move.l #CONFIG_SYS_INT_FLASH_BASE, %d0
#else #else
move.l #CONFIG_SYS_FLASH_BASE, %d0 move.l #CONFIG_SYS_FLASH_BASE, %d0

View File

@ -39,8 +39,8 @@ _vectors:
/* Flash offset is 0 until we setup CS0 */ /* Flash offset is 0 until we setup CS0 */
.long 0x00000000 .long 0x00000000
#if defined(CONFIG_M5307) && \ #if defined(CONFIG_M5307) && \
(CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) (CONFIG_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE)
.long _start - CONFIG_SYS_TEXT_BASE .long _start - CONFIG_TEXT_BASE
#else #else
.long _START .long _START
#endif #endif

View File

@ -26,10 +26,10 @@
rte; rte;
#if defined(CONFIG_SERIAL_BOOT) #if defined(CONFIG_SERIAL_BOOT)
#define ASM_DRAMINIT (asm_dram_init - CONFIG_SYS_TEXT_BASE + \ #define ASM_DRAMINIT (asm_dram_init - CONFIG_TEXT_BASE + \
CONFIG_SYS_INIT_RAM_ADDR) CONFIG_SYS_INIT_RAM_ADDR)
#define ASM_DRAMINIT_N (asm_dram_init - CONFIG_SYS_TEXT_BASE) #define ASM_DRAMINIT_N (asm_dram_init - CONFIG_TEXT_BASE)
#define ASM_SBF_IMG_HDR (asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + \ #define ASM_SBF_IMG_HDR (asm_sbf_img_hdr - CONFIG_TEXT_BASE + \
CONFIG_SYS_INIT_RAM_ADDR) CONFIG_SYS_INIT_RAM_ADDR)
#endif #endif
@ -116,7 +116,7 @@ vector192_255:
asm_sbf_img_hdr: asm_sbf_img_hdr:
.long 0x00000000 /* checksum, not yet implemented */ .long 0x00000000 /* checksum, not yet implemented */
.long 0x00040000 /* image length */ .long 0x00040000 /* image length */
.long CONFIG_SYS_TEXT_BASE /* image to be relocated at */ .long CONFIG_TEXT_BASE /* image to be relocated at */
asm_dram_init: asm_dram_init:
move.w #0x2700,%sr /* Mask off Interrupt */ move.w #0x2700,%sr /* Mask off Interrupt */
@ -271,7 +271,7 @@ asm_dspi_rd_loop2:
jsr asm_dspi_rd_status jsr asm_dspi_rd_status
/* jump to memory and execute */ /* jump to memory and execute */
move.l #(CONFIG_SYS_TEXT_BASE + 0x400), %a0 move.l #(CONFIG_TEXT_BASE + 0x400), %a0
jmp (%a0) jmp (%a0)
asm_dspi_wr_status: asm_dspi_wr_status:
@ -298,7 +298,7 @@ asm_dspi_rd_status:
/* copy 4 boot pages to dram as soon as possible */ /* copy 4 boot pages to dram as soon as possible */
/* each page is 996 bytes (1056 total with 60 ECC bytes */ /* each page is 996 bytes (1056 total with 60 ECC bytes */
move.l #0x00000000, %a1 /* src */ move.l #0x00000000, %a1 /* src */
move.l #CONFIG_SYS_TEXT_BASE, %a2 /* dst */ move.l #CONFIG_TEXT_BASE, %a2 /* dst */
move.l #0x3E0, %d0 /* sz in long */ move.l #0x3E0, %d0 /* sz in long */
asm_boot_nand_copy: asm_boot_nand_copy:
@ -381,7 +381,7 @@ asm_nand_init:
move.l #4, %d2 /* start at 4 */ move.l #4, %d2 /* start at 4 */
move.l #0xFC0FFF04, %a0 /* cmd2 */ move.l #0xFC0FFF04, %a0 /* cmd2 */
move.l #0xFC0FFF0C, %a1 /* rar */ move.l #0xFC0FFF0C, %a1 /* rar */
move.l #(CONFIG_SYS_TEXT_BASE + 0xF80), %a2 move.l #(CONFIG_TEXT_BASE + 0xF80), %a2
asm_nand_read: asm_nand_read:
move.l #0x11000000, %d0 /* rar */ move.l #0x11000000, %d0 /* rar */
@ -419,7 +419,7 @@ asm_nand_copy:
bgt asm_nand_read bgt asm_nand_read
/* jump to memory and execute */ /* jump to memory and execute */
move.l #(CONFIG_SYS_TEXT_BASE + 0x400), %a0 move.l #(CONFIG_TEXT_BASE + 0x400), %a0
jmp (%a0) jmp (%a0)
#endif /* CONFIG_SYS_NAND_BOOT */ #endif /* CONFIG_SYS_NAND_BOOT */

View File

@ -19,7 +19,7 @@
* @rela_start: rela section start * @rela_start: rela section start
* @rela_end: rela section end * @rela_end: rela section end
* @dyn_start: dynamic section start * @dyn_start: dynamic section start
* @origin_addr: address where u-boot starts(doesn't need to be CONFIG_SYS_TEXT_BASE) * @origin_addr: address where u-boot starts(doesn't need to be CONFIG_TEXT_BASE)
*/ */
void mb_fix_rela(u32 reloc_addr, u32 verbose, u32 rela_start, void mb_fix_rela(u32 reloc_addr, u32 verbose, u32 rela_start,
u32 rela_end, u32 dyn_start, u32 origin_addr) u32 rela_end, u32 dyn_start, u32 origin_addr)
@ -29,9 +29,9 @@ void mb_fix_rela(u32 reloc_addr, u32 verbose, u32 rela_start,
/* /*
* Return in case u-boot.elf is used directly. * Return in case u-boot.elf is used directly.
* Skip it when u-boot.bin is loaded to different address than * Skip it when u-boot.bin is loaded to different address than
* CONFIG_SYS_TEXT_BASE. In this case relocation is necessary to run. * CONFIG_TEXT_BASE. In this case relocation is necessary to run.
*/ */
if (reloc_addr == CONFIG_SYS_TEXT_BASE) { if (reloc_addr == CONFIG_TEXT_BASE) {
debug_cond(verbose, debug_cond(verbose,
"Relocation address is the same - skip relocation\n"); "Relocation address is the same - skip relocation\n");
return; return;

View File

@ -55,15 +55,15 @@ uboot_sym_start:
add r6, r0, r0 add r6, r0, r0
lwi r7, r20, ALIGNMENT_ADDR lwi r7, r20, ALIGNMENT_ADDR
addi r7, r7, -CONFIG_SYS_TEXT_BASE addi r7, r7, -CONFIG_TEXT_BASE
add r7, r7, r5 add r7, r7, r5
lwi r8, r20, ALIGNMENT_ADDR + 0x4 lwi r8, r20, ALIGNMENT_ADDR + 0x4
addi r8, r8, -CONFIG_SYS_TEXT_BASE addi r8, r8, -CONFIG_TEXT_BASE
add r8, r8, r5 add r8, r8, r5
lwi r9, r20, ALIGNMENT_ADDR + 0x8 lwi r9, r20, ALIGNMENT_ADDR + 0x8
addi r9, r9, -CONFIG_SYS_TEXT_BASE addi r9, r9, -CONFIG_TEXT_BASE
add r9, r9, r5 add r9, r9, r5
addi r10, r0, CONFIG_SYS_TEXT_BASE addi r10, r0, CONFIG_TEXT_BASE
brlid r15, mb_fix_rela brlid r15, mb_fix_rela
nop nop

View File

@ -58,7 +58,7 @@ void board_init_f(ulong dummy)
if (ret) if (ret)
hang(); hang();
header = (struct legacy_img_hdr *)(CONFIG_SYS_TEXT_BASE - header = (struct legacy_img_hdr *)(CONFIG_TEXT_BASE -
sizeof(struct legacy_img_hdr)); sizeof(struct legacy_img_hdr));
count = blk_dread(mmc_get_blk_desc(mmc), count = blk_dread(mmc_get_blk_desc(mmc),
@ -68,7 +68,7 @@ void board_init_f(ulong dummy)
hang(); hang();
image_entry_noargs_t image_entry = image_entry_noargs_t image_entry =
(image_entry_noargs_t)CONFIG_SYS_TEXT_BASE; (image_entry_noargs_t)CONFIG_TEXT_BASE;
image_entry(); image_entry();

View File

@ -21,7 +21,7 @@ LEAF(lowlevel_init)
/* Modify ra/s0 such we return to physical NOR location */ /* Modify ra/s0 such we return to physical NOR location */
li t0, 0x0fffffff li t0, 0x0fffffff
li t1, CONFIG_SYS_TEXT_BASE li t1, CONFIG_TEXT_BASE
and s0, ra, t0 and s0, ra, t0
add s0, s0, t1 add s0, s0, t1

View File

@ -28,7 +28,7 @@ config SYS_ICACHE_LINE_SIZE
config SYS_SCACHE_LINE_SIZE config SYS_SCACHE_LINE_SIZE
default 32 if SOC_MT7621 default 32 if SOC_MT7621
config SYS_TEXT_BASE config TEXT_BASE
default 0x9c000000 if !SPL && !SOC_MT7621 default 0x9c000000 if !SPL && !SOC_MT7621
default 0x80200000 if SPL || SOC_MT7621 default 0x80200000 if SPL || SOC_MT7621

View File

@ -30,7 +30,7 @@ void setup_ifc(void)
_mas0 = MAS0_TLBSEL(1) | MAS0_ESEL(15); _mas0 = MAS0_TLBSEL(1) | MAS0_ESEL(15);
_mas1 = MAS1_VALID | MAS1_TID(0) | MAS1_TS | MAS1_IPROT | _mas1 = MAS1_VALID | MAS1_TID(0) | MAS1_TS | MAS1_IPROT |
MAS1_TSIZE(BOOKE_PAGESZ_4M); MAS1_TSIZE(BOOKE_PAGESZ_4M);
_mas2 = FSL_BOOKE_MAS2(CONFIG_SYS_TEXT_BASE, MAS2_I|MAS2_G); _mas2 = FSL_BOOKE_MAS2(CONFIG_TEXT_BASE, MAS2_I | MAS2_G);
_mas3 = FSL_BOOKE_MAS3(flash_phys, 0, MAS3_SW|MAS3_SR|MAS3_SX); _mas3 = FSL_BOOKE_MAS3(flash_phys, 0, MAS3_SW|MAS3_SR|MAS3_SX);
_mas7 = FSL_BOOKE_MAS7(flash_phys); _mas7 = FSL_BOOKE_MAS7(flash_phys);
@ -58,7 +58,7 @@ void setup_ifc(void)
MAS0_ESEL(CONFIG_SYS_PPC_E500_DEBUG_TLB); MAS0_ESEL(CONFIG_SYS_PPC_E500_DEBUG_TLB);
_mas1 = MAS1_VALID | MAS1_TID(0) | MAS1_IPROT | _mas1 = MAS1_VALID | MAS1_TID(0) | MAS1_IPROT |
MAS1_TSIZE(BOOKE_PAGESZ_4M); MAS1_TSIZE(BOOKE_PAGESZ_4M);
_mas2 = FSL_BOOKE_MAS2(CONFIG_SYS_TEXT_BASE, MAS2_I|MAS2_G); _mas2 = FSL_BOOKE_MAS2(CONFIG_TEXT_BASE, MAS2_I | MAS2_G);
_mas3 = FSL_BOOKE_MAS3(flash_phys, 0, MAS3_SW|MAS3_SR|MAS3_SX); _mas3 = FSL_BOOKE_MAS3(flash_phys, 0, MAS3_SW|MAS3_SR|MAS3_SX);
_mas7 = FSL_BOOKE_MAS7(flash_phys); _mas7 = FSL_BOOKE_MAS7(flash_phys);

View File

@ -18,7 +18,7 @@ SECTIONS
{ {
/* Optional boot sector */ /* Optional boot sector */
#if defined(CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR) && !defined(CONFIG_SPL) #if defined(CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR) && !defined(CONFIG_SPL)
.bootsect CONFIG_SYS_TEXT_BASE - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512 : { .bootsect CONFIG_TEXT_BASE - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512 : {
KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootsect)) KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootsect))
. = CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512; . = CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512;
} }

View File

@ -77,13 +77,13 @@
binman { binman {
filename = "u-boot.bin"; filename = "u-boot.bin";
skip-at-start = <CONFIG_SYS_TEXT_BASE>; skip-at-start = <CONFIG_TEXT_BASE>;
sort-by-offset; sort-by-offset;
pad-byte = <0xff>; pad-byte = <0xff>;
size = <CONFIG_SYS_MONITOR_LEN>; size = <CONFIG_SYS_MONITOR_LEN>;
u-boot-with-ucode-ptr { u-boot-with-ucode-ptr {
offset = <CONFIG_SYS_TEXT_BASE>; offset = <CONFIG_TEXT_BASE>;
optional-ucode; optional-ucode;
}; };

View File

@ -10,13 +10,13 @@
/ { / {
binman { binman {
filename = "u-boot.bin"; filename = "u-boot.bin";
skip-at-start = <CONFIG_SYS_TEXT_BASE>; skip-at-start = <CONFIG_TEXT_BASE>;
sort-by-offset; sort-by-offset;
pad-byte = <0xff>; pad-byte = <0xff>;
size = <CONFIG_SYS_MONITOR_LEN>; size = <CONFIG_SYS_MONITOR_LEN>;
u-boot-with-ucode-ptr { u-boot-with-ucode-ptr {
offset = <CONFIG_SYS_TEXT_BASE>; offset = <CONFIG_TEXT_BASE>;
optional-ucode; optional-ucode;
}; };

View File

@ -27,7 +27,7 @@
os = "U-Boot"; os = "U-Boot";
arch = "riscv"; arch = "riscv";
compression = "none"; compression = "none";
load = <CONFIG_SYS_TEXT_BASE>; load = <CONFIG_TEXT_BASE>;
uboot_blob: blob-ext { uboot_blob: blob-ext {
filename = "u-boot-nodtb.bin"; filename = "u-boot-nodtb.bin";

View File

@ -49,13 +49,14 @@ void board_init_f(ulong flag)
preloader_console_init(); preloader_console_init();
} }
u32 spl_boot_device(void) void board_boot_order(u32 *spl_boot_list)
{ {
return BOOT_DEVICE_BOARD; spl_boot_list[0] = BOOT_DEVICE_VBE;
spl_boot_list[1] = BOOT_DEVICE_BOARD;
} }
static int spl_board_load_image(struct spl_image_info *spl_image, static int spl_board_load_file(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev) struct spl_boot_device *bootdev)
{ {
char fname[256]; char fname[256];
int ret; int ret;
@ -74,10 +75,52 @@ static int spl_board_load_image(struct spl_image_info *spl_image,
if (!spl_image->arg) if (!spl_image->arg)
return log_msg_ret("exec", -ENOMEM); return log_msg_ret("exec", -ENOMEM);
strcpy(spl_image->arg, fname); strcpy(spl_image->arg, fname);
spl_image->flags = SPL_SANDBOXF_ARG_IS_FNAME;
return 0; return 0;
} }
SPL_LOAD_IMAGE_METHOD("sandbox", 9, BOOT_DEVICE_BOARD, spl_board_load_image); SPL_LOAD_IMAGE_METHOD("sandbox_file", 9, BOOT_DEVICE_BOARD,
spl_board_load_file);
static int load_from_image(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev)
{
struct sandbox_state *state = state_get_current();
enum u_boot_phase next_phase;
const char *fname;
ulong pos, size;
int full_size;
void *buf;
int ret;
if (!IS_ENABLED(CONFIG_SANDBOX_VPL))
return -ENOENT;
next_phase = spl_next_phase();
pos = spl_get_image_pos();
size = spl_get_image_size();
if (pos == BINMAN_SYM_MISSING || size == BINMAN_SYM_MISSING) {
log_debug("No image found\n");
return -ENOENT;
}
log_info("Reading from pos %lx size %lx\n", pos, size);
/*
* Set up spl_image to boot from jump_to_image_no_args(). Allocate this
* outside the RAM buffer (i.e. don't use strdup()).
*/
fname = state->prog_fname ? state->prog_fname : state->argv[0];
ret = os_read_file(fname, &buf, &full_size);
if (ret)
return log_msg_ret("rd", -ENOMEM);
spl_image->flags = SPL_SANDBOXF_ARG_IS_BUF;
spl_image->arg = buf;
spl_image->offset = pos;
spl_image->size = size;
return 0;
}
SPL_LOAD_IMAGE_METHOD("sandbox_image", 7, BOOT_DEVICE_BOARD, load_from_image);
void spl_board_init(void) void spl_board_init(void)
{ {
@ -89,20 +132,37 @@ void spl_board_init(void)
int ret; int ret;
ret = ut_run_list("spl", NULL, tests, count, ret = ut_run_list("spl", NULL, tests, count,
state->select_unittests, 1); state->select_unittests, 1, false);
/* continue execution into U-Boot */ /* continue execution into U-Boot */
} }
} }
void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image) void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
{ {
const char *fname = spl_image->arg; switch (spl_image->flags) {
case SPL_SANDBOXF_ARG_IS_FNAME: {
const char *fname = spl_image->arg;
if (fname) { if (fname) {
os_fd_restore(); os_fd_restore();
os_spl_to_uboot(fname); os_spl_to_uboot(fname);
} else { } else {
printf("No filename provided for U-Boot\n"); log_err("No filename provided for U-Boot\n");
}
break;
}
case SPL_SANDBOXF_ARG_IS_BUF: {
int ret;
ret = os_jump_to_image(spl_image->arg + spl_image->offset,
spl_image->size);
if (ret)
log_err("Failed to load image\n");
break;
}
default:
log_err("Invalid flags\n");
break;
} }
hang(); hang();
} }

View File

@ -244,6 +244,36 @@ static int sandbox_cmdline_cb_jump(struct sandbox_state *state,
} }
SANDBOX_CMDLINE_OPT_SHORT(jump, 'j', 1, "Jumped from previous U-Boot"); SANDBOX_CMDLINE_OPT_SHORT(jump, 'j', 1, "Jumped from previous U-Boot");
static int sandbox_cmdline_cb_program(struct sandbox_state *state,
const char *arg)
{
/*
* Record the program name to use when jumping to future phases. This
* is the original executable which holds all the phases. We need to
* use this instead of argv[0] since each phase is started by
* extracting a particular binary from the full program, then running
* it. Therefore in that binary, argv[0] contains only the
* current-phase executable.
*
* For example, sandbox TPL may be started using image file:
*
* ./image.bin
*
* but then TPL needs to run VPL, which it does by extracting the VPL
* image from the image.bin file.
*
* ./temp-vpl
*
* When VPL runs it needs access to the original image.bin so it can
* extract the next phase (SPL). This works if we use '-f image.bin'
* when starting the original image.bin file.
*/
state->prog_fname = arg;
return 0;
}
SANDBOX_CMDLINE_OPT_SHORT(program, 'p', 1, "U-Boot program name");
static int sandbox_cmdline_cb_memory(struct sandbox_state *state, static int sandbox_cmdline_cb_memory(struct sandbox_state *state,
const char *arg) const char *arg)
{ {

View File

@ -470,7 +470,7 @@ int state_uninit(void)
int err; int err;
if (state->write_ram_buf || state->write_state) if (state->write_ram_buf || state->write_state)
log_info("Writing sandbox state\n"); log_debug("Writing sandbox state\n");
state = &main_state; state = &main_state;
/* Finish the bloblist, so that it is correct before writing memory */ /* Finish the bloblist, so that it is correct before writing memory */

View File

@ -21,6 +21,9 @@
spi0 = &spi; spi0 = &spi;
}; };
binman: binman {
};
memory { memory {
reg = <0 CONFIG_SYS_SDRAM_SIZE>; reg = <0 CONFIG_SYS_SDRAM_SIZE>;
}; };
@ -103,3 +106,7 @@
#include "sandbox.dtsi" #include "sandbox.dtsi"
#include "cros-ec-keyboard.dtsi" #include "cros-ec-keyboard.dtsi"
#include "sandbox_pmic.dtsi" #include "sandbox_pmic.dtsi"
#ifdef CONFIG_SANDBOX_VPL
#include "sandbox_vpl.dtsi"
#endif

View File

@ -0,0 +1,84 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Devicetree file for VPL (Verifying Program Loader)
*/
&binman {
u-boot-tpl-elf {
no-expanded;
};
u-boot-vpl-elf {
no-expanded;
};
fw-update {
type = "section";
/*
* provide plenty of space for ELF files with debug info so that
* gdb can be used
*/
offset = <0x400000>;
size = <0xdffc00>;
fit {
fit,external-offset = <0>;
description = "AP firmware";
images {
spl {
description = "U-Boot SPL";
type = "firmware";
phase = "spl";
arch = "sandbox";
os = "u-boot";
compression = "none";
hash-1 {
algo = "sha256";
};
u-boot-spl-elf {
};
};
u-boot {
description = "U-Boot";
type = "firmware";
phase = "u-boot";
arch = "sandbox";
os = "u-boot";
compression = "none";
hash-1 {
algo = "sha256";
};
u-boot-elf {
};
};
};
configurations {
conf-1 {
compatible = "sandbox";
description = "AP Firmware v1";
firmware = "spl", "u-boot";
signature {
algo = "sha1,rsa2048";
key-name-hint = "dev";
sign-images = "firmware";
};
};
};
};
};
state {
type = "fill";
size = <0x200>;
};
version {
type = "text";
text = "1.2.3";
size = <0x200>;
};
fdtmap {
};
};

View File

@ -37,6 +37,8 @@
i2c0 = "/i2c@0"; i2c0 = "/i2c@0";
mmc0 = "/mmc0"; mmc0 = "/mmc0";
mmc1 = "/mmc1"; mmc1 = "/mmc1";
mmc2 = "/mmc2";
mmc3 = "/mmc3";
pci0 = &pci0; pci0 = &pci0;
pci1 = &pci1; pci1 = &pci1;
pci2 = &pci2; pci2 = &pci2;
@ -64,7 +66,7 @@
osd0 = "/osd"; osd0 = "/osd";
}; };
binman { binman: binman {
}; };
config { config {
@ -78,6 +80,7 @@
}; };
bootstd { bootstd {
u-boot,dm-vpl;
compatible = "u-boot,boot-std"; compatible = "u-boot,boot-std";
filename-prefixes = "/", "/boot/"; filename-prefixes = "/", "/boot/";
@ -90,6 +93,46 @@
efi { efi {
compatible = "u-boot,distro-efi"; compatible = "u-boot,distro-efi";
}; };
/*
* This is used for the VBE OS-request tests. A FAT filesystem
* created in a partition with the VBE information appearing
* before the parititon starts
*/
firmware0 {
u-boot,dm-vpl;
compatible = "fwupd,vbe-simple";
storage = "mmc1";
skip-offset = <0x200>;
area-start = <0x400>;
area-size = <0x1000>;
state-offset = <0x400>;
state-size = <0x40>;
version-offset = <0x800>;
version-size = <0x100>;
};
/*
* This is used for the VBE VPL tests. The MMC device holds the
* binman image.bin file. The test progresses through each phase
* of U-Boot, loading each in turn from MMC.
*
* Note that the test enables this node (and mmc3) before
* running U-Boot
*/
firmware1 {
u-boot,dm-vpl;
status = "disabled";
compatible = "fwupd,vbe-simple";
storage = "mmc3";
skip-offset = <0x400000>;
area-start = <0>;
area-size = <0xe00000>;
state-offset = <0xdffc00>;
state-size = <0x40>;
version-offset = <0xdffe00>;
version-size = <0x100>;
};
}; };
fuzzing-engine { fuzzing-engine {
@ -962,6 +1005,14 @@
compatible = "sandbox,mmc"; compatible = "sandbox,mmc";
}; };
/* This is used for VBE VPL tests */
mmc3 {
status = "disabled";
compatible = "sandbox,mmc";
filename = "image.bin";
non-removable;
};
pch { pch {
compatible = "sandbox,pch"; compatible = "sandbox,pch";
}; };
@ -1404,21 +1455,6 @@
compatible = "denx,u-boot-fdt-test"; compatible = "denx,u-boot-fdt-test";
reg = <9 1>; reg = <9 1>;
}; };
fwupd {
compatible = "simple-bus";
firmware0 {
compatible = "fwupd,vbe-simple";
storage = "mmc1";
area-start = <0x400>;
area-size = <0x1000>;
skip-offset = <0x200>;
state-offset = <0x400>;
state-size = <0x40>;
version-offset = <0x800>;
version-size = <0x100>;
};
};
}; };
translation-test@8000 { translation-test@8000 {
@ -1708,3 +1744,7 @@
#include "sandbox_pmic.dtsi" #include "sandbox_pmic.dtsi"
#include "cros-ec-keyboard.dtsi" #include "cros-ec-keyboard.dtsi"
#ifdef CONFIG_SANDBOX_VPL
#include "sandbox_vpl.dtsi"
#endif

View File

@ -7,7 +7,11 @@
#define __asm_spl_h #define __asm_spl_h
enum { enum {
BOOT_DEVICE_MMC1,
BOOT_DEVICE_MMC2,
BOOT_DEVICE_MMC2_2,
BOOT_DEVICE_BOARD, BOOT_DEVICE_BOARD,
BOOT_DEVICE_VBE,
}; };
/** /**

View File

@ -71,7 +71,8 @@ struct sandbox_state {
const char *parse_err; /* Error to report from parsing */ const char *parse_err; /* Error to report from parsing */
int argc; /* Program arguments */ int argc; /* Program arguments */
char **argv; /* Command line arguments */ char **argv; /* Command line arguments */
const char *jumped_fname; /* Jumped from previous U_Boot */ const char *jumped_fname; /* Jumped from previous U-Boot */
const char *prog_fname; /* U-Boot executable filename */
uint8_t *ram_buf; /* Emulated RAM buffer */ uint8_t *ram_buf; /* Emulated RAM buffer */
unsigned long ram_size; /* Size of RAM buffer */ unsigned long ram_size; /* Size of RAM buffer */
const char *ram_buf_fname; /* Filename to use for RAM buffer */ const char *ram_buf_fname; /* Filename to use for RAM buffer */

View File

@ -25,7 +25,7 @@ ENTRY(_start)
SECTIONS SECTIONS
{ {
. = CONFIG_SYS_TEXT_BASE; . = CONFIG_TEXT_BASE;
reloc_dst = .; reloc_dst = .;
PROVIDE (_ftext = .); PROVIDE (_ftext = .);

View File

@ -924,8 +924,8 @@ config CACHE_QOS_SIZE_PER_BIT
config X86_OFFSET_U_BOOT config X86_OFFSET_U_BOOT
hex "Offset of U-Boot in ROM image" hex "Offset of U-Boot in ROM image"
depends on HAVE_SYS_TEXT_BASE depends on HAVE_TEXT_BASE
default SYS_TEXT_BASE default TEXT_BASE
config X86_OFFSET_SPL config X86_OFFSET_SPL
hex "Offset of SPL in ROM image" hex "Offset of SPL in ROM image"

View File

@ -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->size = CONFIG_SYS_MONITOR_LEN; /* We don't know SPL size */
spl_image->entry_point = spl_phase() == PHASE_TPL ? 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->load_addr = spl_image->entry_point;
spl_image->os = IH_OS_U_BOOT; spl_image->os = IH_OS_U_BOOT;
spl_image->name = "U-Boot"; spl_image->name = "U-Boot";

View File

@ -49,7 +49,7 @@ static void quark_setup_mtrr(void)
/* variable range MTRR#0: ROM area */ /* variable range MTRR#0: ROM area */
mask = ~(CONFIG_SYS_MONITOR_LEN - 1); 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), msg_port_write(MSG_PORT_HOST_BRIDGE, MTRR_VAR_PHYBASE(MTRR_VAR_ROM),
base | MTRR_TYPE_WRBACK); base | MTRR_TYPE_WRBACK);
msg_port_write(MSG_PORT_HOST_BRIDGE, MTRR_VAR_PHYMASK(MTRR_VAR_ROM), msg_port_write(MSG_PORT_HOST_BRIDGE, MTRR_VAR_PHYMASK(MTRR_VAR_ROM),

View File

@ -237,15 +237,15 @@ multiboot_header:
/* checksum */ /* checksum */
.long -0x1BADB002 - (1 << 16) .long -0x1BADB002 - (1 << 16)
/* header addr */ /* header addr */
.long multiboot_header - _x86boot_start + CONFIG_SYS_TEXT_BASE .long multiboot_header - _x86boot_start + CONFIG_TEXT_BASE
/* load addr */ /* load addr */
.long CONFIG_SYS_TEXT_BASE .long CONFIG_TEXT_BASE
/* load end addr */ /* load end addr */
.long 0 .long 0
/* bss end addr */ /* bss end addr */
.long 0 .long 0
/* entry addr */ /* entry addr */
.long CONFIG_SYS_TEXT_BASE .long CONFIG_TEXT_BASE
#ifdef CONFIG_X86_LOAD_FROM_32_BIT #ifdef CONFIG_X86_LOAD_FROM_32_BIT
/* /*

View File

@ -15,8 +15,8 @@ SECTIONS
/DISCARD/ : { *(__u_boot_list_2_cmd_*) } /DISCARD/ : { *(__u_boot_list_2_cmd_*) }
#endif #endif
#ifdef CONFIG_SYS_TEXT_BASE #ifdef CONFIG_TEXT_BASE
. = CONFIG_SYS_TEXT_BASE; /* Location of bootcode in flash */ . = CONFIG_TEXT_BASE; /* Location of bootcode in flash */
#endif #endif
__text_start = .; __text_start = .;

View File

@ -15,7 +15,7 @@ SECTIONS
/DISCARD/ : { *(__u_boot_list_2_cmd_*) } /DISCARD/ : { *(__u_boot_list_2_cmd_*) }
#endif #endif
. = CONFIG_SYS_TEXT_BASE; /* Location of bootcode in flash */ . = CONFIG_TEXT_BASE; /* Location of bootcode in flash */
__text_start = .; __text_start = .;
.text.start : { *(.text.start); } .text.start : { *(.text.start); }

View File

@ -162,10 +162,10 @@ int do_elf_reloc_fixups(void)
if (re_src == re_end) if (re_src == re_end)
panic("No relocation data"); panic("No relocation data");
#ifdef CONFIG_SYS_TEXT_BASE #ifdef CONFIG_TEXT_BASE
text_base = CONFIG_SYS_TEXT_BASE; text_base = CONFIG_TEXT_BASE;
#else #else
panic("No CONFIG_SYS_TEXT_BASE"); panic("No CONFIG_TEXT_BASE");
#endif #endif
#if CONFIG_IS_ENABLED(X86_64) #if CONFIG_IS_ENABLED(X86_64)
do_elf_reloc_fixups64(text_base, size, re_src, re_end); do_elf_reloc_fixups64(text_base, size, re_src, re_end);

View File

@ -66,7 +66,7 @@ static int x86_spl_init(void)
* TODO(sjg@chromium.org): We use this area of RAM for the stack * TODO(sjg@chromium.org): We use this area of RAM for the stack
* and global_data in SPL. Once U-Boot starts up and releocates it * and global_data in SPL. Once U-Boot starts up and releocates it
* is not needed. We could make this a CONFIG option or perhaps * is not needed. We could make this a CONFIG option or perhaps
* place it immediately below CONFIG_SYS_TEXT_BASE. * place it immediately below CONFIG_TEXT_BASE.
*/ */
__maybe_unused char *ptr = (char *)0x110000; __maybe_unused char *ptr = (char *)0x110000;
#else #else
@ -209,8 +209,8 @@ static int spl_board_load_image(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev) struct spl_boot_device *bootdev)
{ {
spl_image->size = CONFIG_SYS_MONITOR_LEN; spl_image->size = CONFIG_SYS_MONITOR_LEN;
spl_image->entry_point = CONFIG_SYS_TEXT_BASE; spl_image->entry_point = CONFIG_TEXT_BASE;
spl_image->load_addr = CONFIG_SYS_TEXT_BASE; spl_image->load_addr = CONFIG_TEXT_BASE;
spl_image->os = IH_OS_U_BOOT; spl_image->os = IH_OS_U_BOOT;
spl_image->name = "U-Boot"; spl_image->name = "U-Boot";

View File

@ -26,7 +26,7 @@ DECLARE_GLOBAL_DATA_PTR;
int checkboard (void) int checkboard (void)
{ {
puts("Board: EB+CPU5282 (BuS Elektronik GmbH & Co. KG)\n"); puts("Board: EB+CPU5282 (BuS Elektronik GmbH & Co. KG)\n");
#if (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) #if (CONFIG_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE)
puts(" Boot from Internal FLASH\n"); puts(" Boot from Internal FLASH\n");
#endif #endif
return 0; return 0;

View File

@ -12,7 +12,7 @@ config SYS_SOC
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "som-db5800-som-6867" default "som-db5800-som-6867"
config SYS_TEXT_BASE config TEXT_BASE
default 0xfff00000 default 0xfff00000
config BOARD_SPECIFIC_OPTIONS # dummy config BOARD_SPECIFIC_OPTIONS # dummy

View File

@ -54,9 +54,9 @@ config JUNO_DTB_PART
device tree blob to configure U-Boot. device tree blob to configure U-Boot.
config LNX_KRNL_IMG_TEXT_OFFSET_BASE config LNX_KRNL_IMG_TEXT_OFFSET_BASE
default SYS_TEXT_BASE default TEXT_BASE
config SYS_TEXT_BASE config TEXT_BASE
default 0x88000000 if TARGET_VEXPRESS64_BASE_FVP default 0x88000000 if TARGET_VEXPRESS64_BASE_FVP
default 0xe0000000 if TARGET_VEXPRESS64_JUNO default 0xe0000000 if TARGET_VEXPRESS64_JUNO
default 0x00001000 if TARGET_VEXPRESS64_BASER_FVP default 0x00001000 if TARGET_VEXPRESS64_BASER_FVP

View File

@ -12,7 +12,7 @@ DECLARE_GLOBAL_DATA_PTR;
int board_init(void) int board_init(void)
{ {
/* address of boot parameters */ /* address of boot parameters */
gd->bd->bi_boot_params = CONFIG_SYS_TEXT_BASE + 0x50000; gd->bd->bi_boot_params = CONFIG_TEXT_BASE + 0x50000;
return 0; return 0;
} }

View File

@ -61,13 +61,13 @@ int dram_init_banksize(void)
/* /*
* On this SoC, U-Boot is running as an ELF file. Change the * On this SoC, U-Boot is running as an ELF file. Change the
* relocation address to CONFIG_SYS_TEXT_BASE, so that in * relocation address to CONFIG_TEXT_BASE, so that in
* setup_reloc, gd->reloc_off works out to 0, effectively * setup_reloc, gd->reloc_off works out to 0, effectively
* disabling relocation. Otherwise U-Boot hangs in the setup * disabling relocation. Otherwise U-Boot hangs in the setup
* instructions just before relocate_code in * instructions just before relocate_code in
* arch/arm/lib/crt0.S. * arch/arm/lib/crt0.S.
*/ */
gd->relocaddr = CONFIG_SYS_TEXT_BASE; gd->relocaddr = CONFIG_TEXT_BASE;
return 0; return 0;
} }

View File

@ -89,9 +89,9 @@ please first check:
=> u-boot as single bootloader starting from flash => u-boot as single bootloader starting from flash
in board/cobra5272/config.mk CONFIG_SYS_TEXT_BASE should be in board/cobra5272/config.mk CONFIG_TEXT_BASE should be
CONFIG_SYS_TEXT_BASE = 0xffe00000 CONFIG_TEXT_BASE = 0xffe00000
=> linking address for u-boot as single bootloader stored in flash => linking address for u-boot as single bootloader stored in flash
@ -128,9 +128,9 @@ please modify the settings:
=> u-boot as RAM version, chainloaded by another bootloader or using bdm cable => u-boot as RAM version, chainloaded by another bootloader or using bdm cable
in board/cobra5272/config.mk CONFIG_SYS_TEXT_BASE should be in board/cobra5272/config.mk CONFIG_TEXT_BASE should be
CONFIG_SYS_TEXT_BASE = 0x00020000 CONFIG_TEXT_BASE = 0x00020000
=> target linking address for RAM => target linking address for RAM

View File

@ -425,7 +425,7 @@ int board_late_init(void)
char *end_of_uboot; char *end_of_uboot;
char command[256]; char command[256];
end_of_uboot = (char *)(ulong)(CONFIG_SYS_TEXT_BASE + _end_ofs end_of_uboot = (char *)(ulong)(CONFIG_TEXT_BASE + _end_ofs
+ fdt_totalsize(gd->fdt_blob)); + fdt_totalsize(gd->fdt_blob));
end_of_uboot += 9; end_of_uboot += 9;

View File

@ -11,7 +11,7 @@ config SYS_CONFIG_NAME
default "conga-qeval20-qa3-e3845" if TARGET_CONGA_QEVAL20_QA3_E3845 default "conga-qeval20-qa3-e3845" if TARGET_CONGA_QEVAL20_QA3_E3845
default "theadorable-x86-conga-qa3-e3845" if TARGET_THEADORABLE_X86_CONGA_QA3_E3845 default "theadorable-x86-conga-qa3-e3845" if TARGET_THEADORABLE_X86_CONGA_QA3_E3845
config SYS_TEXT_BASE config TEXT_BASE
default 0xfff00000 default 0xfff00000
config BOARD_SPECIFIC_OPTIONS # dummy config BOARD_SPECIFIC_OPTIONS # dummy

View File

@ -9,7 +9,7 @@ config SYS_VENDOR
config SYS_SOC config SYS_SOC
default "coreboot" default "coreboot"
config SYS_TEXT_BASE config TEXT_BASE
default 0x01110000 default 0x01110000
config BOARD_SPECIFIC_OPTIONS # dummy config BOARD_SPECIFIC_OPTIONS # dummy

View File

@ -9,7 +9,7 @@ config SYS_VENDOR
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "MCR3000" default "MCR3000"
config SYS_TEXT_BASE config TEXT_BASE
default 0x04000000 default 0x04000000
endif endif

View File

@ -124,7 +124,7 @@ NOR Flash is XIP (execute-in-place), so no AIS (or SPL) is needed. The
u-boot.bin is directy flashed, but CONFIT_DA850_LOWLEVEL must be set u-boot.bin is directy flashed, but CONFIT_DA850_LOWLEVEL must be set
to initialize hardware that's normally done by SPL. to initialize hardware that's normally done by SPL.
For this case, CONFIG_SYS_TEXT_BASE=0x60000000 which is the address to For this case, CONFIG_TEXT_BASE=0x60000000 which is the address to
which the bootloader jumps when powered on. which the bootloader jumps when powered on.
Example: Example:

View File

@ -11,7 +11,7 @@ config SYS_CONFIG_NAME
default "dfi-bt700" if TARGET_Q7X_151_DFI_BT700 default "dfi-bt700" if TARGET_Q7X_151_DFI_BT700
default "theadorable-x86-dfi-bt700" if TARGET_THEADORABLE_X86_DFI_BT700 default "theadorable-x86-dfi-bt700" if TARGET_THEADORABLE_X86_DFI_BT700
config SYS_TEXT_BASE config TEXT_BASE
default 0xfff00000 default 0xfff00000
config BOARD_SPECIFIC_OPTIONS # dummy config BOARD_SPECIFIC_OPTIONS # dummy

View File

@ -12,7 +12,7 @@ config SYS_SOC
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "efi-x86_payload" default "efi-x86_payload"
config SYS_TEXT_BASE config TEXT_BASE
default 0x00200000 default 0x00200000
config BOARD_SPECIFIC_OPTIONS # dummy config BOARD_SPECIFIC_OPTIONS # dummy

View File

@ -1,6 +1,6 @@
if TARGET_QEMU_ARM_32BIT || TARGET_QEMU_ARM_64BIT if TARGET_QEMU_ARM_32BIT || TARGET_QEMU_ARM_64BIT
config SYS_TEXT_BASE config TEXT_BASE
default 0x00000000 default 0x00000000
config BOARD_SPECIFIC_OPTIONS # dummy config BOARD_SPECIFIC_OPTIONS # dummy

View File

@ -12,7 +12,7 @@ config SYS_CPU
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "qemu-riscv" default "qemu-riscv"
config SYS_TEXT_BASE config TEXT_BASE
default 0x81200000 if SPL default 0x81200000 if SPL
default 0x80000000 if !RISCV_SMODE default 0x80000000 if !RISCV_SMODE
default 0x80200000 if RISCV_SMODE && ARCH_RV64I default 0x80200000 if RISCV_SMODE && ARCH_RV64I

View File

@ -12,7 +12,7 @@ config SYS_SOC
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "qemu-x86" default "qemu-x86"
config SYS_TEXT_BASE config TEXT_BASE
default 0xfff00000 if !SUPPORT_SPL default 0xfff00000 if !SUPPORT_SPL
default 0x01110000 if SUPPORT_SPL default 0x01110000 if SUPPORT_SPL

View File

@ -9,4 +9,4 @@ BOOT_FROM SD 0x400
SOC_TYPE IMX8QM SOC_TYPE IMX8QM
CONTAINER CONTAINER
IMAGE A35 bl31.bin 0x80000000 IMAGE A35 bl31.bin 0x80000000
IMAGE A35 u-boot.bin CONFIG_SYS_TEXT_BASE IMAGE A35 u-boot.bin CONFIG_TEXT_BASE

View File

@ -9,4 +9,4 @@ BOOT_FROM SD 0x400
SOC_TYPE IMX8QX SOC_TYPE IMX8QX
CONTAINER CONTAINER
IMAGE A35 bl31.bin 0x80000000 IMAGE A35 bl31.bin 0x80000000
IMAGE A35 u-boot.bin CONFIG_SYS_TEXT_BASE IMAGE A35 u-boot.bin CONFIG_TEXT_BASE

View File

@ -188,7 +188,7 @@ void board_init_f(ulong dummy)
* in last boot. * in last boot.
*/ */
if (is_warm_boot()) { if (is_warm_boot()) {
second_uboot = (void (*)(void))CONFIG_SYS_TEXT_BASE; second_uboot = (void (*)(void))CONFIG_TEXT_BASE;
second_uboot(); second_uboot();
} }

View File

@ -439,7 +439,7 @@ void board_init_f(ulong dummy)
* in last boot. * in last boot.
*/ */
if (is_warm_boot()) { if (is_warm_boot()) {
second_uboot = (void (*)(void))CONFIG_SYS_TEXT_BASE; second_uboot = (void (*)(void))CONFIG_TEXT_BASE;
second_uboot(); second_uboot();
} }

View File

@ -15,7 +15,7 @@ config SYS_CONFIG_NAME
config EMMC_BOOT config EMMC_BOOT
bool "Support for booting from EMMC" bool "Support for booting from EMMC"
config SYS_TEXT_BASE config TEXT_BASE
default 0x96000000 if SD_BOOT || EMMC_BOOT default 0x96000000 if SD_BOOT || EMMC_BOOT
default 0x82000000 if TFABOOT default 0x82000000 if TFABOOT
default 0x20100000 default 0x20100000
@ -51,7 +51,7 @@ config SYS_CONFIG_NAME
config EMMC_BOOT config EMMC_BOOT
bool "Support for booting from EMMC" bool "Support for booting from EMMC"
config SYS_TEXT_BASE config TEXT_BASE
default 0x96000000 if SD_BOOT || EMMC_BOOT default 0x96000000 if SD_BOOT || EMMC_BOOT
default 0x82000000 if TFABOOT default 0x82000000 if TFABOOT
default 0x20100000 default 0x20100000

View File

@ -12,7 +12,7 @@ config SYS_SOC
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "chromebook_coral" default "chromebook_coral"
config SYS_TEXT_BASE config TEXT_BASE
default 0xffe00000 default 0xffe00000
config BOARD_SPECIFIC_OPTIONS # dummy config BOARD_SPECIFIC_OPTIONS # dummy

Some files were not shown because too many files have changed in this diff Show More