Skip to content

Commit 845d16e

Browse files
authored
Merge pull request #54 from ved-rivos/1015
Update to Frozen; reword requirements as rules
2 parents 967af34 + 114623b commit 845d16e

File tree

3 files changed

+48
-50
lines changed

3 files changed

+48
-50
lines changed

Diff for: src/riscv-server-soc.adoc

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[[header]]
22
:description: RISC-V Server SoC Specification
33
:company: RISC-V.org
4-
:revdate: 04/2024
5-
:revnumber: 0.5
6-
:revremark: This document is in development. Assume everything can change. See http://riscv.org/spec-state for details.
4+
:revdate: 10/2024
5+
:revnumber: 1.0
6+
:revremark: This document is Frozen. See http://riscv.org/spec-state for details.
77
:url-riscv: http://riscv.org
88
:doctype: book
99
:preface-title: Preamble
@@ -41,11 +41,12 @@ Server SoC Task Group
4141

4242
// Preamble
4343
[WARNING]
44-
.This document is in the link:http://riscv.org/spec-state[Development state]
44+
.This document is in the link:http://riscv.org/spec-state[Frozen state]
4545
====
46-
Assume everything can change. This draft specification will change before
47-
being accepted as standard, so implementations made to this draft
48-
specification will likely not conform to the future standard.
46+
Change is extremely unlikely. A high threshold will be used, and a change
47+
will only occur because of some truly critical issue being identified during
48+
the public review cycle. Any other desired or needed changes can be the subject
49+
of a follow-on new extension.
4950
====
5051

5152
[preface]

Diff for: src/server_soc_intro.adoc

+15-17
Original file line numberDiff line numberDiff line change
@@ -52,37 +52,36 @@ standard set of infrastructural capabilities, encompassing areas where divergenc
5252
is typically unnecessary and where novelty is absent across implementations.
5353

5454
To be compliant with this specification, the SoC MUST support all mandatory
55-
requirements and MUST support the listed versions of the specifications. This
55+
rules and MUST support the listed versions of the specifications. This
5656
standard set of capabilities MAY be extended by a specific implementation with
5757
additional standard or custom capabilities, including compatible later
5858
versions of listed standard specifications. Portable system software MUST
5959
support the specified mandatory capabilities to be compliant with this
6060
specification.
6161

62-
The requirements in this specification use the following format:
62+
The rules in this specification use the following format:
6363

6464
[width=100%]
6565
[%header, cols="5,20"]
6666
|===
67-
| ID# ^| Requirement
67+
| ID# ^| Rule
6868
| CAT_NNN | The `CAT` is a category prefix that logically groups the
69-
requirements and is followed by 3 digits - `NNN` - assigning a
70-
numeric ID to the requirement. +
69+
rules and is followed by 3 digits - `NNN` - assigning a
70+
numeric ID to the rule. +
7171
+
72-
The requirements use the key words "MUST", "MUST NOT",
73-
"REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
74-
"RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" that are
75-
to be interpreted as described in RFC 2119 cite:[RFC_2119] when,
76-
and only when, they appear in all capitals, as shown here. When
72+
The rules use the key words "MUST", "MUST NOT", "REQUIRED",
73+
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",
74+
"NOT RECOMMENDED", "MAY", and "OPTIONAL" that are to be
75+
interpreted as described in RFC 2119 cite:[RFC_2119] when, and
76+
only when, they appear in all capitals, as shown here. When
7777
these words are not capitalized, they have their normal English
7878
meanings.
79-
2+| _A requirement or a group of requirements may be followed by non-normative
80-
text providing context or justification for the requirement. The
81-
non-normative text may also be used to reference sources that are the
82-
origin of the requirement._
79+
2+| _A rule or a group of rules may be followed by non-normative text providing
80+
context or justification for the rule. The non-normative text may also be
81+
used to reference sources that are the origin of the rule._
8382
|===
8483

