u-boot/include
Sean Anderson ab12179b3e arm: imx: Check header before calling spl_load_imx_container
Make sure we have an IMX header before calling spl_load_imx_container,
since if we don't it will fail with -ENOENT. This allows us to fall back to
legacy/raw images if they are also enabled.

This is a functional change, one which likely should have been in place
from the start, but a functional change nonetheless. Previously, all
non-IMX8 images (except FITs without FIT_FULL) would be optimized out if
the only image load method enabled supported IMX8 images. With this change,
support for other image types now has an effect.

There are seven boards with SPL_LOAD_IMX_CONTAINER enabled: three with
SPL_BOOTROM_SUPPORT:

    imx93_11x11_evk_ld imx93_11x11_evk imx8ulp_evk

and four with SPL_MMC:

    deneb imx8qxp_mek giedi imx8qm_mek

All of these boards also have SPL_RAW_IMAGE_SUPPORT and
SPL_LEGACY_IMAGE_FORMAT enabled as well. However, none have FIT support
enabled. Of the six load methods affected by this patch, only SPL_MMC and
SPL_BOOTROM_SUPPORT are enabled with SPL_LOAD_IMX_CONTAINER.
spl_romapi_load_image_seekable does not support legacy or raw images, so
there is no growth. However, mmc_load_image_raw_sector does support loading
legacy/raw images. Since these images could not have been booted before, I
have disabled support for legacy/raw images on these four boards. This
reduces bloat from around 800 bytes to around 200.

There are no in-tree boards with SPL_LOAD_IMX_CONTAINER and AHAB_BOOT both
enabled, so we do not need to worry about potentially falling back to
legacy images in a secure boot scenario.

