u-boot/arch/arm
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
..
cpu arm64: Update memcpy_{from, to}io() helpers 2021-07-28 19:30:22 -04:00
dts 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
include arm64: Update memcpy_{from, to}io() helpers 2021-07-28 19:30:22 -04:00
lib arm: bootm: Disable LMB reservation for command line and board info on arm64 2021-07-09 12:15:41 -04:00
mach-aspeed common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mach-at91 arm: Remove at91rm9200ek boards 2021-07-07 22:22:42 -04:00
mach-bcm283x reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-bcmstb
mach-cortina
mach-davinci reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-exynos Rename GPIO_SUPPORT to GPIO 2021-07-28 14:29:36 -04:00
mach-highbank
mach-imx Rename GPIO_SUPPORT to GPIO 2021-07-28 14:29:36 -04:00
mach-integrator
mach-ipq40xx dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
mach-k3 arm: mach-k3: Cleanup common start_non_linux_remote_cores() 2021-07-27 11:00:44 +05:30
mach-keystone common: fit: Update board_fit_image_post_process() to pass fit and node_offset 2021-06-11 16:34:52 +05:30
mach-kirkwood i2c: Rename CONFIG_SYS_I2C to CONFIG_SYS_I2C_LEGACY 2021-07-28 14:29:37 -04:00
mach-lpc32xx arm: lpc32xx: add EA LPC3250 DevKitv2 board support 2021-07-06 14:12:14 -04:00
mach-mediatek arm: use the correct prototype for reset_cpu function 2021-07-28 19:30:22 -04:00
mach-meson arm: meson: remove static ethernet link setup 2021-04-06 11:10:29 +02:00
mach-mvebu arm: mvebu: Load U-Boot proper binary in SPL code based on kwbimage header 2021-07-31 09:59:58 +02:00
mach-nexell treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
mach-octeontx reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-octeontx2 reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-omap2 i2c: Rename SPL/TPL_I2C_SUPPORT to I2C 2021-07-28 14:29:37 -04:00
mach-orion5x reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-owl reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-qemu qemu: arm: Initialise virtio devices in board_late_init 2020-12-31 14:41:31 +01:00
mach-rmobile ARM: rmobile: Align CPU: print with other prints 2021-07-20 23:33:54 +02:00
mach-rockchip Rename DRIVERS_MISC_SUPPORT to DRIVERS_MISC 2021-07-28 14:29:37 -04:00
mach-s5pc1xx
mach-snapdragon board: dragonboard410c: Load U-Boot directly without LK 2021-07-23 18:53:45 -04:00
mach-socfpga common: fit: Update board_fit_image_post_process() to pass fit and node_offset 2021-06-11 16:34:52 +05:30
mach-sti
mach-stm32 Rename DRIVERS_MISC_SUPPORT to DRIVERS_MISC 2021-07-28 14:29:37 -04:00
mach-stm32mp Rename DRIVERS_MISC_SUPPORT to DRIVERS_MISC 2021-07-28 14:29:37 -04:00
mach-sunxi i2c: Rename SPL/TPL_I2C_SUPPORT to I2C 2021-07-28 14:29:37 -04:00
mach-tegra Rename GPIO_SUPPORT to GPIO 2021-07-28 14:29:36 -04:00
mach-u8500 board: stemmy: Copy atags for booting downstream/vendor kernel 2021-07-14 16:48:12 -04:00
mach-uniphier reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-versal arm64: versal: Remove gd reference 2021-04-23 08:49:19 +02:00
mach-versatile
mach-zynq reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
mach-zynqmp arm64: zynqmp: Add support for 64bit addresses in its 2021-06-23 09:48:35 +02:00
mach-zynqmp-r5 reset: Remove addr parameter from reset_cpu() 2021-03-02 14:03:02 -05:00
thumb1/include/asm/proc-armv
config.mk ARM: don't use --gc-sections with LTO when using private libgcc 2021-05-24 14:21:30 -04:00
Kconfig Rename GPIO_SUPPORT to GPIO 2021-07-28 14:29:36 -04:00
Kconfig.debug
Makefile