u-boot/board
Pali Rohár 2226ca1734 arm: mvebu: Load U-Boot proper binary in SPL code based on kwbimage header
Now that proper load and execution addresses are set in v1 kwbimage we
can use it for loading and booting U-Boot proper.

Use the new spl_parse_board_header() function to implement parsing the
kwbimage v1 header. Use information from this header to locate offset and
size of the U-Boot proper binary, instead of using the legacy U-Boot
header which is prepended to the U-Boot proper binary stored at fixed
offset. This has the advantage that we do not need to relay on legacy
U-Boot header anymore and therefore U-Boot proper binary can be stored at
any offset, as is the case when loading & booting U-Boot proper by
BootROM. The CONFIG_SYS_U_BOOT_OFFS option is therefore not used by SPL
code anymore.

Also allow to compile U-Boot SPL without CONFIG_SPL_SPI_FLASH_SUPPORT,
CONFIG_SPL_MMC_SUPPORT or CONFIG_SPL_SATA_SUPPORT set. In this case
BootROM is used for loading and executing U-Boot proper. This reduces the
size of U-Boot's SPL image. By default these config options are enabled
and so BootROM loading is not used. In some cases BootROM reads from SPI
NOR at lower speed than U-Boot SPL. So people can decide whether they
want to have smaller SPL binary at the cost of slower boot.

Therefore dependency on CONFIG_SPL_DM_SPI, CONFIG_SPL_SPI_FLASH_SUPPORT,
CONFIG_SPL_SPI_LOAD, CONFIG_SPL_SPI_SUPPORT, CONFIG_SPL_DM_GPIO,
CONFIG_SPL_DM_MMC, CONFIG_SPL_GPIO_SUPPORT, CONFIG_SPL_LIBDISK_SUPPORT,
CONFIG_SPL_MMC_SUPPORT, CONFIG_SPL_SATA_SUPPORT and
CONFIG_SPL_LIBDISK_SUPPORT is changed from strict to related "imply"
(which can be selectivelly turned off and causes booting via BootROM).

Options CONFIG_SYS_SPI_U_BOOT_OFFS,
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR and
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET have to to be set to
zero as they define the location where kwbimage header starts. It is the
location where BootROM expects start of the kwbimage from which it reads,
parses and executes SPL part. The same applies to option
CONFIG_SPL_SATA_RAW_U_BOOT_SECTOR, which has to be set to one.