Future work could include merging imx_container.h with imx8image.h, since
they appear to define mostly the same structures.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-10-17 20:50:52 -04:00
..
acpi x86: Prevent from missing the FADT chaining 2023-09-22 06:03:46 +08:00
asm-generic bloblist: Support initing from multiple places 2023-10-06 14:38:13 -04:00
broadcom
cavium
clk
configs Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2023-10-17 09:15:56 -04:00
cramfs
crypto common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
dm - add Amlogic A1 clock driver 2023-10-16 09:09:54 -04:00
dt-bindings Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2023-10-17 09:15:56 -04:00
env Merge branch 'next' 2023-10-02 10:55:44 -04:00
faraday
firmware/imx/sci
fsl-mc drivers: net: fsl-mc: add support for MC reserved memory 2023-10-10 10:13:33 +08:00
jffs2
k210
keys
linux mtd/spinand: sync supported devices with linux-5.15.43 2023-10-13 10:49:07 +02:00
lzma
meson drivers: introduce Meson Secure Monitor driver 2023-10-15 12:23:48 +02:00
mtd
mvebu
net
power power: regulator: Only run autoset once for each regulator 2023-10-07 16:49:41 +08:00
reboot-mode
renesas pinctrl: renesas: Add RZ/G2L PFC driver 2023-10-16 15:46:18 +02:00
samsung
spmi
tee
test expo: Update tests to include textline 2023-10-11 15:43:55 -04:00
u-boot
usb
valgrind
xen
zfs
_exports.h
abuf.h abuf: Allow incrementing the size 2023-08-25 13:54:33 -04:00
ACEX1K.h
adc.h
addr_map.h
ahci.h
altera.h
android_ab.h
android_bootloader_message.h
android_image.h
ansi.h
api.h
api_public.h
arm_ffa.h arm_ffa: introduce Arm FF-A support 2023-08-08 10:22:03 -04:00
arm_ffa_priv.h arm_ffa: introduce Arm FF-A support 2023-08-08 10:22:03 -04:00
armcoremodule.h
asm-offsets.h
ata.h
atf_common.h
atmel_hlcdc.h
atmel_lcd.h
atmel_lcdc.h
atmel_mci.h
atsha204a-i2c.h
audio_codec.h
autoboot.h
avb_verify.h
axi.h
axp152.h
axp209.h
axp221.h
axp305.h
axp809.h
axp818.h
axp_pmic.h
backlight.h
bcb.h
bcd.h
binman.h
binman_sym.h
bios_emul.h
bitfield.h
blk.h dm: blk: Drop blk_{read,write}_devnum() 2023-10-10 16:25:48 -04:00
blkmap.h
bloblist.h bloblist: Support initing from multiple places 2023-10-06 14:38:13 -04:00
bmp_layout.h
boot_fit.h
bootcount.h
bootdev.h bootstd: Keep track of use of usb stop 2023-09-22 06:05:40 +08:00
bootflow.h bootstd: Add a command to read all files for a bootflow 2023-08-11 07:33:38 -06:00
bootm.h bootstd: cros: Add ARM support 2023-08-11 07:33:40 -06:00
bootmeth.h bootstd: Support bootmeths which can scan any partition 2023-08-25 17:55:19 -04:00
bootretry.h
bootstage.h spl: Remove #ifdefs with BOOTSTAGE 2023-10-06 14:38:12 -04:00
bootstd.h
bouncebuf.h
btrfs.h
bus_vcxk.h
button.h
bzlib.h
cache.h
capitalization.h
cbfs.h
cedit.h expo: cedit: Support reading settings from CMOS RAM 2023-08-25 13:54:33 -04:00
charset.h
circbuf.h
cli.h cli: Add a function to set up a new cread 2023-10-11 15:43:54 -04:00
cli_hush.h
clk-uclass.h clk: Fix typo in header comment 2023-08-19 04:12:53 +02:00
clk.h
clock_legacy.h
cmd_spl.h
command.h command.h: Add a U_BOOT_LONGHELP macro 2023-10-16 10:22:11 -04:00
common.h common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
common_timing_params.h
compiler.h
config_distro_bootcmd.h
config_fallbacks.h
config_fsl_chain_trust.h
config_phylib_all_drivers.h
console.h
cortina.h
cp437.h
cp1250.h
cpsw.h
cpu.h
cpu_func.h
cros_ec.h
cros_ec_message.h
crypt.h
ctype.h
cyclic.h
ddr_spd.h
debug_uart.h
dfu.h
dialog_pmic.h
display.h
display_options.h
div64.h
dm-demo.h
dm.h
dma-uclass.h
dma.h
dsi_host.h
dt-structs.h
dt_table.h
dw_hdmi.h
dwc3-omap-uboot.h board: usb: Replace legacy usb_gadget_handle_interrupts() 2023-09-15 23:38:02 +02:00
dwc3-sti-glue.h
dwc3-uboot.h board: usb: Replace legacy usb_gadget_handle_interrupts() 2023-09-15 23:38:02 +02:00
dwc_ahsata.h
dwmmc.h
e500.h
ec_commands.h
edid.h
eeprom.h
eeprom_field.h
eeprom_layout.h
efi.h
efi_api.h
efi_config.h
efi_default_filename.h
efi_driver.h
efi_dt_fixup.h
efi_load_initrd.h
efi_loader.h efi_loader: use well-known guid for auto-created boot option 2023-10-12 08:32:27 +02:00
efi_riscv.h
efi_rng.h
efi_selftest.h
efi_tcg2.h
efi_variable.h
elf.h
env.h env: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:24 -04:00
env_attr.h
env_callback.h
env_default.h
env_flags.h
env_internal.h
erofs.h
errno.h
eth_phy.h
ethsw.h
event.h event: Rename rest of EVENT_SPY to EVENT_SPY_FULL or EVENT_SPY* 2023-10-11 13:22:32 -04:00
event_internal.h
exception.h
expo.h expo: Add basic support for textline objects 2023-10-11 15:43:55 -04:00
exports.h
ext4fs.h
ext_common.h
extcon.h
extension_board.h
extlinux.h
fastboot-internal.h
fastboot.h
fat.h
fb_mmc.h
fb_nand.h
fdt.h
fdt_region.h
fdt_simplefb.h
fdt_support.h
fdtdec.h
fis.h
flash.h
fm_eth.h
fpga.h fpga: define dummy fpga_load function for debug build 2023-09-21 13:20:11 +02:00
fs.h
fs_internal.h
fs_loader.h
fsl_csu.h
fsl_ddr.h
fsl_ddr_dimm_params.h
fsl_ddr_sdram.h
fsl_ddrc_version.h
fsl_devdis.h
fsl_dspi.h
fsl_dtsec.h
fsl_errata.h
fsl_esdhc.h
fsl_esdhc_imx.h
fsl_fman.h
fsl_ifc.h
fsl_immap.h
fsl_lpuart.h
fsl_mdio.h
fsl_memac.h
fsl_mmdc.h
fsl_pmic.h
fsl_qbman.h
fsl_qe.h
fsl_sec.h
fsl_sec_mon.h
fsl_secboot_err.h
fsl_sfp.h
fsl_tgec.h
fsl_usb.h
fsl_validate.h
fsl_wdog.h
fuse.h
fuzzing_engine.h
fwu.h
fwu_mdata.h
g_dnl.h
gdsys_fpga.h
generic-phy.h
getopt.h
gsc.h
gt64120.h
gzip.h
handoff.h
hang.h
hash.h
hda_codec.h
hexdump.h
host_arch.h
hw_sha.h
hwconfig.h
hwspinlock.h
i2c.h
i2c_eeprom.h
i2s.h
i8042.h
ide.h
image-android-dt.h
image-sparse.h lib: sparse: allocate FASTBOOT_MAX_BLK_WRITE instead of small number 2023-07-25 12:44:46 -04:00
image.h tools: mkimage: Add StarFive SPL image support 2023-09-20 21:05:14 +08:00
imx8image.h
imx_container.h arm: imx: Check header before calling spl_load_imx_container 2023-10-17 20:50:52 -04:00
imx_lpi2c.h
imx_sip.h
imx_thermal.h
imximage.h
init.h event: Use an event to replace last_stage_init() 2023-08-31 13:16:55 -04:00
initcall.h initcall: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:24 -04:00
input.h
inttypes.h
iommu.h
iomux.h
ioports.h
iotrace.h
ipu_pixfmt.h
irq.h irq: Fix typo in header comment 2023-08-19 04:12:53 +02:00
irq_func.h
k3-avs.h
k3-clk.h
k3-ddrss.h
k3-dev.h
key_matrix.h
keyboard.h
kgdb.h
lattice.h
led.h
libata.h
libtizen.h
linker_lists.h
lmb.h lmb: description lmb_is_reserved, lmb_is_reserved_flags 2023-08-15 18:21:17 +02:00
log.h
mailbox-uclass.h
mailbox.h
malloc.h
mapmem.h
marvell_phy.h
mc13892.h
MCD_dma.h
MCD_progCheck.h
MCD_tasksInit.h
media_bus_format.h
memalign.h
membuff.h
menu.h expo: Support handling any key in cedit 2023-10-11 15:43:55 -04:00
micrel.h
miiphy.h
mipi_display.h
mipi_dsi.h
misc.h
mm_communication.h arm_ffa: efi: introduce FF-A MM communication 2023-08-08 10:22:03 -04:00
mmc.h
mpc8xx.h
mpc8xx_irq.h
mpc83xx.h
mpc85xx.h
msc01.h
mtd.h
mtd_node.h
mux-internal.h
mux.h
mv88e6352.h
mvebu_mmc.h
mxs_nand.h
nand.h
ndisc.h
net.h
net6.h net: ipv6: network protocol structures should be packed 2023-07-27 13:39:07 -04:00
netdev.h
ns16550.h pci: serial: Support reading PCI-register size with base 2023-10-06 14:38:13 -04:00
nuvoton_nct6102d.h
nvme.h
nvmem.h
nvmxip.h drivers/mtd/nvmxip: Trigger post bind as probe on driver level 2023-08-30 17:56:21 -04:00
of_live.h dm: core: Add a way to convert a devicetree to a dtb 2023-10-06 14:38:13 -04:00
omap3_spi.h
onenand_uboot.h
opensbi.h
os.h sandbox: Add a way to access persistent test files 2023-08-25 17:55:19 -04:00
p2sb.h
palmas.h
panel.h
part.h part: rename disk_partition_type_uuid() 2023-09-11 16:27:49 -04:00
part_efi.h uuid: Add ChromiumOS partition types 2023-08-25 17:55:19 -04:00
pca953x.h
pch.h
pci.h
pci_ep.h
pci_gt64120.h
pci_ids.h
pci_msc01.h
pci_rom.h
pci_tegra.h
pe.h
phy-mipi-dphy.h
phy-sun4i-usb.h
phy.h net: phy: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:25 -04:00
phy_interface.h
phys2bus.h
physmem.h
post.h post: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:25 -04:00
power-domain-uclass.h
power-domain.h
ppc_asm.tmpl
ppc_defs.h
pvblock.h
pwm.h
pwrseq.h
pxe_utils.h
qfw.h
ram.h
rand.h
rc4.h
regmap.h
reiserfs.h
relocate.h image: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:24 -04:00
remoteproc.h
reset-uclass.h
reset.h
rng.h
rtc.h
rtc_def.h
s_record.h
samsung-usb-phy-uboot.h
sandbox-adc.h
sandbox-clk.h
sandbox-sm.h sandbox: add sandbox sm uclass driver 2023-10-15 12:23:48 +02:00
sandbox_efi_capsule.h test: capsule: Generate EFI capsules through binman 2023-08-29 13:37:54 -04:00
sandbox_host.h blk: sandbox: Support binding a device with a given logical block size 2023-10-10 16:19:43 -04:00
sandboxfs.h
sandboxtee.h
sata.h
scmi_agent-uclass.h firmware: scmi: install base protocol to SCMI agent 2023-10-13 16:59:24 -04:00
scmi_agent.h firmware: scmi: framework for installing additional protocols 2023-10-13 16:59:23 -04:00
scmi_protocols.h firmware: scmi: implement SCMI base protocol 2023-10-13 16:59:23 -04:00
scp03.h
scsi.h scsi: Add buffer_aligned check pass-through 2023-08-22 15:17:53 -04:00
scsi_emul.h
sdhci.h
sdp.h sdp: Use plain udevice for UDC controller interaction 2023-09-15 23:38:02 +02:00
search.h
semihosting.h
semihostingfs.h
serial.h pci: serial: Support reading PCI-register size with base 2023-10-06 14:38:13 -04:00
sh_pfc.h
signatures.h
sl28cpld.h
slre.h
sm-uclass.h drivers: introduce Secure Monitor uclass 2023-10-15 12:23:48 +02:00
sm.h drivers: introduce Secure Monitor uclass 2023-10-15 12:23:48 +02:00
smbios.h
smem.h
smsc_lpc47m.h
smsc_sio1007.h
soc.h
sort.h
sound.h
sparse_defs.h
sparse_format.h
spartan2.h
spartan3.h
spd.h
spd_sdram.h
spi-mem.h
spi.h
spi_flash.h
spl.h spl: fit: Add board level function to decide application of DTO 2023-10-16 16:25:10 +02:00
spl_gpio.h
splash.h
squashfs.h
status_led.h
stdint.h
stdio.h
stdio_dev.h stdio: fix stdio_deregister_dev() 2023-10-09 15:24:31 -04:00
stdlib.h
stm32_rcc.h
stratixII.h
string.h
sunxi_image.h
sy8106a.h
syscon.h
sysinfo.h
sysreset.h
system-constants.h spl: Avoid #ifdef with CONFIG_SPL_PAYLOAD_ARGS_ADDR 2023-10-06 14:38:12 -04:00
tables_csum.h
tca642x.h
tee.h
tegra-kbc.h
thermal.h
thor.h thordown: Use plain udevice for UDC controller interaction 2023-09-15 23:38:02 +02:00
ti-usb-phy-uboot.h
time.h
timer.h timer: document the unit of the timer rate 2023-09-09 06:12:47 +02:00
timestamp.h
tlv_eeprom.h
tmu.h
tpm-common.h
tpm-v1.h
tpm-v2.h
tpm_api.h
tps6586x.h
trace.h
tsec.h
tsi148.h
twl4030.h
twl6030.h
ubi_uboot.h
ubifs_uboot.h
ubispl.h
uboot_aes.h
ufs.h
universe.h
usb.h usb: Return -ENOENT when no devices are found 2023-08-09 23:31:11 +08:00
usb_cdc_acm.h
usb_defs.h
usb_ether.h
usb_mass_storage.h cmd: ums: Use plain udevice for UDC controller interaction 2023-09-15 23:38:02 +02:00
usbdescriptors.h
usbdevice.h
usbroothubdes.h
uuid.h uuid: Move function comments to header file 2023-08-25 17:55:18 -04:00
vbe.h
versalpl.h
version.h
version_string.h
vesa.h
video.h Prepare v2023.10-rc4 2023-09-04 10:51:58 -04:00
video_bridge.h
video_console.h video: Support showing a cursor 2023-10-11 15:43:55 -04:00
video_font.h
video_font_4x6.h
video_font_8x16.h
video_font_data.h
video_font_sun12x22.h
video_font_ter16x32.h
video_osd.h
virtex2.h
virtio.h
virtio_ring.h
virtio_types.h
vsc7385.h
vsc9953.h
vsprintf.h
vxworks.h
w1-eeprom.h
w1.h
wait_bit.h
watchdog.h
wdt.h
winbond_w83627.h
xen.h
xilinx.h
xyzModem.h
zfs_common.h
zynq_bootimg.h
zynqmp_firmware.h firmware: zynqmp: Add support to check feature 2023-09-21 13:20:10 +02:00
zynqmppl.h
zynqpl.h