- Jul 07, 2023
-
-
Andrew Waterman authored
In general, the strategy has been that the disassembler enables a maximal set of non-conflicting extensions, thereby doing the right thing for the largest number of users.
-
- Jun 22, 2023
-
-
Andrew Waterman authored
fixup sb_write/sb_read to handle exceptions
-
- Jun 21, 2023
-
-
Andrew Waterman authored
Remove duplicate compile options
-
demin.han authored
-
Jerry Zhao authored
Use device factories to control dts-construction/dts-parsing/device-instantiation
-
Jerry Zhao authored
-
Jerry Zhao authored
Plugins should now implement and register a device_factory_t to configure how that device should be parsed from a FDT, and an optional default DTS string. This drops support for command-line flag-based device configuration
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
This class should implement conditional fdt-based device instantiation, as well as adding device nodes to the dts
-
Jerry Zhao authored
-
Jerry Zhao authored
make_dtb is only called here, this simplifies later work towards refactoring device DTS node generation
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
These are redundant with sim_t::devices
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
Jerry Zhao authored
-
- Jun 20, 2023
-
-
Andrew Waterman authored
Zvk disassembler support (on top of PR 1303)
-
Eric Gouriou authored
Add disassembler support for all instructions in Zvk extensions: - Zvbb (bitmanip) - Zvbc (carryless multiplication) - Zvkg (GMAC) - Zvkned (AES) - Zvknha / Zvknhb (SHA-256, SHA-512) - Zvksed (SM4) - Zvksh (SM3) Macros are used to limit code duplication, following the example of the base V extension. Because the V extension undefines some of its macros after their use, there Zvk support does define some similar macros. Co-authored-by:
Gianluca Guida <gianluca@rivosinc.com> Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
-
Andrew Waterman authored
Zvk vector crypto support (v5)
-
Eric Gouriou authored
Implement the Zvksh sub-extension, "ShangMi Suite: SM3 Hash Function Instructions": - vsm3me.vv, message expansion, - vsm3c.vi, compression rounds. This also introduces a SM3 specific header for common logic. Co-authored-by:
Raghav Gupta <rgupta@rivosinc.com> Co-authored-by:
Albert Jakieła <aja@semihalf.com> Co-authored-by:
Kornel Dulęba <mindal@semihalf.com> Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
-
Eric Gouriou authored
Implement the Zvksed sub-extension, "ShangMi Suite: SM4 Block Cipher": - vsm4k.vi, vector SM4 key expansion, - vsm4r.{vs,vv}, vector SM4 rounds. This also introduces a header for common vector SM4 logic. Co-authored-by:Raghav Gupta <rgupta@rivosinc.com> Co-authored-by:
Albert Jakieła <aja@semihalf.com> Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
-
Eric Gouriou authored
Implement the Zvkned extension, "NIST Suite: Vector AES Encryption & Decryption (Single Round)". - vaeskf1.vi: AES forward key scheduling, AES-128. - vaeskf2.vi: AES forward key scheduling, AES-256. - vaesz.vs: AES encryption/decryption, 0-th round. - vaesdm.{vs,vv}: AES decryption, middle rounds. - vaesdf.{vs,vv}: AES decryption, final round. - vaesem.{vs,vv}: AES encryption, middle rounds. - vaesef.{vs,vv}: AES encryption, final round. An extension specific header containing common logic is added. Co-authored-by:Stanislaw Kardach <kda@semihalf.com> Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
-
Eric Gouriou authored
Implement the instructions part of the Zvknha and Zvknhb sub-extensions: - vsha2ms.vv, message schedule - vsha2ch.vv / vsha2cl.vv, compression rounds A header files for common macros is added. Signed-off-by:Eric Gouriou <ego@rivosinc.com>
-
Eric Gouriou authored
Implement the proposed instruction in Zvkg, vghmac.vv, Vector Carryless Multiply Accumulate over GHASH Galois-Field. The instruction performs one step of GHASH routine as described in "NIST Special Publication 800-38D" a.k.a the AES-GCM specification. The logic was written to closely track the pseudo-code in the Zvk specification. Signed-off-by:
Eric Gouriou <ego@rivosinc.com> Co-authored-by:
Kornel Duleba <mindal@semihalf.com> Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
-
Eric Gouriou authored
Implement the Zvbc instructions - vclmul.{vv,vx}, vector carryless multiply low - vclmulh.{vv,vx}, vector carryless multiply high Signed-off-by:Eric Gouriou <ego@rivosinc.com>
-
Eric Gouriou authored
Implement the proposed instructions in Zvbb: - vandn.{vv,vx}, vector bitwise and-not - vbrev.v, vector bit reverse in element - vbrev8.v, vector bit reverse in bytes - vrev8.v, vector byte reverse - vctz.v, vector count trailing zeros - vclz.v, vector count leading zeros - vcpop.v, vector population count - vrol.{vv,vx}, vector rotate left - vror.{vi,vv,vx}, vector rotate right - vwsll.{vi,vv,vx} vector widening shift left logical A new instruction field, 'zimm6', is introduced, encoded in bits [15, 19] and [26].. It is used by "vror.vi" to encode a shift immediate in [0, 63]. Co-authored-by:Raghav Gupta <rgupta@rivosinc.com> Co-authored-by:
Stanislaw Kardach <kda@semihalf.com> Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
-
Eric Gouriou authored
Introduce types and macros useful across multiple Zvk sub-extensions, including Zvbb and Zvbc. Those will be used by upcoming per-sub-extension commits. In particular we introduce "Element Group" types and loop macros handling those element groups. The concept of element group is described in <https://github.com/riscv/riscv-crypto/blob/master/doc/vector/riscv-crypto-vector-element-groups.adoc >. Note that the element group access method is not implemented for WORDS_BIGENDIAN setup. As such, isa_parser.cc is modified to emit an error when WORDS_BIGENDIAN is defined and extensions using element groups are enabled. Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
-