Skip to content

Commit e5904ea

Browse files
Changed profile YAML to add "presence" to extensions instead of having separate mandatory and optional lists. Did this to better match CRD and work towards having multiple optional types in RVA23/RVB23.
1 parent 9d60670 commit e5904ea

File tree

12 files changed

+444
-528
lines changed

12 files changed

+444
-528
lines changed

arch/crd/MC-1.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,24 @@ MC-1:
3131
extensions:
3232
- name: I
3333
version: "~> 2.1"
34-
status: mandatory
34+
presence: mandatory
3535
- name: C
3636
version: "~> 2.2"
37-
status: mandatory
37+
presence: mandatory
3838
- name: M
3939
version: "~> 2.0"
40-
status: mandatory
40+
presence: mandatory
4141
- name: Zicsr
4242
version: "~> 2.0"
43-
status: mandatory
43+
presence: mandatory
4444
- name: Zicntr
4545
version: "~> 2.0"
46-
status: mandatory
46+
presence: mandatory
4747
parameters:
4848
TIME_CSR_IMPLEMENTED: {} # Unconstrained
4949
- name: Sm
5050
version: "~> 1.11"
51-
status: mandatory
51+
presence: mandatory
5252
parameters:
5353
MTVEC_BASE_ALIGNMENT_DIRECT: {} # Unconstrained
5454
MTVEC_BASE_ALIGNMENT_VECTORED: {} # Unconstrained

arch/crd/MockCRD-1.yaml

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ MockCRD-1:
2424
# XXX - Remove version information since specifying priv/unpriv ISA manual should imply this.
2525
extensions:
2626
- name: MockExt
27-
status: mandatory
27+
presence: mandatory
2828
parameters:
2929
MOCK_ENUM_2_INTS: {}
3030
MOCK_ENUM_2_STRINGS: {}
@@ -46,11 +46,11 @@ MockCRD-1:
4646
contains: { const : DEF }
4747
- name: I
4848
version: "~> 2.1"
49-
status: mandatory
49+
presence: mandatory
5050
note: Here's a note for the I extension.
5151
- name: C
5252
version: "~> 2.2"
53-
status: mandatory
53+
presence: mandatory
5454
parameters:
5555
MUTABLE_MISA_C:
5656
schema:
@@ -59,19 +59,19 @@ MockCRD-1:
5959
Here's a multi-line note +
6060
for the C extension.
6161
- name: M
62-
status: mandatory
62+
presence: mandatory
6363
version: "~> 2.0"
6464
- name: Zicsr
6565
version: "~> 2.0"
66-
status: mandatory
66+
presence: mandatory
6767
- name: Zicntr
6868
version: "~> 2.0"
69-
status: mandatory
69+
presence: mandatory
7070
parameters:
7171
TIME_CSR_IMPLEMENTED: {} # Unconstrained
7272
- name: Sm
7373
version: "~> 1.11"
74-
status: mandatory
74+
presence: mandatory
7575
parameters:
7676
MTVEC_BASE_ALIGNMENT_DIRECT: {} # Unconstrained
7777
MTVEC_BASE_ALIGNMENT_VECTORED: {} # Unconstrained
@@ -120,22 +120,34 @@ MockCRD-1:
120120
schema:
121121
const: 0
122122
- name: Zifencei
123-
status: optional
123+
presence: optional
124124
note: "Here's a note for Zifencei"
125125
- name: Zicbop
126-
status: optional
126+
presence: optional
127127
note: "Testing CACHE_BLOCK_SIZE parameter which is also defined by Zicbom."
128128
parameters:
129129
CACHE_BLOCK_SIZE:
130130
schema:
131131
const: 64
132132
- name: Zicbom
133-
status: optional
133+
presence: optional
134134
note: "Testing CACHE_BLOCK_SIZE parameter which is also defined by Zicbop."
135135
parameters:
136136
CACHE_BLOCK_SIZE:
137137
schema:
138138
const: 64
139+
- name: Zba
140+
presence: mandatory
141+
version: "~> 1.0"
142+
note: "Added these as mandatory to see if bug in profiles not listing instructions in appendix is here in CRD too."
143+
- name: Zbb
144+
presence: mandatory
145+
version: "~> 1.0"
146+
note: "Added these as mandatory to see if bug in profiles not listing instructions in appendix is here in CRD too."
147+
- name: Zbs
148+
presence: mandatory
149+
version: "~> 1.0"
150+
note: "Added these as mandatory to see if bug in profiles not listing instructions in appendix is here in CRD too."
139151

