Skip to content

Commit 6d131e7

Browse files
committed
RFC: version annotations
Add version annotations for new and updated requirements, starting from EBBR v1.0. This is a request-for-comments, to fuel discussions, and is not to be merged. Signed-off-by: Vincent Stehlé <[email protected]>
1 parent c3e0844 commit 6d131e7

5 files changed

+81
-0
lines changed

source/chapter1-about.rst

+9
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,15 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
172172
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
173173
interpreted as described in :rfc:`2119`.
174174

175+
The following annotations are used to highlight when a requirement was
176+
introduced or significantly changed after v1.0:
177+
178+
.. versionadded:: 2.1.0
179+
Example new requirement
180+
181+
.. versionchanged:: 2.1.0
182+
Example changed requirement
183+
175184
Features, which will not be supported by a future version of this specification
176185
are indicated with a warning such as the following one:
177186

source/chapter2-uefi.rst

+57
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ All of the following UEFI elements are required for EBBR compliance.
6767
* - `EFI_DECOMPRESS_PROTOCOL`
6868
- Native EFI decompression is rarely used and therefore not required.
6969

70+
.. versionchanged:: 2.0.0
71+
Required Elements
72+
7073
Required Platform Specific Elements
7174
-----------------------------------
7275

@@ -170,6 +173,15 @@ interface specific UEFI protocols, and so they have been made optional.
170173
For this reason EBBR implementations are not required to support option
171174
ROM loading.
172175

176+
.. versionchanged:: 2.0.0
177+
Required Platform Specific Elements
178+
179+
.. versionadded:: 2.1.0
180+
`RISCV_EFI_BOOT_PROTOCOL`
181+
182+
.. versionchanged:: TBD
183+
Clarify `ConnectController`
184+
173185
Required Global Variables
174186
-------------------------
175187

@@ -197,6 +209,9 @@ Variables as found in :UEFI:`3.3`.
197209
* - `OsIndicationsSupported`
198210
- Variable for firmware to indicate which features can be enabled.
199211

212+
.. versionchanged:: 2.0.0
213+
Required Global Variables
214+
200215
.. _section-required-vars-for-on-disk:
201216

