This patch will add support for updating multiple firmwares using a single capsule image. Following modifications are made for existing firmware update flow 1) Gather and validate capsule image 2) State Machine will be set to capsule processing state. 3) Signature of the capsule image is now stored in reserved region During each reboot until the end of firmware update, stored signature will be compared against the capsule image signature to make sure capsule image is not modified until the end of firmware update. 4) Process Capsule image to gather firmware images 5) Each Firmware image information will be stored in reserved region using FW_UPDATE_COMP_STATUS. Update pending will be marked to update pending state indicating that this image is not processed. 6) Firmware update will use the reserved region comp structures starting with the first image with update pending state, update the comp update pending field to processing and applies the image. After the update, pending field will be updated to Done and updates the status of the update in the component structure and moves on to next image found. 7) After all the component structure in the reserved region updating pending field are set to Done. Firmware update mode is exited. Signed-off-by: Raghava Gudla <raghava.gudla@intel.com>
Slim Bootloader
Welcome to the Slim Bootloader project!
Slim Bootloader is an open-source boot firmware solution, built from the ground up to be secure, lightweight, and highly optimized while leveraging robust tools and libraries from the EDK II framework.
What is a Bootloader?
Just like a typical BIOS, Slim Bootloader is the piece of software responsible for initializing the core hardware components of the system when it is powered on, followed by the loading and launching of the desired operating system.
Slim Bootloader offers the flexibility for OEMs, device manufacturers, and hobbyists to isolate, configure, and optimize for the the specific requirements of the system thereby achieving unparalleled boot performance and minimizing firmware footprint.
Supported Platforms
Slim Bootloader currently has support for Apollo Lake based designs including
- UP Squared maker board
- Intel Leaf Hill customer reference design
Additionally, Slim Bootloader supports booting a virtual machine via QEMU.
Getting Started
Documentation for compiling, using, and extending Slim Bootloader can be found here.
Mailing List
You can subscribe to our mailing list for questions or share your learnings: https://lists.01.org/mailman/listinfo/sbl-devel
Archives: https://lists.01.org/pipermail/sbl-devel/
License
Slim Bootloader is released under the terms of the BSD license.
Please see the LICENSE file for the full terms of the license.