
From: Simon Glass sjg@chromium.org Date: Fri, 2 Jul 2021 12:36:11 -0600
It has come to light that EFI_LOADER adds an extraordinary amount of code to U-Boot. For example, with nokia_rx51 the size delta is about 90KB. About 170 boards explicitly disable the option, but is is clear that many more could, thus saving image size and boot time.
The current situation is affecting U-Boot's image as a svelt bootloader.
EFI_LOADER is required by EBBR, a new boot standard which aims to bring in UEFI protocols to U-Boot. But EBRR is not required for booting. U-Boot already provides support for FIT, the 'bootm' command and a suitable hand-off to Linux. EBRR has made the decision to create a parallel infrastructure, e.g. does not use FIT, nor U-Boot's signing infrastructure.
EBBR should be truly optional, enabled only by boards that use it. Most don't use it but it is enabled anyway. The default boot path should be one that makes use of the existing U-Boot support.
To try to retify this situation, this series adds a new Kconfig option for EBBR so that the naming is more explicit. Then EFI_LOADER is updated to depend on it.
The final patch makes EBBR optional. For now, only sandbox enables EBBR. Other boards can be added as needed, presumably by distributions that require it. Another approach would be to add 'CONFIG_EBBR=y' to the .config before building, in the build system. That might be more friendly to U-Boot users.
This series also fixes a minor issue noticed during testing.
I don't understand why you're pushing this series in a form that still disables EFI_LOADER by default after last weeks discussions.
Changes in v2:
- Update commit message
- Update commit message to be clearer
- Drop 'struct blk_desc'
- Move all header inclusions to the top
- Split out new patch to make EFI_LOADER depend on DM and OF_CONTROL
- Note the approximate size of this feature in the help
- Split out new patch to create an option for EBBR
Simon Glass (9): configs: Resync with savedefconfig Makefile: Drop include/asm directory as well as symlink disk: Tidy up #ifdefs in part_efi Use LIB_UUID with ACPIGEN and FS_BTRFS Allow efi_loader header to be included always lib: Create a new Kconfig option for charset conversion Make EFI_LOADER depend on DM and OF_CONTROL Add an option for EBBR efi: Make EBBR optional
Makefile | 2 +- common/Kconfig.boot | 16 ++ configs/am335x_igep003x_defconfig | 1 - configs/am335x_pdu001_defconfig | 1 - configs/am64x_evm_a53_defconfig | 31 ++- configs/apalis-imx8_defconfig | 1 - configs/apalis-imx8x_defconfig | 1 - configs/aristainetos2c_defconfig | 1 - configs/aristainetos2ccslb_defconfig | 1 - ...edev_cc_v1_0_ultrazedev_som_v1_0_defconfig | 1 - configs/bcm7260_defconfig | 1 - configs/bcm7445_defconfig | 1 - configs/bcm963158_ram_defconfig | 1 - configs/bcm968580xref_ram_defconfig | 1 - configs/bitmain_antminer_s9_defconfig | 1 - configs/bk4r1_defconfig | 1 - configs/brppt1_mmc_defconfig | 1 - configs/brppt1_nand_defconfig | 1 - configs/brppt1_spi_defconfig | 1 - configs/brppt2_defconfig | 1 - configs/brsmarc1_defconfig | 1 - configs/brxre1_defconfig | 1 - configs/cgtqmx8_defconfig | 1 - configs/chromebook_coral_defconfig | 1 - configs/chromebook_link_defconfig | 1 - configs/colibri-imx8x_defconfig | 1 - configs/colibri_vf_defconfig | 1 - configs/controlcenterdc_defconfig | 1 - configs/crs305-1g-4s-bit_defconfig | 1 - configs/crs305-1g-4s_defconfig | 1 - configs/crs326-24g-2s-bit_defconfig | 1 - configs/crs326-24g-2s_defconfig | 1 - configs/crs328-4c-20s-4s-bit_defconfig | 1 - configs/crs328-4c-20s-4s_defconfig | 1 - configs/deneb_defconfig | 1 - configs/draco_defconfig | 2 +- configs/dragonboard820c_defconfig | 1 - configs/efi-x86_app_defconfig | 1 - configs/etamin_defconfig | 2 +- configs/evb-ast2600_defconfig | 1 - configs/evb-px30_defconfig | 1 - configs/evb-rk3308_defconfig | 1 - configs/evb-rk3568_defconfig | 2 +- configs/firefly-px30_defconfig | 1 - configs/ge_bx50v3_defconfig | 1 - configs/giedi_defconfig | 1 - configs/grpeach_defconfig | 1 - configs/imx8mm-cl-iot-gate_defconfig | 8 - configs/imx8qm_mek_defconfig | 1 - configs/imx8qm_rom7720_a1_4G_defconfig | 1 - configs/imx8qxp_mek_defconfig | 1 - configs/j7200_evm_r5_defconfig | 15 +- configs/j721e_evm_r5_defconfig | 13 +- configs/kontron_sl28_defconfig | 2 - configs/kp_imx53_defconfig | 1 - configs/ls1028aqds_tfa_SECURE_BOOT_defconfig | 1 - configs/ls1028aqds_tfa_defconfig | 1 - configs/ls1028aqds_tfa_lpuart_defconfig | 1 - configs/ls1028ardb_tfa_SECURE_BOOT_defconfig | 1 - configs/ls1028ardb_tfa_defconfig | 1 - configs/ls1043aqds_defconfig | 1 - configs/ls1043aqds_lpuart_defconfig | 1 - configs/ls1043aqds_nand_defconfig | 1 - configs/ls1043aqds_nor_ddr3_defconfig | 1 - configs/ls1043aqds_qspi_defconfig | 1 - configs/ls1043aqds_sdcard_ifc_defconfig | 1 - configs/ls1043aqds_sdcard_qspi_defconfig | 1 - configs/ls1043aqds_tfa_SECURE_BOOT_defconfig | 1 - configs/ls1043aqds_tfa_defconfig | 1 - configs/ls1043ardb_SECURE_BOOT_defconfig | 1 - configs/ls1043ardb_defconfig | 1 - configs/ls1043ardb_nand_SECURE_BOOT_defconfig | 1 - configs/ls1043ardb_nand_defconfig | 1 - .../ls1043ardb_sdcard_SECURE_BOOT_defconfig | 1 - configs/ls1043ardb_sdcard_defconfig | 1 - configs/ls1043ardb_tfa_SECURE_BOOT_defconfig | 1 - configs/ls1043ardb_tfa_defconfig | 1 - configs/ls1046aqds_SECURE_BOOT_defconfig | 1 - configs/ls1046aqds_defconfig | 1 - configs/ls1046aqds_lpuart_defconfig | 1 - configs/ls1046aqds_nand_defconfig | 1 - configs/ls1046aqds_qspi_defconfig | 1 - configs/ls1046aqds_sdcard_ifc_defconfig | 1 - configs/ls1046aqds_sdcard_qspi_defconfig | 1 - configs/ls1046aqds_tfa_SECURE_BOOT_defconfig | 1 - configs/ls1046aqds_tfa_defconfig | 1 - configs/ls1046ardb_emmc_defconfig | 1 - configs/ls1046ardb_qspi_SECURE_BOOT_defconfig | 1 - configs/ls1046ardb_qspi_defconfig | 1 - configs/ls1046ardb_qspi_spl_defconfig | 1 - .../ls1046ardb_sdcard_SECURE_BOOT_defconfig | 1 - configs/ls1046ardb_sdcard_defconfig | 1 - configs/ls1046ardb_tfa_SECURE_BOOT_defconfig | 1 - configs/ls1046ardb_tfa_defconfig | 1 - configs/ls1088aqds_qspi_SECURE_BOOT_defconfig | 1 - configs/ls1088aqds_qspi_defconfig | 1 - configs/ls1088aqds_tfa_defconfig | 1 - configs/ls1088ardb_qspi_SECURE_BOOT_defconfig | 1 - configs/ls1088ardb_qspi_defconfig | 1 - configs/ls1088ardb_tfa_SECURE_BOOT_defconfig | 1 - configs/ls1088ardb_tfa_defconfig | 1 - configs/ls2080aqds_SECURE_BOOT_defconfig | 1 - configs/ls2080aqds_defconfig | 1 - configs/ls2080aqds_nand_defconfig | 1 - configs/ls2080aqds_qspi_defconfig | 1 - configs/ls2080aqds_sdcard_defconfig | 1 - configs/ls2080ardb_SECURE_BOOT_defconfig | 1 - configs/ls2080ardb_defconfig | 1 - configs/ls2080ardb_nand_defconfig | 1 - configs/ls2081ardb_defconfig | 1 - configs/ls2088aqds_tfa_defconfig | 1 - configs/ls2088ardb_qspi_SECURE_BOOT_defconfig | 1 - configs/ls2088ardb_qspi_defconfig | 1 - configs/ls2088ardb_tfa_SECURE_BOOT_defconfig | 1 - configs/ls2088ardb_tfa_defconfig | 1 - configs/lx2160aqds_tfa_SECURE_BOOT_defconfig | 1 - configs/lx2160aqds_tfa_defconfig | 1 - configs/lx2160ardb_tfa_SECURE_BOOT_defconfig | 1 - configs/lx2160ardb_tfa_defconfig | 1 - configs/lx2160ardb_tfa_stmm_defconfig | 4 - configs/lx2162aqds_tfa_SECURE_BOOT_defconfig | 1 - configs/lx2162aqds_tfa_defconfig | 1 - .../lx2162aqds_tfa_verified_boot_defconfig | 1 - configs/mt7623n_bpir2_defconfig | 1 - configs/mt7629_rfb_defconfig | 1 - configs/mt8183_pumpkin_defconfig | 1 - configs/mt8516_pumpkin_defconfig | 1 - configs/mvebu_puzzle-m801-88f8040_defconfig | 1 - configs/mx6memcal_defconfig | 1 - configs/octeontx2_95xx_defconfig | 1 - configs/octeontx2_96xx_defconfig | 1 - configs/octeontx_81xx_defconfig | 1 - configs/octeontx_83xx_defconfig | 1 - configs/omap4_sdp4430_defconfig | 1 - configs/opos6uldev_defconfig | 1 - configs/pcm052_defconfig | 1 - configs/phycore-am335x-r2-regor_defconfig | 1 - configs/phycore-am335x-r2-wega_defconfig | 1 - configs/pxm2_defconfig | 2 +- configs/qemu-riscv32_defconfig | 2 - configs/qemu-riscv32_smode_defconfig | 2 - configs/qemu-riscv64_defconfig | 2 - configs/qemu-riscv64_smode_defconfig | 2 - configs/qemu-x86_64_defconfig | 2 - configs/qemu-x86_defconfig | 2 - configs/qemu_arm64_defconfig | 2 - configs/qemu_arm_defconfig | 2 - configs/r8a779a0_falcon_defconfig | 3 +- configs/rastaban_defconfig | 2 +- configs/roc-cc-rk3308_defconfig | 1 - configs/rock-pi-n10-rk3399pro_defconfig | 1 - configs/rock-pi-n8-rk3288_defconfig | 1 - configs/rut_defconfig | 2 +- configs/sama5d27_wlsom1_ek_mmc_defconfig | 1 - .../sama5d27_wlsom1_ek_qspiflash_defconfig | 1 - configs/sama5d2_icp_mmc_defconfig | 1 - configs/sama7g5ek_mmc1_defconfig | 1 - configs/sama7g5ek_mmc_defconfig | 1 - configs/sandbox64_defconfig | 9 - configs/sandbox_defconfig | 9 - configs/sandbox_flattree_defconfig | 2 - configs/sandbox_noinst_defconfig | 2 - configs/sandbox_spl_defconfig | 2 - configs/sipeed_maix_bitm_defconfig | 1 - configs/sipeed_maix_smode_defconfig | 1 - configs/socfpga_de1_soc_defconfig | 1 - configs/somlabs_visionsom_6ull_defconfig | 1 - configs/stemmy_defconfig | 1 - configs/stm32mp15_basic_defconfig | 3 - configs/stm32mp15_trusted_defconfig | 3 - configs/tbs2910_defconfig | 1 - configs/thuban_defconfig | 2 +- configs/tools-only_defconfig | 1 - configs/vf610twr_defconfig | 1 - configs/vf610twr_nand_defconfig | 1 - configs/xenguest_arm64_defconfig | 1 - configs/xilinx_versal_mini_defconfig | 1 - configs/xilinx_versal_mini_emmc0_defconfig | 1 - configs/xilinx_versal_mini_emmc1_defconfig | 1 - configs/xilinx_versal_virt_defconfig | 2 - configs/xilinx_zynqmp_mini_defconfig | 1 - configs/xilinx_zynqmp_mini_emmc0_defconfig | 1 - configs/xilinx_zynqmp_mini_emmc1_defconfig | 1 - configs/xilinx_zynqmp_mini_nand_defconfig | 1 - .../xilinx_zynqmp_mini_nand_single_defconfig | 1 - configs/xilinx_zynqmp_mini_qspi_defconfig | 1 - configs/xilinx_zynqmp_r5_defconfig | 1 - configs/xilinx_zynqmp_virt_defconfig | 9 - configs/zynq_cse_nand_defconfig | 1 - configs/zynq_cse_nor_defconfig | 1 - configs/zynq_cse_qspi_defconfig | 1 - disk/part_efi.c | 11 +- drivers/core/Kconfig | 1 + fs/btrfs/Kconfig | 1 + include/efi_loader.h | 187 +++++++++--------- lib/Kconfig | 8 + lib/Makefile | 2 +- lib/efi_loader/Kconfig | 5 +- 198 files changed, 160 insertions(+), 378 deletions(-)
-- 2.32.0.93.g670b81a890-goog