u-boot/cmd
Sean Anderson bcc85b96b5 cmd: source: Support specifying config name
As discussed previously [1,2], the source command is not safe to use with
verified boot unless there is a key with required = "images" (which has its
own problems). This is because if such a key is absent, signatures are
verified but not required. It is assumed that configuration nodes will
provide the signature. Because the source command does not use
configurations to determine the image to source, effectively no
verification takes place.

To address this, allow specifying configuration nodes. We use the same
syntax as the bootm command (helpfully provided for us by fit_parse_conf).
By default, we first try the default config and then the default image. To
force using a config, # must be present in the command (e.g. `source
$loadaddr#my-conf`). For convenience, the config may be omitted, just like
the address may be (e.g. `source \#`). This also works for images
(`source :` behaves exactly like `source` currently does).

[1] https://lore.kernel.org/u-boot/7d711133-d513-5bcb-52f2-a9dbaa9eeded@prevas.dk/
[2] https://lore.kernel.org/u-boot/042dcb34-f85f-351e-1b0e-513f89005fdd@gmail.com/

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2022-12-31 13:35:19 -05:00
..
arm cmd: exception: arm64: fix undefined, add faults 2022-03-02 13:59:29 -05:00
broadcom global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mvebu Merge branch 'master' into next 2022-09-19 16:07:12 -04:00
riscv cmd/sbi: user friendly short texts 2022-10-20 15:22:15 +08:00
sandbox cmd: sandbox: implement exception command 2020-12-13 07:58:17 -07:00
ti global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
x86 Merge https://source.denx.de/u-boot/custodians/u-boot-x86 2021-08-02 21:35:50 -04:00
.gitignore cmd: rework "license" command 2017-02-08 15:56:28 -05:00
ab_select.c part: Support getting whole disk from part_get_info_by_dev_and_name_or_num 2021-02-26 15:30:55 +01:00
abootimg.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
acpi.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
adc.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
addrmap.c cmd: Add a command to display the address map 2021-03-05 10:25:43 +05:30
adtimg.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
aes.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
armflash.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
avb.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
axi.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
bcb.c cmd: bcb: select user(0) hwpart in __bcb_load() 2022-10-21 21:37:47 -04:00
bdinfo.c video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO 2022-10-30 20:07:17 +01:00
bind.c cmd: bind: Fix driver binding on a device 2021-10-12 14:19:52 +02:00
binop.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
blk_common.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
blkcache.c cmd:Elaborate 'blkcache' cmd HELP statement 2021-08-04 15:58:31 -04:00
blob.c global: Migrate CONFIG_SYS_FSL* symbols to the CFG_SYS namespace 2022-11-10 10:08:55 -05:00
bloblist.c cmd: Add missing check for CONFIG_SYS_LONGHELP 2021-03-27 15:04:30 +13:00
bmp.c video: cmd: Drop old LCD code 2022-10-30 20:07:17 +01:00
boot.c boot: Call flush() before booting 2022-09-24 11:34:38 -04:00
bootcount.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
bootdev.c bootstd: Add a bootdev command 2022-04-25 10:00:04 -04:00
bootefi.c efi_loader: remove efi_delete_handle on loadfile2 2022-10-16 12:23:22 +02:00
bootflow.c bootstd: Support bootflows with global bootmeths 2022-08-12 08:17:11 -04:00
booti.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
bootm.c bootm: Drop #ifdef from do_bootm() 2022-10-17 21:17:12 -06:00
bootmenu.c global: Migrate CONFIG_POSTBOOTMENU to CFG 2022-12-23 10:14:52 -05:00
bootmeth.c bootstd: Allow bootmeths to be marked as global 2022-08-12 08:17:10 -04:00
bootstage.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
bootz.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
btrfs.c treewide: Fix Marek's name and change my e-mail address 2022-07-21 10:14:04 +02:00
button.c dm: treewide: Rename 'platdata' variables to just 'plat' 2020-12-13 16:51:08 -07:00
cache.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cat.c cmd: cat: add new command 2022-10-11 15:40:48 -04:00
cbfs.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
clk.c cmd: clk: fix long help message 2022-02-25 01:41:04 -05:00
clone.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
cls.c video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO 2022-10-30 20:07:17 +01:00
config.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
conitrace.c cmd: conitrace: increase wait for next key 2021-01-13 02:38:01 +01:00
console.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cpu.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
cramfs.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
cros_ec.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
cyclic.c cyclic: switch to using hlist instead of list 2022-11-02 08:41:55 +01:00
dataflash_mmc_mux.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
date.c global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
demo.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
dfu.c cmd/dfu: Enable 'dfu list' command without DFU_OVER_USB 2022-02-11 11:29:23 -05:00
diag.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
disk.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
dm.c dm: core: fix a typo in help text 2022-08-26 16:32:59 -06:00
echo.c cmd: change suppress newline in echo command 2021-01-25 01:15:33 +01:00
eeprom.c cmd: eeprom: don't truncate target address at 32-bit 2022-11-02 13:58:17 -04:00
efi.c efi: Support the efi command in the app 2022-01-15 10:57:22 +01:00
eficonfig.c eficonfig: use efi_get_next_variable_name_int() 2022-12-02 19:17:25 +01:00
eficonfig_sbkey.c eficonfig: add "Show Signature Database" menu entry 2022-11-22 12:00:45 +01:00
efidebug.c efi_loader: utility function to check the variable name is "Boot####" 2022-12-02 19:17:25 +01:00
elf.c boot: Call flush() before booting 2022-09-24 11:34:38 -04:00
erofs.c fs/erofs: add filesystem commands 2022-03-15 16:19:29 -04:00
ethsw.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
event.c event: Add a command 2022-03-10 08:28:36 -05:00
exit.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
ext2.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
ext4.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
extension_board.c cmd: undefined return value of do_extension_apply() 2022-08-04 13:59:59 -04:00
fastboot.c usb: gadget: fastboot: detach usb on reboot commands 2022-10-10 18:08:18 +02:00
fat.c cmd: fat: Use do_save() for fatwrite 2020-10-23 13:33:07 -04:00
fdt.c cmd: fdt: Fix iteration over elements above index 1 in fdt get 2022-11-22 15:13:35 -07:00
flash.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
font.c video: Add commands to list and change fonts 2022-10-30 20:01:40 +01:00
fpga.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
fpgad.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
fs.c cmd: fs: Add command to list supported fs types 2020-07-07 15:36:59 -04:00
fs_uuid.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
fuse.c cmd: fuse: Add a command to read fuses to memory 2022-02-18 18:12:23 +01:00
fwu_mdata.c FWU: cmd: Add a command to read FWU metadata 2022-10-31 14:47:33 -04:00
gettime.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
gpio.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
gpt.c cmd: gpt: add subcommand repair 2022-05-06 14:39:15 -04:00
hash.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
help.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
host.c dm: sandbox: Switch over to using the new host uclass 2022-11-07 16:24:30 -07:00
i2c.c global: Migrate CONFIG_SYS_I2C_DIRECT_BUS to CFG 2022-12-23 10:15:12 -05:00
ide.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
ini.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
io.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
iotrace.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
irq.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
itest.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
jffs2.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
kaslrseed.c cmd: kaslrseed: add command to generate value from hwrng 2021-12-24 10:54:56 +08:00
Kconfig Convert CONFIG_THOR_RESET_OFF to Kconfig 2022-12-22 10:31:48 -05:00
led.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
legacy-mtd-utils.c cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
legacy-mtd-utils.h cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
legacy_led.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
license.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
load.c serial: Call flush() before changing baudrate 2022-09-24 11:34:38 -04:00
log.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
lsblk.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
lzmadec.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mac.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
Makefile eficonfig: add UEFI Secure Boot Key enrollment interface 2022-11-22 12:00:45 +01:00
mbr.c mbr: Correct verification check 2021-11-28 16:51:51 -07:00
md5sum.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mdio.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mem.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
mfsl.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mii.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
misc.c cmd/misc: Stop using a function pointer 2022-06-22 21:29:47 -04:00
mmc.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
mp.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
mtd.c cmd: mtd: check if a block has to be skipped or erased 2022-12-10 14:35:55 +01:00
mtdparts.c configs: remove support of MTDIDS_DEFAULT/MTDPARTS_DEFAULT 2022-12-12 16:46:07 -05:00
mux.c cmd: Add a mux command 2020-10-28 11:49:31 -04:00
nand.c cmd: nand: Extend nand info to print ecc information 2022-12-10 11:11:25 +01:00
net.c net: Remove eth_legacy.c 2022-12-07 16:04:17 -05:00
nvedit.c cmd: env: Add indirect to indirectly set values 2022-04-07 16:50:42 -04:00
nvedit_efi.c cmd: simplify do_env_set_efi() 2022-10-06 22:54:57 +02:00
nvme.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
onenand.c cmd: onenand: fix printf codes 2022-05-05 15:06:02 -04:00
optee_rpmb.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
osd.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
panic.c cmd: add a panic command 2020-07-08 17:21:46 -04:00
part.c cmd: part: list all 128 GPT partitions 2022-01-15 10:57:22 +01:00
pause.c cmd: Add pause command 2022-09-02 13:40:42 -04:00
pcap.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
pci.c pci: Remove duplicate PCI_REGION_IO / "io" line 2022-09-29 10:10:39 -04:00
pinmux.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
pmc.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
pmic.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
printf.c cmd: setexpr: add format string handling 2021-07-27 14:50:47 -04:00
printf.h cmd: setexpr: add format string handling 2021-07-27 14:50:47 -04:00
pstore.c pstore: Support already existing reserved-memory node 2022-02-14 13:03:49 -05:00
pvblock.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
pwm.c cmd: pwm: fix typo 'eisable' -> 'disable' 2022-03-04 15:20:06 -05:00
pxe.c pxe: Allow calling the pxe_get logic directly 2021-11-11 19:02:43 -05:00
qfw.c global: Migrate CONFIG_RAMDISK_ADDR to CFG 2022-12-23 10:15:11 -05:00
read.c dm: core: Support sandbox with read interface 2022-08-12 08:14:24 -04:00
reginfo.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
regulator.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
reiser.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
remoteproc.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
rng.c cmd: rng: Use a statically allocated array for random bytes 2022-08-02 23:50:02 +03:00
rockusb.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
rtc.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
sata.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
sb.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
scp03.c WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
scsi.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
setexpr.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
sf.c Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
sha1sum.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
sleep.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
smccc.c WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
sound.c cmd: fix long text for sound command 2022-12-05 17:43:21 +01:00
source.c cmd: source: Support specifying config name 2022-12-31 13:35:19 -05:00
spi.c spi: spi-uclass: Add new spi_get_bus_and_cs() implementation 2022-05-23 09:33:10 -04:00
spl.c arm: use CONFIG_SUPPORT_PASSING_ATAGS 2021-09-24 14:30:46 -04:00
sqfs.c fs/squashfs: add filesystem commands 2020-08-07 22:31:32 -04:00
stackprot_test.c cmd: wrong printf() code in do_test_stackprot_fail() 2022-02-11 10:52:37 -05:00
strings.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
sysboot.c pxe: Refactor sysboot to have one helper 2021-11-11 19:02:39 -05:00
temperature.c cmd: add temperature command 2022-10-11 15:40:48 -04:00
terminal.c terminal: only serial_reinit_all if available 2021-04-12 17:44:55 -04:00
test.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
thordown.c thor: add support for the dfu_alt_info reintialization from the flashed script 2021-01-31 14:08:56 +01:00
time.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
timer.c cmd: Split out timer command from the sleep command 2020-10-23 13:33:07 -04:00
tlv_eeprom.c cmd: tlv_eeprom 2021-10-21 07:39:05 +02:00
tpm-common.c tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm-user-utils.h tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm-v1.c tpm: Require a digest source when extending the PCR 2022-09-03 16:53:58 +03:00
tpm-v2.c tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm_test.c tpm: Require a digest source when extending the PCR 2022-09-03 16:53:58 +03:00
trace.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
tsi148.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
ubi.c cmd: ubi: Add 'ubi list' command for printing list of all UBI volumes 2022-10-12 08:55:31 -04:00
ubifs.c cmd: ubifs: Do not show usage when command fails 2022-11-23 13:06:12 -05:00
ufs.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
universe.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
unlz4.c lz4: Use a private header for U-Boot 2021-10-09 13:09:56 -04:00
unzip.c sandbox: Enable support for the gzip command 2021-12-26 23:02:19 +01:00
usb.c net: Remove eth_legacy.c 2022-12-07 16:04:17 -05:00
usb_gadget_sdp.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
usb_mass_storage.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
vbe.c vbe: Add a command to show the VBE state 2022-10-31 11:04:00 -04:00
version.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
video.c video: Move the console commands to cmd/ 2022-10-30 19:55:22 +01:00
virtio.c dm: treewide: Do not use the return value of simple uclass iterator 2022-10-29 07:36:33 -06:00
w1.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
wdt.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
wol.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
ximg.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
xxd.c cmd: xxd: add new command 2022-10-11 15:40:48 -04:00
yaffs2.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
zfs.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
zip.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00