u-boot-brain/common
Samuel Holland cf70553e2c spl: fit: Minimally parse OS properties with FIT_IMAGE_TINY
Some boards, specifically 64-bit Allwinner boards (sun50i), are
extremely limited on SPL size. One strategy that was used to make space
was to remove the FIT "os" property parsing code, because it uses a
rather large lookup table.

However, this forces the legacy FIT parsing code path, which requires
the "firmware" entry in the FIT to reference the U-Boot binary, even if
U-Boot is not the next binary in the boot sequence (for example, on
sun50i boards, ATF is run first).

This prevents the same FIT image from being used with a SPL with
CONFIG_SPL_FIT_IMAGE_TINY=n and CONFIG_SPL_ATF=y, because the boot
method selection code looks at `spl_image.os`, which is only set from
the "firmware" entry's "os" property.

To be able to use CONFIG_SPL_ATF=y, the "firmware" entry in the FIT
must be ATF, and U-Boot must be a loadable. For this to work, we need to
parse the "os" property just enough to tell U-Boot from other images, so
we can find it in the loadables list to append the FDT, and so we don't
try to append the FDT to ATF (which could clobber adjacent firmware).

So add the minimal code necessary to distinguish U-Boot/non-U-Boot
loadables with CONFIG_SPL_FIT_IMAGE_TINY=y. This adds about 300 bytes,
much less than the 7400 bytes added by CONFIG_SPL_FIT_IMAGE_TINY=n.

Acked-by: Patrick Wildt <patrick@blueri.se>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
2020-10-22 11:43:43 +05:30
..
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: fit: Minimally parse OS properties with FIT_IMAGE_TINY 2020-10-22 11:43:43 +05:30
android_ab.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
autoboot.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -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_f: Add default values for bi_dram[] in dram_init_banksize() 2020-08-26 09:19:28 +02:00
board_info.c common: Drop init.h from common header 2020-05-18 17:33:33 -04:00
board_r.c xen: pvblock: Add initial support for para-virtualized block driver 2020-08-14 15:18:30 -04: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: update image OS image size when decompressing 2020-09-11 17:13:56 -04: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 command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cli_readline.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cli_simple.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
cli.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
command.c command: Drop #ifdef for MEM_SUPPORT_64BIT_DATA 2020-07-08 17:21:46 -04:00
common_fit.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
console.c console: Always define the console-recording functions 2020-08-07 22:31:32 -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 fdt_support: skip MTD node with "disabled" in fdt_fixup_mtdparts() 2020-07-25 14:46:57 -06: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 Add support for SHA384 and SHA512 2020-06-12 13:14:07 -04:00
image-sig.c Add support for SHA384 and SHA512 2020-06-12 13:14:07 -04:00
image.c Merge branch 'remove-config-nr-dram-banks-v9-2020-08-26' of https://gitlab.denx.de/u-boot/custodians/u-boot-marvell into next 2020-09-07 14:31:00 -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
Kconfig Kconfig: Move BOARD_TYPES under init options 2020-10-09 12:02:26 -04:00
Kconfig.boot Kconfig: Move DEFAULT_FDT_FILE under boot options 2020-10-09 12:01:55 -04: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 log: Add a way to enable/disable a log device 2020-10-10 16:50:11 -04:00
lynxkdi.c Remove unnecessary instances of DECLARE_GLOBAL_DATA_PTR 2018-04-27 14:54:48 -04:00
main.c common: Drop bootstage.h from common header 2020-05-18 17:33:33 -04:00
Makefile fdt_region: move fdt_region.c to common/ from lib/libfdt/ 2020-04-26 14:23:55 -06: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 stdio: Tidy up the coding style 2020-08-23 13:43:10 -04:00
system_map.c
update.c dfu: fix dfu tftp on sandbox 2020-09-01 14:47:43 +02: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 spl: Allow tiny printf() to be controlled in SPL and TPL 2019-10-08 13:57:45 +08:00