You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Test-environment prerequisite (part 2 of 2): adds the write-protection (BPWPS) half of NVMe Boot Partition emulation to the local QEMU fork. Builds on #74 (read + firmware-update half). Upstreaming both is deferred to a later issue.
Scope (Iter 6):
Add Set Features FID 0x11 (Boot Partition Write Protection / BPWPS) with all four states from NVMe Base Spec §5.27.1.17:
000b — No Write Protect
001b — Write Protect (until power cycle)
010b — Write Protect (persistent)
011b — Permanent Write Protect
Reject Firmware Commit (0x10) targeting the BP when the active partition's BPWPS state is anything other than 000b. Surface as Boot Partition Write Protected status.
State transitions:
000b ↔ 001b ↔ 010b allowed.
011b is one-way (no transitions out).
001b clears to 000b on controller reset / power cycle equivalent (track via nvme_ctrl_reset()).
Add VMState entries for bpinfo, bpwps, and the BP buffer contents so live migration is coherent across both halves.
Test-environment prerequisite (part 2 of 2): adds the write-protection (BPWPS) half of NVMe Boot Partition emulation to the local QEMU fork. Builds on #74 (read + firmware-update half). Upstreaming both is deferred to a later issue.
Scope (Iter 6):
Boot Partition Write Protectedstatus.nvme_ctrl_reset()).bpinfo,bpwps, and the BP buffer contents so live migration is coherent across both halves.tests/qtest/nvme-test.cexercising the full flow from Add NVMe BP read + firmware-update emulation to QEMU hw/nvme (part 1) #74 + this issue:bootpart=device property indocs/system/devices/nvme.rst, including the BPWPS state machine.Depends on: #74.
Unblocks #49, #53 (boot-partition write-lock for normal boot and post-capsule lock).
Out of scope: