Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0 OR MIT)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/riscv/extensions.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: RISC-V ISA extensions
8
9maintainers:
10 - Paul Walmsley <paul.walmsley@sifive.com>
11 - Palmer Dabbelt <palmer@sifive.com>
12 - Conor Dooley <conor@kernel.org>
13
14description: |
15 RISC-V has a large number of extensions, some of which are "standard"
16 extensions, meaning they are ratified by RISC-V International, and others
17 are "vendor" extensions.
18 This document defines properties that indicate whether a hart supports a
19 given extension.
20
21 Once a standard extension has been ratified, no changes in behaviour can be
22 made without the creation of a new extension.
23 The properties for standard extensions therefore map to their originally
24 ratified states, with the exception of the I, Zicntr & Zihpm extensions.
25 See the "i" property for more information.
26
27properties:
28 riscv,isa:
29 description:
30 Identifies the specific RISC-V instruction set architecture
31 supported by the hart. These are documented in the RISC-V
32 User-Level ISA document, available from
33 https://riscv.org/specifications/
34
35 Due to revisions of the ISA specification, some deviations
36 have arisen over time.
37 Notably, riscv,isa was defined prior to the creation of the
38 Zicntr, Zicsr, Zifencei and Zihpm extensions and thus "i"
39 implies "zicntr_zicsr_zifencei_zihpm".
40
41 While the isa strings in ISA specification are case
42 insensitive, letters in the riscv,isa string must be all
43 lowercase.
44 $ref: /schemas/types.yaml#/definitions/string
45 pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[0-9a-z])+)?(?:_[hsxz](?:[0-9a-z])+)*$
46 deprecated: true
47
48 riscv,isa-base:
49 description:
50 The base ISA implemented by this hart, as described by the 20191213
51 version of the unprivileged ISA specification.
52 enum:
53 - rv32i
54 - rv64i
55
56 riscv,isa-extensions:
57 $ref: /schemas/types.yaml#/definitions/string-array
58 minItems: 1
59 description: Extensions supported by the hart.
60 items:
61 anyOf:
62 # single letter extensions, in canonical order
63 - const: i
64 description: |
65 The base integer instruction set, as ratified in the 20191213
66 version of the unprivileged ISA specification.
67
68 This does not include Chapter 10, "Counters", which was moved into
69 the Zicntr and Zihpm extensions after the ratification of the
70 20191213 version of the unprivileged specification.
71
72 - const: m
73 description:
74 The standard M extension for integer multiplication and division, as
75 ratified in the 20191213 version of the unprivileged ISA
76 specification.
77
78 - const: a
79 description:
80 The standard A extension for atomic instructions, as ratified in the
81 20191213 version of the unprivileged ISA specification.
82
83 - const: f
84 description:
85 The standard F extension for single-precision floating point, as
86 ratified in the 20191213 version of the unprivileged ISA
87 specification.
88
89 - const: d
90 description:
91 The standard D extension for double-precision floating-point, as
92 ratified in the 20191213 version of the unprivileged ISA
93 specification.
94
95 - const: q
96 description:
97 The standard Q extension for quad-precision floating-point, as
98 ratified in the 20191213 version of the unprivileged ISA
99 specification.
100
101 - const: c
102 description:
103 The standard C extension for compressed instructions, as ratified in
104 the 20191213 version of the unprivileged ISA specification.
105
106 - const: b
107 description:
108 The standard B extension for bit manipulation instructions, as
109 ratified in the 20240411 version of the unprivileged ISA
110 specification. The B standard extension comprises instructions
111 provided by the Zba, Zbb, and Zbs extensions.
112
113 - const: v
114 description:
115 The standard V extension for vector operations, as ratified
116 in-and-around commit 7a6c8ae ("Fix text that describes vfmv.v.f
117 encoding") of the riscv-v-spec.
118
119 - const: h
120 description:
121 The standard H extension for hypervisors as ratified in the RISC-V
122 Instruction Set Manual, Volume II Privileged Architecture,
123 Document Version 20211203.
124
125 # multi-letter extensions, sorted alphanumerically
126 - const: sha
127 description: |
128 The standard Sha extension for augmented hypervisor extension as
129 ratified in RVA23 Profiles Version 1.0, with commit 0273f3c921b6
130 ("rva23/rvb23 ratified").
131
132 Sha captures the full set of features that are mandated to be
133 supported along with the H extension. Sha comprises the following
134 extensions: H, Shcounterenw, Shgatpa, Shtvala, Shvsatpa, Shvstvala,
135 Shvstvecd, and Ssstateen.
136
137 - const: shcounterenw
138 description: |
139 The standard Shcounterenw extension for support writable enables
140 in hcounteren for any supported counter, as ratified in RISC-V
141 Profiles Version 1.0, with commit b1d806605f87 ("Updated to
142 ratified state.")
143
144 - const: shgatpa
145 description: |
146 The standard Shgatpa extension indicates that for each supported
147 virtual memory scheme SvNN supported in satp, the corresponding
148 hgatp SvNNx4 mode must be supported. The hgatp mode Bare must
149 also be supported. It is ratified in RISC-V Profiles Version 1.0,
150 with commit b1d806605f87 ("Updated to ratified state.")
151
152 - const: shtvala
153 description: |
154 The standard Shtvala extension for htval be written with the
155 faulting guest physical address in all circumstances permitted by
156 the ISA. It is ratified in RISC-V Profiles Version 1.0, with
157 commit b1d806605f87 ("Updated to ratified state.")
158
159 - const: shvsatpa
160 description: |
161 The standard Shvsatpa extension for vsatp supporting all translation
162 modes supported in satp, as ratified in RISC-V Profiles Version 1.0,
163 with commit b1d806605f87 ("Updated to ratified state.")
164
165 - const: shvstvala
166 description: |
167 The standard Shvstvala extension for vstval provides all needed
168 values as ratified in RISC-V Profiles Version 1.0, with commit
169 b1d806605f87 ("Updated to ratified state.")
170
171 - const: shvstvecd
172 description: |
173 The standard Shvstvecd extension for vstvec supporting Direct mode,
174 as ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
175 ("Updated to ratified state.")
176
177 - const: smaia
178 description: |
179 The standard Smaia supervisor-level extension for the advanced
180 interrupt architecture for machine-mode-visible csr and behavioural
181 changes to interrupts as frozen at commit ccbddab ("Merge pull
182 request #42 from riscv/jhauser-2023-RC4") of riscv-aia.
183
184 - const: smmpm
185 description: |
186 The standard Smmpm extension for M-mode pointer masking as
187 ratified at commit d70011dde6c2 ("Update to ratified state")
188 of riscv-j-extension.
189
190 - const: smnpm
191 description: |
192 The standard Smnpm extension for next-mode pointer masking as
193 ratified at commit d70011dde6c2 ("Update to ratified state")
194 of riscv-j-extension.
195
196 - const: smstateen
197 description: |
198 The standard Smstateen extension for controlling access to CSRs
199 added by other RISC-V extensions in H/S/VS/U/VU modes and as
200 ratified at commit a28bfae (Ratified (#7)) of riscv-state-enable.
201
202 - const: ssaia
203 description: |
204 The standard Ssaia supervisor-level extension for the advanced
205 interrupt architecture for supervisor-mode-visible csr and
206 behavioural changes to interrupts as frozen at commit ccbddab
207 ("Merge pull request #42 from riscv/jhauser-2023-RC4") of riscv-aia.
208
209 - const: ssccptr
210 description: |
211 The standard Ssccptr extension for main memory (cacheability and
212 coherence) hardware page-table reads, as ratified in RISC-V
213 Profiles Version 1.0, with commit b1d806605f87 ("Updated to
214 ratified state.")
215
216 - const: sscofpmf
217 description: |
218 The standard Sscofpmf supervisor-level extension for count overflow
219 and mode-based filtering as ratified at commit 01d1df0 ("Add ability
220 to manually trigger workflow. (#2)") of riscv-count-overflow.
221
222 - const: sscounterenw
223 description: |
224 The standard Sscounterenw extension for support writable enables
225 in scounteren for any supported counter, as ratified in RISC-V
226 Profiles Version 1.0, with commit b1d806605f87 ("Updated to
227 ratified state.")
228
229 - const: ssnpm
230 description: |
231 The standard Ssnpm extension for next-mode pointer masking as
232 ratified at commit d70011dde6c2 ("Update to ratified state")
233 of riscv-j-extension.
234
235 - const: ssstateen
236 description: |
237 The standard Ssstateen extension for supervisor-mode view of the
238 state-enable extension, as ratified in RISC-V Profiles Version 1.0,
239 with commit b1d806605f87 ("Updated to ratified state.")
240
241 - const: sstc
242 description: |
243 The standard Sstc supervisor-level extension for time compare as
244 ratified at commit 3f9ed34 ("Add ability to manually trigger
245 workflow. (#2)") of riscv-time-compare.
246
247 - const: sstvala
248 description: |
249 The standard Sstvala extension for stval provides all needed values
250 as ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
251 ("Updated to ratified state.")
252
253 - const: sstvecd
254 description: |
255 The standard Sstvecd extension for stvec supports Direct mode as
256 ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
257 ("Updated to ratified state.")
258
259 - const: ssu64xl
260 description: |
261 The standard Ssu64xl extension for UXLEN=64 must be supported, as
262 ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
263 ("Updated to ratified state.")
264
265 - const: svade
266 description: |
267 The standard Svade supervisor-level extension for SW-managed PTE A/D
268 bit updates as ratified in the 20240213 version of the privileged
269 ISA specification.
270
271 Both Svade and Svadu extensions control the hardware behavior when
272 the PTE A/D bits need to be set. The default behavior for the four
273 possible combinations of these extensions in the device tree are:
274 1) Neither Svade nor Svadu present in DT => It is technically
275 unknown whether the platform uses Svade or Svadu. Supervisor
276 software should be prepared to handle either hardware updating
277 of the PTE A/D bits or page faults when they need updated.
278 2) Only Svade present in DT => Supervisor must assume Svade to be
279 always enabled.
280 3) Only Svadu present in DT => Supervisor must assume Svadu to be
281 always enabled.
282 4) Both Svade and Svadu present in DT => Supervisor must assume
283 Svadu turned-off at boot time. To use Svadu, supervisor must
284 explicitly enable it using the SBI FWFT extension.
285
286 - const: svadu
287 description: |
288 The standard Svadu supervisor-level extension for hardware updating
289 of PTE A/D bits as ratified in the 20240528 version of the
290 privileged ISA specification. Please refer to Svade dt-binding
291 description for more details.
292
293 - const: svinval
294 description:
295 The standard Svinval supervisor-level extension for fine-grained
296 address-translation cache invalidation as ratified in the RISC-V
297 Instruction Set Manual, Volume II Privileged Architecture,
298 Document Version 20211203.
299
300 - const: svnapot
301 description:
302 The standard Svnapot supervisor-level extensions for napot
303 translation contiguity as ratified in the RISC-V Instruction Set
304 Manual, Volume II Privileged Architecture, Document Version
305 20211203.
306
307 - const: svpbmt
308 description:
309 The standard Svpbmt supervisor-level extensions for page-based
310 memory types as ratified in the RISC-V Instruction Set Manual,
311 Volume II Privileged Architecture, Document Version 20211203.
312
313 - const: svrsw60t59b
314 description:
315 The Svrsw60t59b extension for providing two more bits[60:59] to
316 PTE/PMD entry as ratified at commit 28bde925e7a7 ("PTE Reserved
317 for SW bits 60:59") of riscv-non-isa/riscv-iommu.
318
319 - const: svvptc
320 description:
321 The standard Svvptc supervisor-level extension for
322 address-translation cache behaviour with respect to invalid entries
323 as ratified at commit 4a69197e5617 ("Update to ratified state") of
324 riscv-svvptc.
325
326 - const: za64rs
327 description:
328 The standard Za64rs extension for reservation set size of at most
329 64 bytes, as ratified in RISC-V Profiles Version 1.0, with commit
330 b1d806605f87 ("Updated to ratified state.")
331
332 - const: zaamo
333 description: |
334 The standard Zaamo extension for atomic memory operations as
335 ratified at commit e87412e621f1 ("integrate Zaamo and Zalrsc text
336 (#1304)") of the unprivileged ISA specification.
337
338 - const: zabha
339 description: |
340 The Zabha extension for Byte and Halfword Atomic Memory Operations
341 as ratified at commit 49f49c842ff9 ("Update to Rafified state") of
342 riscv-zabha.
343
344 - const: zacas
345 description: |
346 The Zacas extension for Atomic Compare-and-Swap (CAS) instructions
347 is supported as ratified at commit 5059e0ca641c ("update to
348 ratified") of the riscv-zacas.
349
350 - const: zalasr
351 description: |
352 The standard Zalasr extension for load-acquire/store-release as frozen
353 at commit 194f0094 ("Version 0.9 for freeze") of riscv-zalasr.
354
355 - const: zalrsc
356 description: |
357 The standard Zalrsc extension for load-reserved/store-conditional as
358 ratified at commit e87412e621f1 ("integrate Zaamo and Zalrsc text
359 (#1304)") of the unprivileged ISA specification.
360
361 - const: zawrs
362 description: |
363 The Zawrs extension for entering a low-power state or for trapping
364 to a hypervisor while waiting on a store to a memory location, as
365 ratified in commit 98918c844281 ("Merge pull request #1217 from
366 riscv/zawrs") of riscv-isa-manual.
367
368 - const: zba
369 description: |
370 The standard Zba bit-manipulation extension for address generation
371 acceleration instructions as ratified at commit 6d33919 ("Merge pull
372 request #158 from hirooih/clmul-fix-loop-end-condition") of
373 riscv-bitmanip.
374
375 - const: zbb
376 description: |
377 The standard Zbb bit-manipulation extension for basic bit-manipulation
378 as ratified at commit 6d33919 ("Merge pull request #158 from
379 hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
380
381 - const: zbc
382 description: |
383 The standard Zbc bit-manipulation extension for carry-less
384 multiplication as ratified at commit 6d33919 ("Merge pull request
385 #158 from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
386
387 - const: zbkb
388 description:
389 The standard Zbkb bitmanip instructions for cryptography as ratified
390 in version 1.0 of RISC-V Cryptography Extensions Volume I
391 specification.
392
393 - const: zbkc
394 description:
395 The standard Zbkc carry-less multiply instructions as ratified
396 in version 1.0 of RISC-V Cryptography Extensions Volume I
397 specification.
398
399 - const: zbkx
400 description:
401 The standard Zbkx crossbar permutation instructions as ratified
402 in version 1.0 of RISC-V Cryptography Extensions Volume I
403 specification.
404
405 - const: zbs
406 description: |
407 The standard Zbs bit-manipulation extension for single-bit
408 instructions as ratified at commit 6d33919 ("Merge pull request #158
409 from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
410
411 - const: zca
412 description: |
413 The Zca extension part of Zc* standard extensions for code size
414 reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
415 RV64 as it contains no instructions") of riscv-code-size-reduction,
416 merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
417 of zc.adoc to src tree.").
418
419 - const: zcb
420 description: |
421 The Zcb extension part of Zc* standard extensions for code size
422 reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
423 RV64 as it contains no instructions") of riscv-code-size-reduction,
424 merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
425 of zc.adoc to src tree.").
426
427 - const: zcd
428 description: |
429 The Zcd extension part of Zc* standard extensions for code size
430 reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
431 RV64 as it contains no instructions") of riscv-code-size-reduction,
432 merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
433 of zc.adoc to src tree.").
434
435 - const: zcf
436 description: |
437 The Zcf extension part of Zc* standard extensions for code size
438 reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
439 RV64 as it contains no instructions") of riscv-code-size-reduction,
440 merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
441 of zc.adoc to src tree.").
442
443 - const: zcmop
444 description:
445 The standard Zcmop extension version 1.0, as ratified in commit
446 c732a4f39a4 ("Zcmop is ratified/1.0") of the riscv-isa-manual.
447
448 - const: zfa
449 description:
450 The standard Zfa extension for additional floating point
451 instructions, as ratified in commit 056b6ff ("Zfa is ratified") of
452 riscv-isa-manual.
453
454 - const: zfbfmin
455 description:
456 The standard Zfbfmin extension which provides minimal support for
457 16-bit half-precision brain floating-point instructions, as ratified
458 in commit 4dc23d62 ("Added Chapter title to BF16") of riscv-isa-manual.
459
460 - const: zfh
461 description:
462 The standard Zfh extension for 16-bit half-precision binary
463 floating-point instructions, as ratified in commit 64074bc ("Update
464 version numbers for Zfh/Zfinx") of riscv-isa-manual.
465
466 - const: zfhmin
467 description:
468 The standard Zfhmin extension which provides minimal support for
469 16-bit half-precision binary floating-point instructions, as ratified
470 in commit 64074bc ("Update version numbers for Zfh/Zfinx") of
471 riscv-isa-manual.
472
473 - const: ziccamoa
474 description:
475 The standard Ziccamoa extension for main memory (cacheability and
476 coherence) must support all atomics in A, as ratified in RISC-V
477 Profiles Version 1.0, with commit b1d806605f87 ("Updated to
478 ratified state.")
479
480 - const: ziccif
481 description:
482 The standard Ziccif extension for main memory (cacheability and
483 coherence) instruction fetch atomicity, as ratified in RISC-V
484 Profiles Version 1.0, with commit b1d806605f87 ("Updated to
485 ratified state.")
486
487 - const: zicclsm
488 description:
489 The standard Zicclsm extension for main memory (cacheability and
490 coherence) must support misaligned loads and stores, as ratified
491 in RISC-V Profiles Version 1.0, with commit b1d806605f87 ("Updated
492 to ratified state.")
493
494 - const: ziccrse
495 description:
496 The standard Ziccrse extension which provides forward progress
497 guarantee on LR/SC sequences, as ratified in commit b1d806605f87
498 ("Updated to ratified state.") of the riscv profiles specification.
499
500 - const: zilsd
501 description:
502 The standard Zilsd extension which provides support for aligned
503 register-pair load and store operations in 32-bit instruction
504 encodings, as ratified in commit f88abf1 ("Integrating
505 load/store pair for RV32 with the main manual") of riscv-isa-manual.
506
507 - const: zclsd
508 description:
509 The Zclsd extension implements the compressed (16-bit) version of the
510 Load/Store Pair for RV32. As with Zilsd, this extension was ratified
511 in commit f88abf1 ("Integrating load/store pair for RV32 with the
512 main manual") of riscv-isa-manual.
513
514 - const: zk
515 description:
516 The standard Zk Standard Scalar cryptography extension as ratified
517 in version 1.0 of RISC-V Cryptography Extensions Volume I
518 specification.
519
520 - const: zkn
521 description:
522 The standard Zkn NIST algorithm suite extensions as ratified in
523 version 1.0 of RISC-V Cryptography Extensions Volume I
524 specification.
525
526 - const: zknd
527 description: |
528 The standard Zknd for NIST suite: AES decryption instructions as
529 ratified in version 1.0 of RISC-V Cryptography Extensions Volume I
530 specification.
531
532 - const: zkne
533 description: |
534 The standard Zkne for NIST suite: AES encryption instructions as
535 ratified in version 1.0 of RISC-V Cryptography Extensions Volume I
536 specification.
537
538 - const: zknh
539 description: |
540 The standard Zknh for NIST suite: hash function instructions as
541 ratified in version 1.0 of RISC-V Cryptography Extensions Volume I
542 specification.
543
544 - const: zkr
545 description:
546 The standard Zkr entropy source extension as ratified in version
547 1.0 of RISC-V Cryptography Extensions Volume I specification.
548 This string being present means that the CSR associated to this
549 extension is accessible at the privilege level to which that
550 device-tree has been provided.
551
552 - const: zks
553 description:
554 The standard Zks ShangMi algorithm suite extensions as ratified in
555 version 1.0 of RISC-V Cryptography Extensions Volume I
556 specification.
557
558 - const: zksed
559 description: |
560 The standard Zksed for ShangMi suite: SM4 block cipher instructions
561 as ratified in version 1.0 of RISC-V Cryptography Extensions
562 Volume I specification.
563
564 - const: zksh
565 description: |
566 The standard Zksh for ShangMi suite: SM3 hash function instructions
567 as ratified in version 1.0 of RISC-V Cryptography Extensions
568 Volume I specification.
569
570 - const: zkt
571 description:
572 The standard Zkt for data independent execution latency as ratified
573 in version 1.0 of RISC-V Cryptography Extensions Volume I
574 specification.
575
576 - const: zicbom
577 description:
578 The standard Zicbom extension for base cache management operations as
579 ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs.
580
581 - const: zicbop
582 description:
583 The standard Zicbop extension for cache-block prefetch instructions
584 as ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of
585 riscv-CMOs.
586
587 - const: zicboz
588 description:
589 The standard Zicboz extension for cache-block zeroing as ratified
590 in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs.
591
592 - const: zicntr
593 description:
594 The standard Zicntr extension for base counters and timers, as
595 ratified in the 20191213 version of the unprivileged ISA
596 specification.
597
598 - const: zicond
599 description:
600 The standard Zicond extension for conditional arithmetic and
601 conditional-select/move operations as ratified in commit 95cf1f9
602 ("Add changes requested by Ved during signoff") of riscv-zicond.
603
604 - const: zicsr
605 description: |
606 The standard Zicsr extension for control and status register
607 instructions, as ratified in the 20191213 version of the
608 unprivileged ISA specification.
609
610 This does not include Chapter 10, "Counters", which documents
611 special case read-only CSRs, that were moved into the Zicntr and
612 Zihpm extensions after the ratification of the 20191213 version of
613 the unprivileged specification.
614
615 - const: zifencei
616 description:
617 The standard Zifencei extension for instruction-fetch fence, as
618 ratified in the 20191213 version of the unprivileged ISA
619 specification.
620
621 - const: zihintpause
622 description:
623 The standard Zihintpause extension for pause hints, as ratified in
624 commit d8ab5c7 ("Zihintpause is ratified") of the riscv-isa-manual.
625
626 - const: zihintntl
627 description:
628 The standard Zihintntl extension for non-temporal locality hints, as
629 ratified in commit 0dc91f5 ("Zihintntl is ratified") of the
630 riscv-isa-manual.
631
632 - const: zihpm
633 description:
634 The standard Zihpm extension for hardware performance counters, as
635 ratified in the 20191213 version of the unprivileged ISA
636 specification.
637
638 - const: zimop
639 description:
640 The standard Zimop extension version 1.0, as ratified in commit
641 58220614a5f ("Zimop is ratified/1.0") of the riscv-isa-manual.
642
643 - const: ztso
644 description:
645 The standard Ztso extension for total store ordering, as ratified
646 in commit 2e5236 ("Ztso is now ratified.") of the
647 riscv-isa-manual.
648
649 - const: zvbb
650 description:
651 The standard Zvbb extension for vectored basic bit-manipulation
652 instructions, as ratified in commit 56ed795 ("Update
653 riscv-crypto-spec-vector.adoc") of riscv-crypto.
654
655 - const: zvbc
656 description:
657 The standard Zvbc extension for vectored carryless multiplication
658 instructions, as ratified in commit 56ed795 ("Update
659 riscv-crypto-spec-vector.adoc") of riscv-crypto.
660
661 - const: zve32f
662 description:
663 The standard Zve32f extension for embedded processors, as ratified
664 in commit 6f702a2 ("Vector extensions are now ratified") of
665 riscv-v-spec.
666
667 - const: zve32x
668 description:
669 The standard Zve32x extension for embedded processors, as ratified
670 in commit 6f702a2 ("Vector extensions are now ratified") of
671 riscv-v-spec.
672
673 - const: zve64d
674 description:
675 The standard Zve64d extension for embedded processors, as ratified
676 in commit 6f702a2 ("Vector extensions are now ratified") of
677 riscv-v-spec.
678
679 - const: zve64f
680 description:
681 The standard Zve64f extension for embedded processors, as ratified
682 in commit 6f702a2 ("Vector extensions are now ratified") of
683 riscv-v-spec.
684
685 - const: zve64x
686 description:
687 The standard Zve64x extension for embedded processors, as ratified
688 in commit 6f702a2 ("Vector extensions are now ratified") of
689 riscv-v-spec.
690
691 - const: zvfbfmin
692 description:
693 The standard Zvfbfmin extension for minimal support for vectored
694 16-bit half-precision brain floating-point instructions, as ratified
695 in commit 4dc23d62 ("Added Chapter title to BF16") of riscv-isa-manual.
696
697 - const: zvfbfwma
698 description:
699 The standard Zvfbfwma extension for vectored half-precision brain
700 floating-point widening multiply-accumulate instructions, as ratified
701 in commit 4dc23d62 ("Added Chapter title to BF16") of riscv-isa-manual.
702
703 - const: zvfh
704 description:
705 The standard Zvfh extension for vectored half-precision
706 floating-point instructions, as ratified in commit e2ccd05
707 ("Remove draft warnings from Zvfh[min]") of riscv-v-spec.
708
709 - const: zvfhmin
710 description:
711 The standard Zvfhmin extension for vectored minimal half-precision
712 floating-point instructions, as ratified in commit e2ccd05
713 ("Remove draft warnings from Zvfh[min]") of riscv-v-spec.
714
715 - const: zvkb
716 description:
717 The standard Zvkb extension for vector cryptography bit-manipulation
718 instructions, as ratified in commit 56ed795 ("Update
719 riscv-crypto-spec-vector.adoc") of riscv-crypto.
720
721 - const: zvkg
722 description:
723 The standard Zvkg extension for vector GCM/GMAC instructions, as
724 ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc")
725 of riscv-crypto.
726
727 - const: zvkn
728 description:
729 The standard Zvkn extension for NIST algorithm suite instructions, as
730 ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc")
731 of riscv-crypto.
732
733 - const: zvknc
734 description:
735 The standard Zvknc extension for NIST algorithm suite with carryless
736 multiply instructions, as ratified in commit 56ed795 ("Update
737 riscv-crypto-spec-vector.adoc") of riscv-crypto.
738
739 - const: zvkned
740 description:
741 The standard Zvkned extension for Vector AES block cipher
742 instructions, as ratified in commit 56ed795 ("Update
743 riscv-crypto-spec-vector.adoc") of riscv-crypto.
744
745 - const: zvkng
746 description:
747 The standard Zvkng extension for NIST algorithm suite with GCM
748 instructions, as ratified in commit 56ed795 ("Update
749 riscv-crypto-spec-vector.adoc") of riscv-crypto.
750
751 - const: zvknha
752 description: |
753 The standard Zvknha extension for NIST suite: vector SHA-2 secure,
754 hash (SHA-256 only) instructions, as ratified in commit
755 56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto.
756
757 - const: zvknhb
758 description: |
759 The standard Zvknhb extension for NIST suite: vector SHA-2 secure,
760 hash (SHA-256 and SHA-512) instructions, as ratified in commit
761 56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto.
762
763 - const: zvks
764 description:
765 The standard Zvks extension for ShangMi algorithm suite
766 instructions, as ratified in commit 56ed795 ("Update
767 riscv-crypto-spec-vector.adoc") of riscv-crypto.
768
769 - const: zvksc
770 description:
771 The standard Zvksc extension for ShangMi algorithm suite with
772 carryless multiplication instructions, as ratified in commit 56ed795
773 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto.
774
775 - const: zvksed
776 description: |
777 The standard Zvksed extension for ShangMi suite: SM4 block cipher
778 instructions, as ratified in commit 56ed795 ("Update
779 riscv-crypto-spec-vector.adoc") of riscv-crypto.
780
781 - const: zvksh
782 description: |
783 The standard Zvksh extension for ShangMi suite: SM3 secure hash
784 instructions, as ratified in commit 56ed795 ("Update
785 riscv-crypto-spec-vector.adoc") of riscv-crypto.
786
787 - const: zvksg
788 description:
789 The standard Zvksg extension for ShangMi algorithm suite with GCM
790 instructions, as ratified in commit 56ed795 ("Update
791 riscv-crypto-spec-vector.adoc") of riscv-crypto.
792
793 - const: zvkt
794 description:
795 The standard Zvkt extension for vector data-independent execution
796 latency, as ratified in commit 56ed795 ("Update
797 riscv-crypto-spec-vector.adoc") of riscv-crypto.
798
799 # vendor extensions, each extension sorted alphanumerically under the
800 # vendor they belong to. Vendors are sorted alphanumerically as well.
801
802 # Andes
803 - const: xandespmu
804 description:
805 The Andes Technology performance monitor extension for counter overflow
806 and privilege mode filtering. For more details, see Counter Related
807 Registers in the AX45MP datasheet.
808 https://www.andestech.com/wp-content/uploads/AX45MP-1C-Rev.-5.0.0-Datasheet.pdf
809
810 # MIPS
811 - const: xmipsexectl
812 description:
813 The MIPS extension for execution control as documented in
814 https://mips.com/wp-content/uploads/2025/06/P8700_Programmers_Reference_Manual_Rev1.84_5-31-2025.pdf
815
816 # SiFive
817 - const: xsfcease
818 description:
819 SiFive CEASE Instruction Extensions Specification.
820 See more details in
821 https://www.sifive.com/document-file/freedom-u740-c000-manual
822
823 - const: xsfcflushdlone
824 description:
825 SiFive L1D Cache Flush Instruction Extensions Specification.
826 See more details in
827 https://www.sifive.com/document-file/freedom-u740-c000-manual
828
829 - const: xsfpgflushdlone
830 description:
831 SiFive PGFLUSH Instruction Extensions for the power management. The
832 CPU will flush the L1D and enter the cease state after executing
833 the instruction.
834
835 - const: xsfvqmaccdod
836 description:
837 SiFive Int8 Matrix Multiplication Extensions Specification.
838 See more details in
839 https://www.sifive.com/document-file/sifive-int8-matrix-multiplication-extensions-specification
840
841 - const: xsfvqmaccqoq
842 description:
843 SiFive Int8 Matrix Multiplication Extensions Specification.
844 See more details in
845 https://www.sifive.com/document-file/sifive-int8-matrix-multiplication-extensions-specification
846
847 - const: xsfvfnrclipxfqf
848 description:
849 SiFive FP32-to-int8 Ranged Clip Instructions Extensions Specification.
850 See more details in
851 https://www.sifive.com/document-file/fp32-to-int8-ranged-clip-instructions
852
853 - const: xsfvfwmaccqqq
854 description:
855 SiFive Matrix Multiply Accumulate Instruction Extensions Specification.
856 See more details in
857 https://www.sifive.com/document-file/matrix-multiply-accumulate-instruction
858
859 # T-HEAD
860 - const: xtheadvector
861 description:
862 The T-HEAD specific 0.7.1 vector implementation as written in
863 https://github.com/T-head-Semi/thead-extension-spec/blob/95358cb2cca9489361c61d335e03d3134b14133f/xtheadvector.adoc.
864
865 allOf:
866 - if:
867 contains:
868 const: d
869 then:
870 contains:
871 const: f
872 # B comprises Zba, Zbb, and Zbs
873 - if:
874 contains:
875 const: b
876 then:
877 allOf:
878 - contains:
879 const: zba
880 - contains:
881 const: zbb
882 - contains:
883 const: zbs
884 # Zba, Zbb, Zbs together require B
885 - if:
886 allOf:
887 - contains:
888 const: zba
889 - contains:
890 const: zbb
891 - contains:
892 const: zbs
893 then:
894 contains:
895 const: b
896 # Za64rs and Ziccrse depend on Zalrsc or A
897 - if:
898 contains:
899 anyOf:
900 - const: za64rs
901 - const: ziccrse
902 then:
903 oneOf:
904 - contains:
905 const: zalrsc
906 - contains:
907 const: a
908 # Zcb depends on Zca
909 - if:
910 contains:
911 const: zcb
912 then:
913 contains:
914 const: zca
915 # Zcd depends on Zca and D
916 - if:
917 contains:
918 const: zcd
919 then:
920 allOf:
921 - contains:
922 const: zca
923 - contains:
924 const: d
925 # Zcf depends on Zca and F
926 - if:
927 contains:
928 const: zcf
929 then:
930 allOf:
931 - contains:
932 const: zca
933 - contains:
934 const: f
935 # Zcmop depends on Zca
936 - if:
937 contains:
938 const: zcmop
939 then:
940 contains:
941 const: zca
942 # Zfbfmin depends on F
943 - if:
944 contains:
945 const: zfbfmin
946 then:
947 contains:
948 const: f
949 # Ziccamoa depends on Zaamo or A
950 - if:
951 contains:
952 const: ziccamoa
953 then:
954 oneOf:
955 - contains:
956 const: zaamo
957 - contains:
958 const: a
959 # Zvfbfmin depends on V or Zve32f
960 - if:
961 contains:
962 const: zvfbfmin
963 then:
964 oneOf:
965 - contains:
966 const: v
967 - contains:
968 const: zve32f
969 # Zvfbfwma depends on Zfbfmin and Zvfbfmin
970 - if:
971 contains:
972 const: zvfbfwma
973 then:
974 allOf:
975 - contains:
976 const: zfbfmin
977 - contains:
978 const: zvfbfmin
979 # Zacas depends on Zaamo
980 - if:
981 contains:
982 const: zacas
983 then:
984 contains:
985 const: zaamo
986
987 - if:
988 contains:
989 const: zve32x
990 then:
991 contains:
992 const: zicsr
993
994 - if:
995 contains:
996 const: zve32f
997 then:
998 allOf:
999 - contains:
1000 const: f
1001 - contains:
1002 const: zve32x
1003
1004 - if:
1005 contains:
1006 const: zve64x
1007 then:
1008 contains:
1009 const: zve32x
1010
1011 - if:
1012 contains:
1013 const: zve64f
1014 then:
1015 allOf:
1016 - contains:
1017 const: f
1018 - contains:
1019 const: zve32f
1020 - contains:
1021 const: zve64x
1022
1023 - if:
1024 contains:
1025 const: zve64d
1026 then:
1027 allOf:
1028 - contains:
1029 const: d
1030 - contains:
1031 const: zve64f
1032
1033 - if:
1034 contains:
1035 anyOf:
1036 - const: zvbc
1037 - const: zvkn
1038 - const: zvknc
1039 - const: zvkng
1040 - const: zvknhb
1041 - const: zvksc
1042 then:
1043 contains:
1044 anyOf:
1045 - const: v
1046 - const: zve64x
1047
1048 - if:
1049 contains:
1050 anyOf:
1051 - const: zvbb
1052 - const: zvkb
1053 - const: zvkg
1054 - const: zvkned
1055 - const: zvknha
1056 - const: zvksed
1057 - const: zvksh
1058 - const: zvks
1059 - const: zvkt
1060 then:
1061 contains:
1062 anyOf:
1063 - const: v
1064 - const: zve32x
1065 # Zclsd depends on Zilsd and Zca
1066 - if:
1067 contains:
1068 anyOf:
1069 - const: zclsd
1070 then:
1071 contains:
1072 allOf:
1073 - const: zilsd
1074 - const: zca
1075
1076allOf:
1077 # Zcf extension does not exist on rv64
1078 - if:
1079 properties:
1080 riscv,isa-extensions:
1081 contains:
1082 const: zcf
1083 riscv,isa-base:
1084 contains:
1085 const: rv64i
1086 then:
1087 properties:
1088 riscv,isa-extensions:
1089 not:
1090 contains:
1091 const: zcf
1092 # Zilsd extension does not exist on rv64
1093 - if:
1094 properties:
1095 riscv,isa-base:
1096 contains:
1097 const: rv64i
1098 then:
1099 properties:
1100 riscv,isa-extensions:
1101 not:
1102 contains:
1103 const: zilsd
1104
1105additionalProperties: true
1106...