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
This certification class specifies requirements for microcontrollers.
7
-
It targets microcontrollers running low-level software on an RTOS or bare-metal.
8
-
This CRD is not intended for the smallest possible microcontrollers but rather for applications
9
-
benefiting from a standardized microcontroller.
10
-
See the https://docs.google.com/document/d/133SZKc18tLsQcT1o6gEmBUkjwrtg2ow63me54RQ1jiY[RISC-V CRDs]
11
-
document for information relevant to all RISC-V CRDs.
3
+
$schema: cert_class_schema.json#
4
+
kind: certificate class
5
+
name: MC
6
+
long_name: Microcontroller Certificate Class
12
7
13
-
naming_scheme: |
14
-
The MC (M = Microcontroller, C = Certificate) has the following naming scheme (suffixes after MC
15
-
are optional but in the below order):
8
+
introduction: |
9
+
This certification class specifies requirements for microcontrollers.
10
+
It targets microcontrollers running low-level software on an RTOS or bare-metal.
11
+
This CRD is not intended for the smallest possible microcontrollers but rather for applications
12
+
benefiting from a standardized microcontroller.
13
+
See the https://docs.google.com/document/d/133SZKc18tLsQcT1o6gEmBUkjwrtg2ow63me54RQ1jiY[RISC-V CRDs]
14
+
document for information relevant to all RISC-V CRDs.
16
15
17
-
MC<model>[v<version>]
16
+
naming_scheme: |
17
+
The MC (M = Microcontroller, C = Certificate) has the following naming scheme (suffixes after MC
18
+
are optional but in the below order):
18
19
19
-
Where:
20
+
MC<model>[v<version>]
20
21
21
-
* Left & right square braces denote optional.
22
-
* \<model> is a 3 digit integer. It is changed only when mandatory extensions are added to a CRD.
23
-
** The one's digit is incremented when a small mandatory extension is added (e.g., Zicond)
24
-
** The ten's digit is incremented when a medium mandatory extension is addded (e.g., PMP)
25
-
** The hundreds's digit is incremented when a large mandatory extension is addded (e.g., V or H)
26
-
* \<version> is a semantic version (see semver.org) formatted as <major>[.<minor>.[patch]]. If \<version> is omitted, the reference applies equally to all versions.
27
-
** A <major> release indicates support for a new optional extension.
28
-
** A <minor> release indicates one or more of the following changes to the certification tests associated with the CRD.
29
-
*** Fix test bug or increase test coverage
30
-
*** Add more allowed parameter values
31
-
*** Support new extension version
32
-
** A <patch> release indicates just CRD specification changes without any difference in functional behavior
22
+
Where:
33
23
34
-
mandatory_priv_modes:
35
-
- M
24
+
* Left & right square braces denote optional.
25
+
* \<model> is a 3 digit integer. It is changed only when mandatory extensions are added to a CRD.
26
+
** The one's digit is incremented when a small mandatory extension is added (e.g., Zicond)
27
+
** The ten's digit is incremented when a medium mandatory extension is addded (e.g., PMP)
28
+
** The hundreds's digit is incremented when a large mandatory extension is addded (e.g., V or H)
29
+
* \<version> is a semantic version (see semver.org) formatted as <major>[.<minor>.[patch]]. If \<version> is omitted, the reference applies equally to all versions.
30
+
** A <major> release indicates support for a new optional extension.
31
+
** A <minor> release indicates one or more of the following changes to the certification tests associated with the CRD.
32
+
*** Fix test bug or increase test coverage
33
+
*** Add more allowed parameter values
34
+
*** Support new extension version
35
+
** A <patch> release indicates just CRD specification changes without any difference in functional behavior
- First version after moving non-microcontroller content in this document to a new document
21
-
called “RISC-V CRDs (Certification Requirement Documents)”
22
-
- Change MC100 Unpriv ISA spec from
23
-
“https://riscv.org/wp-content/uploads/2016/06/riscv-spec-v2.1.pdf[riscv-spec-v2.1], May 31,
24
-
2016” to https://github.com/riscv/riscv-isa-manual/releases/tag/Ratified-IMAFDQC since the
25
-
former isn't ratified by the latter is the oldest ratified version.
26
-
- Added requirements for WFI instruction
27
-
- Added requirements related to msip memory-mapped register
28
-
- revision: "0.6"
29
-
date: 2024-07-11
30
-
changes:
31
-
- Supporting multiple MC versions to support customers wanting to certify existing microcontrollers not using the latest version of ratified standards.
32
-
- Changed versioning scheme to use major.minor.patch instead of 3-digit major & minor.
33
-
- Added a table showing the mapping from MC version to ISA manuals.
34
-
- Reluctantly made interrupts OUT OF SCOPE for MC100 since only the CLINT interrupt controller
35
-
was ratified at that time and isn’t anticipated to be the interrupt controller used by MC100 implementations.
36
-
- Clarified MANDATORY behaviors for mie and mip CSRs
37
-
- Removed canonical discovery recipe because the OPT-* options directly inform the certification
38
-
tests and certification reference model of the status of the various options. Also, canonical
39
-
discovery recipes (e.g., probing for CLIC) violate the certification approach of avoiding writing
40
-
potentially illegal values to CSR fields.
41
-
- Added more options for interrupts
42
-
- Moved non-microcontroller content in this document to a new document called “RISC-V Certification Plans”
43
-
- revision: "0.5"
44
-
date: 2024-06-03
45
-
changes:
46
-
- Renamed to “RISC-V Microcontroller Certification Plan” based on Jason’s recommendation
47
-
- Added mvendorid, marchid, mimpid, and mhardid read-only priv CSRs because Allen pointed out
48
-
these are mandatory in M-mode v1.13 (probably older versions too, haven’t looked yet).
49
-
- Added table showing mapping of MC versions to associated RISC-V specifications
50
-
- revision: "0.4"
51
-
date: 2024-06-03
52
-
changes:
53
-
- Added M-mode instruction requirements
54
-
- Made Zicntr MANDATORY due to very low cost for implementations to support (in the spirit of minimizing options).
55
-
- Removed OPT-CNTR-PREC since minstret and mcycle must be a full 64 bits to be standard-compliant.
56
-
- revision: "0.3"
57
-
date: 2024-05-25
58
-
changes:
59
-
- Includes Zicntr as OPTIONAL and then has only 32-bit counters for instret and cycle.
60
-
- revision: "0.2"
61
-
date: 2024-05-20
62
-
changes:
63
-
- Very early draft
64
-
- revision: "0.1"
65
-
date: 2024-05-16
66
-
changes:
67
-
- Initial version
18
+
revision_history:
19
+
- revision: "0.7.0"
20
+
date: 2024-07-29
21
+
changes:
22
+
- First version after moving non-microcontroller content in this document to a new document
23
+
called "RISC-V CRDs (Certification Requirement Documents)"
24
+
- Change MC100 Unpriv ISA spec from
25
+
"https://riscv.org/wp-content/uploads/2016/06/riscv-spec-v2.1.pdf[riscv-spec-v2.1], May 31,
26
+
2016"to https://github.com/riscv/riscv-isa-manual/releases/tag/Ratified-IMAFDQC since the
27
+
former isn't ratified by the latter is the oldest ratified version.
28
+
- Added requirements for WFI instruction
29
+
- Added requirements related to msip memory-mapped register
30
+
- revision: "0.6.0"
31
+
date: 2024-07-11
32
+
changes:
33
+
- Supporting multiple MC versions to support customers wanting to certify existing microcontrollers not using the latest version of ratified standards.
34
+
- Changed versioning scheme to use major.minor.patch instead of 3-digit major & minor.
35
+
- Added a table showing the mapping from MC version to ISA manuals.
36
+
- Reluctantly made interrupts OUT OF SCOPE for MC100 since only the CLINT interrupt controller
37
+
was ratified at that time and isn't anticipated to be the interrupt controller used by MC100 implementations.
38
+
- Clarified MANDATORY behaviors for mie and mip CSRs
39
+
- Removed canonical discovery recipe because the OPT-* options directly inform the certification
40
+
tests and certification reference model of the status of the various options. Also, canonical
41
+
discovery recipes (e.g., probing for CLIC) violate the certification approach of avoiding writing
42
+
potentially illegal values to CSR fields.
43
+
- Added more options for interrupts
44
+
- Moved non-microcontroller content in this document to a new document called "RISC-V Certification Plans"
45
+
- revision: "0.5.0"
46
+
date: 2024-06-03
47
+
changes:
48
+
- Renamed to "RISC-V Microcontroller Certification Plan" based on Jason's recommendation
49
+
- Added mvendorid, marchid, mimpid, and mhardid read-only priv CSRs because Allen pointed out
50
+
these are mandatory in M-mode v1.13 (probably older versions too, haven't looked yet).
51
+
- Added table showing mapping of MC versions to associated RISC-V specifications
52
+
- revision: "0.4.0"
53
+
date: 2024-06-03
54
+
changes:
55
+
- Added M-mode instruction requirements
56
+
- Made Zicntr MANDATORY due to very low cost for implementations to support (in the spirit of minimizing options).
57
+
- Removed OPT-CNTR-PREC since minstret and mcycle must be a full 64 bits to be standard-compliant.
58
+
- revision: "0.3.0"
59
+
date: 2024-05-25
60
+
changes:
61
+
- Includes Zicntr as OPTIONAL and then has only 32-bit counters for instret and cycle.
62
+
- revision: "0.2.0"
63
+
date: 2024-05-20
64
+
changes:
65
+
- Very early draft
66
+
- revision: "0.1.0"
67
+
date: 2024-05-16
68
+
changes:
69
+
- Initial version
68
70
69
-
description: |
70
-
MC100 can be though of as minimal 32-bit RISC-V processors with M-mode support:
71
+
description: |
72
+
MC100 can be though of as minimal 32-bit RISC-V processors with M-mode support:
71
73
72
-
* The Unprivileged ISA is RV32I with a few extensions suitable for a basic microcontroller
73
-
* The M-mode features are those listed as mandatory in the associated RISC-V Privileged ISA manual
74
+
* The Unprivileged ISA is RV32I with a few extensions suitable for a basic microcontroller
75
+
* The M-mode features are those listed as mandatory in the associated RISC-V Privileged ISA manual
74
76
75
-
Key features not included in MC100 (i.e., OUT OF SCOPE):
77
+
Key features not included in MC100 (i.e., OUT OF SCOPE):
0 commit comments