Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,26 @@ jobs:
run: mkdir -p _site/htmls
- name: Copy cfg html
run: cp -R gen/cfg_html_doc/generic_rv64/html _site/example_cfg
- name: Create RVA Family PDF Spec
run: ./do gen:profile[rva]
- name: Copy RVA Family PDF
run: cp gen/profile_doc/pdf/rva.pdf _site/pdfs/rva.pdf
- name: Create MC-1 PDF Spec
run: ./do gen:crd_pdf[MC-1]
- name: Copy MC-1 PDF
run: cp gen/crd_doc/pdf/MC-1.pdf _site/pdfs/MC-1.pdf
- name: Create MC-1 HTML Spec
run: ./do gen:crd_html[MC-1]
- name: Copy MC-1 HTML
run: cp gen/crd_doc/html/MC-1.html _site/htmls/MC-1.html
- name: Create RVA20 Profile Release PDF Spec
run: ./do gen:profile[RVA20]
- name: Copy RVA20 Profile Release PDF
run: cp gen/profile_doc/pdf/RVA20.pdf _site/pdfs/RVA20.pdf
- name: Create RVA22 Profile Release PDF Spec
run: ./do gen:profile[RVA22]
- name: Copy RVA22 Profile Release PDF
run: cp gen/profile_doc/pdf/RVA22.pdf _site/pdfs/RVA22.pdf
- name: Create RVI20 Profile Release PDF Spec
run: ./do gen:profile[RVI20]
- name: Copy RVI20 Profile Release PDF
run: cp gen/profile_doc/pdf/RVA20.pdf _site/pdfs/RVI20.pdf
- name: Create MC100 PDF Spec
run: ./do gen:cert_model_pdf[MC100]
- name: Copy MC100 PDF
run: cp gen/certificate_doc/pdf/MC100.pdf _site/pdfs/MC100.pdf
- name: Create MC100 HTML Spec
run: ./do gen:cert_model_html[MC100]
- name: Copy MC100 HTML
run: cp gen/certificate_doc/html/MC100.html _site/htmls/MC100.html
- name: Copy manual html
run: cp -R gen/manual/isa/top/all/html _site/manual
- name: Setup Pages
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
diag-ditaa-*
arch/manual/isa/**/riscv-isa-manual
gen
gen_expected
node_modules
_site
images
6 changes: 4 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ The following artifacts have been generated from the top of the `main` branch:
* https://riscv-software-src.github.io/riscv-unified-db/example_cfg/html/index.html[configuration-specific documentation]
* https://riscv-software-src.github.io/riscv-unified-db/ruby/arch_def/index.html[Ruby API documentation (database interface)]
* https://riscv-software-src.github.io/riscv-unified-db/ruby/idl/index.html[Ruby IDL API documentation (IDL compiler)]
* https://riscv-software-src.github.io/riscv-unified-db/pdfs/rva.pdf[RVA Profile Family]
* https://riscv-software-src.github.io/riscv-unified-db/pdfs/MC-1.pdf[MC-1 Certification Requirements Document]
* https://riscv-software-src.github.io/riscv-unified-db/pdfs/RVI20.pdf[RVI20 Profile Release]
* https://riscv-software-src.github.io/riscv-unified-db/pdfs/RVA20.pdf[RVA20 Profile Release]
* https://riscv-software-src.github.io/riscv-unified-db/pdfs/RVA22.pdf[RVA22 Profile Release]
* https://riscv-software-src.github.io/riscv-unified-db/pdfs/MC100.pdf[MC100 Certification Requirements Document]

== Overview

Expand Down
10 changes: 6 additions & 4 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -287,10 +287,12 @@ task :regress do
ENV["VERSIONS"] = "all"
Rake::Task["gen:html_manual"].invoke
Rake::Task["gen:html"].invoke("generic_rv64")
Rake::Task["gen:crd_pdf"].invoke("MockCRD-1")
Rake::Task["gen:crd_pdf"].invoke("MC-1")
Rake::Task["gen:profile"].invoke("MockProfileFamily")
Rake::Task["gen:profile"].invoke("rva")
Rake::Task["gen:cert_model_pdf"].invoke("MockCertificateModel")
Rake::Task["gen:cert_model_pdf"].invoke("MC100")
Rake::Task["gen:profile"].invoke("MockProfileRelease")
Rake::Task["gen:profile"].invoke("RVA20")
Rake::Task["gen:profile"].invoke("RVA22")
Rake::Task["gen:profile"].invoke("RVI20")

puts
puts "Regression test PASSED"
Expand Down
35 changes: 35 additions & 0 deletions arch/certificate_class/MC.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
MC:
name: MC
long_name: Microcontroller Certificate Class

introduction: |
This certification class specifies requirements for microcontrollers.
It targets microcontrollers running low-level software on an RTOS or bare-metal.
This CRD is not intended for the smallest possible microcontrollers but rather for applications
benefiting from a standardized microcontroller.
See the https://docs.google.com/document/d/133SZKc18tLsQcT1o6gEmBUkjwrtg2ow63me54RQ1jiY[RISC-V CRDs]
document for information relevant to all RISC-V CRDs.

naming_scheme: |
The MC (M = Microcontroller, C = Certificate) has the following naming scheme (suffixes after MC
are optional but in the below order):

MC<model>[v<version>]

Where:

