u-boot/board
Tom Rini 9565771076 Merge patch series "bootm: Refactoring to reduce reliance on CMDLINE (part A)"
To quote the author:

It would be useful to be able to boot an OS when CONFIG_CMDLINE is
disabled. This could allow reduced code size.

Standard boot provides a way to handle programmatic boot, without
scripts, so such a feature is possible. The main impediment is the
inability to use the booting features of U-Boot without a command line.
So the solution is to avoid passing command arguments and the like to
code in boot/

A similar process has taken place with filesystems, for example, where
we have (somewhat) separate Kconfig options for the filesystem commands
and the filesystems themselves.

This series starts the process of refactoring the bootm logic so that
it can be called from standard boot without using the command line.
Mostly it removes the use of argc, argv and cmdtbl from the internal
logic.

Some limited tidy-up is included, but this is kept to smaller patches,
rather than trying to remove all #ifdefs etc. Some function comments
are added, however.

A simple programmatic boot is provided as a starting point.

This work will likely take many series, so this is just the start.

Size growth with this series for firefly-rk3288 (Thumb2) is:

       arm: (for 1/1 boards) all +23.0 rodata -49.0 text +72.0

This should be removed by:

   https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/11

but it is not included in this series as it is already large enough.

No functional change is intended in this series.

Changes in v3:
- Add a panic if programmatic boot fails
- Drop RFC tag

