Skip to content

Capsules V2 release changes#875

Open
SergiiDmytruk wants to merge 7 commits intocapsules-v2from
capsules-v2-release-changes
Open

Capsules V2 release changes#875
SergiiDmytruk wants to merge 7 commits intocapsules-v2from
capsules-v2-release-changes

Conversation

@SergiiDmytruk
Copy link
Copy Markdown
Member

These are RC1s for MSI boards, new CI checks of defconfigs and build system updates to support provisioning of capsule root keys.

ref: dsh-1176

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Iedbcfcbca5c048774ae66cd4cf4566500cd615e8
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
If CapsuleRootKey.inc exists and CONFIG_EDK2_CAPSULES_V2 is set, copy
the file to EDK.  This needs to be done as part of coreboot's build
process because EDK's worktree doesn't exist right after cloning
coreboot and there is no way to initialize it without building coreboot.
This makes it impossible to provision EDK's key before the build without
coreboot knowing about it at some level.

Also reset DasharoPayloadPkg/CapsuleRootKey.inf in EDK if
CONFIG_EDK2_CAPSULES_V2 is enabled, like it's already done for logos.

Not adding the file to .gitignore so it's more visible to the user when
present.

Change-Id: I8b557c4ab239d61a5cef01928fda13b8417d54cb
Upstream-Status: Inappropriate [Dasharo downstream]
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Change-Id: Ia9462cc4997dd04a17bc43d41fd3f8a08d318341
Upstream-Status: Inappropriate [Dasharo downstream]
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
There was one outlier in this file.

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I3334d8eccaf64c57fc37580dce3d057938795427
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
@SergiiDmytruk SergiiDmytruk changed the title Capsules v2 release changes Capsules V2 release changes Apr 16, 2026
# check that `CONFIG_EDK2_CAPSULES_V2=y` is not added to
# `CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y` without
# `CONFIG_EDK2_CAPSULES_V2_TRANSITION=y`
if uses_v1_capsules "$old_config" &&
Copy link
Copy Markdown
Contributor

@philipanda philipanda Apr 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is CONFIG_DRIVERS_EFI_UPDATE_CAPSULES supposed to be disabled on full, non-transition V2 releases?
The checks don't allow CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y && CONFIG_EDK2_CAPSULES_V2=y after the transition is finished.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure which combination of options you think is problematic. CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y will always be there when capsules are enabled. uses_v1_capsules() returns non-zero for a config with V2 capsules, so this condition will not be entered.

new_config=$(git show "$new_tag:$config")
old_config=$(git show "$old_tag:$config")

# check that `CONFIG_EDK2_CAPSULES_V2=y` is not added to
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also check if the transition is not used without CONFIG_EDK2_CAPSULES_V2.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That can't happen because

config EDK2_CAPSULES_V2_TRANSITION
bool "Capsules Update: transitioning from v1 to v2"
default n
depends on EDK2_CAPSULES_V2

and this script probably shouldn't validate state of Kconfig files.


old_tag=$(get_previous_release "$new_tag")
if [ -z "$old_tag" ]; then
echo "warning: no previous release for '$tag', skipping checks."
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know if $tag is defined in this context? I think it's only defined within get_previous_release() here

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should probably be new_tag

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread .github/workflows/checks.yml
Comment thread .github/scripts/capsule-versioning-check.sh
Comment thread .github/workflows/tag-check.yml
…ates

Check that `CONFIG_EDK2_CAPSULES_V2=y` is not added to
`CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y` without
`CONFIG_EDK2_CAPSULES_V2_TRANSITION=y`.

Check that `CONFIG_EDK2_CAPSULES_V2_TRANSITION=y` doesn't live longer
than one release cycle.

Check that `CONFIG_EDK2_CAPSULES_V2_TRANSITION=y` is not added to
`CONFIG_EDK2_CAPSULES_V2=y`.

Check that `CONFIG_EDK2_CAPSULES_V2_TRANSITION=y` is not removed.

Change-Id: I24a1fd41864983fff3f9dfa717a0e4a7505fecac
Upstream-Status: Inappropriate [Dasharo downstream]
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
@SergiiDmytruk SergiiDmytruk force-pushed the capsules-v2-release-changes branch from 9e03837 to e72877e Compare April 22, 2026 17:22
Copy link
Copy Markdown
Member Author

@SergiiDmytruk SergiiDmytruk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/Dasharo/coreboot/compare/9e0383799a1501f667e63a7a8904de2d5ad3ac39..e72877ebc25579a978d268ab52b829349c211a0b adds:

  • check that CONFIG_EDK2_CAPSULES_V2_TRANSITION=y is not added to a V2 config
  • check that CONFIG_EDK2_CAPSULES_V2=y is not removed
  • usage
  • redirection or errors and warnings to stderr


old_tag=$(get_previous_release "$new_tag")
if [ -z "$old_tag" ]; then
echo "warning: no previous release for '$tag', skipping checks."
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new_config=$(git show "$new_tag:$config")
old_config=$(git show "$old_tag:$config")

# check that `CONFIG_EDK2_CAPSULES_V2=y` is not added to
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That can't happen because

config EDK2_CAPSULES_V2_TRANSITION
bool "Capsules Update: transitioning from v1 to v2"
default n
depends on EDK2_CAPSULES_V2

and this script probably shouldn't validate state of Kconfig files.

# check that `CONFIG_EDK2_CAPSULES_V2=y` is not added to
# `CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y` without
# `CONFIG_EDK2_CAPSULES_V2_TRANSITION=y`
if uses_v1_capsules "$old_config" &&
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure which combination of options you think is problematic. CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y will always be there when capsules are enabled. uses_v1_capsules() returns non-zero for a config with V2 capsules, so this condition will not be entered.

SergiiDmytruk and others added 2 commits April 25, 2026 20:14
They will reused by upcoming changes.

Change-Id: Ie81e82f402e4c171f957a9b53b1e40dc559d19a4
Upstream-Status: Inappropriate [Dasharo downstream]
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Takes a capsule and signing keys, unpacks the capsule, then packs it
back under a (likely) different name.

Two functions were borrowed from a script in OSFV.

Change-Id: I23157aaeedb4e1fdcfb10c5a0235acd571aa72b4
Upstream-Status: Inappropriate [Dasharo downstream]
Co-authored-by: Filip Gołaś <filip.golas@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
@SergiiDmytruk
Copy link
Copy Markdown
Member Author

Added ./capsule.sh resign which we'll need for MSI release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants