1f126890aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR MIT) 2f126890aSEmmanuel Vadot%YAML 1.2 3f126890aSEmmanuel Vadot--- 4f126890aSEmmanuel Vadot$id: http://devicetree.org/schemas/riscv/extensions.yaml# 5f126890aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6f126890aSEmmanuel Vadot 7f126890aSEmmanuel Vadottitle: RISC-V ISA extensions 8f126890aSEmmanuel Vadot 9f126890aSEmmanuel Vadotmaintainers: 10f126890aSEmmanuel Vadot - Paul Walmsley <paul.walmsley@sifive.com> 11f126890aSEmmanuel Vadot - Palmer Dabbelt <palmer@sifive.com> 12f126890aSEmmanuel Vadot - Conor Dooley <conor@kernel.org> 13f126890aSEmmanuel Vadot 14f126890aSEmmanuel Vadotdescription: | 15f126890aSEmmanuel Vadot RISC-V has a large number of extensions, some of which are "standard" 16f126890aSEmmanuel Vadot extensions, meaning they are ratified by RISC-V International, and others 17f126890aSEmmanuel Vadot are "vendor" extensions. 18f126890aSEmmanuel Vadot This document defines properties that indicate whether a hart supports a 19f126890aSEmmanuel Vadot given extension. 20f126890aSEmmanuel Vadot 21f126890aSEmmanuel Vadot Once a standard extension has been ratified, no changes in behaviour can be 22f126890aSEmmanuel Vadot made without the creation of a new extension. 23f126890aSEmmanuel Vadot The properties for standard extensions therefore map to their originally 24f126890aSEmmanuel Vadot ratified states, with the exception of the I, Zicntr & Zihpm extensions. 25f126890aSEmmanuel Vadot See the "i" property for more information. 26f126890aSEmmanuel Vadot 27f126890aSEmmanuel Vadotselect: 28f126890aSEmmanuel Vadot properties: 29f126890aSEmmanuel Vadot compatible: 30f126890aSEmmanuel Vadot contains: 31f126890aSEmmanuel Vadot const: riscv 32f126890aSEmmanuel Vadot 33f126890aSEmmanuel Vadotproperties: 34f126890aSEmmanuel Vadot riscv,isa: 35f126890aSEmmanuel Vadot description: 36f126890aSEmmanuel Vadot Identifies the specific RISC-V instruction set architecture 37f126890aSEmmanuel Vadot supported by the hart. These are documented in the RISC-V 38f126890aSEmmanuel Vadot User-Level ISA document, available from 39f126890aSEmmanuel Vadot https://riscv.org/specifications/ 40f126890aSEmmanuel Vadot 41f126890aSEmmanuel Vadot Due to revisions of the ISA specification, some deviations 42f126890aSEmmanuel Vadot have arisen over time. 43f126890aSEmmanuel Vadot Notably, riscv,isa was defined prior to the creation of the 44f126890aSEmmanuel Vadot Zicntr, Zicsr, Zifencei and Zihpm extensions and thus "i" 45f126890aSEmmanuel Vadot implies "zicntr_zicsr_zifencei_zihpm". 46f126890aSEmmanuel Vadot 47f126890aSEmmanuel Vadot While the isa strings in ISA specification are case 48f126890aSEmmanuel Vadot insensitive, letters in the riscv,isa string must be all 49f126890aSEmmanuel Vadot lowercase. 50f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 518d13bc63SEmmanuel Vadot pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[0-9a-z])+)?(?:_[hsxz](?:[0-9a-z])+)*$ 52f126890aSEmmanuel Vadot deprecated: true 53f126890aSEmmanuel Vadot 54f126890aSEmmanuel Vadot riscv,isa-base: 55f126890aSEmmanuel Vadot description: 56f126890aSEmmanuel Vadot The base ISA implemented by this hart, as described by the 20191213 57f126890aSEmmanuel Vadot version of the unprivileged ISA specification. 58f126890aSEmmanuel Vadot enum: 59f126890aSEmmanuel Vadot - rv32i 60f126890aSEmmanuel Vadot - rv64i 61f126890aSEmmanuel Vadot 62f126890aSEmmanuel Vadot riscv,isa-extensions: 63f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string-array 64f126890aSEmmanuel Vadot minItems: 1 65f126890aSEmmanuel Vadot description: Extensions supported by the hart. 66f126890aSEmmanuel Vadot items: 67f126890aSEmmanuel Vadot anyOf: 68f126890aSEmmanuel Vadot # single letter extensions, in canonical order 69f126890aSEmmanuel Vadot - const: i 70f126890aSEmmanuel Vadot description: | 71f126890aSEmmanuel Vadot The base integer instruction set, as ratified in the 20191213 72f126890aSEmmanuel Vadot version of the unprivileged ISA specification. 73f126890aSEmmanuel Vadot 74f126890aSEmmanuel Vadot This does not include Chapter 10, "Counters", which was moved into 75f126890aSEmmanuel Vadot the Zicntr and Zihpm extensions after the ratification of the 76f126890aSEmmanuel Vadot 20191213 version of the unprivileged specification. 77f126890aSEmmanuel Vadot 78f126890aSEmmanuel Vadot - const: m 79f126890aSEmmanuel Vadot description: 80f126890aSEmmanuel Vadot The standard M extension for integer multiplication and division, as 81f126890aSEmmanuel Vadot ratified in the 20191213 version of the unprivileged ISA 82f126890aSEmmanuel Vadot specification. 83f126890aSEmmanuel Vadot 84f126890aSEmmanuel Vadot - const: a 85f126890aSEmmanuel Vadot description: 86f126890aSEmmanuel Vadot The standard A extension for atomic instructions, as ratified in the 87f126890aSEmmanuel Vadot 20191213 version of the unprivileged ISA specification. 88f126890aSEmmanuel Vadot 89f126890aSEmmanuel Vadot - const: f 90f126890aSEmmanuel Vadot description: 91f126890aSEmmanuel Vadot The standard F extension for single-precision floating point, as 92f126890aSEmmanuel Vadot ratified in the 20191213 version of the unprivileged ISA 93f126890aSEmmanuel Vadot specification. 94f126890aSEmmanuel Vadot 95f126890aSEmmanuel Vadot - const: d 96f126890aSEmmanuel Vadot description: 97f126890aSEmmanuel Vadot The standard D extension for double-precision floating-point, as 98f126890aSEmmanuel Vadot ratified in the 20191213 version of the unprivileged ISA 99f126890aSEmmanuel Vadot specification. 100f126890aSEmmanuel Vadot 101f126890aSEmmanuel Vadot - const: q 102f126890aSEmmanuel Vadot description: 103f126890aSEmmanuel Vadot The standard Q extension for quad-precision floating-point, as 104f126890aSEmmanuel Vadot ratified in the 20191213 version of the unprivileged ISA 105f126890aSEmmanuel Vadot specification. 106f126890aSEmmanuel Vadot 107f126890aSEmmanuel Vadot - const: c 108f126890aSEmmanuel Vadot description: 109f126890aSEmmanuel Vadot The standard C extension for compressed instructions, as ratified in 110f126890aSEmmanuel Vadot the 20191213 version of the unprivileged ISA specification. 111f126890aSEmmanuel Vadot 112f126890aSEmmanuel Vadot - const: v 113f126890aSEmmanuel Vadot description: 114f126890aSEmmanuel Vadot The standard V extension for vector operations, as ratified 115f126890aSEmmanuel Vadot in-and-around commit 7a6c8ae ("Fix text that describes vfmv.v.f 116f126890aSEmmanuel Vadot encoding") of the riscv-v-spec. 117f126890aSEmmanuel Vadot 118f126890aSEmmanuel Vadot - const: h 119f126890aSEmmanuel Vadot description: 120f126890aSEmmanuel Vadot The standard H extension for hypervisors as ratified in the 20191213 121f126890aSEmmanuel Vadot version of the privileged ISA specification. 122f126890aSEmmanuel Vadot 123f126890aSEmmanuel Vadot # multi-letter extensions, sorted alphanumerically 124f126890aSEmmanuel Vadot - const: smaia 125f126890aSEmmanuel Vadot description: | 126f126890aSEmmanuel Vadot The standard Smaia supervisor-level extension for the advanced 127f126890aSEmmanuel Vadot interrupt architecture for machine-mode-visible csr and behavioural 128f126890aSEmmanuel Vadot changes to interrupts as frozen at commit ccbddab ("Merge pull 129f126890aSEmmanuel Vadot request #42 from riscv/jhauser-2023-RC4") of riscv-aia. 130f126890aSEmmanuel Vadot 13184943d6fSEmmanuel Vadot - const: smstateen 13284943d6fSEmmanuel Vadot description: | 13384943d6fSEmmanuel Vadot The standard Smstateen extension for controlling access to CSRs 13484943d6fSEmmanuel Vadot added by other RISC-V extensions in H/S/VS/U/VU modes and as 13584943d6fSEmmanuel Vadot ratified at commit a28bfae (Ratified (#7)) of riscv-state-enable. 13684943d6fSEmmanuel Vadot 137f126890aSEmmanuel Vadot - const: ssaia 138f126890aSEmmanuel Vadot description: | 139f126890aSEmmanuel Vadot The standard Ssaia supervisor-level extension for the advanced 140f126890aSEmmanuel Vadot interrupt architecture for supervisor-mode-visible csr and 141f126890aSEmmanuel Vadot behavioural changes to interrupts as frozen at commit ccbddab 142f126890aSEmmanuel Vadot ("Merge pull request #42 from riscv/jhauser-2023-RC4") of riscv-aia. 143f126890aSEmmanuel Vadot 144f126890aSEmmanuel Vadot - const: sscofpmf 145f126890aSEmmanuel Vadot description: | 146f126890aSEmmanuel Vadot The standard Sscofpmf supervisor-level extension for count overflow 147f126890aSEmmanuel Vadot and mode-based filtering as ratified at commit 01d1df0 ("Add ability 148f126890aSEmmanuel Vadot to manually trigger workflow. (#2)") of riscv-count-overflow. 149f126890aSEmmanuel Vadot 150f126890aSEmmanuel Vadot - const: sstc 151f126890aSEmmanuel Vadot description: | 152f126890aSEmmanuel Vadot The standard Sstc supervisor-level extension for time compare as 153f126890aSEmmanuel Vadot ratified at commit 3f9ed34 ("Add ability to manually trigger 154f126890aSEmmanuel Vadot workflow. (#2)") of riscv-time-compare. 155f126890aSEmmanuel Vadot 156f126890aSEmmanuel Vadot - const: svinval 157f126890aSEmmanuel Vadot description: 158f126890aSEmmanuel Vadot The standard Svinval supervisor-level extension for fine-grained 159f126890aSEmmanuel Vadot address-translation cache invalidation as ratified in the 20191213 160f126890aSEmmanuel Vadot version of the privileged ISA specification. 161f126890aSEmmanuel Vadot 162f126890aSEmmanuel Vadot - const: svnapot 163f126890aSEmmanuel Vadot description: 164f126890aSEmmanuel Vadot The standard Svnapot supervisor-level extensions for napot 165f126890aSEmmanuel Vadot translation contiguity as ratified in the 20191213 version of the 166f126890aSEmmanuel Vadot privileged ISA specification. 167f126890aSEmmanuel Vadot 168f126890aSEmmanuel Vadot - const: svpbmt 169f126890aSEmmanuel Vadot description: 170f126890aSEmmanuel Vadot The standard Svpbmt supervisor-level extensions for page-based 171f126890aSEmmanuel Vadot memory types as ratified in the 20191213 version of the privileged 172f126890aSEmmanuel Vadot ISA specification. 173f126890aSEmmanuel Vadot 174*b2d2a78aSEmmanuel Vadot - const: svvptc 175*b2d2a78aSEmmanuel Vadot description: 176*b2d2a78aSEmmanuel Vadot The standard Svvptc supervisor-level extension for 177*b2d2a78aSEmmanuel Vadot address-translation cache behaviour with respect to invalid entries 178*b2d2a78aSEmmanuel Vadot as ratified at commit 4a69197e5617 ("Update to ratified state") of 179*b2d2a78aSEmmanuel Vadot riscv-svvptc. 180*b2d2a78aSEmmanuel Vadot 1818d13bc63SEmmanuel Vadot - const: zacas 1828d13bc63SEmmanuel Vadot description: | 1838d13bc63SEmmanuel Vadot The Zacas extension for Atomic Compare-and-Swap (CAS) instructions 1848d13bc63SEmmanuel Vadot is supported as ratified at commit 5059e0ca641c ("update to 1858d13bc63SEmmanuel Vadot ratified") of the riscv-zacas. 1868d13bc63SEmmanuel Vadot 1870e8011faSEmmanuel Vadot - const: zawrs 1880e8011faSEmmanuel Vadot description: | 1890e8011faSEmmanuel Vadot The Zawrs extension for entering a low-power state or for trapping 1900e8011faSEmmanuel Vadot to a hypervisor while waiting on a store to a memory location, as 1910e8011faSEmmanuel Vadot ratified in commit 98918c844281 ("Merge pull request #1217 from 1920e8011faSEmmanuel Vadot riscv/zawrs") of riscv-isa-manual. 1930e8011faSEmmanuel Vadot 194f126890aSEmmanuel Vadot - const: zba 195f126890aSEmmanuel Vadot description: | 196f126890aSEmmanuel Vadot The standard Zba bit-manipulation extension for address generation 197f126890aSEmmanuel Vadot acceleration instructions as ratified at commit 6d33919 ("Merge pull 198f126890aSEmmanuel Vadot request #158 from hirooih/clmul-fix-loop-end-condition") of 199f126890aSEmmanuel Vadot riscv-bitmanip. 200f126890aSEmmanuel Vadot 201f126890aSEmmanuel Vadot - const: zbb 202f126890aSEmmanuel Vadot description: | 203f126890aSEmmanuel Vadot The standard Zbb bit-manipulation extension for basic bit-manipulation 204f126890aSEmmanuel Vadot as ratified at commit 6d33919 ("Merge pull request #158 from 205f126890aSEmmanuel Vadot hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip. 206f126890aSEmmanuel Vadot 207f126890aSEmmanuel Vadot - const: zbc 208f126890aSEmmanuel Vadot description: | 209f126890aSEmmanuel Vadot The standard Zbc bit-manipulation extension for carry-less 210f126890aSEmmanuel Vadot multiplication as ratified at commit 6d33919 ("Merge pull request 211f126890aSEmmanuel Vadot #158 from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip. 212f126890aSEmmanuel Vadot 2138d13bc63SEmmanuel Vadot - const: zbkb 2148d13bc63SEmmanuel Vadot description: 2158d13bc63SEmmanuel Vadot The standard Zbkb bitmanip instructions for cryptography as ratified 2168d13bc63SEmmanuel Vadot in version 1.0 of RISC-V Cryptography Extensions Volume I 2178d13bc63SEmmanuel Vadot specification. 2188d13bc63SEmmanuel Vadot 2198d13bc63SEmmanuel Vadot - const: zbkc 2208d13bc63SEmmanuel Vadot description: 2218d13bc63SEmmanuel Vadot The standard Zbkc carry-less multiply instructions as ratified 2228d13bc63SEmmanuel Vadot in version 1.0 of RISC-V Cryptography Extensions Volume I 2238d13bc63SEmmanuel Vadot specification. 2248d13bc63SEmmanuel Vadot 2258d13bc63SEmmanuel Vadot - const: zbkx 2268d13bc63SEmmanuel Vadot description: 2278d13bc63SEmmanuel Vadot The standard Zbkx crossbar permutation instructions as ratified 2288d13bc63SEmmanuel Vadot in version 1.0 of RISC-V Cryptography Extensions Volume I 2298d13bc63SEmmanuel Vadot specification. 2308d13bc63SEmmanuel Vadot 231f126890aSEmmanuel Vadot - const: zbs 232f126890aSEmmanuel Vadot description: | 233f126890aSEmmanuel Vadot The standard Zbs bit-manipulation extension for single-bit 234f126890aSEmmanuel Vadot instructions as ratified at commit 6d33919 ("Merge pull request #158 235f126890aSEmmanuel Vadot from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip. 236f126890aSEmmanuel Vadot 2370e8011faSEmmanuel Vadot - const: zca 2380e8011faSEmmanuel Vadot description: | 2390e8011faSEmmanuel Vadot The Zca extension part of Zc* standard extensions for code size 2400e8011faSEmmanuel Vadot reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on 2410e8011faSEmmanuel Vadot RV64 as it contains no instructions") of riscv-code-size-reduction, 2420e8011faSEmmanuel Vadot merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed 2430e8011faSEmmanuel Vadot of zc.adoc to src tree."). 2440e8011faSEmmanuel Vadot 2450e8011faSEmmanuel Vadot - const: zcb 2460e8011faSEmmanuel Vadot description: | 2470e8011faSEmmanuel Vadot The Zcb extension part of Zc* standard extensions for code size 2480e8011faSEmmanuel Vadot reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on 2490e8011faSEmmanuel Vadot RV64 as it contains no instructions") of riscv-code-size-reduction, 2500e8011faSEmmanuel Vadot merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed 2510e8011faSEmmanuel Vadot of zc.adoc to src tree."). 2520e8011faSEmmanuel Vadot 2530e8011faSEmmanuel Vadot - const: zcd 2540e8011faSEmmanuel Vadot description: | 2550e8011faSEmmanuel Vadot The Zcd extension part of Zc* standard extensions for code size 2560e8011faSEmmanuel Vadot reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on 2570e8011faSEmmanuel Vadot RV64 as it contains no instructions") of riscv-code-size-reduction, 2580e8011faSEmmanuel Vadot merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed 2590e8011faSEmmanuel Vadot of zc.adoc to src tree."). 2600e8011faSEmmanuel Vadot 2610e8011faSEmmanuel Vadot - const: zcf 2620e8011faSEmmanuel Vadot description: | 2630e8011faSEmmanuel Vadot The Zcf extension part of Zc* standard extensions for code size 2640e8011faSEmmanuel Vadot reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on 2650e8011faSEmmanuel Vadot RV64 as it contains no instructions") of riscv-code-size-reduction, 2660e8011faSEmmanuel Vadot merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed 2670e8011faSEmmanuel Vadot of zc.adoc to src tree."). 2680e8011faSEmmanuel Vadot 2690e8011faSEmmanuel Vadot - const: zcmop 2700e8011faSEmmanuel Vadot description: 2710e8011faSEmmanuel Vadot The standard Zcmop extension version 1.0, as ratified in commit 2720e8011faSEmmanuel Vadot c732a4f39a4 ("Zcmop is ratified/1.0") of the riscv-isa-manual. 2730e8011faSEmmanuel Vadot 2748d13bc63SEmmanuel Vadot - const: zfa 2758d13bc63SEmmanuel Vadot description: 2768d13bc63SEmmanuel Vadot The standard Zfa extension for additional floating point 2778d13bc63SEmmanuel Vadot instructions, as ratified in commit 056b6ff ("Zfa is ratified") of 2788d13bc63SEmmanuel Vadot riscv-isa-manual. 2798d13bc63SEmmanuel Vadot 2808d13bc63SEmmanuel Vadot - const: zfh 2818d13bc63SEmmanuel Vadot description: 2828d13bc63SEmmanuel Vadot The standard Zfh extension for 16-bit half-precision binary 2838d13bc63SEmmanuel Vadot floating-point instructions, as ratified in commit 64074bc ("Update 2848d13bc63SEmmanuel Vadot version numbers for Zfh/Zfinx") of riscv-isa-manual. 2858d13bc63SEmmanuel Vadot 2868d13bc63SEmmanuel Vadot - const: zfhmin 2878d13bc63SEmmanuel Vadot description: 2888d13bc63SEmmanuel Vadot The standard Zfhmin extension which provides minimal support for 2898d13bc63SEmmanuel Vadot 16-bit half-precision binary floating-point instructions, as ratified 2908d13bc63SEmmanuel Vadot in commit 64074bc ("Update version numbers for Zfh/Zfinx") of 2918d13bc63SEmmanuel Vadot riscv-isa-manual. 2928d13bc63SEmmanuel Vadot 2938d13bc63SEmmanuel Vadot - const: zk 2948d13bc63SEmmanuel Vadot description: 2958d13bc63SEmmanuel Vadot The standard Zk Standard Scalar cryptography extension as ratified 2968d13bc63SEmmanuel Vadot in version 1.0 of RISC-V Cryptography Extensions Volume I 2978d13bc63SEmmanuel Vadot specification. 2988d13bc63SEmmanuel Vadot 2998d13bc63SEmmanuel Vadot - const: zkn 3008d13bc63SEmmanuel Vadot description: 3018d13bc63SEmmanuel Vadot The standard Zkn NIST algorithm suite extensions as ratified in 3028d13bc63SEmmanuel Vadot version 1.0 of RISC-V Cryptography Extensions Volume I 3038d13bc63SEmmanuel Vadot specification. 3048d13bc63SEmmanuel Vadot 3058d13bc63SEmmanuel Vadot - const: zknd 3068d13bc63SEmmanuel Vadot description: | 3078d13bc63SEmmanuel Vadot The standard Zknd for NIST suite: AES decryption instructions as 3088d13bc63SEmmanuel Vadot ratified in version 1.0 of RISC-V Cryptography Extensions Volume I 3098d13bc63SEmmanuel Vadot specification. 3108d13bc63SEmmanuel Vadot 3118d13bc63SEmmanuel Vadot - const: zkne 3128d13bc63SEmmanuel Vadot description: | 3138d13bc63SEmmanuel Vadot The standard Zkne for NIST suite: AES encryption instructions as 3148d13bc63SEmmanuel Vadot ratified in version 1.0 of RISC-V Cryptography Extensions Volume I 3158d13bc63SEmmanuel Vadot specification. 3168d13bc63SEmmanuel Vadot 3178d13bc63SEmmanuel Vadot - const: zknh 3188d13bc63SEmmanuel Vadot description: | 3198d13bc63SEmmanuel Vadot The standard Zknh for NIST suite: hash function instructions as 3208d13bc63SEmmanuel Vadot ratified in version 1.0 of RISC-V Cryptography Extensions Volume I 3218d13bc63SEmmanuel Vadot specification. 3228d13bc63SEmmanuel Vadot 3238d13bc63SEmmanuel Vadot - const: zkr 3248d13bc63SEmmanuel Vadot description: 3258d13bc63SEmmanuel Vadot The standard Zkr entropy source extension as ratified in version 3268d13bc63SEmmanuel Vadot 1.0 of RISC-V Cryptography Extensions Volume I specification. 3278d13bc63SEmmanuel Vadot This string being present means that the CSR associated to this 3288d13bc63SEmmanuel Vadot extension is accessible at the privilege level to which that 3298d13bc63SEmmanuel Vadot device-tree has been provided. 3308d13bc63SEmmanuel Vadot 3318d13bc63SEmmanuel Vadot - const: zks 3328d13bc63SEmmanuel Vadot description: 3338d13bc63SEmmanuel Vadot The standard Zks ShangMi algorithm suite extensions as ratified in 3348d13bc63SEmmanuel Vadot version 1.0 of RISC-V Cryptography Extensions Volume I 3358d13bc63SEmmanuel Vadot specification. 3368d13bc63SEmmanuel Vadot 3378d13bc63SEmmanuel Vadot - const: zksed 3388d13bc63SEmmanuel Vadot description: | 3398d13bc63SEmmanuel Vadot The standard Zksed for ShangMi suite: SM4 block cipher instructions 3408d13bc63SEmmanuel Vadot as ratified in version 1.0 of RISC-V Cryptography Extensions 3418d13bc63SEmmanuel Vadot Volume I specification. 3428d13bc63SEmmanuel Vadot 3438d13bc63SEmmanuel Vadot - const: zksh 3448d13bc63SEmmanuel Vadot description: | 3458d13bc63SEmmanuel Vadot The standard Zksh for ShangMi suite: SM3 hash function instructions 3468d13bc63SEmmanuel Vadot as ratified in version 1.0 of RISC-V Cryptography Extensions 3478d13bc63SEmmanuel Vadot Volume I specification. 3488d13bc63SEmmanuel Vadot 3498d13bc63SEmmanuel Vadot - const: zkt 3508d13bc63SEmmanuel Vadot description: 3518d13bc63SEmmanuel Vadot The standard Zkt for data independent execution latency as ratified 3528d13bc63SEmmanuel Vadot in version 1.0 of RISC-V Cryptography Extensions Volume I 3538d13bc63SEmmanuel Vadot specification. 3548d13bc63SEmmanuel Vadot 355f126890aSEmmanuel Vadot - const: zicbom 356f126890aSEmmanuel Vadot description: 357f126890aSEmmanuel Vadot The standard Zicbom extension for base cache management operations as 358f126890aSEmmanuel Vadot ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs. 359f126890aSEmmanuel Vadot 360f126890aSEmmanuel Vadot - const: zicbop 361f126890aSEmmanuel Vadot description: 362f126890aSEmmanuel Vadot The standard Zicbop extension for cache-block prefetch instructions 363f126890aSEmmanuel Vadot as ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of 364f126890aSEmmanuel Vadot riscv-CMOs. 365f126890aSEmmanuel Vadot 366f126890aSEmmanuel Vadot - const: zicboz 367f126890aSEmmanuel Vadot description: 368f126890aSEmmanuel Vadot The standard Zicboz extension for cache-block zeroing as ratified 369f126890aSEmmanuel Vadot in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs. 370f126890aSEmmanuel Vadot 371f126890aSEmmanuel Vadot - const: zicntr 372f126890aSEmmanuel Vadot description: 373f126890aSEmmanuel Vadot The standard Zicntr extension for base counters and timers, as 374f126890aSEmmanuel Vadot ratified in the 20191213 version of the unprivileged ISA 375f126890aSEmmanuel Vadot specification. 376f126890aSEmmanuel Vadot 37784943d6fSEmmanuel Vadot - const: zicond 37884943d6fSEmmanuel Vadot description: 37984943d6fSEmmanuel Vadot The standard Zicond extension for conditional arithmetic and 38084943d6fSEmmanuel Vadot conditional-select/move operations as ratified in commit 95cf1f9 38184943d6fSEmmanuel Vadot ("Add changes requested by Ved during signoff") of riscv-zicond. 38284943d6fSEmmanuel Vadot 383f126890aSEmmanuel Vadot - const: zicsr 384f126890aSEmmanuel Vadot description: | 385f126890aSEmmanuel Vadot The standard Zicsr extension for control and status register 386f126890aSEmmanuel Vadot instructions, as ratified in the 20191213 version of the 387f126890aSEmmanuel Vadot unprivileged ISA specification. 388f126890aSEmmanuel Vadot 389f126890aSEmmanuel Vadot This does not include Chapter 10, "Counters", which documents 390f126890aSEmmanuel Vadot special case read-only CSRs, that were moved into the Zicntr and 391f126890aSEmmanuel Vadot Zihpm extensions after the ratification of the 20191213 version of 392f126890aSEmmanuel Vadot the unprivileged specification. 393f126890aSEmmanuel Vadot 394f126890aSEmmanuel Vadot - const: zifencei 395f126890aSEmmanuel Vadot description: 396f126890aSEmmanuel Vadot The standard Zifencei extension for instruction-fetch fence, as 397f126890aSEmmanuel Vadot ratified in the 20191213 version of the unprivileged ISA 398f126890aSEmmanuel Vadot specification. 399f126890aSEmmanuel Vadot 400f126890aSEmmanuel Vadot - const: zihintpause 401f126890aSEmmanuel Vadot description: 402f126890aSEmmanuel Vadot The standard Zihintpause extension for pause hints, as ratified in 403f126890aSEmmanuel Vadot commit d8ab5c7 ("Zihintpause is ratified") of the riscv-isa-manual. 404f126890aSEmmanuel Vadot 4058d13bc63SEmmanuel Vadot - const: zihintntl 4068d13bc63SEmmanuel Vadot description: 4078d13bc63SEmmanuel Vadot The standard Zihintntl extension for non-temporal locality hints, as 4088d13bc63SEmmanuel Vadot ratified in commit 0dc91f5 ("Zihintntl is ratified") of the 4098d13bc63SEmmanuel Vadot riscv-isa-manual. 4108d13bc63SEmmanuel Vadot 411f126890aSEmmanuel Vadot - const: zihpm 412f126890aSEmmanuel Vadot description: 413f126890aSEmmanuel Vadot The standard Zihpm extension for hardware performance counters, as 414f126890aSEmmanuel Vadot ratified in the 20191213 version of the unprivileged ISA 415f126890aSEmmanuel Vadot specification. 416f126890aSEmmanuel Vadot 4170e8011faSEmmanuel Vadot - const: zimop 4180e8011faSEmmanuel Vadot description: 4190e8011faSEmmanuel Vadot The standard Zimop extension version 1.0, as ratified in commit 4200e8011faSEmmanuel Vadot 58220614a5f ("Zimop is ratified/1.0") of the riscv-isa-manual. 4210e8011faSEmmanuel Vadot 422f126890aSEmmanuel Vadot - const: ztso 423f126890aSEmmanuel Vadot description: 424f126890aSEmmanuel Vadot The standard Ztso extension for total store ordering, as ratified 425f126890aSEmmanuel Vadot in commit 2e5236 ("Ztso is now ratified.") of the 426f126890aSEmmanuel Vadot riscv-isa-manual. 427f126890aSEmmanuel Vadot 4288d13bc63SEmmanuel Vadot - const: zvbb 4298d13bc63SEmmanuel Vadot description: 4308d13bc63SEmmanuel Vadot The standard Zvbb extension for vectored basic bit-manipulation 4318d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 4328d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 4338d13bc63SEmmanuel Vadot 4348d13bc63SEmmanuel Vadot - const: zvbc 4358d13bc63SEmmanuel Vadot description: 4368d13bc63SEmmanuel Vadot The standard Zvbc extension for vectored carryless multiplication 4378d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 4388d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 4398d13bc63SEmmanuel Vadot 4400e8011faSEmmanuel Vadot - const: zve32f 4410e8011faSEmmanuel Vadot description: 4420e8011faSEmmanuel Vadot The standard Zve32f extension for embedded processors, as ratified 4430e8011faSEmmanuel Vadot in commit 6f702a2 ("Vector extensions are now ratified") of 4440e8011faSEmmanuel Vadot riscv-v-spec. 4450e8011faSEmmanuel Vadot 4460e8011faSEmmanuel Vadot - const: zve32x 4470e8011faSEmmanuel Vadot description: 4480e8011faSEmmanuel Vadot The standard Zve32x extension for embedded processors, as ratified 4490e8011faSEmmanuel Vadot in commit 6f702a2 ("Vector extensions are now ratified") of 4500e8011faSEmmanuel Vadot riscv-v-spec. 4510e8011faSEmmanuel Vadot 4520e8011faSEmmanuel Vadot - const: zve64d 4530e8011faSEmmanuel Vadot description: 4540e8011faSEmmanuel Vadot The standard Zve64d extension for embedded processors, as ratified 4550e8011faSEmmanuel Vadot in commit 6f702a2 ("Vector extensions are now ratified") of 4560e8011faSEmmanuel Vadot riscv-v-spec. 4570e8011faSEmmanuel Vadot 4580e8011faSEmmanuel Vadot - const: zve64f 4590e8011faSEmmanuel Vadot description: 4600e8011faSEmmanuel Vadot The standard Zve64f extension for embedded processors, as ratified 4610e8011faSEmmanuel Vadot in commit 6f702a2 ("Vector extensions are now ratified") of 4620e8011faSEmmanuel Vadot riscv-v-spec. 4630e8011faSEmmanuel Vadot 4640e8011faSEmmanuel Vadot - const: zve64x 4650e8011faSEmmanuel Vadot description: 4660e8011faSEmmanuel Vadot The standard Zve64x extension for embedded processors, as ratified 4670e8011faSEmmanuel Vadot in commit 6f702a2 ("Vector extensions are now ratified") of 4680e8011faSEmmanuel Vadot riscv-v-spec. 4690e8011faSEmmanuel Vadot 4708d13bc63SEmmanuel Vadot - const: zvfh 4718d13bc63SEmmanuel Vadot description: 4728d13bc63SEmmanuel Vadot The standard Zvfh extension for vectored half-precision 4738d13bc63SEmmanuel Vadot floating-point instructions, as ratified in commit e2ccd05 4748d13bc63SEmmanuel Vadot ("Remove draft warnings from Zvfh[min]") of riscv-v-spec. 4758d13bc63SEmmanuel Vadot 4768d13bc63SEmmanuel Vadot - const: zvfhmin 4778d13bc63SEmmanuel Vadot description: 4788d13bc63SEmmanuel Vadot The standard Zvfhmin extension for vectored minimal half-precision 4798d13bc63SEmmanuel Vadot floating-point instructions, as ratified in commit e2ccd05 4808d13bc63SEmmanuel Vadot ("Remove draft warnings from Zvfh[min]") of riscv-v-spec. 4818d13bc63SEmmanuel Vadot 4828d13bc63SEmmanuel Vadot - const: zvkb 4838d13bc63SEmmanuel Vadot description: 4848d13bc63SEmmanuel Vadot The standard Zvkb extension for vector cryptography bit-manipulation 4858d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 4868d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 4878d13bc63SEmmanuel Vadot 4888d13bc63SEmmanuel Vadot - const: zvkg 4898d13bc63SEmmanuel Vadot description: 4908d13bc63SEmmanuel Vadot The standard Zvkg extension for vector GCM/GMAC instructions, as 4918d13bc63SEmmanuel Vadot ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc") 4928d13bc63SEmmanuel Vadot of riscv-crypto. 4938d13bc63SEmmanuel Vadot 4948d13bc63SEmmanuel Vadot - const: zvkn 4958d13bc63SEmmanuel Vadot description: 4968d13bc63SEmmanuel Vadot The standard Zvkn extension for NIST algorithm suite instructions, as 4978d13bc63SEmmanuel Vadot ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc") 4988d13bc63SEmmanuel Vadot of riscv-crypto. 4998d13bc63SEmmanuel Vadot 5008d13bc63SEmmanuel Vadot - const: zvknc 5018d13bc63SEmmanuel Vadot description: 5028d13bc63SEmmanuel Vadot The standard Zvknc extension for NIST algorithm suite with carryless 5038d13bc63SEmmanuel Vadot multiply instructions, as ratified in commit 56ed795 ("Update 5048d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5058d13bc63SEmmanuel Vadot 5068d13bc63SEmmanuel Vadot - const: zvkned 5078d13bc63SEmmanuel Vadot description: 5088d13bc63SEmmanuel Vadot The standard Zvkned extension for Vector AES block cipher 5098d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 5108d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5118d13bc63SEmmanuel Vadot 5128d13bc63SEmmanuel Vadot - const: zvkng 5138d13bc63SEmmanuel Vadot description: 5148d13bc63SEmmanuel Vadot The standard Zvkng extension for NIST algorithm suite with GCM 5158d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 5168d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5178d13bc63SEmmanuel Vadot 5188d13bc63SEmmanuel Vadot - const: zvknha 5198d13bc63SEmmanuel Vadot description: | 5208d13bc63SEmmanuel Vadot The standard Zvknha extension for NIST suite: vector SHA-2 secure, 5218d13bc63SEmmanuel Vadot hash (SHA-256 only) instructions, as ratified in commit 5228d13bc63SEmmanuel Vadot 56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto. 5238d13bc63SEmmanuel Vadot 5248d13bc63SEmmanuel Vadot - const: zvknhb 5258d13bc63SEmmanuel Vadot description: | 5268d13bc63SEmmanuel Vadot The standard Zvknhb extension for NIST suite: vector SHA-2 secure, 5278d13bc63SEmmanuel Vadot hash (SHA-256 and SHA-512) instructions, as ratified in commit 5288d13bc63SEmmanuel Vadot 56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto. 5298d13bc63SEmmanuel Vadot 5308d13bc63SEmmanuel Vadot - const: zvks 5318d13bc63SEmmanuel Vadot description: 5328d13bc63SEmmanuel Vadot The standard Zvks extension for ShangMi algorithm suite 5338d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 5348d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5358d13bc63SEmmanuel Vadot 5368d13bc63SEmmanuel Vadot - const: zvksc 5378d13bc63SEmmanuel Vadot description: 5388d13bc63SEmmanuel Vadot The standard Zvksc extension for ShangMi algorithm suite with 5398d13bc63SEmmanuel Vadot carryless multiplication instructions, as ratified in commit 56ed795 5408d13bc63SEmmanuel Vadot ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto. 5418d13bc63SEmmanuel Vadot 5428d13bc63SEmmanuel Vadot - const: zvksed 5438d13bc63SEmmanuel Vadot description: | 5448d13bc63SEmmanuel Vadot The standard Zvksed extension for ShangMi suite: SM4 block cipher 5458d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 5468d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5478d13bc63SEmmanuel Vadot 5488d13bc63SEmmanuel Vadot - const: zvksh 5498d13bc63SEmmanuel Vadot description: | 5508d13bc63SEmmanuel Vadot The standard Zvksh extension for ShangMi suite: SM3 secure hash 5518d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 5528d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5538d13bc63SEmmanuel Vadot 5548d13bc63SEmmanuel Vadot - const: zvksg 5558d13bc63SEmmanuel Vadot description: 5568d13bc63SEmmanuel Vadot The standard Zvksg extension for ShangMi algorithm suite with GCM 5578d13bc63SEmmanuel Vadot instructions, as ratified in commit 56ed795 ("Update 5588d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5598d13bc63SEmmanuel Vadot 5608d13bc63SEmmanuel Vadot - const: zvkt 5618d13bc63SEmmanuel Vadot description: 5628d13bc63SEmmanuel Vadot The standard Zvkt extension for vector data-independent execution 5638d13bc63SEmmanuel Vadot latency, as ratified in commit 56ed795 ("Update 5648d13bc63SEmmanuel Vadot riscv-crypto-spec-vector.adoc") of riscv-crypto. 5658d13bc63SEmmanuel Vadot 56601950c46SEmmanuel Vadot - const: xandespmu 56701950c46SEmmanuel Vadot description: 56801950c46SEmmanuel Vadot The Andes Technology performance monitor extension for counter overflow 56901950c46SEmmanuel Vadot and privilege mode filtering. For more details, see Counter Related 57001950c46SEmmanuel Vadot Registers in the AX45MP datasheet. 57101950c46SEmmanuel Vadot https://www.andestech.com/wp-content/uploads/AX45MP-1C-Rev.-5.0.0-Datasheet.pdf 57201950c46SEmmanuel Vadot 5730e8011faSEmmanuel Vadot allOf: 5740e8011faSEmmanuel Vadot # Zcb depends on Zca 5750e8011faSEmmanuel Vadot - if: 5760e8011faSEmmanuel Vadot contains: 5770e8011faSEmmanuel Vadot const: zcb 5780e8011faSEmmanuel Vadot then: 5790e8011faSEmmanuel Vadot contains: 5800e8011faSEmmanuel Vadot const: zca 5810e8011faSEmmanuel Vadot # Zcd depends on Zca and D 5820e8011faSEmmanuel Vadot - if: 5830e8011faSEmmanuel Vadot contains: 5840e8011faSEmmanuel Vadot const: zcd 5850e8011faSEmmanuel Vadot then: 5860e8011faSEmmanuel Vadot allOf: 5870e8011faSEmmanuel Vadot - contains: 5880e8011faSEmmanuel Vadot const: zca 5890e8011faSEmmanuel Vadot - contains: 5900e8011faSEmmanuel Vadot const: d 5910e8011faSEmmanuel Vadot # Zcf depends on Zca and F 5920e8011faSEmmanuel Vadot - if: 5930e8011faSEmmanuel Vadot contains: 5940e8011faSEmmanuel Vadot const: zcf 5950e8011faSEmmanuel Vadot then: 5960e8011faSEmmanuel Vadot allOf: 5970e8011faSEmmanuel Vadot - contains: 5980e8011faSEmmanuel Vadot const: zca 5990e8011faSEmmanuel Vadot - contains: 6000e8011faSEmmanuel Vadot const: f 6010e8011faSEmmanuel Vadot # Zcmop depends on Zca 6020e8011faSEmmanuel Vadot - if: 6030e8011faSEmmanuel Vadot contains: 6040e8011faSEmmanuel Vadot const: zcmop 6050e8011faSEmmanuel Vadot then: 6060e8011faSEmmanuel Vadot contains: 6070e8011faSEmmanuel Vadot const: zca 6080e8011faSEmmanuel Vadot 6090e8011faSEmmanuel VadotallOf: 6100e8011faSEmmanuel Vadot # Zcf extension does not exist on rv64 6110e8011faSEmmanuel Vadot - if: 6120e8011faSEmmanuel Vadot properties: 6130e8011faSEmmanuel Vadot riscv,isa-extensions: 6140e8011faSEmmanuel Vadot contains: 6150e8011faSEmmanuel Vadot const: zcf 6160e8011faSEmmanuel Vadot riscv,isa-base: 6170e8011faSEmmanuel Vadot contains: 6180e8011faSEmmanuel Vadot const: rv64i 6190e8011faSEmmanuel Vadot then: 6200e8011faSEmmanuel Vadot properties: 6210e8011faSEmmanuel Vadot riscv,isa-extensions: 6220e8011faSEmmanuel Vadot not: 6230e8011faSEmmanuel Vadot contains: 6240e8011faSEmmanuel Vadot const: zcf 6250e8011faSEmmanuel Vadot 626f126890aSEmmanuel VadotadditionalProperties: true 627f126890aSEmmanuel Vadot... 628