riscv / configuration-structure

RISC-V Configuration Structure
https://jira.riscv.org/browse/RVG-50
Creative Commons Attribution 4.0 International
36 stars 16 forks source link

IFM:Adding SEQUENCEs for the standard unprivileged and privileged ext… #107

Closed irmafmz closed 1 year ago

irmafmz commented 2 years ago

…ensions, as well as for the non-standard extensions.

irmafmz commented 1 year ago

Hi @timsifive , here's the link to Mark's document "Profiles & Bases & Extensions". The changes that I showed today reflect the worksheet "Profiles", columns "extension only exists if the extension in this column exists" and "implies not". Many thanks in advance for your Review Comments. Mark's document "Profiles & Bases & Extensions": https://docs.google.com/spreadsheets/d/1A40dfm0nnn2-tgKIhdi3UYQ1GBr8iRiV2edFowvgp7E

irmafmz commented 1 year ago

How do you deal with base ISA's that can change, e.g. an RV64I that can change XLEN to 32 and become an RV32I? Someone may want to take advantage of that to run RV32I code on an RV64I hart. Ditto for RV32E (that is a weird one, since it's basically RV32I with registers X16..X31, which means it is perfectly legal for them to behave exactly the same as RV32I) I think this means that a;; of the baseISA choices can be supported at the same time, so it cna't br a choice.

Hi @allenjbaum , thank you for your comment. The base ISA has been changed to be a SEQUENCE OF CHOICE to accommodate for the case you mention above, thank you

timsifive commented 1 year ago

At the last meeting I think you mentioned you defined all the various extension types, but I don't see them in this PR yet. That will be necessary for all the checks to pass.

irmafmz commented 1 year ago

At the last meeting I think you mentioned you defined all the various extension types, but I don't see them in this PR yet. That will be necessary for all the checks to pass.

Hi @timsifive , please check again, I have just pushed up the next set of changes. Many thanks in advance for your Review Comments, Irma

timsifive commented 1 year ago

This should fix the remaining test problems:

diff --git a/examples/example.yaml b/examples/example.yaml
index 9a7eaf4..ffa67bb 100644
--- a/examples/example.yaml
+++ b/examples/example.yaml
@@ -146,16 +146,16 @@ configuration:
   - hartId: { single: [ 0, 2, 4 ] }
     baseIsa:
       - rv32I:
-          - version: { major: 1, minor:  0 }
-        rv64I:
-          - version: { major: 1, minor:  0 }
+          version: { major: 1, minor:  0 }
+      - rv64I:
+          version: { major: 1, minor:  0 }
   - hartId: { single: [ 1, 3 ] }
     baseIsa:
       - rv64I:
-          - version: { major: 1, minor:  5 }
+          version: { major: 1, minor:  5 }
   - baseIsa:
     - rv64I: {}
-    zk: {}
+    #zk: {}
         # zbkbSupported: true
         # zbkcSupported: false
         # zbkxSupported: true
irmafmz commented 1 year ago

Done

irma.t.flores-mendozaibm.com@Irmas-MBP configuration-structure % git diff
diff --git a/examples/example.yaml b/examples/example.yaml
index 9a7eaf4..ffa67bb 100644
--- a/examples/example.yaml
+++ b/examples/example.yaml
@@ -146,16 +146,16 @@ configuration:
   - hartId: { single: [ 0, 2, 4 ] }
     baseIsa:
       - rv32I:
-          - version: { major: 1, minor:  0 }
-        rv64I:
-          - version: { major: 1, minor:  0 }
+          version: { major: 1, minor:  0 }
+      - rv64I:
+          version: { major: 1, minor:  0 }
   - hartId: { single: [ 1, 3 ] }
     baseIsa:
       - rv64I:
-          - version: { major: 1, minor:  5 }
+          version: { major: 1, minor:  5 }
   - baseIsa:
     - rv64I: {}
-    zk: {}
+    #zk: {}
         # zbkbSupported: true
         # zbkcSupported: false
         # zbkxSupported: true
irma.t.flores-mendozaibm.com@Irmas-MBP