Skip to content

uki: describe .efifw section#216

Closed
katexochen wants to merge 1 commit into
uapi-group:mainfrom
katexochen:uki-efifw
Closed

uki: describe .efifw section#216
katexochen wants to merge 1 commit into
uapi-group:mainfrom
katexochen:uki-efifw

Conversation

@katexochen

Copy link
Copy Markdown

Add description for the firmware section (.efifw) in the specs.

Supersedes #131

#131 is stale for over a year now, and this has been implemented in systemd quite some time ago, so I took the freedom to pick the changes from that PR, reworked it a bit to match what got implemented (multiple .efifw sections allowed), moved it to the end of the list (measured last) and fixed some other places where we mention sections that are allowed multiple times.

Add description for the firmware section (`.efifw`) in the specs.

Co-authored-by: Ani Sinha <anisinha@redhat.com>
Signed-off-by: Paul Meyer <katexochen0@gmail.com>
* Optionally, a CSV file encoding the SBAT metadata for the image, in the `.sbat` section. The [SBAT format is defined by the Shim project](https://github.com/rhboot/shim/blob/main/SBAT.md), and used for UEFI revocation purposes.
* Optionally, a JSON file encoding expected PCR 11 hash values seen from userspace once the UKI has booted up, along with signatures of these expected PCR 11 hash values, in the `.pcrsig` section. The signatures must also match the key pair described below.
* Optionally, the public part of a public-private key pair in PEM format used to sign the expected PCR 11 value of the image, in the `.pcrpkey` section.
* Optionally, one or more firmware images, each in a separate `.efifw` section. Each is an opaque binary blob that can be used as UEFI firmware on the next reset. If multiple `.efifw` sections exist then one of them is selected according to the matching hardware.

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.

Suggested change
* Optionally, one or more firmware images, each in a separate `.efifw` section. Each is an opaque binary blob that can be used as UEFI firmware on the next reset. If multiple `.efifw` sections exist then one of them is selected according to the matching hardware.
* Optionally one, or more, firmware images each in a separate `.efifw` section. Each is an opaque binary blob that can be used as UEFI firmware on the next reset. If multiple `.efifw` sections exist then one of them is selected according to the matching hardware.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Not sure about this comma placement. I tried to stick with the style of the other points.

Note that all of the sections defined above are singletons:
they may appear at most once,
except for the `.dtbauto` section which may appear multiple times.
except for the `.dtbauto` and `.efifw` sections which may each appear multiple times.

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.

"each" sounds redundant here, but I'll defer to someone with more grammar skills.

@ani-sinha

Copy link
Copy Markdown
Contributor

I think there is a gap in implementation as chid_match() is only called for device tree type device entries.

@keszybz

keszybz commented Jun 11, 2026

Copy link
Copy Markdown
Member

I merged the earlier PR. If there's anything left, please rebase. Or close this.

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

Development

Successfully merging this pull request may close these issues.

4 participants