Skip to content

Conversation

@mkopec
Copy link
Member

@mkopec mkopec commented Feb 2, 2026

ref: ncm-2117

Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
… flows

Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
mkopec and others added 5 commits February 2, 2026 12:29
Co-authored-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Copy link
Contributor

@m-iwanicki m-iwanicki left a comment

Choose a reason for hiding this comment

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

LGTM. capsule_update_dependency_chart.svg should be confirmed by someone from Dasharo team.

…ption

Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
rev: v2.3.0
hooks:
- id: codespell
exclude: '^.*.(webp|jpeg|jpg|png|pdf|svg)$'
Copy link
Member

Choose a reason for hiding this comment

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

Looks like the second . should actually be \. in all values of exclude keys since this is a regular expression. Unlikely to make a difference in practice, but still.

| --- | --- | --- | --- |
| BIOS Lock (SPI Protected Ranges) | Runtime | PCH registers | Specific memory addresses in the BIOS region defined in these registers are hardware-locked from writing, regardless of BIOS_WE. |
| SMM BIOS Write Protection | Runtime | PCH registers | Hardware enforcement. The BIOS region is read-only unless the processor is physically executing in SMM (System Management Mode). Even if BIOS_WE is set, writes fail if not in SMM. |
| HAP Mode (High Assurance Platform) | Persistent | Intel Flash Descriptor | Disables the ME. Required for updating the ME region on an Unfused system via Capsule, because you cannot overwrite the ME firmware while it is running. |
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
| HAP Mode (High Assurance Platform) | Persistent | Intel Flash Descriptor | Disables the ME. Required for updating the ME region on an Unfused system via Capsule, because you cannot overwrite the ME firmware while it is running. |
| HAP Mode (High Assurance Platform) | Persistent | Intel Flash Descriptor | Disables the ME. Required for updating the ME region on an Unfused system via Capsule, because you must not overwrite the ME firmware while it is running. |

Because you can, but it's a bad idea.

| Feature Name | Type | Controlled by | Impact on Flash Updates |
| --- | --- | --- | --- |
| BIOS Lock (SPI Protected Ranges) | Runtime | PCH registers | Specific memory addresses in the BIOS region defined in these registers are hardware-locked from writing, regardless of BIOS_WE. |
| SMM BIOS Write Protection | Runtime | PCH registers | Hardware enforcement. The BIOS region is read-only unless the processor is physically executing in SMM (System Management Mode). Even if BIOS_WE is set, writes fail if not in SMM. |
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
| SMM BIOS Write Protection | Runtime | PCH registers | Hardware enforcement. The BIOS region is read-only unless the processor is physically executing in SMM (System Management Mode). Even if BIOS_WE is set, writes fail if not in SMM. |
| SMM BIOS Write Protection (BWP) | Runtime | PCH registers | Hardware enforcement. The BIOS region is read-only unless the processor is physically executing in SMM (System Management Mode). Even if BIOS_WE is set, writes fail if not in SMM. |

It's referred to as "SMM BWP" in the chart.

Copy link
Member

Choose a reason for hiding this comment

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

Disable SMM BWP
Allows writes outside SMM

Capsule updates perform all flash writes in SMI handler and don't actually need this, although this protection does get disabled.

Should mention that for unfused platform we flash IFD as well? Essentially everything is flashed.

On fused units we also skip RW_UNUSED and SI_GBE.

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.

4 participants