mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-06-14 04:16:15 -07:00
f61bb6c116de16d73fdb4b45b5ce6f556bef1414
The steps of OEM key revocation are:
1. Replace OEM KM (signed with key2) by updating CSME
2. Replace BIOS region (signed with key2)
3. Reboot with new BIOS region (to make key1 inactive)
4. Revoke key1
Before this patch, it requires 2 firmware updates and 2 capsules for
step 1~2 and step 4 respectively. The patch combines them into a single
update/capsule.
To implement the feature, the patch:
1. Double max # of payloads to allow CSME/CSMD/BIOS/CMDI update
in one capsule image.
2. Prevent from failing update of a critical component.
e.g., if step 1(CSME) fails, step 2(BIOS) should be skipped
Verified cases:
Case 1: Capsule having CSMD/CSMD/BIOS/CMDI.
Expectation: successful
$ python BootloaderCorePkg/Tools/GenCapsuleFirmware.py \
-p CSME FWUpdate.bin \
-p CSMD CsmeUpdateDriver.efi \
-p BIOS new_BiosRegion.bin \
-p CMDI cmdi.txt \
...(skip)
Case 2: Capsule having CSME/BIOS/CMDI but no CSMD.
Expectation: no update
Case 3: Inject fault flow (no partition switch after first flash),
Capsule having CSME/CSMD/BIOS/CMDI.
Expectation: no CMDI update
Verification: EHL CRB
Signed-off-by: Stanley Chang <stanley.chang@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](https://www.tianocore.org/edk2/) framework. What is a Bootloader? --------------------- Just like a typical [BIOS](https://en.wikipedia.org/wiki/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 ------------------- Please visit [Supported Hardware](https://slimbootloader.github.io/supported-hardware/index.html) page for a list of platforms supported by Slim Bootloader. Platform CI Build Status ------------------------ ============================= ============= ============= ============= ============= Toolchain DEBUGx86 RELEASEx86 DEBUGx64 RELEASEx64 ============================= ============= ============= ============= ============= QEMU_Win_VS2019 |_unknown| |_unknown| |_unknown| |_unknown| QEMU_Lin_GCC5 |qem_l32d| |_unknown| |_unknown| |qem_l64r| APL_Win_VS2019 |apl_w32d| |_unknown| |_unknown| |apl_w64r| APL_Lin_GCC5 |_unknown| |_unknown| |apl_l64d| |_unknown| CFL_Win_VS2019 |_unknown| |cfl_w32r| |cfl_w64d| |_unknown| CFL_Lin_GCC5 |_unknown| |_unknown| |_unknown| |cfl_l64r| CMLV_Win_VS2019 |_unknown| |cmlv_w32r| |cmlv_w64d| |_unknown| CMLV_Lin_GCC5 |_unknown| |_unknown| |_unknown| |cmlv_l64d| CML_Win_VS2019 |_unknown| |cml_w32r| |cfl_w64d| |_unknown| CML_Lin_GCC5 |cml_l32d| |_unknown| |_unknown| |_unknown| EHL_Win_VS2019 |_unknown| |ehl_w32r| |ehl_w64d| |_unknown| EHL_Lin_GCC5 |ehl_l32d| |_unknown| |_unknown| |_unknown| TGL_Win_VS2019 |_unknown| |tgl_w32r| |tgl_w64d| |_unknown| TGL_Lin_GCC5 |tgl_l32d| |_unknown| |_unknown| |_unknown| ============================= ============= ============= ============= ============= Getting Started --------------- Documentation for compiling, using, and extending Slim Bootloader can be found [here](https://slimbootloader.github.io/). Mailing List -------------- You can subscribe to our mailing list for questions or share your learnings: https://groups.io/g/slimbootloader Topic Archive: https://groups.io/g/slimbootloader/topics License ------- Slim Bootloader is released under the terms of the BSD-2-Clause Plus Patent License. Please see the `LICENSE` file for the full terms of the license. Slim Bootloader may include other Open Source Software licensed pursuant to license agreement(s) identified in the applicable source code file(s) and/or file header(s). .. |_unknown| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20UNKNOWN .. |qem_l32d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=QEMU .. |qem_l64r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Linux&configuration=Linux%20QEMU_X64_RELEASE .. |apl_w32d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20APL_X86_DEBUG .. |apl_w64r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20APL_X64_RELEASE .. |apl_l64d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Linux&configuration=Linux%20APL_X64_DEBUG .. |cfl_w32r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20CFL_X86_RELEASE .. |cfl_w64d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20CFL_X64_DEBUG .. |cfl_l64r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Linux&configuration=Linux%20CFL_X64_RELEASE .. |cmlv_w32r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20CMLV_X86_RELEASE .. |cmlv_w64d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20CMLV_X64_DEBUG .. |cmlv_l64d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Linux&configuration=Linux%20CMLV_X64_DEBUG .. |cml_w32r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20CML_X86_RELEASE .. |cml_w64d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20CML_X64_DEBUG .. |cml_l32d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Linux&configuration=Linux%20CML_X86_DEBUG .. |tgl_w32r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20TGL_X86_RELEASE .. |tgl_w64d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20TGL_X64_DEBUG .. |tgl_l32d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Linux&configuration=Linux%20TGL_X86_DEBUG .. |ehl_w32r| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20EHL_X86_RELEASE .. |ehl_w64d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Windows&configuration=Windows%20EHL_X64_DEBUG .. |ehl_l32d| image:: https://dev.azure.com/slimbootloader/slimbootloader/_apis/build/status/slimbootloader.slimbootloader?branchName=master&jobName=Linux&configuration=Linux%20EHL_X86_DEBUG
Languages
C
62.7%
ASL
24.1%
Python
11.5%
Assembly
1.3%