140152
requirement_groups:
141153
- name: Req-Grp-Any-XLEN

arch/profile/rva20s64.yaml

Lines changed: 52 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,56 @@ rva20s64:
1515
1616
company: SiFive
1717
extensions:
18-
mandatory:
19-
- name: S
20-
version: "= 1.11"
21-
- name: Zifencei
22-
version: "= 2.0"
23-
note: |
24-
Zifencei is mandated as it is the only standard way to support
25-
instruction-cache coherence in RVA20 application processors. A new
26-
instruction-cache coherence mechanism is under development which might
27-
be added as an option in the future.
28-
- name: Svbare
29-
version: "= 1.0"
30-
note: |
31-
Svbare is a new extension name introduced with RVA20.
32-
- name: Sv39
33-
version: "= 1.11"
34-
- name: Svade
35-
version: "~> 1.0"
36-
note: |
37-
Svbare is a new extension name introduced with RVA20.
18+
- name: S
19+
presence: mandatory
20+
version: "= 1.11"
21+
- name: Zifencei
22+
presence: mandatory
23+
version: "= 2.0"
24+
note: |
25+
Zifencei is mandated as it is the only standard way to support
26+
instruction-cache coherence in RVA20 application processors. A new
27+
instruction-cache coherence mechanism is under development which might
28+
be added as an option in the future.
29+
- name: Svbare
30+
presence: mandatory
31+
version: "= 1.0"
32+
note: |
33+
Svbare is a new extension name introduced with RVA20.
34+
- name: Sv39
35+
presence: mandatory
36+
version: "= 1.11"
37+
- name: Svade
38+
presence: mandatory
39+
version: "~> 1.0"
40+
note: |
41+
Svbare is a new extension name introduced with RVA20.
3842
39-
It is subsequently defined in more detail with the ratification of
40-
`Svadu`.
41-
- name: Ssccptr
42-
version: "= 1.0"
43-
note: |
44-
Ssccptr is a new extension name introduced with RVA20.
45-
- name: Sstvecd
46-
version: "= 1.0"
47-
note: |
48-
Sstvecd is a new extension name introduced with RVA20.
49-
- name: Sstvala
50-
version: "= 1.0"
51-
note: |
52-
Sstvala is a new extension name introduced with RVA20.
53-
optional:
54-
- name: Zihpm
55-
version: "= 2.0"
56-
- name: Sv48
57-
version: "= 1.11"
58-
- name: Ssu64xl
59-
version: "= 1.0"
60-
note: |
61-
Ssu64xl is a new extension name introduced with RVA20.
43+
It is subsequently defined in more detail with the ratification of
44+
`Svadu`.
45+
- name: Ssccptr
46+
presence: mandatory
47+
version: "= 1.0"
48+
note: |
49+
Ssccptr is a new extension name introduced with RVA20.
50+
- name: Sstvecd
51+
presence: mandatory
52+
version: "= 1.0"
53+
note: |
54+
Sstvecd is a new extension name introduced with RVA20.
55+
- name: Sstvala
56+
presence: mandatory
57+
version: "= 1.0"
58+
note: |
59+
Sstvala is a new extension name introduced with RVA20.
60+
- name: Zihpm
61+
presence: optional
62+
version: "= 2.0"
63+
- name: Sv48
64+
presence: optional
65+
version: "= 1.11"
66+
- name: Ssu64xl
67+
presence: optional
68+
version: "= 1.0"
69+
note: |
70+
Ssu64xl is a new extension name introduced with RVA20.

0 commit comments

Comments
 (0)