Revamp certificate naming and versioning scheme #189
Replies: 5 comments
-
Let's explore apps processors. We'll focus on ratified profiles. We'll need to add more scope to them to also specify M-mode and probably debug and trace. So, first we have to decide if our certificate names will match profile names or we'll have our own names that map to theirs. If the latter we can follow the microcontroller scheme proposed and call them AC something. Seems like we'll have a certificate product name (e.g., MC100 or AC100) and a certificate version number (e.g., v1, v1.1, v1.2.1, v2, v3.4.5, etc.) that follows semantic numbering. What I'm not clear about is when we add new mandatory or optional extensions, do we update the product name (MC100 becomes MC101, MC110, or MC200) or do we keep the product name the same and update the certificate version number (e.g., v1 becomes v1.1 or v2). Seems like the former because the latter would be used as we increase allowed parameters (move from out-of-scope to in-scope). If we add things to the scope of the certificate that aren't strictly just ISA extensions like debug or trace we'd update the version major number. The version minor number would be updated when supporting more parameters. Say AC100 is RVB23 without V and H but with M-mode and no debug, trace, PMP or MTT. This is the first apps processor we certify. Then we add optional support for H so now this is AC110. Then we add optional support for V so this is AC120. At the same time we create AC200 that is RVA23 with both H and V mandatory as defined by RVA23. Say we want to add an optional M- mode PMP or MTT to all our apps processor certificates. Would that mean changing the product name for AC120 to AC121 or AC130 and the product name for AC200 to AC201 or AC210 or do we keep the product name the same and increase the version major number? |
Beta Was this translation helpful? Give feedback.
-
Here's a list of all the use cases I think our CRD naming/versioning will need to support. Please review this list and indicate if something isn't clearly worded, inaccurate, vague, or I'm missing a case.
|
Beta Was this translation helpful? Give feedback.
-
Focusing on RVCP changes:
Focusing on TSC changes:
|
Beta Was this translation helpful? Give feedback.
-
Proposed RVCP Certificates:
|
Beta Was this translation helpful? Give feedback.
-
I've put this in slides at https://docs.google.com/presentation/d/1dc7-uWNIHd6qMNlhWxfwCnzACQaSL2vfkHqP_qdpkac |
Beta Was this translation helpful? Give feedback.
-
I've been thinking about the certificate naming scheme and versioning scheme and how those map to the standards naming schemes and versioning scheme. This will not be 1:1 relationships because we have have many certification releases for a single standard release. As long as the database tracks the relationship between the two naming schemes (CRD and TSC standards/profiles/platforms) we should be good.
Here's a proposal:
MC100 is the most minimal microcontroller. It has no optional extensions, a few in-scope extension parameters, and many out-of-scope extension parameters. Its first release will be call MC100-v1 with an implicit 0 minor release and 0 patch release so with those included is MC100-v1.0.0. After this we might to decide to add an optional feature to MC100 such as PMP so we create MC100-v1.1.0 to indicate it is a new MC100 release with one or more optional features. Later we get enough customer demand for MC100 with a PMP but also with a CLIC. and they want them mandatory. So, instead of creating MC100-v2.0.0 we decide to create MC120-v1.0.0. Then we get need for an MC120 but with with Zicond mandatory so we create MC120-v1.1.0 (minor release). Next we create a microcontroller that has CLIC & PMP mandatory but with U-mode and S-mode optional and sPMP optional called MC200-v1.0.0. Then we want a microcontroller that is similar to MC100 but with the Zc extension mandatory so we call it MC100-v2.0.0.
Beta Was this translation helpful? Give feedback.
All reactions