From 972fc210017ce427ebd143bf64f41444a73ebdca Mon Sep 17 00:00:00 2001 From: Sergii Dmytruk Date: Tue, 19 May 2026 16:52:15 +0300 Subject: [PATCH] Introduce and use CONFIG_EDK2_CAPSULES_V2_TRANSITION * This option prevents capsule.sh from generating capsules of a new kind to permit updates from a previous release. * Set the option for MSI boards. Change-Id: Ia87cb23c62f8b2296a332b3416367cb4ad931cee Upstream-Status: Inappropriate [Dasharo downstream] Signed-off-by: Sergii Dmytruk --- capsule.sh | 5 +++-- configs/config.msi_ms7d25_ddr4 | 1 + configs/config.msi_ms7d25_ddr5 | 1 + configs/config.msi_ms7e06_ddr4 | 1 + configs/config.msi_ms7e06_ddr5 | 1 + payloads/external/edk2/Kconfig.dasharo | 10 ++++++++++ 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/capsule.sh b/capsule.sh index bbe17249eb..1e86421871 100755 --- a/capsule.sh +++ b/capsule.sh @@ -290,7 +290,8 @@ EOF local opt_root_cert=$root_cert local opt_sub_cert=$sub_cert local opt_sign_cert=$sign_cert - if [ "$CONFIG_EDK2_CAPSULES_V2" = y ]; then + if [ "${CONFIG_EDK2_CAPSULES_V2:-n}${CONFIG_EDK2_CAPSULES_V2_TRANSITION:-n}" = yn ]; then + echo "nested capsules" # The inner capsule is always signed with the test key. Not signing it # at all doesn't work because FmpDxe doesn't accept unsigned payloads at # least due to Image->AuthInfo.Hdr.wRevision check in @@ -323,7 +324,7 @@ EOF } EOF - if [ "$CONFIG_EDK2_CAPSULES_V2" = y ]; then + if [ "${CONFIG_EDK2_CAPSULES_V2:-n}${CONFIG_EDK2_CAPSULES_V2_TRANSITION:-n}" = yn ]; then # The capsule created above is the inner capsule. Make it and then # update JSON file to point at it as a payload. if ! "${edk_tools}/GenerateCapsule" --encode \ diff --git a/configs/config.msi_ms7d25_ddr4 b/configs/config.msi_ms7d25_ddr4 index 24852479f0..1490918118 100644 --- a/configs/config.msi_ms7d25_ddr4 +++ b/configs/config.msi_ms7d25_ddr4 @@ -74,3 +74,4 @@ CONFIG_EDK2_SETUP_MENU_KEY=0x0008 CONFIG_EDK2_RAM_DISK_ENABLE=y CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y CONFIG_EDK2_CAPSULES_V2=y +CONFIG_EDK2_CAPSULES_V2_TRANSITION=y diff --git a/configs/config.msi_ms7d25_ddr5 b/configs/config.msi_ms7d25_ddr5 index 0f7c46eb82..c9a2ac2dbe 100644 --- a/configs/config.msi_ms7d25_ddr5 +++ b/configs/config.msi_ms7d25_ddr5 @@ -73,3 +73,4 @@ CONFIG_EDK2_SETUP_MENU_KEY=0x0008 CONFIG_EDK2_RAM_DISK_ENABLE=y CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y CONFIG_EDK2_CAPSULES_V2=y +CONFIG_EDK2_CAPSULES_V2_TRANSITION=y diff --git a/configs/config.msi_ms7e06_ddr4 b/configs/config.msi_ms7e06_ddr4 index d32bd8dc81..23ee4010c9 100644 --- a/configs/config.msi_ms7e06_ddr4 +++ b/configs/config.msi_ms7e06_ddr4 @@ -73,3 +73,4 @@ CONFIG_EDK2_SETUP_MENU_KEY=0x0008 CONFIG_EDK2_RAM_DISK_ENABLE=y CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y CONFIG_EDK2_CAPSULES_V2=y +CONFIG_EDK2_CAPSULES_V2_TRANSITION=y diff --git a/configs/config.msi_ms7e06_ddr5 b/configs/config.msi_ms7e06_ddr5 index 507e209b3a..6d3a24068e 100644 --- a/configs/config.msi_ms7e06_ddr5 +++ b/configs/config.msi_ms7e06_ddr5 @@ -73,3 +73,4 @@ CONFIG_EDK2_SETUP_MENU_KEY=0x0008 CONFIG_EDK2_RAM_DISK_ENABLE=y CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y CONFIG_EDK2_CAPSULES_V2=y +CONFIG_EDK2_CAPSULES_V2_TRANSITION=y diff --git a/payloads/external/edk2/Kconfig.dasharo b/payloads/external/edk2/Kconfig.dasharo index d2bd6e47fd..2c66693331 100644 --- a/payloads/external/edk2/Kconfig.dasharo +++ b/payloads/external/edk2/Kconfig.dasharo @@ -440,6 +440,16 @@ config EDK2_CAPSULES_V2 Enables capsule-specific functionality added during the second round of implementing it. +config EDK2_CAPSULES_V2_TRANSITION + bool "Capsules Update: transitioning from v1 to v2" + default n + depends on EDK2_CAPSULES_V2 + help + Indicates that this is the first time EDK2_CAPSULES_V2 is enabled for a + release of a board which has been using capsules before. This enables + compatibility between this and prior releases when it comes to building + capsules. + config EDK2_CAPSULE_DOES_NOT_SURVIVE_RESET bool "Capsules do not survive reset" default n