u-boot/cmd
Ilias Apalodimas 53f6a5aa86 efi_loader: Replace config option for initrd loading
Up to now we install EFI_LOAD_FILE2_PROTOCOL to load an initrd
unconditionally. Although we correctly return various EFI exit codes
depending on the file status (i.e EFI_NO_MEDIA, EFI_NOT_FOUND etc), the
kernel loader, only falls back to the cmdline interpreted initrd if the
protocol is not installed.

This creates a problem for EFI installers, since they won't be able to
load their own initrd and continue the installation. It also makes the
feature hard to use, since we can either have a single initrd or we have
to recompile u-boot if the filename changes.

So let's introduce a different logic that will decouple the initrd
path from the config option we currently have.
When defining a UEFI BootXXXX we can use the filepathlist and store
a file path pointing to our initrd. Specifically the EFI spec describes:

"The first element of the array is a device path that describes the device
and location of the Image for this load option. Other device paths may
optionally exist in the FilePathList, but their usage is OSV specific"

When the EFI application is launched through the bootmgr, we'll try to
interpret the extra device path. If that points to a file that exists on
our disk, we'll now install the load_file2 and the efi-stub will be able
to use it.

This opens up another path using U-Boot and defines a new boot flow.
A user will be able to control the kernel/initrd pairs without explicit
cmdline args or GRUB.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2021-03-25 20:14:26 +01:00
..
arm command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
broadcom cmd: broadcom: add command for chimp handshake 2020-09-09 16:57:35 -04:00
mvebu cmd: mvebu/bubt: Fix default options in help 2021-02-08 08:53:14 +01:00
riscv cmd/riscv/sbi: support System Reset Extension 2021-02-25 18:06:08 +08:00
sandbox cmd: sandbox: implement exception command 2020-12-13 07:58:17 -07:00
ti common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
x86 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05: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 command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
acpi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
adc.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
addrmap.c cmd: Add a command to display the address map 2021-03-05 10:25:43 +05:30
adtimg.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
aes.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
armflash.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
avb.c cmd: avb: free partition buffer upon verify completion 2020-05-19 14:01:47 -04:00
axi.c cmd: Drop use of old sequence numbers in commands 2020-12-18 20:32:21 -07:00
bcb.c cmd: bcb: Add support for processing const string literals in bcb_set() 2021-01-31 14:08:56 +01:00
bdinfo.c Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
bedbug.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bind.c cmd: bind: allow to bind driver with driver data 2020-08-22 07:58:39 -06:00
binop.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
blk_common.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
blkcache.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
blob.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
bloblist.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bmp.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
boot.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
bootcount.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
bootefi.c efi_loader: Replace config option for initrd loading 2021-03-25 20:14:26 +01:00
booti.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bootm.c image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
bootmenu.c bootmenu: Allow to quit it via ESC/CTRL+C 2021-01-16 14:49:09 -05:00
bootstage.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
bootz.c cmd: bootz: fix device-tree overlap test 2020-08-05 08:18:34 -04:00
btrfs.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04: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
cbfs.c cbfs: Return the error code from file_cbfs_init() 2020-05-27 14:40:09 +08:00
clk.c cmd: clk: correctly handle depth for clk dump 2020-08-24 11:03:26 +02:00
clone.c cmd: fix clone coverity scan 2020-08-24 14:11:31 -04:00
cls.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04: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 dm: Avoid accessing seq directly 2020-12-18 20:32:21 -07:00
cramfs.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cros_ec.c cros_ec: Show events in human-readable form 2021-01-30 14:25:41 -07:00
dataflash_mmc_mux.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
date.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
demo.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
dfu.c dfu: add support for the dfu_alt_info reintialization from the flashed script 2021-01-31 14:08:56 +01:00
diag.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
disk.c image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
dm.c cmd: dm: Fixed/Added DM driver listing subcommands 2020-07-07 15:37:13 -04:00
echo.c cmd: change suppress newline in echo command 2021-01-25 01:15:33 +01:00
eeprom.c dm: i2c: use CONFIG_IS_ENABLED macro for DM_I2C/DM_I2C_GPIO 2021-02-21 06:08:00 +01:00
efi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efidebug.c efi: Fix compiler warnings 2021-03-25 20:08:41 +01:00
elf.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
ethsw.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
exit.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -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
fastboot.c common: Drop linux/stringify.h from common header 2020-05-18 21:19:23 -04:00
fat.c cmd: fat: Use do_save() for fatwrite 2020-10-23 13:33:07 -04:00
fdt.c cmd: fdt: remove CMD_FDT_MAX_DUMP 2020-07-09 18:57:22 -06:00
flash.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
fpga.c image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
fpgad.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
fs_uuid.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
fs.c cmd: fs: Add command to list supported fs types 2020-07-07 15:36:59 -04:00
fuse.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
gettime.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
gpio.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
gpt.c cmd: gpt: add eMMC and GPT support 2021-01-16 14:48:23 -05: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: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
i2c.c dm: i2c: use CONFIG_IS_ENABLED macro for DM_I2C/DM_I2C_GPIO 2021-02-21 06:08:00 +01:00
ide.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
ini.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
io.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
iotrace.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
irq.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
itest.c command: Add constants for cmd_get_data_size string / error 2020-12-01 10:33:38 -05:00
jffs2.c common: Drop linux/bug.h from common header 2020-05-18 21:19:23 -04:00
Kconfig Prepare v2021.04-rc4 2021-03-15 12:15:38 -04:00
led.c dm: treewide: Rename 'platdata' variables to just 'plat' 2020-12-13 16:51:08 -07:00
legacy_led.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -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
license.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
load.c cmd/load: support uploading EFI binary via UART 2021-03-25 20:12:49 +01:00
log.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
lsblk.c dm: treewide: Rename 'platdata' variables to just 'plat' 2020-12-13 16:51:08 -07:00
lzmadec.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
mac.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
Makefile Prepare v2021.04-rc4 2021-03-15 12:15:38 -04:00
mbr.c cmd: Add MBR partition layout control utility 2021-01-15 16:00:32 -05:00
md5sum.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
mdio.c net: Drop dm.h header file from phy.h 2020-08-03 22:19:54 -04:00
mem.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mfsl.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
mii.c net: Drop dm.h header file from phy.h 2020-08-03 22:19:54 -04:00
misc.c dm: Avoid accessing seq directly 2020-12-18 20:32:21 -07:00
mmc.c cmd: mmc: update the mmc command's usage about argument 2021-02-19 15:00:34 +08:00
mp.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
mtd.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
mtdparts.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mux.c cmd: Add a mux command 2020-10-28 11:49:31 -04:00
nand.c image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
net.c sntp: use udp framework 2020-09-30 16:55:03 -04:00
nvedit_efi.c efi_loader: use ':' as separator for setenv -i 2020-08-24 16:37:53 +02:00
nvedit.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
nvme.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
onenand.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
optee_rpmb.c cmd: optee_rpmb command for read/write of rpmb from optee 2020-10-23 16:52:09 +05:30
osd.c cmd: Drop use of old sequence numbers in commands 2020-12-18 20:32:21 -07:00
panic.c cmd: add a panic command 2020-07-08 17:21:46 -04:00
part.c cmd: part: Add subcommand to list supported partition tables 2020-07-07 15:22:42 -04:00
pcap.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
pci.c dm: Avoid accessing seq directly 2020-12-18 20:32:21 -07:00
pinmux.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
pmc.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
pmic.c dm: Avoid accessing seq directly 2020-12-18 20:32:21 -07:00
pstore.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
pvblock.c xen: pvblock: Add initial support for para-virtualized block driver 2020-08-14 15:18:30 -04:00
pwm.c cmd: pwm: Rework argc sanity checking 2021-02-24 16:51:48 -05:00
pxe_utils.c cmd: pxe_utils: sysboot: Add zboot support to boot x86 Linux kernel image 2021-02-03 23:16:44 +08:00
pxe_utils.h common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
pxe.c cmd: pxe: Add relocation to pxe_sub cmds 2020-09-23 14:29:57 +02:00
qfw.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
read.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
reginfo.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
regulator.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
reiser.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
remoteproc.c dm: core: Access device flags through functions 2021-01-05 12:24:41 -07:00
rng.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
rockusb.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
rtc.c rtc: add rtc command 2020-07-09 06:02:45 +02:00
sata.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
sb.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
scp03.c cmd: SCP03: enable and provision command 2021-03-13 13:14:52 -05:00
scsi.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
setexpr.c setexpr: Add support for strings 2020-12-01 10:33:38 -05:00
sf.c cmd: sf: Print error on test failure 2021-02-26 15:48:00 +05:30
sha1sum.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
sleep.c cmd: misc: Fix return value for the sleep command 2021-01-27 17:07:48 -05:00
smccc.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
sound.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
source.c image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
spi.c spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI* 2020-06-29 13:34:43 -04:00
spl.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sqfs.c fs/squashfs: add filesystem commands 2020-08-07 22:31:32 -04:00
strings.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
sysboot.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
terminal.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36: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 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tpm_test.c tpm: Switch TPMv1 over to use the new API 2021-03-02 15:53:37 -05:00
tpm-common.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
tpm-user-utils.h command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
tpm-v1.c tpm: Switch TPMv1 over to use the new API 2021-03-02 15:53:37 -05:00
tpm-v2.c tpm: use more than sha256 on pcr_extend 2020-12-03 21:22:40 +01:00
trace.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
tsi148.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
ubi.c cmd: ubi: don't allow to rename a volume to a name that already exist 2021-01-04 09:10:17 -05:00
ubifs.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
ufs.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
universe.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
unlz4.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
unzip.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
usb_gadget_sdp.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
usb_mass_storage.c cmd: usb_mass_storage: show device interface name 2021-01-31 14:08:56 +01:00
usb.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
version.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
virtio.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
w1.c dm: Avoid accessing seq directly 2020-12-18 20:32:21 -07: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 image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
yaffs2.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
zfs.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
zip.c cmd: zip: fix implicit declaration warning 2020-05-25 11:54:53 -04:00