mbox series

[u-boot,v2019.04-aspeed-openbmc,00/11] Use HACE to

Message ID 20210413080755.73572-1-joel@jms.id.au
Headers show
Series Use HACE to | expand

Message

Joel Stanley April 13, 2021, 8:07 a.m. UTC
This series adds support to u-boot to using the HACE hardware in the
AST2600 to perform SHA hashing during boot.

The first five patches rearrange the way the ast2600 SPL boots, using
the common loading code so we can perform FIT verification on the u-boot
proper.

image-fit has been submitted upstream but not merged yet as it broke
boards that were performing hashing but not checking the result(!).

The final four patches add support for HACE and enable it in the emmc
configuration.

I intend to merge these patches into the openbmc u-boot tree while we
wait for upstream to accept the FIT hashing changes.

A large gotcha of enabling the HACE: it will break checking FIT images
that are in SPI NOR. u-boot will try to load the FIT directly from
memory-mapped flash, and the HACE engine can only read from SDRAM
regions. A fallback mechanism would need to be implemented if someone
was interested in supporting FIT + HACE + SPI NOR.

Joel Stanley (11):
  aspeed: Build secboot only when enabled
  ast2600: Specify boot order
  ast2600: Configure emmc boot options
  ast2600: spl: Support common boot devices
  config: ast2600: Enable common eMMC SPL loader
  image-fit: use hashing infra
  hash: Allow for SHA512 hardware implementations
  ast2600: Add HACE to device tree
  clk: aspeed: Add HACE yclk to ast2600
  crypto: Add driver for Aspeed HACE
  configs/openbmc: Enable hw accelerated sha

 arch/arm/dts/ast2600-rainier.dts           |   5 +
 arch/arm/dts/ast2600-tacoma.dts            |   5 +
 arch/arm/dts/ast2600.dtsi                  |   9 +
 arch/arm/dts/ast2600a1-evb.dts             |   4 +
 arch/arm/mach-aspeed/ast2600/Makefile      |   3 +-
 arch/arm/mach-aspeed/ast2600/spl.c         |  16 ++
 common/hash.c                              |  24 +-
 common/image-fit.c                         |  16 +-
 configs/ast2600_openbmc_spl_emmc_defconfig |  12 +-
 drivers/clk/aspeed/clk_ast2600.c           |  22 ++
 drivers/crypto/Kconfig                     |  16 ++
 drivers/crypto/Makefile                    |   1 +
 drivers/crypto/aspeed_hace.c               | 250 +++++++++++++++++++++
 include/configs/aspeed-common.h            |   2 +-
 include/configs/evb_ast2600a1_spl.h        |   4 +
 include/hw_sha.h                           |  26 +++
 lib/Kconfig                                |  15 +-
 17 files changed, 415 insertions(+), 15 deletions(-)
 create mode 100644 drivers/crypto/aspeed_hace.c