NVMe Base 2.4: Boot Partitions: reading, updating, and write protection

8 minute read

繁體中文

00.01.Boot Partitions store boot images. Start with how a host retrieves boot data before normal I/O queues exist, then follow image updates, active-partition selection, and write protection.

Host
The system running the operating system and issuing NVMe commands.
I/O
Input/Output, the class of data operations performed on a namespace.

The main ideas

01

Retrieve a boot image

01-01Follow partition selection, range selection, and transfer into host memory as one boot-read workflow.

02

Update and activate an image

02-01Separate transferring a new image, replacing partition contents, and selecting the active partition.

03

Protect written contents

03-01Compare write-protection states and the restrictions that persist across resets or power loss.

Connecting the main ideas

00.02.Reading selects a partition and range and supplies host destination memory. Updating separates image transfer, replacement, and active-partition selection. Write protection constrains updates; its persistence depends on the reset or power condition.

01 Two Boot read paths

01.01.First determine whether an Admin-command environment exists, then choose properties or LID 15h. Both access boot contents, but their return formats and observation points differ.

Admin
Administrative, the control path used to create, configure, query, or manage controllers and queues.
LID
Log Page Identifier: selects the type of log page to read.

01.02.Boot Partitions are optional; support provides two equally sized partitions with IDs 0h and 1h. A host can read through properties without creating queues or enabling the controller.

controller
Controller, the entity that implements the NVMe interface, fetches commands, and reports completions.
Sources: Base 2.4 §8.1.3

Source: NVME-BASE-2.4, Rev. 2.4, §8.1.3, printed pages 586, PDF pages 612

Two Boot read paths
Read path or fieldWhere data or status is obtainedOperating context and unit
PropertiesBRS reports read stateDoes not require CC.EN=1
LID 15h16-byte header + dataThe Admin-command CQE reports the command result
BPIDSelects the partition to readNot the active ID
BPSZ128 KiB per unitNot a byte count
BPID
Boot Partition Identifier; selects 0 or 1 independently of the active partition.
BPSZ
Boot Partition Size; each unit is 128 KiB.
BRS
Boot Read Status: 00b no request, 01b in progress, 10b success, 11b error.
CQE
Completion Queue Entry, one completion-result structure in a CQ.
CC
Controller Configuration, the property through which the host selects settings and enables or disables a controller.
EN
Enable, the CC bit controlling controller enable state.

02 The complete update and protection lifecycle

02.01.Track image transfer, partition contents, active selection, and write protection separately. Successful download has not yet written a Boot Partition, and a successful write has not automatically activated it.

02.02.A boot image is downloaded in order from its beginning using Firmware Image Download. After unlocking the target, Firmware Commit CA=110b writes the partition selected by BPID. The host may read it back, use CA=111b to change the active ID, and relock it. An interrupted update can leave mixed old/new contents, so verification before activation is recommended.

CA
Commit Action, the Firmware Commit field selecting replacement, activation, and reset policy.
Sources: Base 2.4 §8.1.3.2

Source: NVME-BASE-2.4, Rev. 2.4, §8.1.3.2, printed pages 587-588, PDF pages 613-614

The complete update and protection lifecycle
Current mechanism and stateAfter Controller Level ResetAfter power cycle
Set Features: Write UnlockedRemains Write UnlockedReturns to Write Locked
Set Features: Write Locked Until Power CycleState is retainedReturns to Write Locked; writing requires a separate unlock
RPMB enabled: Write UnlockedReturns to Write LockedReturns to Write Locked

Where to continue in the specification

03.01.Use the flow above to frame the problem, then open the corresponding sections for fields and full conditions. The Chinese tutorial also explains every in-scope figure with its takeaway, example, and details.

Concept to explainSpecification sections
Two Boot read pathsBase 2.4 §8.1.3 · Base 2.4 §8.1.3.1 · Base 2.4 §5.2.13.1.21
The complete update and protection lifecycleBase 2.4 §8.1.3.2 · Base 2.4 §8.1.3.3 · Base 2.4 §5.2.30.1.39 · Base 2.4 §8.1.3.3.1-8.1.3.3.3 · Base 2.4 §5.2.30.1.39; 8.1.3.3.3
Open the complete Chinese tutorial and figure explanations →

Check your understanding

1. Does writing a new boot image to a partition also change the active partition?

04.01.Writing and selecting the active ID are separate actions. CA=110b writes the selected partition; after an optional readback, CA=111b selects the active ID. This separation allows checking the image before switching.

Sources

Source: NVME-BASE-2.4, Rev. 2.4, §8.1.3.2, printed pages 587-588, PDF pages 613-614

Source: NVME-BASE-2.4, Rev. 2.4, §8.1.3, printed pages 586, PDF pages 612

2. Must a Controller Level Reset relock an unlocked Boot Partition?

04.02.First identify the controlling mechanism. The Set Features unlocked state survives this reset but a power cycle relocks it. With RPMB protection enabled, either event relocks it.

Sources

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.30.1.39, printed pages 513-514, PDF pages 539-540

Source: NVME-BASE-2.4, Rev. 2.4, §8.1.3.3.1-8.1.3.3.3, printed pages 589-594, PDF pages 615-620

Specification editions

NVM Express Base Specification, Revision 2.4

Jia-Chang

Jia-Chang

Human

Comments

  Write a comment ...