u-boot-brain/cmd
Ilias Apalodimas ec80b4735a efi_loader: Implement FileLoad2 for initramfs loading
Following kernel's proposal for an arch-agnostic initrd loading
mechanism [1] let's implement the U-boot counterpart.
This new approach has a number of advantages compared to what we did up
to now. The file is loaded into memory only when requested limiting the
area of TOCTOU attacks. Users will be allowed to place the initramfs
file on any u-boot accessible partition instead of just the ESP one.
Finally this is an attempt of a generic interface across architectures
in the linux kernel so it makes sense to support that.

The file location is intentionally only supported as a config option
argument(CONFIG_EFI_INITRD_FILESPEC), in an effort to enhance security.
Although U-boot is not responsible for verifying the integrity of the
initramfs, we can enhance the offered security by only accepting a
built-in option, which will be naturally verified by UEFI Secure Boot.
This can easily change in the future if needed and configure that via ENV
or UEFI variable.

[1] https://lore.kernel.org/linux-efi/20200207202637.GA3464906@rani.riverdale.lan/T/#m4a25eb33112fab7a22faa0fd65d4d663209af32f

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2020-02-28 19:37:14 +01:00
..
arm cmd: add exception command 2019-04-22 12:06:39 -04:00
mvebu common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
riscv cmd: add exception command 2019-04-22 12:06:39 -04:00
ti common: Move RAM-sizing functions to init.h 2020-01-17 14:02:35 -05:00
x86 x86: Update the fsp command for FSP2 2019-12-15 11:44:19 +08:00
.gitignore cmd: rework "license" command 2017-02-08 15:56:28 -05:00
ab_select.c cmd: Add 'ab_select' command 2019-07-24 13:16:29 -04:00
abootimg.c cmd: abootimg: Add abootimg command 2020-02-04 09:07:24 +05:30
adc.c cmd: adc: Use the sub-command infrastructure 2019-01-15 15:28:54 -05:00
adtimg.c cmd: adtimg: Refactor usage style 2020-01-10 14:18:26 -05:00
aes.c aes: add support of aes192 and aes256 2020-01-17 10:15:49 -05:00
armflash.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
avb.c cmd: avb: Support A/B slots 2019-10-31 07:22:53 -04:00
axi.c cmd: Add axi command 2018-08-11 09:16:08 +02:00
bcb.c cmd: bcb: Apply non-functional refinements 2019-07-24 13:16:29 -04:00
bdinfo.c bdinfo: show multi_dtb_fit 2020-01-07 11:13:26 -05:00
bedbug.c powerpc: remove 4xx support 2017-07-03 17:35:28 -04:00
bind.c cmd: Add bind/unbind commands to bind a device to a driver from the command line 2018-08-21 16:21:37 +02:00
binop.c env: Move env_set() to env.h 2019-08-11 16:43:41 -04:00
blk_common.c cmd/blk_common: clarify no partition error message 2020-01-16 09:39:45 -05:00
blkcache.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
blob.c env: Drop environment.h header file where not needed 2019-08-11 16:43:41 -04:00
bmp.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
boot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootcount.c bootcount: Add bootcount command 2018-05-23 17:30:05 -04:00
bootefi.c efi_loader: fix efi_install_fdt() description 2020-02-19 12:53:36 +01:00
booti.c image: Rename load_addr, save_addr, save_size 2020-01-17 14:02:35 -05:00
bootm.c image: Rename load_addr, save_addr, save_size 2020-01-17 14:02:35 -05:00
bootmenu.c env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
bootstage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootz.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
btrfs.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cache.c common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
cbfs.c cbfs: Move result variable into the struct 2019-08-18 21:54:10 +08:00
clk.c clk: support clk tree dump 2019-08-22 00:10:09 +02:00
cls.c cmd: add clear screen 'cls' command 2018-12-04 19:44:57 +01:00
config.c common: Move gzip functions into a new gzip header 2019-08-11 16:43:41 -04:00
conitrace.c cmd: add conitrace command 2018-09-25 21:49:18 -04:00
console.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cpu.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cramfs.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
cros_ec.c cros_ec: Update cros_ec_read_hash() to specify the image 2018-10-09 04:40:27 -06:00
dataflash_mmc_mux.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
date.c cmd: date: Do not overwrite arguments 2019-02-19 08:55:43 -05:00
demo.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu.c dfu: Add optional timeout parameter 2020-01-07 14:37:50 +01:00
diag.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
disk.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
dm.c cmd: Add command to dump drivers and compatible strings 2020-02-05 19:33:46 -07:00
echo.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eeprom.c cmd/eeprom.c: prepend 0x to hex numbers in output message format 2020-01-10 14:18:26 -05:00
efi.c common: Move sorting functions to their own header file 2019-12-02 18:23:08 -05:00
efidebug.c efi_loader: Implement FileLoad2 for initramfs loading 2020-02-28 19:37:14 +01:00
elf.c cmd/elf.c: Add SPDX tag 2020-02-07 13:59:58 -05:00
ethsw.c net: Always build the string_to_enetaddr() helper 2019-12-09 09:47:41 -06:00
exit.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ext2.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ext4.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fastboot.c cmd: fastboot: handle watchdog while waiting for fastboot commands. 2019-03-16 13:29:43 +01:00
fat.c common: Move functions for loading from fat/ext2 to fs.h 2020-01-17 13:26:49 -05:00
fdt.c env: Move env_set_hex() to env.h 2019-08-11 16:43:41 -04:00
fitupd.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
flash.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fpga.c env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
fpgad.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fs_uuid.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fs.c fs: do_load: pass device path for efi payload 2019-06-20 22:26:20 +00:00
fuse.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gettime.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gpio.c sandbox conversion to SDL2 2020-02-11 10:58:41 -05:00
gpt.c dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
hash.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
help.c Drop linker-generated array creation when CONFIG_CMDLINE is disabled 2019-07-29 09:32:09 -04:00
host.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
i2c.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
ide.c Drop PCMCIA 2019-08-11 19:27:41 -04:00
ini.c env: Drop environment.h header file where not needed 2019-08-11 16:43:41 -04:00
io.c iod: Enhance to support display of multiple values 2019-10-08 13:57:44 +08:00
iotrace.c iotrace: fix behaviour when buffer is full 2018-06-18 14:02:04 -04:00
irq.c common: Move enable/disable_interrupts out of common.h 2019-12-02 18:25:01 -05:00
itest.c cmd: itest: add support for .q size specifier 2019-10-11 19:05:14 -04:00
jffs2.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
Kconfig cmd: mdc/mwc: normalize disjoint MX_CYCLIC usage 2020-02-09 14:58:08 +01:00
led.c cmd/led.c: fix typos in online help 2019-06-21 10:07:11 -04:00
legacy_led.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -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 common: Move gzip functions into a new gzip header 2019-08-11 16:43:41 -04:00
load.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
log.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lzmadec.c env: Move env_set_hex() to env.h 2019-08-11 16:43:41 -04:00
mac.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile cmd: abootimg: Add abootimg command 2020-02-04 09:07:24 +05:30
md5sum.c env: Move env_set() to env.h 2019-08-11 16:43:41 -04:00
mdio.c net: mdio: Clarify code flow Covarity 244085 & 244090 2019-09-04 11:37:18 -05:00
mem.c cmd: mdc/mwc: normalize disjoint MX_CYCLIC usage 2020-02-09 14:58:08 +01:00
mfsl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mii.c cmd: mii: Add the standard 1000BASE-T registers 2019-07-15 13:32:25 -05:00
misc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc.c cmd: mmc: Make Mode: printout consistent 2019-05-04 19:26:49 +02:00
mp.c common: Move older CPU functions to their own header 2019-12-02 18:23:06 -05:00
mtd.c dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
mtdparts.c cmd: mtdparts: Fix build with option ..._SHOW_NET_SIZES 2019-11-07 18:01:13 -05:00
nand.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
net.c common: Move the image globals into image.h 2020-01-17 14:02:35 -05:00
nvedit_efi.c cmd: env: extend "env [set|print] -e" to manage UEFI variables 2019-10-30 17:49:41 +01:00
nvedit.c net: Always build the string_to_enetaddr() helper 2019-12-09 09:47:41 -06:00
nvme.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
onenand.c cmd/onenand.c: block align warning 2016-10-06 20:57:42 -04:00
osd.c cmd: Add osd commands 2018-09-28 18:27:33 +02:00
part.c cmd: part: number: return hexadecimal value 2019-10-04 12:21:23 -04:00
pcap.c net: introduce packet capture support 2019-09-04 11:37:19 -05:00
pci.c cmd: pci: Adjust display of digits for 64bit address and size 2019-08-26 11:46:28 -04:00
pinmux.c cmd: pinmux: Fix warnings when compiling with W=1 2019-07-12 11:50:57 +02:00
pmc.c x86: sandbox: Add a PMC emulator and test 2019-12-15 11:44:11 +08:00
pmic.c pmic: allow dump command for non contiguous register maps 2020-01-27 19:54:20 -05:00
pxe_utils.c cmd: pxe: execute the cls command only when supported 2020-01-22 17:49:25 -05:00
pxe_utils.h cmd: Prepare sysboot command independence 2019-12-06 16:44:18 -05:00
pxe.c common: Move functions for loading from fat/ext2 to fs.h 2020-01-17 13:26:49 -05:00
qfw.c env: Move env_set() to env.h 2019-08-11 16:43:41 -04:00
read.c cmd/read.c: Fix checking blk_dread return value 2017-08-20 09:54:30 -04:00
reginfo.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
regulator.c cmd: add missing line breaks for pr_err() 2018-06-07 20:06:29 -04:00
reiser.c image: Rename load_addr, save_addr, save_size 2020-01-17 14:02:35 -05:00
remoteproc.c cmd: remoteproc: Allow list command to print the probed devices 2019-07-26 21:49:24 -04:00
rng.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
rockusb.c rockchip: use 'arch-rockchip' as header file path 2019-05-01 00:00:05 +02:00
sata.c cmd: sata: Add block unbind device function 2020-01-27 19:54:20 -05:00
sb.c spl: Add support for passing handoff info to U-Boot proper 2018-11-26 08:25:37 -05:00
scsi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
setexpr.c env: Move env_set_hex() to env.h 2019-08-11 16:43:41 -04:00
sf.c cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
sha1sum.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
smccc.c arm64: Add SMC and HVC commands 2018-05-08 09:07:35 -04:00
sound.c dm: sound: Complete migration to driver model 2018-12-13 16:36:41 -07:00
source.c common: Rename and move source() 2020-01-17 14:02:35 -05:00
spi.c cmd: spi: Permit setting bus frequency 2020-01-27 22:27:21 +05:30
spl.c env: Move env_set_hex() to env.h 2019-08-11 16:43:41 -04:00
strings.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sysboot.c cmd: sysboot: Fix checkpatch WARNING/CHECK 2019-12-06 16:44:19 -05:00
terminal.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
test.c cmd: avoid decimal conversion 2019-10-11 15:33:27 -04:00
thordown.c thor: fix error path after g_dnl_register() failure 2019-10-31 12:12:31 +01:00
time.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tlv_eeprom.c cmd: add tlv_eeprom command 2020-01-21 15:56:15 +01:00
tpm_test.c common: Move reset_cpu() to the CPU header 2020-01-17 14:02:31 -05:00
tpm-common.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
tpm-user-utils.h cmd: tpm: add a subcommand device 2020-02-05 19:33:46 -07:00
tpm-v1.c cmd: tpm: add a subcommand device 2020-02-05 19:33:46 -07:00
tpm-v2.c cmd: tpm: add a subcommand device 2020-02-05 19:33:46 -07:00
trace.c env: Move env_set_hex() to env.h 2019-08-11 16:43:41 -04:00
tsi148.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ubi.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
ubifs.c cmd: ubifs: Factor out some checking codes into cmd_ubifs_mount() 2018-09-28 20:22:32 -04:00
ufs.c cmd: Add Support for UFS commands 2019-10-23 20:47:12 -04:00
universe.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
unzip.c env: Move env_set_hex() to env.h 2019-08-11 16:43:41 -04:00
usb_gadget_sdp.c usb: gadget: error out if g_dnl registration fails 2019-06-14 12:39:50 +02:00
usb_mass_storage.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
usb.c usb: Make portspeed return a read-only string 2019-04-09 13:11:45 +02:00
version.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
virtio.c virtio: cmd: Add virtio command for virtio devices 2018-11-14 09:16:27 -08:00
w1.c w1: add command for onewire protocol 2018-09-28 20:22:36 -04:00
wdt.c cmd: add wdt command 2019-04-12 07:04:18 +02:00
wol.c net: Add new wol command - Wake on LAN 2018-07-02 14:14:20 -05:00
ximg.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
yaffs2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
zfs.c zfs: remove unused buf variable 2020-01-23 07:29:58 -05:00
zip.c env: Move env_set_hex() to env.h 2019-08-11 16:43:41 -04:00