Skip to content

Update capsule header guid#66

Open
Javagedes wants to merge 1 commit intotianocore:masterfrom
Javagedes:personal/joeyvagedes/update_capsuleheaderguid
Open

Update capsule header guid#66
Javagedes wants to merge 1 commit intotianocore:masterfrom
Javagedes:personal/joeyvagedes/update_capsuleheaderguid

Conversation

@Javagedes
Copy link
Copy Markdown

@Javagedes Javagedes commented Oct 5, 2022

UpdateCapsule() Conformance requires that a capsule marked CAPSULE_FLAGS_PERSIST_ACROSS_RESET must also provide a valid ScatterGatherList. In some platforms (See example HERE), however, if a capsule is marked as such, the capsule is validated before being persisted in memory (which is when the ScatterGatherList is verified). Due to this, those platforms fail the SCT that validates this conformance as they return EFI_UNSUPPORTED as the capsule header guid being passed to the function is not a known valid capsule header guid.

This commit updates the capsule header guid used in the MiscRuntimeService tests to use a known good capsule header guid, gWindowsUxCapsuleGuid, which causes these platforms to pass this SCT by reaching the ScatterGatherList validation, which then returns EFI_INVALID_PARAMETER.

If you want the patch of this change, please just add .patch to the end of this PR (https://github.com/tianocore/edk2-test/pull/66.patch)
Signed-off-by: Joey Vagedes joeyvagedes@microsoft.com

UpdateCapsule() Conformance requires that a capsule marked
CAPSULE_FLAGS_PERSIST_ACROSS_RESET must also provide a valid
ScatterGatherList. In some platforms, however, if a capsule is marked as
such, the capsule is validated before being persisted in memory (which
is when the ScatterGatherList is verified). Due to this, those platforms
fail the SCT that validates this conformance as they return
EFI_UNSUPPORTED as the capsule header guid being passed to the function
is not a known valid capsule header guid.

This commit updates the capsule header guid used in the
MiscRuntimeService tests to use a known good capsule header guid,
gWindowsUxCapsuleGuid, which causes these platforms to pass this SCT.
@Javagedes
Copy link
Copy Markdown
Author

I have also created a bugzilla bug. I'm not sure your process.

https://bugzilla.tianocore.org/show_bug.cgi?id=4098

@edhay edhay requested review from edhay and gaojiebyo as code owners January 31, 2025 19:23
@edhay
Copy link
Copy Markdown
Contributor

edhay commented Jun 5, 2025

Corresponding issue #231

@sunnywang-arm
Copy link
Copy Markdown
Contributor

I think the solution here may cause the test failure with the capsule update firmware implementation that is based on other valid Capsule header GUIDs.

Therefore, another solution is to update the test to cover four valid Capsule header GUIDs listed below. The test should be updated to call gtRT->UpdateCapsule() with these GUIDs one by one, and report a failure if it doesn't get the expected result from any of the four calls.

  • EFI_CAPSULE_GUID - {3B6686BD-0D76-4030-B70E-B5519E2FC5A0}
  • WINDOWS_UX_CAPSULE_GUID - {3B8C8162-188C-46A4-AEC9-BE43F1D65697}
  • EFI_FIRMWARE_MANAGEMENT_CAPSULE_ID_GUID - {6DCBD5ED-E82D-4C44-BDA1-7194199AD92A}
  • EFI_JSON_CAPSULE_ID_GUID - {0x67d6f4cd, 0xd6b8, 0x4573, {0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }}

What do you guys think?

Cc @edhay

@edhay
Copy link
Copy Markdown
Contributor

edhay commented Dec 11, 2025

Hi @Javagedes,

Please update on Sunny's comment.

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