u-boot-brain/common
Simon Glass 51bb33846a bootm: Support string substitution in bootargs
In some cases it is necessary to pass parameters to Linux so that it will
boot correctly. For example, the rootdev parameter is often used to
specify the root device. However the root device may change depending on
whence U-Boot loads the kernel. At present it is necessary to build up
the command line by adding device strings to it one by one.

It is often more convenient to provide a template for bootargs, with
U-Boot doing the substitution from other environment variables.

Add a way to substitute strings in the bootargs variable. This allows
things like "rootdev=${rootdev}" to be used in bootargs, with the
${rootdev} substitution providing the UUID of the root device.

For example, to substitute the GUID of the kernel partition:

  setenv bootargs "console=/dev/ttyS0 rootdev=${uuid}/PARTNROFF=1
		kern_guid=${uuid}"
  part uuid mmc 2:2 uuid
  bootm

This is particularly useful when the command line from another place. For
example, Chrome OS stores the command line next to the kernel itself. It
depends on the kernel version being used as well as the hardware features,
so it is extremely difficult to devise a U-Boot script that works on all
boards and kernel versions. With this feature, the command line can be
read from disk and used directly, with a few substitutions set up.

Signed-off-by: Simon Glass <sjg@chromium.org>
2020-12-04 19:48:29 -05:00
..
eeprom SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
init CONFIG_NR_DRAM_BANKS: Remove unreferenced code as its always defined 2020-08-26 09:19:16 +02:00
spl spl: atf: add support for LOAD_IMAGE_V2 2020-12-04 16:09:06 -05:00
android_ab.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
autoboot.c common: rename getc() to getchar() 2020-10-22 09:54:53 -04:00
avb_verify.c avb: Make AVB independent of fastboot 2020-08-24 14:11:13 -04:00
bedbug.c common: Drop asm/ptrace.h from common header 2020-05-18 21:19:23 -04:00
bloblist.c bloblist: Allow custom alignment for blobs 2020-10-06 09:07:54 -06:00
board_f.c board: Show memory for frame buffers 2020-10-22 09:54:52 -04:00
board_info.c common: Drop init.h from common header 2020-05-18 17:33:33 -04:00
board_r.c Pull request for UEFI sub-system for efi-2021-01-rc2 (2) 2020-11-01 10:56:37 -05:00
boot_fit.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
bootm_os.c efi_loader: returning from UEFI FIT images 2020-07-22 12:32:42 +02:00
bootm.c bootm: Support string substitution in bootargs 2020-12-04 19:48:29 -05:00
bootretry.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
bootstage.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
bouncebuf.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
cli_hush.c cmd: Kconfig: migrate CONFIG_SYS_PROMPT_HUSH_PS2 2020-12-01 14:12:28 -05:00
cli_readline.c common: rename getc() to getchar() 2020-10-22 09:54:53 -04:00
cli_simple.c cli: Support macro processing with a fixed-size buffer 2020-12-04 16:10:01 -05:00
cli.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
command.c command: Add constants for cmd_get_data_size string / error 2020-12-01 10:33:38 -05:00
common_fit.c common: fit: add missing newline 2020-11-19 09:45:49 -05:00
console.c common: rename getc() to getchar() 2020-10-22 09:54:53 -04:00
cros_ec.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
ddr_spd.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
dlmalloc.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
dlmalloc.src Consolidate bool type 2013-04-01 16:33:52 -04:00
edid.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
exports.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
fdt_region.c lib: libfdt: fdt_region: avoid NULL pointer access 2020-07-25 14:46:57 -06:00
fdt_support.c spl: fdt: Record load/entry fit-images entries in 64bit format 2020-10-27 08:13:32 +01:00
flash.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
hash.c common: hash: Remove a debug printf statement 2020-06-16 11:36:30 -04:00
hwconfig.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
image-android-dt.c common: image-android-dt: Fix logic in print fdt info routine 2019-08-07 15:31:05 -04:00
image-android.c image: android: fix abootimg support 2020-06-02 13:06:12 -04:00
image-cipher.c fit: cipher: aes: allow to read the IV in the FIT image 2020-10-12 21:30:38 -04:00
image-fdt.c cmd: Fixup DT to pass PStore Ramoops parameters 2020-10-14 11:16:34 -04:00
image-fit-sig.c vboot: add DTB policy for supporting multiple required conf keys 2020-10-12 21:30:37 -04:00
image-fit.c spl: fdt: Record load/entry fit-images entries in 64bit format 2020-10-27 08:13:32 +01:00
image-sig.c Add support for SHA384 and SHA512 2020-06-12 13:14:07 -04:00
image.c cosmetic: image: Fix comments and the order of definitions 2020-10-22 09:54:52 -04:00
iomux.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
iotrace.c common: Drop linux/bug.h from common header 2020-05-18 21:19:23 -04:00
kallsyms.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
Kconfig common: update: add a generic interface for FIT image 2020-10-30 14:20:27 +01:00
Kconfig.boot bootm: Support string substitution in bootargs 2020-12-04 19:48:29 -05:00
kgdb_stubs.c common: Drop asm/ptrace.h from common header 2020-05-18 21:19:23 -04:00
kgdb.c common: Drop asm/ptrace.h from common header 2020-05-18 21:19:23 -04:00
lcd_console_rotation.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lcd_console.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
lcd_simplefb.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lcd.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
log_console.c log: Add a flag to enable log drivers 2020-10-10 16:50:11 -04:00
log_syslog.c log: syslog: Handle errors in net_init 2020-10-10 16:50:12 -04:00
log.c x86: zimage: Add a little more logging 2020-11-06 09:51:34 +08:00
lynxkdi.c Remove unnecessary instances of DECLARE_GLOBAL_DATA_PTR 2018-04-27 14:54:48 -04:00
main.c efi_loader: capsule: add capsule_on_disk support 2020-12-03 21:22:49 +01:00
Makefile common: update: add a generic interface for FIT image 2020-10-30 14:20:27 +01:00
malloc_simple.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
memsize.c common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
menu.c menu: add support for client defined statusline function 2020-05-07 09:01:42 -04:00
miiphyutil.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
s_record.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
splash_source.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
splash.c splash: Fix build warning on 64 bits CPU 2020-06-28 01:03:09 +02:00
stdio.c eb_cpu5282: fix CONFIG_DM_VIDEO build warnings 2020-10-26 20:55:29 +01:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c common: update: fix an "unused" warning against update_flash() 2020-12-03 21:22:49 +01:00
usb_hub.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
usb_kbd.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
usb_storage.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
usb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
xyzModem.c common: rename getc() to getchar() 2020-10-22 09:54:53 -04:00