Update all config files to set correct values of these options and set
CONFIG_SYS_U_BOOT_OFFS to the correct value - the offset where U-Boot
proper starts.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
2021-07-31 09:59:58 +02:00
..
abilis/tb100 reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
advantech arm: Remove dms-ba16 board 2021-04-10 07:57:29 -04:00
alliedtelesis ddr: marvell: a38x: add support for twin-die combined memory device 2021-02-26 10:22:29 +01:00
altera Merge branch '2021.04-rc' of https://github.com/lftan/u-boot 2021-01-15 07:55:11 -05:00
amarula/vyasa-rk3288 common: Move serial functions out of common.h 2019-12-02 18:23:11 -05:00
amlogic board: amlogic: vim3: fix phy-names property setup 2021-07-27 10:29:31 +02:00
AndesTech riscv: ae350: Switch to use binman to generate u-boot.itb 2021-05-19 17:01:51 +08:00
Arcturus/ucp1020 i2c: Rename CONFIG_SYS_I2C to CONFIG_SYS_I2C_LEGACY 2021-07-28 14:29:37 -04:00
aries/mcvevk arm: socfpga: Re-add support for Aries MCV SoM and MCVEV[KP] board 2019-05-14 19:52:39 +02:00
aristainetos common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
armadeus/opos6uldev arm: Remove apf27 board 2021-04-10 07:59:35 -04:00
armltd ARM: integrator: Drop PCI support 2021-07-06 14:07:36 -04:00
aspeed configs: aspeed: Add defconfig for AST2600 EVB 2021-01-18 15:23:06 -05:00
astro/mcf5373l common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
atmark-techno/armadillo-800eva reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
atmel arm: Remove at91rm9200ek boards 2021-07-07 22:22:42 -04:00
avionic-design common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
beacon ARM: rmobile: Add missing rcar-common/common.c to Beacon RZG2M kit 2021-05-12 21:36:27 +02:00
beckhoff/mx53cx9020 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
birdland/bav335x arm: Remove bav335x board 2020-07-09 20:58:05 +05:30
bitmain/antminer_s9 xilinx: Introduce board_late_init_xilinx() 2020-04-27 13:57:17 +02:00
bluewater common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bosch am335x, guardian: Enable panel driver Himax HX8238D 2021-07-15 17:56:03 +05:30
boundary/nitrogen6x common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
broadcom treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
bticino/mamoj common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
buffalo/lsxl bootstage: Eliminate when not enabled 2021-07-07 10:17:54 -04:00
BuR brxre1: disable video after DM_VIDEO conversion deadline 2021-06-05 10:40:47 +02:00
BuS/eb_cpu5282 eb_cpu5282: Declare diplay_width / display_height as externs 2021-07-07 10:17:54 -04:00
cadence/xtfpga dm: Rename U_BOOT_DEVICE() to U_BOOT_DRVINFO() 2021-01-05 12:26:35 -07:00
calao/usb_a9263 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
CarMediaLab/flea3 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
cavium/thunderx reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
cei/cei-tk1-som SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
chipspark/popmetal_rk3288 common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
cloudengines/pogo_e02 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
cobra5272 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
compal/paz00 common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
compulab i2c: Rename CONFIG_SYS_I2C to CONFIG_SYS_I2C_LEGACY 2021-07-28 14:29:37 -04:00
comtrend SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
congatec arm: use the correct prototype for reset_cpu function 2021-07-28 19:30:22 -04:00
coreboot x86: coreboot: Use vendor in the Kconfig 2021-07-15 19:50:21 +08:00
cortina reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
cssi common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
CZ.NIC arm: mvebu: turris_omnia: fixup MTD partitions in Linux' DTB 2021-07-19 09:05:30 +02:00
d-link/dns325 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
davinci/da8xxevm common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
devboards/dbm-soc1 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfi x86: dfi: dfi-bt700: Remove dead code 2020-09-01 13:38:39 +08:00
dhelectronics ARM: imx6: Update dhelectronics/dh_imx6/MAINTAINERS file 2021-07-10 15:57:33 +02:00
ea lpc32xx: ea-lpc3250devkitv2: enable i2c (DM) 2021-07-06 14:12:15 -04:00
ebv/socrates arm: socfpga: socrates: make rtc work 2019-04-25 00:00:49 +02:00
eets/pdu001 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi x86: efi: efi-x86_payload: Remove dead code 2020-09-01 13:38:39 +08:00
egnite/ethernut5 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
elgin/elgin_rv1108 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
embest/mx6boards ARM: embestmx6boards: convert mars/riot boards to DM_ETH 2021-04-08 20:29:54 +02:00
emulation efi_capsule: Move signature from DTB to .rodata 2021-07-18 14:43:56 +02:00
engicam Rename SPL_POWER_SUPPORT to SPL_POWER 2021-07-28 14:27:54 -04:00
esd/meesc ppc: Remove caddy2 / vme8349 boards 2021-07-07 19:52:23 -04:00
firefly common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
freescale i2c: Rename SPL/TPL_I2C_SUPPORT to I2C 2021-07-28 14:29:37 -04:00
friendlyarm dm: i2c: use CONFIG_IS_ENABLED macro for DM_I2C/DM_I2C_GPIO 2021-02-21 06:08:00 +01:00
gardena common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
gateworks board: gateworks: venice: remove forced enable of GSC thermal protection 2021-07-10 18:12:42 +02:00
gdsys ppc: Remove controlcenterd boards 2021-04-10 08:04:55 -04:00
ge board: ge: bx50v3: fix crystal bit 2021-05-02 12:46:54 +02:00
geekbuying/geekbox rockchip: rk3368: Migrate to use common board file 2019-07-29 10:27:48 +08:00
google x86: coral: Allow booting from coreboot 2021-07-15 19:50:14 +08:00
grinn common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
hardkernel/odroid_go2 rockchip: board: add Hardkernel Odroid Go2 board 2020-07-22 20:21:23 +08:00
highbank arm: highbank: Update maintainership 2021-04-20 07:31:12 -04:00
hisilicon reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
hoperun/hihope-rzg2 arm: use the correct prototype for reset_cpu function 2021-07-28 19:30:22 -04:00
huawei/hg556a SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ids/ids8313 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
imgtec MIPS: malta: add support for PCI driver model 2021-07-18 20:37:39 +02:00
intel Merge branch 'v2021.04-rc4' of https://github.com/lftan/u-boot 2021-03-08 07:41:40 -05:00
inversepath/usbarmory common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
iomega/iconnect common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
is1 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
isee common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
k+p bootstage: Eliminate when not enabled 2021-07-07 10:17:54 -04:00
keymile ppc: Remove kmcoge4 board 2021-07-07 19:52:24 -04:00
kmc/kzm9g reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
kobol/helios4 arm: mvebu: Load U-Boot proper binary in SPL code based on kwbimage header 2021-07-31 09:59:58 +02:00
kontron/sl28 board: sl28: add config to enable console output on SER0 2021-04-15 14:22:22 +05:30
kosagi/novena common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
l+g/vinco common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
LaCie common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
lego/ev3 Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
lg/sniper sniper: Add build guards around MUSB support code 2021-07-07 22:22:42 -04:00
liebherr reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
logicpd common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Marvell arm: kirkwood: Marvell Sheevaplug: Use Ethernet PHY name and address from device tree 2021-07-19 08:44:18 +02:00
maxbcm common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mediatek board: Add MT8183 pumpkin board support 2021-03-20 16:24:27 -04:00
menlo/m53menlo common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
microchip common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mikrotik/crs3xx-98dx3236 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mqmaker/miqi_rk3288 rockchip: board: rk3288: remove board_boot_order() 2019-07-20 23:59:44 +08:00
mscc common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
myir/mys_6ulx common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
netgear common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
nokia/rx51 Nokia RX-51: Add support for booting kernel in zImage format 2021-07-15 17:56:04 +05:30
novtech/meerkat96 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
nvidia Tegra: remove e2220-1170 board 2021-04-12 17:17:11 -04:00
olimex/mx23_olinuxino mx23_olinuxino: convert MMC to driver model 2021-04-08 23:59:50 +02:00
opalkelly/zynq arm: zynq: Remove low level UART setting 2020-01-14 09:05:53 +01:00
openpiton/riscv64 riscv: dts: add OpenPiton RISC-V board dts support 2021-07-07 20:34:02 +08:00
out4/o4-imx6ull-nano Add EV-iMX280-NANO-X-MB board 2021-06-09 13:32:49 +02:00
phytec Rename SPL_POWER_SUPPORT to SPL_POWER 2021-07-28 14:27:54 -04:00
phytium/durian reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
pine64 rockchip: Add initial support for the Pinebook Pro laptop from Pine64. 2020-05-31 22:22:07 +08:00
ppcag/bg0900 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
qca common: Drop init.h from common header 2020-05-18 17:33:33 -04:00
qualcomm board: dragonboard410c: Fix fastboot 2021-07-23 18:53:46 -04:00
radxa SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
raidsonic/ib62x0 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
raspberrypi/rpi rpi: Add identifier for the new CM4 2021-02-18 11:56:25 +01:00
renesas i2c: Rename CONFIG_SYS_I2C to CONFIG_SYS_I2C_LEGACY 2021-07-28 14:29:37 -04:00
rockchip board: rockchip: Add rk3568 evb support 2021-06-18 14:36:24 +08:00
ronetix First set of u-boot-atmel features for the 2021.10 cycle 2021-06-17 11:46:44 -04:00
sagem/f@st1704 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
samsung ARM: fix LTO for rockchip and samsung 2021-05-24 14:21:30 -04:00
sandbox pytest: add sandbox test for "extension" command 2021-05-13 13:09:09 -04:00
Seagate bootstage: Eliminate when not enabled 2021-07-07 10:17:54 -04:00
seeed imx: Add SeeedStudio NPI-IMX6ULL Support 2021-06-09 13:34:18 +02:00
sfr/nb4_ser SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
siemens Rename SPL_ETH_SUPPORT to SPL_ETH 2021-07-28 14:27:54 -04:00
sifive board: sifive: unmatched: reset USB hub, PCIe-USB bridge, and ULPI device in SPL 2021-07-21 22:25:15 +08:00
silinux/ek874 arm: use the correct prototype for reset_cpu function 2021-07-28 19:30:22 -04:00
sipeed/maix k210: Don't imply CCF 2021-06-17 09:40:58 +08:00
socionext/developerbox board: synquacer: Initialize SCBM SMMU at board_init() 2021-07-23 18:53:45 -04:00
socrates video: remove unused include/mb862xx.h 2021-02-19 22:36:56 +01:00
softing common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
solidrun arm: mvebu: Load U-Boot proper binary in SPL code based on kwbimage header 2021-07-31 09:59:58 +02:00
somlabs/visionsom-6ull i2c: Rename CONFIG_SYS_I2C to CONFIG_SYS_I2C_LEGACY 2021-07-28 14:29:37 -04:00
sr1500 common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
st Rename SPL_POWER_SUPPORT to SPL_POWER 2021-07-28 14:27:54 -04:00
ste/stemmy board: stemmy: Copy atags for booting downstream/vendor kernel 2021-07-14 16:48:12 -04:00
storopack/smegw01 mx7d: Add Storopack's SMEGW01 board 2021-06-09 13:34:38 +02:00
sunxi sunxi: board: Add H616 MMC2 pins 2021-07-10 01:22:09 +01:00
Synology arm: mvebu: ds414: Auto-populate env if appropriate 2021-04-08 08:50:41 +02:00
synopsys reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
sysam common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
syteco/zmx25 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tbs/tbs2910 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tcl/sl50 Rename SPL_ETH_SUPPORT to SPL_ETH 2021-07-28 14:27:54 -04:00
technexion pico-imx6: README: Fix the boot mode settings URL 2021-06-09 13:33:45 +02:00
terasic SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
theadorable Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
theobroma-systems rockchip: rk3399-puma: Increase environment size to 16 kiB. 2021-03-30 16:53:00 +08:00
ti Merge tag 'ti-v2021.10-rc2' of https://source.denx.de/u-boot/custodians/u-boot-ti 2021-07-29 08:20:06 -04:00
timll lpc32xx: Kconfig: switch to CONFIG_CONS_INDEX 2021-07-06 14:11:50 -04:00
topic/zynq board: topic-miami: Set FCLK1 to 150MHz 2020-06-24 13:11:08 +02:00
toradex toradex: configblock: fix module revision in config block 2021-04-20 07:31:12 -04:00
tplink/wdr4300 treewide: Test on CONFIG_USB_HOST (or CONFIG_CMD_USB) not CONFIG_USB 2021-07-18 21:05:31 -04:00
tqc/tqma6 i2c: Rename CONFIG_SYS_I2C to CONFIG_SYS_I2C_LEGACY 2021-07-28 14:29:37 -04:00
udoo ARM: imx: udoo_neo: Convert to ethernet DM 2021-04-20 13:31:35 -04:00
vamrs/rock960_rk3399 rockchip: Remove ARCH= references from documentation 2020-06-02 17:27:04 -04:00
variscite/dart_6ul common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
varisys/common ppc: Remove Cyrus_P5020 and P5040 boards 2021-04-10 08:05:07 -04:00
vocore/vocore2 mips: Add support for SoM "VoCore2". 2020-04-27 20:30:14 +02:00
vscom/baltos Rename SPL_ETH_SUPPORT to SPL_ETH 2021-07-28 14:27:54 -04:00
wandboard MAINTAINERS: Use my personal e-mail address 2021-04-08 20:29:53 +02:00
warp board: warp: add power_max77696_init() function 2021-04-12 14:24:33 -04:00
warp7 MAINTAINERS: Use my personal e-mail address 2021-04-08 20:29:53 +02:00
work-microwave/work_92105 lpc32xx: Kconfig: switch to CONFIG_CONS_INDEX 2021-07-06 14:11:50 -04:00
xen/xenguest_arm64 reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
xes/common ppc: Remove xpedite boards 2021-07-07 19:52:24 -04:00
xilinx arm64: zynqmp: Do not define do_reset() if sysreset is enabled 2021-07-26 09:18:45 +02:00
zyxel/nsa310s arm: kirkwood: NSA310S: Use Ethernet PHY name from device tree 2021-07-19 08:44:15 +02:00