Changes in v2:
- Add new patch to adjust position of unmap_sysmem() in boot_get_kernel()
- Add new patch to obtain command arguments
- Fix 'boot_find_os' typo
- Pass in the command name
- Use the command table to provide the command name, instead of "bootm"
2023-12-13 11:51:53 -05:00
..
abilis/tb100 arc: Remove common.h usage 2023-10-24 16:34:45 -04:00
advantech spl: mmc: Introduce proper layering for spl_mmc_get_uboot_raw_sector() 2023-10-17 23:55:10 +02:00
alliedtelesis arm: mvebu: Add Allied Telesis x240 board 2023-07-13 15:53:57 +02:00
altera board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
amarula/vyasa-rk3288 common: Move serial functions out of common.h 2019-12-02 18:23:11 -05:00
amlogic Revert "lib: string: Fix strlcpy return value", fix callers 2023-08-08 17:05:43 -04:00
anbernic/rgxx3_rk3566 rockchip: rk3566-anbernic-rgxx3: Rename defconfig to include SoC name 2023-08-18 10:25:03 -04:00
AndesTech/ae350 riscv: Remove common.h usage 2023-10-24 16:34:45 -04:00
aries/mcvevk board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
aristainetos treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
armadeus/opos6uldev global: Use proper project name U-Boot (next) 2023-06-19 16:45:36 -04:00
armltd corstone1000: update maintainers 2023-08-17 12:29:21 -04:00
aspeed board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
astro/mcf5373l global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
asus board: grouper: convert ASUS Google Nexus 7 (2012) to use DM PMIC 2023-11-28 09:16:55 +02:00
atmel board: sam9x60-curiosity: Let LED subsystem init leds if enabled 2023-08-29 17:39:01 +03:00
avionic-design MAINTAINERS: Add a number of "common" directories 2023-07-25 12:44:47 -04:00
beacon treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
beagle board: beagle: Add BeagleBone AI-64 support 2023-11-22 13:22:24 -05:00
beckhoff/mx53cx9020 video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO 2022-10-30 20:07:17 +01:00
bitmain/antminer_s9 xilinx: Introduce board_late_init_xilinx() 2020-04-27 13:57:17 +02:00
bluewater/gurnard global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
bosch tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
boundary/nitrogen6x Fix usage of CONFIG_PREBOOT 2022-11-21 09:23:00 -05:00
broadcom board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
bsh treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
bticino/mamoj common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
buffalo/lsxl board: lsxl: update the README 2022-08-23 12:40:34 +02:00
BuR MAINTAINERS: Add a number of "common" directories 2023-07-25 12:44:47 -04:00
BuS/eb_cpu5282 global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
cadence/xtfpga global: Migrate CONFIG_ETHBASE to CFG 2022-12-23 10:08:35 -05:00
calao/usb_a9263 global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
cavium/thunderx global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
cei/cei-tk1-som MAINTAINERS: Fix path typos and similar 2023-07-25 12:44:47 -04:00
chipspark/popmetal_rk3288 board: rk3288: add more DT files to MAINTAINERS 2022-04-18 11:25:13 +08:00
cloos/imx8mm_phg treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
cloudengines arm: kirkwood: Pogoplug E02 : Convert Ethernet to Driver Model 2022-02-10 07:12:16 +01:00
cobra5272 global: Use proper project name U-Boot (next2) 2023-09-21 13:20:11 +02:00
compal/paz00 video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO 2022-10-30 20:07:17 +01:00
compulab treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
comtrend board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
conclusive/kstr-sama5d27 board: Add support for Conclusive KSTR-SAMA5D27 2023-10-23 17:07:06 +03:00
congatec treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
coreboot x86: coreboot: Add a sysinfo driver 2023-11-28 12:53:04 -05:00
cortina event: Use an event to replace last_stage_init() 2023-08-31 13:16:55 -04:00
cssi board: cssi: Remove usage of common.h 2023-11-16 18:53:09 -05:00
CZ.NIC turris: Use checkboard() instead of show_board_info() 2023-11-28 12:53:03 -05:00
d-link/dns325 kirkwood: dns325: Enable 2nd harddrive 2023-10-16 11:10:32 +02:00
data_modul spl: mmc: Introduce proper layering for spl_mmc_get_uboot_raw_sector() 2023-10-17 23:55:10 +02:00
davinci/da8xxevm tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
devboards/dbm-soc1 board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
dfi Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
dhelectronics arm64: dts: imx8mp: Add DT overlay describing i.MX8MP DHCOM SoM rev.100 2023-10-16 16:25:10 +02:00
ea global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
ebv/socrates board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
edgeble board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
eets/pdu001 tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
efi board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
egnite/ethernut5 global: Migrate CONFIG_PHY_ID to CFG 2022-12-23 10:14:51 -05:00
elgin/elgin_rv1108 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
embest/mx6boards serial: Rename SERIAL_SUPPORT to SERIAL 2021-09-04 12:26:01 -04:00
emulation Merge patch series "ufs: Add a PCI UFS controller support" 2023-11-27 16:19:09 -05:00
engicam board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
esd/meesc global: Migrate CONFIG_ET1100_BASE to CFG 2022-12-23 10:08:35 -05:00
firefly MAINTAINERS: Add some missing directories or files 2023-07-25 12:44:47 -04:00
freescale treewide: Tidy up semicolon after command macros 2023-12-13 11:51:24 -05:00
friendlyarm treewide: use linux/time.h for time conversion defines 2023-11-16 18:59:58 -05:00
friendlyelec/nanopc-t6-rk3588 board: rockchip: add FriendlyElec NanoPC-T6 rk3588 board 2023-10-23 18:21:55 +08:00
gardena global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
gateworks spl: mmc: Introduce proper layering for spl_mmc_get_uboot_raw_sector() 2023-10-17 23:55:10 +02:00
gdsys event: Use an event to replace last_stage_init() 2023-08-31 13:16:55 -04:00
ge event: Use an event to replace last_stage_init() 2023-08-31 13:16:55 -04:00
geekbuying/geekbox board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
google board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
grinn tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
hardkernel board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
highbank scsi: Forceably finish migration to DM_SCSI 2023-11-07 18:36:06 -05:00
hisilicon doc: add HiSilicon board documentation to HTML docs 2023-11-20 19:06:22 +01:00
hoperun/hihope-rzg2 Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
hpe/gxp Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
htc/endeavoru board: endeavoru: convert HTC One X to use DM PMIC 2023-11-28 09:15:50 +02:00
huawei/hg556a board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
imgtec common: return type board_get_usable_ram_top 2023-08-15 18:21:17 +02:00
intel board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
inteno/xg6846 bmips: Add Inteno XG6846 board 2023-11-06 10:20:21 -05:00
inversepath/usbarmory global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
iomega/iconnect arm: kirkwood: iConnect : Add Ethernet support 2022-02-10 07:12:16 +01:00
is1 board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
isee global: Use proper project name U-Boot 2023-06-12 13:24:31 +02:00
k+p treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
keymile pg-wcom-ls102xa: Include <config.h> in the board file 2023-11-07 14:50:52 -05:00
kobol/helios4 Makefile: Rename u-boot-spl.kwb to u-boot-with-spl.kwb 2022-11-07 07:17:55 +01:00
kontron treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
kosagi/novena input: Remove legacy KEYBOARD option 2022-10-21 13:47:56 -04:00
l+g/vinco MAINTAINERS: Deal with '+' in paths 2023-07-25 12:44:47 -04:00
LaCie MAINTAINERS: Add a number of "common" directories 2023-07-25 12:44:47 -04:00
lego/ev3 tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
lg board: lg-x3: convert LG Optimus 4X and Vu to use DM PMIC 2023-11-28 09:14:54 +02:00
liebherr treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
logicpd tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
Marvell efi: Use the installed SMBIOS tables 2023-09-22 06:05:40 +08:00
maxbcm arm: mvebu: mbus: Fix mbus driver to work also after U-Boot relocation 2022-08-23 12:35:37 +02:00
mediatek board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
menlo common: return type board_get_usable_ram_top 2023-08-15 18:21:17 +02:00
microchip board: microchip: set mac address for ethernet1 on icicle 2023-07-06 17:28:08 +08:00
mikrotik/crs3xx-98dx3236 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mntre/imx8mq_reform2 treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
mqmaker/miqi_rk3288 board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
msc/sm2s_imx8mp arm64: imx8mp: Drop EQoS GPR[1] board workaround 2023-03-30 13:51:33 +02:00
mscc common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
myir/mys_6ulx global: Migrate CONFIG_SYS_FSL* symbols to the CFG_SYS namespace 2022-11-10 10:08:55 -05:00
netgear board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
novtech/meerkat96 imx: Don't define __ASSEMBLY__ in source files 2022-02-08 23:07:58 -05:00
nuvoton board: nuvoton: update console environment variable 2023-11-22 19:11:27 -05:00
nvidia common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
olimex/mx23_olinuxino mx23_olinuxino: convert MMC to driver model 2021-04-08 23:59:50 +02:00
opalkelly/zynq WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
openpiton/riscv64 riscv: Rename SiFive CLINT to RISC-V ALINT 2023-07-12 13:21:40 +08:00
out4/o4-imx6ull-nano imx: Don't define __ASSEMBLY__ in source files 2022-02-08 23:07:58 -05:00
phytec tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
phytium event: Use an event to replace last_stage_init() 2023-08-31 13:16:55 -04:00
pine64 board: rockchip: add Pine64 QuartzPro64 RK3588 board 2023-11-09 11:19:05 +08:00
purism/librem5 board: usb: Replace legacy usb_gadget_handle_interrupts() 2023-09-15 23:38:02 +02:00
qca Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
qualcomm board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
radxa board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
raidsonic/ib62x0 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
raspberrypi/rpi arm: rpi: Switch to a text environment 2023-09-03 23:33:04 +01:00
renesas board: rzg2l: Drop <common.h> 2023-11-02 11:30:19 +01:00
rikomagic/mk808 board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
rockchip board: rockchip: Add Xunlong Orange Pi 5 Plus 2023-10-24 15:55:16 +08:00
ronetix treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
sagem/f@st1704 board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
samsung board: samsung: Fix SYS_CONFIG_NAME configs in axy17lte Kconfig 2023-11-27 18:57:35 +09:00
sandbox sandbox: capsule: Add keys and certificates needed for capsule update testing 2023-08-29 13:37:54 -04:00
schneider/rzn1-snarc rzn1-snarc: Add missing MAINTAINERS file 2023-08-03 15:30:53 -04:00
Seagate arm: kirkwood: Dockstar : Add DM Ethernet 2022-02-10 07:12:16 +01:00
seeed MAINTAINERS: Fix path typos and similar 2023-07-25 12:44:47 -04:00
sfr/nb4_ser board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
siemens siemens,am335x: clean-up draco targets 2023-11-22 19:10:03 -05:00
sifive riscv: Remove common.h usage 2023-10-24 16:34:45 -04:00
silinux/ek874 Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
sipeed/maix riscv: Rename SiFive CLINT to RISC-V ALINT 2023-07-12 13:21:40 +08:00
skyworth/hc2910-2aghd05 arm: histb: hi3798mv200: add initial support for Hi3798MV200 HC2910-2AGHD05 board 2023-05-03 09:05:24 -04:00
socionext/developerbox board: synquacer: Update the flash image layout 2023-10-27 21:02:08 -04:00
socrates powerpc/mpc85xx: socrates: Remove misuse of env is nowhere driver 2023-05-16 16:12:21 -04:00
softing treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
solidrun solidrun: Use checkboard() instead of show_board_info() 2023-11-28 12:53:03 -05:00
somlabs/visionsom-6ull imx: Don't define __ASSEMBLY__ in source files 2022-02-08 23:07:58 -05:00
sr1500 global: Migrate CONFIG_HPS* symbols to the CFG namespace 2022-11-10 10:08:55 -05:00
st Introduce STM32MP2 SoCs family support 2023-11-13 13:35:57 -05:00
starfive/visionfive2 board: starfive: spl: Support jtag for VisionFive2 board 2023-11-02 15:44:56 +08:00
ste/stemmy board: stemmy: Detect board variants and patch DTB 2022-02-28 10:33:45 -05:00
storopack/smegw01 smegw01: Remove misuse of CONFIG_ENV_IS_NOWHERE 2023-10-16 08:46:01 +02:00
sunxi power: pmic: sunxi: add AXP313 SPL driver 2023-11-12 16:47:16 +00:00
Synology MAINTAINERS: Add a number of "common" directories 2023-07-25 12:44:47 -04:00
synopsys arc: Remove common.h usage 2023-10-24 16:34:45 -04:00
sysam board: stmark2: fix clock value 2023-03-15 01:38:19 +01:00
tbs/tbs2910 global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
tcl/sl50 tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
technexion Merge branch 'next' 2023-10-02 10:55:44 -04:00
terasic board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
thead/th1520_lpi4a riscv: t-head: licheepi4a: initial support added 2023-07-12 13:21:41 +08:00
theadorable arm: mvebu: mbus: Fix mbus driver to work also after U-Boot relocation 2022-08-23 12:35:37 +02:00
thecus/n2350 arm: mvebu: Enable gpio-fan for Thecus N2350 board 2023-07-13 10:26:27 +02:00
theobroma-systems rockchip: ringneck-px30: always reset STM32 companion controller on boot 2023-11-10 10:58:56 -05:00
ti board: ti: am62ax: env: Set the boot_targets 2023-11-22 13:46:33 -05:00
timll Convert CONFIG_DM9000_BYTE_SWAPPED et al to Kconfig 2022-12-22 10:31:47 -05:00
topic/zynq board: topic-miami: Set FCLK1 to 150MHz 2020-06-24 13:11:08 +02:00
toradex Merge patch series "sysinfo: Expand sysinfo with some more banner information" 2023-11-28 12:53:14 -05:00
tplink/wdr4300 Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
tq/tqma6 global: Remove extraneous DM_ETH imply/select 2022-12-07 16:04:16 -05:00
traverse fsl-layerscape: drop obsolete PPA secure firmware support 2023-10-10 10:13:32 +08:00
udoo udoo: Use checkboard() instead of show_board_info() 2023-11-28 12:53:04 -05:00
vamrs/rock960_rk3399 MAINTAINERS: Fix path typos and similar 2023-07-25 12:44:47 -04:00
variscite treewide: rework linker symbol declarations in sections header 2023-08-09 09:21:42 -04:00
vocore/vocore2 board: Remove essentially empty board files and Makefiles 2023-10-09 15:24:31 -04:00
vscom/baltos tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
wandboard wandboard: use CONFIG_IS_ENABLED(SATA) instead of ifdef CONFIG_SATA 2023-05-10 16:45:42 -04:00
warp7 warp7: Remove legacy non-DM_ETH code 2022-08-20 21:18:15 -04:00
work-microwave/work_92105 cmd: Convert existing long help messages to the new macro 2023-10-16 10:24:58 -04:00
xen/xenguest_arm64 board: xen: introduce virtio-blk support 2023-10-11 10:46:23 -04:00
xilinx treewide: Tidy up semicolon after command macros 2023-12-13 11:51:24 -05:00
zyxel arm: kirkwood: Add support for ZyXEL NSA325 board 2023-10-16 11:10:42 +02:00