[PATCH v2 0/6] Fix FIT hash algos in SPL (Fixes v2021.10-rc3)

Alexandru Gagniuc mr.nuke.me at gmail.com
Fri Sep 3 02:54:16 CEST 2021


Simon and I recently worked on killing a bunch extra definitions. One
of the side-effects is that certain hash algorithms won't work in SPL
when used in the context of FIT verification.

For example, in FIT verification, CONFIG_IS_ENABLED(SHA256) is used
(good), but there is no corresponding CONFIG_SPL_SHA256 (bad). This
will always be false for SPL, hence certain "hash" algos are broken.

This series resolves the selection by replacing the broken selection
with hash_lookup_algo(), which does not have the aforementioned
problem. This at the very least allows 'algo = "sha256"' FIT nodes to
work in SPL.

This series does not attempt to add individual SHA/CRC/MD5 configs for
SPL. Hash algo selection for SPL has been problematic even before. This
series is meant as an emergency fix, so it does not attempt to tackle
general refactoring issues.

Changes since v1:
  - Taken in all of Tom's fixes from WIP/30Aug2021 branch
  - CMD_MVEBU_BUBT: select SHA256 if ARMADA_3700 (sha256_update() reference)
  - fsl: FSL_CAAM: imply SPL_CRYPTO (Fixes undefined reference to hw_sha1)
  - Add MD5 to hash_algos[] (Fixes "Can't add hashes to FIT: -93")


Alexandru Gagniuc (6):
  common: Remove unused CONFIG_FIT_SHAxxx selectors
  lib: Drop SHA512_ALGO in lieu of SHA512
  common/spl: Drop [ST]PL_HASH_SUPPORT in favor of [ST]PL_HASH
  common: Move MD5 hash to hash_algo[] array.
  image: Drop if/elseif hash selection in calculate_hash()
  image: Drop IMAGE_ENABLE_{MD5, CRC32} #defines

 arch/arm/mach-socfpga/Kconfig                 |  2 +-
 board/freescale/common/Kconfig                |  1 +
 cmd/mvebu/Kconfig                             |  1 +
 common/Kconfig.boot                           | 32 +--------
 common/Makefile                               |  4 +-
 common/hash.c                                 | 13 ++++
 common/image-fit.c                            | 45 ++++++-------
 common/spl/Kconfig                            | 65 +------------------
 ...s1021atwr_sdcard_ifc_SECURE_BOOT_defconfig |  1 -
 configs/ls1043ardb_nand_SECURE_BOOT_defconfig |  1 -
 .../ls1043ardb_sdcard_SECURE_BOOT_defconfig   |  1 -
 .../ls1046ardb_sdcard_SECURE_BOOT_defconfig   |  1 -
 ...1088ardb_sdcard_qspi_SECURE_BOOT_defconfig |  1 -
 configs/mt8516_pumpkin_defconfig              |  2 +-
 drivers/crypto/fsl/Kconfig                    |  2 +
 include/configs/xilinx_zynqmp.h               |  2 +-
 include/image.h                               | 24 +------
 include/u-boot/md5.h                          |  6 +-
 lib/Kconfig                                   | 12 ++--
 lib/Makefile                                  |  4 +-
 lib/crypt/Kconfig                             |  2 +-
 lib/efi_loader/Kconfig                        |  2 +-
 lib/md5.c                                     |  4 +-
 lib/sha512.c                                  |  2 -
 24 files changed, 59 insertions(+), 171 deletions(-)

-- 
2.31.1



More information about the U-Boot mailing list