* Left & right square braces denote optional.
* \<model> is a 3 digit integer. It is changed only when mandatory extensions are added to a CRD.
** The one's digit is incremented when a small mandatory extension is added (e.g., Zicond)
** The ten's digit is incremented when a medium mandatory extension is addded (e.g., PMP)
** The hundreds's digit is incremented when a large mandatory extension is addded (e.g., V or H)
* \<version> is a semantic version (see semver.org) formatted as <major>[.<minor>.[patch]]. If \<version> is omitted, the reference applies equally to all versions.
** A <major> release indicates support for a new optional extension.
** A <minor> release indicates one or more of the following changes to the certification tests associated with the CRD.
*** Fix test bug or increase test coverage
*** Add more allowed parameter values
*** Support new extension version
** A <patch> release indicates just CRD specification changes without any difference in functional behavior

mandatory_priv_modes:
- M
14 changes: 14 additions & 0 deletions arch/certificate_class/MockCertificateClass.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
MockCertificateClass:
name: MockCertificateClass
long_name: Mock Certificate Class Long Name

introduction: |
Here's the Mock Certificate Class introduction.

naming_scheme: |
Here's the Mock Certificate Class naming scheme.

mandatory_priv_modes:
- M

description: Here's the Mock Certificate Class description.
36 changes: 19 additions & 17 deletions arch/crd/MC-1.yaml → arch/certificate_model/MC100.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
# yaml-language-server: $schema=../../schemas/testplan_schema.json

MC-1:
name: MC-1
long_name: LONG NAME
family: Microcontroller

# semantic version within the CRD family
version: "1.0"
MC100:
name: MC100
long_name: Basic Microcontroller Certificate
class: MC
model: 100

# Semantic versions within the model
versions:
- version: "1.0.0"

# XLEN used by rakefile
base: 32

revision_history:
- revision: "0.7"
date: 2024-07-29
changes:
- First version after moving non-microcontroller content in this document to a new document
called “RISC-V CRDs (Certification Requirement Documents)”
- Change MC-1 Unpriv ISA spec from
- Change MC100 Unpriv ISA spec from
“https://riscv.org/wp-content/uploads/2016/06/riscv-spec-v2.1.pdf[riscv-spec-v2.1], May 31,
2016” to https://github.com/riscv/riscv-isa-manual/releases/tag/Ratified-IMAFDQC since the
former isn't ratified by the latter is the oldest ratified version.
Expand All @@ -26,8 +31,8 @@ MC-1:
- Supporting multiple MC versions to support customers wanting to certify existing microcontrollers not using the latest version of ratified standards.
- Changed versioning scheme to use major.minor.patch instead of 3-digit major & minor.
- Added a table showing the mapping from MC version to ISA manuals.
- Reluctantly made interrupts OUT OF SCOPE for MC-1 since only the CLINT interrupt controller
was ratified at that time and isn’t anticipated to be the interrupt controller used by MC-1 implementations.
- Reluctantly made interrupts OUT OF SCOPE for MC100 since only the CLINT interrupt controller
was ratified at that time and isn’t anticipated to be the interrupt controller used by MC100 implementations.
- Clarified MANDATORY behaviors for mie and mip CSRs
- Removed canonical discovery recipe because the OPT-* options directly inform the certification
tests and certification reference model of the status of the various options. Also, canonical
Expand Down Expand Up @@ -61,24 +66,21 @@ MC-1:
changes:
- Initial version

# XLEN used by rakefile
base: 32

description: |
MC-1 can be though of as a minimal 32-bit RISC-V processor with M-mode support:
MC100 can be though of as minimal 32-bit RISC-V processors with M-mode support:

* The Unprivileged ISA is RV32I with a few extensions suitable for a basic microcontroller
* The M-mode features are those listed as mandatory in the RISC-V Privileged ISA manual.
* The M-mode features are those listed as mandatory in the associated RISC-V Privileged ISA manual

Key features not included in MC-1 (i.e., OUT OF SCOPE):
Key features not included in MC100 (i.e., OUT OF SCOPE):

* Interrupt Controller (e.g., CLIC, CLINT, PLIC)
* Features for modes other than M-mode
* PMP
* Debug & trace (TBD)

# Specification versions
tsc_profile: null # None for MC-1
tsc_profile: null # None for MC100
unpriv_isa_manual_revision: "20191213"
priv_isa_manual_revision: "20190608-Priv-MSU-Ratified"
debug_manual_revision: "0.13.2"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
# yaml-language-server: $schema=../../schemas/testplan_schema.json

MockCRD-1:
name: MockCRD-1
long_name: Mock CRD Long Name

family: MockCRDFamily
MockCertificateModel:
name: MockCertificateModel
long_name: Mock Certificate Model Long Name
class: MockCertificateClass
model: MockModel

# XLEN used by rakefile
base: 64

# semantic version within the CRD family
version: "1.0"
# Semantic versions within the model
versions:
- version: "1.0.0"
- version: "1.1.0"

revision_history:
- revision: "0.1"
Expand Down Expand Up @@ -135,6 +137,16 @@ MockCRD-1:
M_MODE_ENDIANESS:
schema:
const: little
# XXX Uncomment when GitHub issue #XXX is fixed.
#schema:
#- when:
# version: "=1.0.0"
# then:
# const: little
#- when:
# version: "=1.1.0"
# then:
# enum: [little, big]
XLEN:
schema:
const: 64
Expand Down
82 changes: 0 additions & 82 deletions arch/crd_family/Microcontroller.yaml

This file was deleted.

14 changes: 0 additions & 14 deletions arch/crd_family/MockCRDFamily.yaml

This file was deleted.

1 change: 0 additions & 1 deletion arch/ext/Sm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,6 @@ Sm:
description: |
Physical address of the unified discovery configuration data structure.
This address is reported in the `mconfigptr` CSR.
TODO: GitHub issue 53
schema:
type: integer
when:
Expand Down
42 changes: 0 additions & 42 deletions arch/profile/MockProfile-1.yaml

This file was deleted.

Loading
Loading