202217
Required Variables for capsule update "on disk"
@@ -222,6 +237,9 @@ processing after restart as found in :UEFI:`8.5.6`. [#FWUpNote]_
222237

223238
.. [#FWUpNote] See section :ref:`section-fw-update`.
224239
240+
.. versionadded:: TBD
241+
Required Variables for "on disk"
242+
225243
Block device partitioning
226244
-------------------------
227245

@@ -278,6 +296,9 @@ Resident UEFI firmware can be executed in M mode or S/HS mode during POST.
278296
However, the UEFI images must be loaded in HS or VS mode if virtualization
279297
is available at OS load time.
280298

299+
.. versionadded:: 2.0.1
300+
RISC-V
301+
281302
UEFI Boot at S mode
282303
^^^^^^^^^^^^^^^^^^^
283304

@@ -340,6 +361,9 @@ specification [#VersionsNote]_.
340361
versions of this specification differing only by their last digit (or "patch
341362
number") are expected to be compatible.
342363
364+
.. versionadded:: 2.1.0
365+
Conformance Profile Table
366+
343367
Devicetree
344368
----------
345369

@@ -371,6 +395,12 @@ The DTB must be contained in memory of type `EfiACPIReclaimMemory`.
371395
.. [#ACPIMemNote] `EfiACPIReclaimMemory` was chosen to match the recommendation
372396
for ACPI tables which fulfill the same task as the DTB.
373397
398+
.. versionadded:: 1.0.1
399+
Devicetree
400+
401+
.. versionadded:: 2.1.0
402+
```/chosen``, ``/chosen/stdout-path``
403+
374404
UEFI Boot Services
375405
==================
376406

@@ -398,6 +428,9 @@ If the platform does not implement the monotonic counter, the
398428
.. [#MonoNote] `EFI_UNSUPPORTED` is not an allowed status code for
399429
`GetNextMonotonicCount()`.
400430
431+
.. versionadded:: TBD
432+
`EFI_DEVICE_ERROR`
433+
401434
UEFI Secure Boot (Optional)
402435
---------------------------
403436

@@ -476,6 +509,12 @@ are required to be implemented during boot services and runtime services.
476509
- Optional
477510
- Optional
478511

512+
.. versionadded:: 1.0.1
513+
`EFI_RT_PROPERTIES_TABLE`
514+
515+
.. versionchanged:: 2.0.0
516+
RTC present, wakeup supported, `UpdateCapsule`
517+
479518
Runtime Device Mappings
480519
-----------------------
481520

@@ -509,6 +548,9 @@ However, if firmware does not support access to the RTC after
509548
`ExitBootServices()`, then `GetTime()` and `SetTime()` shall return
510549
`EFI_UNSUPPORTED` and the OS must use a device driver to control the RTC.
511550

551+
.. versionchanged:: 2.0.0
552+
RTC present
553+
512554
UEFI Reset and Shutdown
513555
-----------------------
514556

@@ -561,6 +603,9 @@ that `GetVariable()` and `GetNextVariableName()` can behave as specified.
561603
562604
https://optee.readthedocs.io/en/latest/architecture/secure_storage.html
563605
606+
.. versionadded:: 1.0.1
607+
`EFI_RT_PROPERTIES_TABLE`
608+
564609
.. _section-fw-update:
565610

566611
Firmware Update
@@ -608,6 +653,15 @@ Firmware must support the delivery of capsules via file on mass storage device
608653
implementation of the `UpdateCapsule()` runtime service and of the ESRT,
609654
as detailed in :UEFI:`23.3` and :UEFI:`23.4` respectively.
610655
656+
.. versionadded:: 2.0.0
657+
`UpdateCapsule()`
658+
659+
.. versionadded:: 2.1.0
660+
ESRT
661+
662+
.. versionadded:: TBD
663+
"On disk"
664+
611665
Out-of-band firmware update
612666
^^^^^^^^^^^^^^^^^^^^^^^^^^^
613667

@@ -624,3 +678,6 @@ the `GetNextHighMonotonicCount()` runtime service. [#BootNote]_
624678

625679
.. [#BootNote] The platform's monotonic counter is made optional in section
626680
:ref:`section-misc-boot-services`.
681+
682+
.. versionadded:: TBD
683+
Monotonic

source/chapter3-secureworld.rst

+6
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@ It is recommended that firmware implementing PSCI supports version 1.0 or later
4040
.. [#SMCCCNote] Starting with SMCCC version 1.1, support for the `SMCCC_VERSION`
4141
function is required, for standardized discovery.
4242
43+
.. versionadded:: TBD
44+
SMCCC
45+
4346
RISC-V Multiprocessor Startup Protocol
4447
======================================
4548
The resident firmware in M mode or hypervisor running in HS mode must implement
4649
and conform to at least SBI [RVSBISPEC]_ v0.2 with HART State Management(HSM)
4750
extension for both RV32 and RV64.
51+
52+
.. versionadded:: 2.0.1
53+
RISC-V

source/chapter4-firmware-media.rst

+6
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ Given the choice, platforms should use protective partitions over
127127
adjusting the placement of GPT data structures because protective partitions
128128
provide explicit information about the protected region.
129129

130+
.. versionchanged:: 2.0.0
131+
GPT partitioning
132+
130133
.. _section-mbr-parts:
131134

132135
MBR partitioning
@@ -142,6 +145,9 @@ immutable feature of the platform makes this impossible.
142145
OS partitioning tools must not create partitions in the first 1MiB
143146
of the storage device, and must not remove protective partitions.
144147

148+
.. versionchanged:: 2.0.0
149+
MBR partitioning
150+
145151
.. _section-fw-partition-fs:
146152

147153
Firmware Partition Filesystem

source/chapter5-variable-storage.rst

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ and the operating system can rely on.
1515

1616
All integer fields are stored in little-endian byte order.
1717

18+
.. versionadded:: TBD
19+
File format
20+
1821
File header
1922
-----------
2023

0 commit comments

Comments
 (0)