85-
This specification groups the requirements in the following broad categories:
84+
This specification groups the rules in the following broad categories:
8685

8786
* Clocks and Timers
8887
* Interrupt Controllers
@@ -131,8 +130,7 @@ if they are not in this table).
131130
| ECAM | Follows PCI Express. Enhanced Configuration Access Method.
132131
A mechanism to allow addressing of Configuration Registers
133132
for PCIe functions. In addition to the PCI Express Base
134-
Specification, see the detailed requirements in this
135-
document.
133+
Specification, see the detailed rules in this specification.
136134
| EP, EP=1 | Follows PCI Express. Also called Data Poisoning. EP is an
137135
error flag that accompanies data in some PCIe transactions
138136
to indicate the data is known to contain an error. Defined

Diff for: src/server_soc_requirements.adoc

+25-26
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[width=100%]
66
[%header, cols="5,25"]
77
|===
8-
| ID# ^| Requirement
8+
| ID# ^| Rule
99
| CTI_010 | The `time` CSR MUST increment at a constant frequency and the count
1010
MUST be in units of 1 ns. The frequency at which the CSR provides
1111
an updated time value MUST be at least 100 MHz.
@@ -15,7 +15,7 @@
1515
| CTI_020 | The `time` counter MUST appear to be always on and MUST appear to
1616
not lose its count across hart low power idle states, including
1717
when the hart is powered off.
18-
2+a| _This requirement does not apply to system power states such as G3 (power
18+
2+a| _This rule does not apply to system power states such as G3 (power
1919
off), S3 (Suspend to RAM), or S4 (Hibernate)._ +
2020
+
2121
_Losing `time` count across hart low power idle states may lead to the
@@ -37,7 +37,7 @@ deliver external interrupts to the RISC-V application processor harts.
3737
[width=100%]
3838
[%header, cols="5,25"]
3939
|===
40-
| ID# ^| Requirement
40+
| ID# ^| Rule
4141
| IIC_010 | The RISC-V Advanced Interrupt Architecture cite:[AIA] MUST be
4242
supported.
4343

@@ -107,15 +107,15 @@ deliver external interrupts to the RISC-V application processor harts.
107107
[width=100%]
108108
[%header, cols="5,25"]
109109
|===
110-
| ID# ^| Requirement
110+
| ID# ^| Rule
111111
| IOM_010 | All IOMMUs in the SoC MUST support the RISC-V IOMMU specification
112112
cite:[IOMMU].
113113

114114
| IOM_020 a| All DMA capable peripherals (RCiEP and non-PCIe devices) and all
115115
PCIe root ports accessible by software on the RISC-V application
116116
processor harts MUST be governed by an IOMMU. +
117117
+
118-
Initiators, such as the following, are exempt from this requirement:
118+
Initiators, such as the following, are exempt from this rule:
119119

120120
* Interrupt controllers, such as the APLIC.
121121
* IOMMUs.
@@ -130,7 +130,7 @@ deliver external interrupts to the RISC-V application processor harts.
130130
provided by the IOMMU enables usages such as passthrough of such devices to
131131
virtual machines, shared virtual addressing, etc._ +
132132
+
133-
_The number of IOMMUs implemented in the SoC to satisfy requirement IOM_020
133+
_The number of IOMMUs implemented in the SoC to satisfy rule IOM_020
134134
is `UNSPECIFIED`._
135135

136136
| IOM_030 | The IOMMU governing a PCIe root port MUST support at least 16-bit
@@ -396,7 +396,7 @@ hierarchy domain originating at each PCIe root port.
396396
[width=100%]
397397
[%header, cols="5,25"]
398398
|===
399-
| ID# ^| Requirement
399+
| ID# ^| Rule
400400
| ECM_010 a| The ECAM address ranges MUST have the following physical memory
401401
attributes (PMAs):
402402

@@ -416,7 +416,7 @@ hierarchy domain originating at each PCIe root port.
416416
2+| _Besides performing a write, software executing on a hart must not
417417
require any additional actions to achieve this property._ +
418418
+
419-
_This requirement satisfies the processor and host bridge implementation
419+
_This rule satisfies the processor and host bridge implementation
420420
requirement mentioned in the “Ordering Considerations for the Enhanced
421421
Configuration Access Mechanism” implementation note of the PCIe 6.0
422422
specification._
@@ -503,7 +503,7 @@ hierarchy domain originating at each PCIe root port.
503503
[width=100%]
504504
[%header, cols="5,25"]
505505
|===
506-
| ID# ^| Requirement
506+
| ID# ^| Rule
507507
| MMS_010 | The SoC MUST support designating, for each hierarchy domain, one or
508508
more ranges of system physical addresses that may be used for
509509
mapping memory space of endpoints in that hierarchy domain using
@@ -526,8 +526,7 @@ hierarchy domain originating at each PCIe root port.
526526
and system requirements._
527527

528528
| MMS_030 a| The system physical address ranges designated for mapping endpoint
529-
memory spaces have the following physical memory attribute (PMAs)
530-
requirements:
529+
memory spaces have the following physical memory attribute (PMAs):
531530

532531
* MUST be not cacheable, non-idempotent, coherent, strongly-ordered
533532
(I/O ordering) I/O region.
@@ -628,7 +627,7 @@ devices, and SR-IOV capable devices.
628627
[width=100%]
629628
[%header, cols="5,25"]
630629
|===
631-
| ID# ^| Requirement
630+
| ID# ^| Rule
632631
| ACS_010 a| PCIe root ports and SoC integrated downstream switch ports MUST
633632
support the following PCIe access control services (ACS) controls:
634633

@@ -673,7 +672,7 @@ space of an endpoint or RCiEP.
673672
[width=100%]
674673
[%header, cols="5,25"]
675674
|===
676-
| ID# ^| Requirement
675+
| ID# ^| Rule
677676
| ADR_010 | The host bridge MUST request IOMMU translations for addresses
678677
(Translated, Untranslated, or a PCIe ATS address translation
679678
request) used in the request by endpoints and RCiEPs.
@@ -744,7 +743,7 @@ messages or completions.
744743
[width=100%]
745744
[%header, cols="5,25"]
746745
|===
747-
| ID# ^| Requirement
746+
| ID# ^| Rule
748747
| IDR_010 | Configuration requests from endpoints and RCiEP MUST be treated as
749748
Unsupported Requests.
750749

@@ -766,7 +765,7 @@ messages or completions.
766765
[width=100%]
767766
[%header, cols="5,25"]
768767
|===
769-
| ID# ^| Requirement
768+
| ID# ^| Rule
770769
| CCS_010 | The host bridge MUST enforce PCIe memory ordering rules and SHOULD
771770
support the relaxed ordering (RO) and ID-based ordering (IDO).
772771
2+| _An implementation may occasionally or never permit the relaxations allowed
@@ -836,7 +835,7 @@ mechanism in PCIe.
836835

837836
[%header, cols="5,25"]
838837
|===
839-
| ID# ^| Requirement
838+
| ID# ^| Rule
840839
| MSI_010 | Message Signaled Interrupts MUST be supported.
841840

842841
| MSI_020 | SoC MUST NOT support INTx virtual wire based interrupt signaling.
@@ -853,7 +852,7 @@ mechanism in PCIe.
853852
[width=100%]
854853
[%header, cols="5,25"]
855854
|===
856-
| ID# ^| Requirement
855+
| ID# ^| Rule
857856
| PTM_010 | PCIe root ports MAY support PCIe PTM capability.
858857
2+| _Several applications such as instrumentation, media servers, telecom
859858
servers, etc. require high precision monitoring and tracking of time. The
@@ -883,7 +882,7 @@ mechanism in PCIe.
883882
[width=100%]
884883
[%header, cols="5,25"]
885884
|===
886-
| ID# ^| Requirement
885+
| ID# ^| Rule
887886
| AER_010 | PCIe root ports MUST support advanced error reporting (AER)
888887
capability for reporting errors from connected devices or the
889888
errors detected by the root port itself.
@@ -928,7 +927,7 @@ mechanism in PCIe.
928927
[width=100%]
929928
[%header, cols="5,25"]
930929
|===
931-
| ID# ^| Requirement
930+
| ID# ^| Rule
932931
| VSR_010 a| Vendor specific registers in the root ports, host bridge, RCiEP,
933932
and RCRB MUST be implemented using one or more of the following
934933
capabilities:
@@ -958,7 +957,7 @@ mechanism in PCIe.
958957
[width=100%]
959958
[%header, cols="5,25"]
960959
|===
961-
| ID# ^| Requirement
960+
| ID# ^| Rule
962961
| SID_010 | SoC-integrated PCIe devices MUST implement all software visible
963962
rules defined by the PCIe specification 6.0 for an EP or RCiEP as
964963
applicable.
@@ -1026,7 +1025,7 @@ mechanism in PCIe.
10261025
[width=100%]
10271026
[%header, cols="5,25"]
10281027
|===
1029-
| ID# ^| Requirement
1028+
| ID# ^| Rule
10301029
| RAS_010 | The level of RAS implemented by the SoC is `UNSPECIFIED`.
10311030
2+| _The level of RAS implemented by an SoC depends on the reliability goals
10321031
established for the SoC, which are commonly measured using metrics such as
@@ -1153,7 +1152,7 @@ mechanism in PCIe.
11531152
increment the corrected error counter only if the error differs from a
11541153
previously reported one. Additionally, some hardware units could
11551154
incorporate low-pass filters like leaky buckets, which regulate the rate at
1156-
which corrected errors are reported and counted. This requirement pertains
1155+
which corrected errors are reported and counted. This rule pertains
11571156
to corrected errors tracked by the error record once the hardware component
11581157
determines reporting and counting based on its specific filtering rules._
11591158
|===
@@ -1173,7 +1172,7 @@ and more.
11731172
[width=100%]
11741173
[%header, cols="5,25"]
11751174
|===
1176-
| ID# ^| Requirement
1175+
| ID# ^| Rule
11771176
| QOS_010 | The SoC SHOULD incorporate QoS mechanisms to mitigate unwarranted
11781177
performance interference that arises when multiple workloads access
11791178
shared resources like caches and system memory.
@@ -1280,7 +1279,7 @@ data centers and enterprises.
12801279
[width=100%]
12811280
[%header, cols="5,25"]
12821281
|===
1283-
| ID# ^| Requirement
1282+
| ID# ^| Rule
12841283
| MNG_010 | The SoC SHOULD incorporate support for an x1 PCIe lane, preferably
12851284
Gen 5, but at least Gen 3, to establish a connection with the BMC.
12861285
2+| _This interface is commonly linked to a BMC as a PCIe endpoint, serving
@@ -1314,7 +1313,7 @@ data centers and enterprises.
13141313
[width=100%]
13151314
[%header, cols="5,25"]
13161315
|===
1317-
| ID# ^| Requirement
1316+
| ID# ^| Rule
13181317
| SPM_010 a| Significant caches within the SoC SHOULD incorporate an HPM capable
13191318
of counting:
13201319

@@ -1358,7 +1357,7 @@ data centers and enterprises.
13581357
[width=100%]
13591358
[%header, cols="5,25"]
13601359
|===
1361-
| ID# ^| Requirement
1360+
| ID# ^| Rule
13621361
| SEC_010 a| The Server SoC MUST implement a hardware RoT as the _primary_ root
13631362
of trust.
13641363
2+| _A root of trust (RoT) is the foundation on which all secure operations of a

0 commit comments

Comments
 (0)