ast27x0: Add Caliptra Manifest boot support and MCU runtime loader framework - #12
Merged
Merged
Conversation
…a Manifest support Refactor the BootROM image loader to prepare for future SoC Caliptra manifest support. Move FMC scan and FIT parsing/loading logic out of image.c into a dedicated implementation file (fmc_image.c) and add a corresponding header (fmc_image.h). Keep image.c focused on boot entry and boot policy flow, including a placeholder policy step for Caliptra Manifest boot with fallback to the legacy FIT path. Update headers to include stdint.h where required, and adjust Makefile objects to build the new module. This change is a pure refactor with no intended functional behavior change. It cleans up the code base and provides a clear separation between boot policy and image-format-specific logic, which will be extended by a future Caliptra manifest loader. Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
…amework 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>
Contributor
Author
|
Could you please help review this PR? This PR adds support for the new Caliptra Manifest image format and maintains compatibility with the existing FIT image format. I will remove the U-Boot FIT image support once AST2700 A1 is no longer required to be supported. Thanks-Jamin |
haowu4682
approved these changes
Jan 9, 2026
haowu4682
approved these changes
Jan 9, 2026
VinceChang6637
pushed a commit
to AspeedTech-BMC/openbmc
that referenced
this pull request
Jan 23, 2026
Update the pre-built vbootrom image to support AST2700 A1 and A2 boot flows in QEMU. The updated vbootrom supports the following boot scenarios: - Caliptra manifest boot for AST2700 A1 - Caliptra manifest boot for AST2700 A2 - U-Boot FIT image boot for AST2700 A1 - TSP and SSP support Souce Code: [Upstream: Under review] google/vbootrom#12 Build and run commands: bitbake -c cleanall qemu-native qemu-system-native qemu-helper-native obmc-phosphor-image bitbake obmc-phosphor-image runqemu serialstdio slirp Log: ``` Build Date : Dec 29 2025 07:29:23 FW Version : git-56de722 ``` Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Change-Id: Idcfd44c5efbc3afa1bb5d1332c42175137c36853
VinceChang6637
pushed a commit
to AspeedTech-BMC/openbmc
that referenced
this pull request
Jan 23, 2026
Build Info ``` Build Date : Jan 8 2026 05:01:13 FW Version : git-17daef6 ``` Souce Code: [Upstream: Under review] google/vbootrom#12 Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Change-Id: Ie038d825513a42ac641a72b294703cd0fc72e974
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
The implementation is aligned with the MCU runtime design used in the Zephyr-based reference implementation:
This commit establishes the foundation for Caliptra-based boot while maintaining backward compatibility with existing FIT-based boot flows.