ast27x0: Add Caliptra Manifest boot support and MCU runtime loader framework

Add initial support for Caliptra Manifest based boot flow on AST2700
and introduce a generic MCU runtime image loader framework.

This change adds full parsing, verification, and loading support for
Caliptra flash images, including manifest header handling, checksum
verification, image table parsing, and SoC manifest processing. A new
boot policy is implemented to prefer Caliptra Manifest boot and fall
back to legacy FIT boot on failure.

Key components introduced in this change:

- Add Caliptra Manifest data structures, image metadata, and helper APIs
(manifest.c, manifest_image.c, manifest.h).
- Introduce ast_loader and stor modules to abstract image lookup and
loading from manifest storage into destination memory.
- Add board-specific manifest boot handling for AST2700, including
BL31, U-Boot, SSP, and TSP image post-processing and release flow.
- Support MCU runtime firmware loading for AST2700 A1/A2 platforms.
- Support SPL and appended DTB discovery for both Caliptra and FIT paths.
- Enable SSP boot flow and chained TSP boot when corresponding firmware
images are present.
- Refactor platform constants into platform_ast2700.h and clean up
address handling and reserved memory parsing.

The implementation is aligned with the MCU runtime design used in the
Zephyr-based reference implementation:
https://github.com/AspeedTech-BMC/aspeed-zephyr-project/tree/aspeed-master/apps/mcu-runtime

This commit establishes the foundation for Caliptra-based boot while
maintaining backward compatibility with existing FIT-based boot
flows.

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
18 files changed
tree: 477cb06d4854198f626ccea3320abf04b3fe9063
  1. ast27x0/
  2. lib/
  3. npcm7xx/
  4. npcm8xx/
  5. .gitignore
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

Virtual Boot ROM for NPCM and ASPEED SoCs

This repository contains simple Boot ROMs for Nuvoton and ASPEED based BMC images that are intended to be used by QEMU when emulating NPCM and ASPEED based machines.

Subdirectories

npcm7xx: This subdir contains Boot ROM for NPCM7XX, a 32-bit ARM image. npcm8xx: This subdir contains Boot ROM for NPCM8XX, a 64-bit ARM image. ast27x0: This subdir contains Boot ROM for AST27X0, a 64-bit ARM image.