u-boot/lib
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
..
aes u-boot: fit: add support to decrypt fit with aes 2020-01-17 10:16:29 -05:00
at91 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bzip2 dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
crypto dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
dhry SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
efi dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
efi_driver dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
efi_loader efi_loader: Implement FileLoad2 for initramfs loading 2020-02-28 19:37:14 +01:00
efi_selftest efi_driver: fix efi_uc_stop() 2020-01-15 00:51:51 +01:00
libavb dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
libfdt libfdt: Revert 6dcb8ba4 from upstream libfdt 2020-01-30 13:30:35 -05:00
lzma SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lzo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
optee optee: Replace uninitialized return variable by proper one. 2020-01-30 13:30:35 -05:00
rsa dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
tizen SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zlib common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
zstd dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
.gitignore lib: ignore oid_registry_data.c file 2020-01-22 17:47:57 -05:00
addr_map.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
aes.c aes: add support of aes192 and aes256 2020-01-17 10:15:49 -05:00
asm-offsets.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
asn1_decoder.c lib: add asn1 decoder 2019-12-06 16:44:20 -05:00
bch.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
binman.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
bitrev.c lib: bitrev: Sync with Linux kernel v4.17 2018-09-18 00:01:18 -06:00
charset.c lib: charset: add u16_str<n>cmp() 2019-09-20 20:09:19 +02:00
circbuf.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
crc7.c lib: add crc7 from Linux 2011-01-18 23:38:08 +01:00
crc8.c common: Drop linux/crc8.h 2019-12-02 18:23:07 -05:00
crc16.c Roll CRC16-CCITT into the hash infrastructure 2018-12-08 20:18:44 -05:00
crc32.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
crc32c.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ctype.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
date.c lib: add mktime64() for linux compatibility 2019-12-06 16:44:19 -05:00
display_options.c common: Move and rename CONFIG_SYS_SUPPORT_64BIT_DATA 2020-01-17 17:53:52 -05:00
div64.c div64: Don't instrument the division function 2019-04-23 20:26:43 -06:00
errno_str.c lib: errno: sync error codes 2019-10-31 07:22:53 -04:00
errno.c Add basic errno support. 2010-09-19 19:29:47 +02:00
fdtdec_common.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fdtdec_test.c fdtdec: test: Fix memory leak 2019-07-10 16:52:58 -06:00
fdtdec.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
gunzip.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
gzip.c common: Move gzip functions into a new gzip header 2019-08-11 16:43:41 -04:00
hang.c common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
hashtable.c common: Move sorting functions to their own header file 2019-12-02 18:23:08 -05:00
hexdump.c lib: Add hexdump 2018-06-13 07:49:12 -04:00
image-sparse.c mmc: Separate "mmc swrite" from fastboot 2018-05-30 11:59:21 +02:00
Kconfig lib: Kconfig dependencies for pseudo-random library 2020-01-25 12:04:36 -05:00
ldiv.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
linux_compat.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
linux_string.c Make linux kernel string funcs available to tools 2012-12-13 11:46:07 -07:00
list_sort.c dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
lmb.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
lz4_wrapper.c common: Add a new lz4.h header file 2019-12-02 18:23:11 -05:00
lz4.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
Makefile lib: rsa: consider CONFIG_SPL_RSA 2020-01-25 12:04:36 -05:00
md5.c GCC47: Fix warning in md5.c 2012-04-29 14:14:08 +02:00
membuff.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
net_utils.c net: Move the checksum functions to lib/ 2019-12-15 11:43:57 +08:00
of_live.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
oid_registry.c lib: add oid registry utility 2019-12-06 16:44:20 -05:00
panic.c common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
physmem.c sandbox: physmem: Use mapping to support sandbox 2018-12-05 06:01:34 -07:00
qsort.c common: Move sorting functions to their own header file 2019-12-02 18:23:08 -05:00
rand.c common: Move random-number functions into their own header 2019-12-02 18:23:07 -05:00
rbtree.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rc4.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sha1.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sha256.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
slre.c lib/slre: remove superfluous assignment 2018-09-05 16:02:34 -04:00
smbios.c env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
string.c string: Allow arch override of strndup() also 2020-02-05 19:33:46 -07:00
strto.c lib: strto: fix metric suffix parsing in strtoul[l] 2018-09-20 20:11:01 +05:30
tables_csum.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
time.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
tiny-printf.c Fix for patman with email addresses containing commas 2019-11-01 09:34:35 -04:00
tpm-common.c tpm: Fix a logging warning in unpack_byte_string() 2018-12-05 06:01:34 -07:00
tpm-utils.h tpm: Convert to use a device parameter 2018-11-29 09:30:06 -07:00
tpm-v1.c tpm: simplify: tpm_set_global_lock() 2019-02-19 08:55:43 -05:00
tpm-v2.c tpm: Convert to use a device parameter 2018-11-29 09:30:06 -07:00
trace.c trace: provide Sphinx style comments 2020-01-22 17:47:57 -05:00
uuid.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
vsprintf.c lib: Always build support for formatting MAC and IP address 2019-12-09 09:47:41 -06:00
xxhash.c lib: Add xxhash support 2019-05-05 08:48:50 -04:00