qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 0/7] support subsets of scalar crypto extension


From: Weiwei Li
Subject: Re: [PATCH v4 0/7] support subsets of scalar crypto extension
Date: Tue, 18 Jan 2022 16:24:17 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0


在 2022/1/18 下午12:41, Alistair Francis 写道:
On Tue, Jan 11, 2022 at 1:54 PM Weiwei Li <liweiwei@iscas.ac.cn> wrote:
This patchset implements RISC-V scalar crypto extension v1.0.0 version 
instructions.
Partial instructions are reused from B-extension.

Specification:
https://github.com/riscv/riscv-crypto

The port is available here:
https://github.com/plctlab/plct-qemu/tree/plct-k-upstream-v4

To test rvk implementation,  specify cpu argument with 'zks=true,zkn=true'
or
"zbkb=true,zbkc=true,zbkx=true,zknd=true,zkne=true,zknh=true,zksed=true,zksh=true,zkr=true"
  to enable  K-extension support.  This implementation can pass the ACT tests
for K with our extended act support for qemu (available at
https://github.com/plctlab/plct-qemu/tree/plct-k-upstream-v4-with-act)

v4:
* drop "x-" in exposed properties
* delete unrelated changes

v3:
* add extension check for SEED csr access

v2:
* optimize implementation for brev8, xperm, zip, unzip
* use aes related sbox array from crypto/aes.h
* move sm4_sbox to crypto/sm4.c, and share it with target/arm

Weiwei Li (7):
   target/riscv: rvk: add cfg properties for zbk* and zk*
   target/riscv: rvk: add implementation of instructions for Zbk*
   crypto include/crypto target/arm: move sm4_sbox to crypto
   target/riscv: rvk: add implementation of instructions for Zk*
   target/riscv: rvk: add CSR support for Zkr
   disas/riscv.c: rvk: add disas support for Zbk* and Zk* instructions
   target/riscv: rvk: expose zbk* and zk* properties
Thanks for the patches!

Overall this looks good, just some small comments on the individual patches.

For the next version do you mind splitting the patches up a little bit
more? That will make it easier and faster to review

Alistair

Thanks for your comments. Sorry for the big patches. I'll divide them.

Regards,

Weiwei Li

  crypto/meson.build                      |   1 +
  crypto/sm4.c                            |  49 +++
  disas/riscv.c                           | 170 +++++++++
  include/crypto/sm4.h                    |   6 +
  target/arm/crypto_helper.c              |  36 +-
  target/riscv/bitmanip_helper.c          |  74 ++++
  target/riscv/cpu.c                      |  37 ++
  target/riscv/cpu.h                      |  13 +
  target/riscv/cpu_bits.h                 |   9 +
  target/riscv/crypto_helper.c            | 446 ++++++++++++++++++++++
  target/riscv/csr.c                      |  74 ++++
  target/riscv/helper.h                   |  42 +++
  target/riscv/insn32.decode              |  94 ++++-
  target/riscv/insn_trans/trans_rvb.c.inc | 127 ++++++-
  target/riscv/insn_trans/trans_rvk.c.inc | 467 ++++++++++++++++++++++++
  target/riscv/meson.build                |   3 +-
  target/riscv/pmp.h                      |   8 +-
  target/riscv/translate.c                |   8 +
  18 files changed, 1594 insertions(+), 70 deletions(-)
  create mode 100644 crypto/sm4.c
  create mode 100644 include/crypto/sm4.h
  create mode 100644 target/riscv/crypto_helper.c
  create mode 100644 target/riscv/insn_trans/trans_rvk.c.inc

--
2.17.1






reply via email to

[Prev in Thread] Current Thread [Next in Thread]