[PATCH v2 3/8] target/riscv: Pass RISCVCPUConfig as target_info to disassemble_info

2023-05-23 Thread Weiwei Li
Pass RISCVCPUConfig as disassemble_info.target_info to support disas of conflict instructions related to specific extensions. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Daniel Henrique Barboza --- disas/riscv.c | 10 +++--- target/riscv/cpu.c | 1 + 2 files

[PATCH v2 5/8] disas/riscv.c: Support disas for Z*inx extensions

2023-05-23 Thread Weiwei Li
Support disas for Z*inx instructions only when Zfinx extension is supported. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Daniel Henrique Barboza --- disas/riscv.c | 16 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/disas/riscv.c b/disas

[PATCH v2 1/8] disas: Change type of disassemble_info.target_info to pointer

2023-05-23 Thread Weiwei Li
Use pointer to pass more information of target to disasembler, such as pass cpu.cfg related information in following commits. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Daniel Henrique Barboza --- include/disas/dis-asm.h | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH v2 0/8] Add support for extension specific disas

2023-05-23 Thread Weiwei Li
Barboza) Weiwei Li (8): disas: Change type of disassemble_info.target_info to pointer target/riscv: Split RISCVCPUConfig declarations from cpu.h into cpu_cfg.h target/riscv: Pass RISCVCPUConfig as target_info to disassemble_info disas/riscv.c: Support disas for Zcm* extensions disas

[PATCH v2 8/8] disas/riscv.c: Remove redundant parentheses

2023-05-23 Thread Weiwei Li
Remove redundant parenthese and fix multi-line comments. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Daniel Henrique Barboza --- disas/riscv.c | 219 +- 1 file changed, 110 insertions(+), 109 deletions(-) diff --git a

[PATCH v2 2/8] target/riscv: Split RISCVCPUConfig declarations from cpu.h into cpu_cfg.h

2023-05-23 Thread Weiwei Li
Split RISCVCPUConfig declarations to prepare for passing it to disas. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu.h | 114 +- target/riscv/cpu_cfg.h | 136 + 2 files changed, 137

[PATCH v2 6/8] disas/riscv.c: Remove unused decomp_rv32/64 value for vector instructions

2023-05-23 Thread Weiwei Li
Currently decomp_rv32 and decomp_rv64 value in opcode_data for vector instructions are the same op index as their own. And they have no functional decomp_data. So they have no functional difference from just leaving them as zero. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by

[PATCH v2 1/7] target/riscv: Fix target address to update badaddr

2023-05-23 Thread Weiwei Li
current pc if exception is triggered. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis --- target/riscv/insn_trans/trans_rvi.c.inc | 23 --- target/riscv/insn_trans/trans_rvzce.c.inc | 4 ++-- target/riscv

[PATCH v2 5/7] target/riscv: Use true diff for gen_pc_plus_diff

2023-05-23 Thread Weiwei Li
Reduce reliance on absolute values by using true pc difference for gen_pc_plus_diff() to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/insn_trans/trans_rvi.c.inc | 6 ++ target/riscv/insn_trans/trans_rvzce.c.inc | 2

[PATCH v2 7/7] target/riscv: Remove pc_succ_insn from DisasContext

2023-05-23 Thread Weiwei Li
pc_succ_insn is no longer useful after the introduce of cur_insn_len and all pc related value use diff value instead of absolute value. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/translate.c | 7 +-- 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a

[PATCH v2 6/7] target/riscv: Enable PC-relative translation

2023-05-23 Thread Weiwei Li
Add a base pc_save for PC-relative translation(CF_PCREL). Diable the directly sync pc from tb by riscv_cpu_synchronize_from_tb. Use gen_pc_plus_diff to get the pc-relative address. Enable CF_PCREL in System mode. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu.c

[PATCH v2 4/7] target/riscv: Change gen_set_pc_imm to gen_update_pc

2023-05-23 Thread Weiwei Li
Reduce reliance on absolute values(by passing pc difference) to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/insn_trans/trans_privileged.c.inc | 2 +- target/riscv/insn_trans/trans_rvi.c.inc| 6 +++--- target/riscv

[PATCH v2 3/7] target/riscv: Change gen_goto_tb to work on displacements

2023-05-23 Thread Weiwei Li
Reduce reliance on absolute value to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/insn_trans/trans_rvi.c.inc | 4 ++-- target/riscv/translate.c| 8 +--- 2 files changed, 7 insertions(+), 5 deletions(-) diff

[PATCH v2 2/7] target/riscv: Introduce cur_insn_len into DisasContext

2023-05-23 Thread Weiwei Li
Use cur_insn_len to store the length of the current instruction to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/translate.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/riscv/translate.c b/target

[PATCH v2 0/7] target/riscv: Add support for PC-relative translation

2023-05-23 Thread Weiwei Li
And support of PC-relative translation is the precondition to support pointer mask for instruction. The port is available here: https://github.com/plctlab/plct-qemu/tree/plct-pcrel-upstream-v2 v2: * rebase on upstream and add pc-relative translation for Zc* instructions Weiwei Li (7): target/

Re: [PATCH 1/2] target/riscv: Add a function to refresh the dynamic CSRs xml.

2023-05-23 Thread Weiwei Li
riscv_refresh_dynamic_csr_xml(). Regards, Weiwei Li char *dyn_csr_xml; char *dyn_vreg_xml; @@ -781,6 +782,7 @@ void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops); void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops); void riscv_cpu_register_gdb_regs_for_features

Re: [PATCH 2/2] hw/intc: riscv_imsic: Refresh the CSRs xml after updating the state of the cpu.

2023-05-23 Thread Weiwei Li
cpu); + There is an assert in riscv_refresh_dynamic_csr_xml(): +if (!cpu->dyn_csr_xml) { +g_assert_not_reached(); +} So I think riscv_refresh_dynamic_csr_xml() can only be called when cpu->dyn_csr_xml is true here. Regards, Weiwei Li riscv_cpu_set_aia_ireg_rmw_fn(en

[PATCH v7 0/2] target/riscv: Fix pointer mask related support

2023-05-23 Thread Weiwei Li
(patch 3~6) out of this patchset Weiwei Li (2): target/riscv: Fix pointer mask transformation for vector address target/riscv: Update cur_pmmask/base when xl changes target/riscv/csr.c | 9 - target/riscv/vector_helper.c | 2 +- 2 files changed, 9 insertions(+), 2 deletions

[PATCH v7 1/2] target/riscv: Fix pointer mask transformation for vector address

2023-05-23 Thread Weiwei Li
actual_address = (requested_address & ~mpmmask) | mpmbase. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Daniel Henrique Barboza Reviewed-by: LIU Zhiwei --- target/riscv/vector_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/r

[PATCH v7 2/2] target/riscv: Update cur_pmmask/base when xl changes

2023-05-23 Thread Weiwei Li
write_mstatus() can only change current xl when in debug mode. And we need update cur_pmmask/base in this case. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: LIU Zhiwei --- target/riscv/csr.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a

Re: [PATCH 1/2] target/riscv: Add a function to refresh the dynamic CSRs xml.

2023-05-23 Thread Weiwei Li
On 2023/5/24 09:59, Tommy Wu wrote: Hi Weiwei Li, `dyn_csr_base_reg` will be used in `riscv_refresh_dynamic_csr_xml` We can initialize this variable when the cpu is realized. I didn't find this initialization in following code. And used this variable in `riscv_refresh_dynamic_cs

Re: [PATCH 2/2] hw/intc: riscv_imsic: Refresh the CSRs xml after updating the state of the cpu.

2023-05-23 Thread Weiwei Li
On 2023/5/24 09:51, Tommy Wu wrote: Hi Weiwei Li, Yes, you're right,  `riscv_refresh_dynamic_csr_xml()`  can only be called when cpu->dyn_csr_xml isn't a NULL pointer here. The cpu->dyn_csr_xml will be set when the cpu is realized. Yeah, It will  be set only when Zicsr is

Re: [PATCH 1/2] target/riscv: Add a function to refresh the dynamic CSRs xml.

2023-05-23 Thread Weiwei Li
On 2023/5/24 13:35, Tommy Wu wrote: Hi WeiWei Li, When the CPU is realizing, it will call `riscv_gen_dynamic_csr_xml` for the first time with the correct `base_reg` value. code flow : riscv_cpu_realize → riscv_cpu_register_gdb_regs_for_features  → riscv_gen_dynamic_csr_xml The

[PATCH v3 7/7] target/riscv: Remove pc_succ_insn from DisasContext

2023-05-26 Thread Weiwei Li
pc_succ_insn is no longer useful after the introduce of cur_insn_len and all pc related value use diff value instead of absolute value. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis --- target/riscv/translate.c | 7

[PATCH v3 3/7] target/riscv: Change gen_goto_tb to work on displacements

2023-05-26 Thread Weiwei Li
Reduce reliance on absolute value to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis --- target/riscv/insn_trans/trans_rvi.c.inc | 4 ++-- target/riscv/translate.c| 8

[PATCH v3 1/7] target/riscv: Fix target address to update badaddr

2023-05-26 Thread Weiwei Li
current pc if exception is triggered. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis --- target/riscv/insn_trans/trans_rvi.c.inc | 23 --- target/riscv/insn_trans/trans_rvzce.c.inc | 4 ++-- target/riscv

[PATCH v3 5/7] target/riscv: Use true diff for gen_pc_plus_diff

2023-05-26 Thread Weiwei Li
Reduce reliance on absolute values by using true pc difference for gen_pc_plus_diff() to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis --- target/riscv/insn_trans/trans_rvi.c.inc | 6

[PATCH v3 6/7] target/riscv: Enable PC-relative translation

2023-05-26 Thread Weiwei Li
Add a base pc_save for PC-relative translation(CF_PCREL). Diable the directly sync pc from tb by riscv_cpu_synchronize_from_tb. Use gen_pc_plus_diff to get the pc-relative address. Enable CF_PCREL in System mode. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard

[PATCH v3 2/7] target/riscv: Introduce cur_insn_len into DisasContext

2023-05-26 Thread Weiwei Li
Use cur_insn_len to store the length of the current instruction to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis --- target/riscv/translate.c | 4 +++- 1 file changed, 3 insertions(+), 1

[PATCH v3 0/7] target/riscv: Add support for PC-relative translation

2023-05-26 Thread Weiwei Li
or Zc* instructions Weiwei Li (7): target/riscv: Fix target address to update badaddr target/riscv: Introduce cur_insn_len into DisasContext target/riscv: Change gen_goto_tb to work on displacements target/riscv: Change gen_set_pc_imm to gen_update_pc target/riscv: Use true diff for gen_pc_plus

[PATCH v3 4/7] target/riscv: Change gen_set_pc_imm to gen_update_pc

2023-05-26 Thread Weiwei Li
Reduce reliance on absolute values(by passing pc difference) to prepare for PC-relative translation. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis --- target/riscv/insn_trans/trans_privileged.c.inc | 2 +- target/riscv

[PATCH 3/4] target/riscv: Support MSTATUS.MPV/GVA only when RVH is enabled

2023-05-29 Thread Weiwei Li
MPV and GVA bits are added by hypervisor extension to mstatus and mstatush (if MXLEN=32). Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/csr.c | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index

[PATCH 0/4] target/riscv: Fix mstatus related problems

2023-05-29 Thread Weiwei Li
This patchset tries to fix some problems in the fields of mstatus, such as make MPV only work when MPP != PRM. The port is available here: https://github.com/plctlab/plct-qemu/tree/plct-mpv-upstream Weiwei Li (4): target/riscv: Make MPV only work when MPP != PRV_M target/riscv: Remove check

[PATCH 1/4] target/riscv: Make MPV only work when MPP != PRV_M

2023-05-29 Thread Weiwei Li
Upon MRET or explicit memory access with MPRV=1, MPV should be ignored when MPP=PRV_M. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu_helper.c | 3 ++- target/riscv/op_helper.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/target/riscv

[PATCH 4/4] target/riscv: Remove redundant assignment to SXL

2023-05-29 Thread Weiwei Li
SXL is initialized as env->misa_mxl which is also the mxl value. So we can just remain it unchanged to keep it read-only. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/csr.c | 4 1 file changed, 4 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/cs

[PATCH 2/4] target/riscv: Remove check on mode for MPRV

2023-05-29 Thread Weiwei Li
Normally, MPRV can be set to 1 only in M mode (It will be cleared when returning to lower-privilege mode by MRET/SRET). Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv

[PATCH 3/4] target/riscv: Simplify type conversion for CPURISCVState

2023-03-08 Thread Weiwei Li
Use CPURISCVState as argument directly in riscv_cpu_update_mip and riscv_timer_write_timecmp, since type converts from CPURISCVState to RISCVCPU in many caller of them and then back to CPURISCVState in them. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu.c

[PATCH 2/4] target/riscv: Simplify getting RISCVCPU pointer from env

2023-03-08 Thread Weiwei Li
Use env_archcpu() to get RISCVCPU pointer from env directly. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/pmu.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c index b8e56d2b7b..a200741083 100644

[PATCH 1/4] target/riscv: Avoid env_archcpu() when reading RISCVCPUConfig

2023-03-08 Thread Weiwei Li
Use riscv_cpu_cfg(env) instead of env_archcpu().cfg. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu_helper.c | 9 - target/riscv/csr.c| 40 --- target/riscv/gdbstub.c| 4 ++-- 3 files changed, 18 insertions

[PATCH 4/4] target/riscv: Simplify arguments for riscv_csrrw_check

2023-03-08 Thread Weiwei Li
Remove RISCVCPU argument, and get cfg infomation from CPURISCVState directly. Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/csr.c | 12 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 53143f4d9a

[PATCH 0/4] target/riscv: Some CPURISCVState related cleanup and simplification

2023-03-08 Thread Weiwei Li
riscv_csrrw_check, and get cfg infomation from CPURISCVState directly The port is available here: https://github.com/plctlab/plct-qemu/tree/plct-cleanup-upstream Weiwei Li (4): target/riscv: Avoid env_archcpu() when reading RISCVCPUConfig target/riscv: Simplify getting RISCVCPU pointer from env

[PATCH v6 04/14] target/riscv: rvk: add support for zbkx extension

2022-02-27 Thread Weiwei Li
- add xperm4 and xperm8 instructions Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/bitmanip_helper.c | 27 + target/riscv/helper.h | 2 ++ target/riscv/insn32.decode | 4 target/riscv/insn_trans

[PATCH v6 09/14] target/riscv: rvk: add support for sha512 related instructions for RV32 in zknh extension

2022-02-27 Thread Weiwei Li
- add sha512sum0r, sha512sig0l, sha512sum1r, sha512sig1l, sha512sig0h and sha512sig1h instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 57 target/riscv/helper.h | 7

[PATCH v6 00/14] support subsets of scalar crypto extension

2022-02-27 Thread Weiwei Li
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 (14): target/riscv: rvk: add cfg properties for zbk* and zk* target/riscv: rvk: add support for zbkb extension targ

[PATCH v6 03/14] target/riscv: rvk: add support for zbkc extension

2022-02-27 Thread Weiwei Li
- reuse partial instructions of zbc extension, update extension check for them Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Alistair Francis --- target/riscv/insn32.decode | 3 ++- target/riscv/insn_trans/trans_rvb.c.inc | 4 ++-- 2 files changed, 4

[PATCH v6 08/14] target/riscv: rvk: add support for sha256 related instructions in zknh extension

2022-02-27 Thread Weiwei Li
- add sha256sig0, sha256sig1, sha256sum0 and sha256sum1 instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 31 + target/riscv/helper.h | 5 +++ target/riscv/insn32.decode

[PATCH v6 07/14] target/riscv: rvk: add support for zkne/zknd extension in RV64

2022-02-27 Thread Weiwei Li
- add aes64dsm, aes64ds, aes64im, aes64es, aes64esm, aes64ks2, aes64ks1i instructions Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 136 target/riscv/helper.h

[PATCH v6 05/14] crypto: move sm4_sbox from target/arm

2022-02-27 Thread Weiwei Li
- share it between target/arm and target/riscv Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- crypto/meson.build | 1 + crypto/sm4.c | 49 ++ include

[PATCH v6 06/14] target/riscv: rvk: add support for zknd/zkne extension in RV32

2022-02-27 Thread Weiwei Li
- add aes32esmi, aes32esi, aes32dsmi and aes32dsi instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 139 target/riscv/helper.h | 6 + target/riscv/insn32

[PATCH v6 01/14] target/riscv: rvk: add cfg properties for zbk* and zk*

2022-02-27 Thread Weiwei Li
Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Acked-by: Alistair Francis --- target/riscv/cpu.c | 23 +++ target/riscv/cpu.h | 13 + 2 files changed, 36 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index b0a40b83e7..d30534ead5

[PATCH v6 11/14] target/riscv: rvk: add support for zksed/zksh extension

2022-02-27 Thread Weiwei Li
- add sm3p0, sm3p1, sm4ed and sm4ks instructions Co-authored-by: Ruibo Lu Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 49 + target/riscv/helper.h | 6 +++ target/riscv/insn32.decode | 6

[PATCH v6 14/14] target/riscv: rvk: expose zbk* and zk* properties

2022-02-27 Thread Weiwei Li
Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 13 + 1 file changed, 13 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index d30534ead5..64bc776072 100644 --- a/target/riscv/cpu.c +++ b/target/riscv

[PATCH v6 13/14] disas/riscv.c: rvk: add disas support for Zbk* and Zk* instructions

2022-02-27 Thread Weiwei Li
Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- disas/riscv.c | 170 ++ 1 file changed, 170 insertions(+) diff --git a/disas/riscv.c b/disas/riscv.c index 03c8dc9961..44a2c16a0b 100644

[PATCH v6 02/14] target/riscv: rvk: add support for zbkb extension

2022-02-27 Thread Weiwei Li
- reuse partial instructions of zbb extension, update extension check for them - add brev8, pack, packh, packw, unzip, zip instructions Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Acked-by: Alistair Francis --- target/riscv/bitmanip_helper.c | 53 +++ target

[PATCH v6 10/14] target/riscv: rvk: add support for sha512 related instructions for RV64 in zknh extension

2022-02-27 Thread Weiwei Li
- add sha512sum0, sha512sig0, sha512sum1 and sha512sig1 instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 31 ++ target/riscv/helper.h | 5 +++ target/riscv/insn32.decode

[PATCH v6 12/14] target/riscv: rvk: add CSR support for Zkr

2022-02-27 Thread Weiwei Li
- add SEED CSR - add USEED, SSEED fields for MSECCFG CSR Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu_bits.h | 9 ++ target/riscv/csr.c | 64 + target/riscv

Re: [PATCH v6 02/14] target/riscv: rvk: add support for zbkb extension

2022-02-27 Thread Weiwei Li
Thanks for your comments. 在 2022/2/28 上午2:47, Richard Henderson 写道: On 2/27/22 04:25, Weiwei Li wrote: +static void gen_packh(TCGv ret, TCGv src1, TCGv src2) +{ +    TCGv t = tcg_temp_new(); + +    tcg_gen_ext8u_tl(t, src2); +    tcg_gen_deposit_tl(ret, src1, t, 8, TARGET_LONG_BITS - 8

Re: [PATCH v6 06/14] target/riscv: rvk: add support for zknd/zkne extension in RV32

2022-02-27 Thread Weiwei Li
在 2022/2/28 上午3:05, Richard Henderson 写道: On 2/27/22 04:25, Weiwei Li wrote: +#define AES_SHIFROWS_LO(RS1, RS2) ( \ +    (((RS1 >> 24) & 0xFF) << 56) | (((RS2 >> 48) & 0xFF) << 48) | \ +    (((RS2 >> 8) & 0xFF) << 40) | (((RS1 >> 3

Re: [PATCH v6 07/14] target/riscv: rvk: add support for zkne/zknd extension in RV64

2022-02-27 Thread Weiwei Li
在 2022/2/28 上午3:13, Richard Henderson 写道: On 2/27/22 04:25, Weiwei Li wrote:   - add aes64dsm, aes64ds, aes64im, aes64es, aes64esm, aes64ks2, aes64ks1i instructions Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang ---   target/riscv

Re: [PATCH v6 08/14] target/riscv: rvk: add support for sha256 related instructions in zknh extension

2022-02-27 Thread Weiwei Li
在 2022/2/28 上午3:21, Richard Henderson 写道: On 2/27/22 04:25, Weiwei Li wrote:   - add sha256sig0, sha256sig1, sha256sum0 and sha256sum1 instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang ---   target/riscv/crypto_helper.c    | 31

Re: [PATCH v6 09/14] target/riscv: rvk: add support for sha512 related instructions for RV32 in zknh extension

2022-02-27 Thread Weiwei Li
在 2022/2/28 上午3:36, Richard Henderson 写道: On 2/27/22 04:25, Weiwei Li wrote:   - add sha512sum0r, sha512sig0l, sha512sum1r, sha512sig1l, sha512sig0h and sha512sig1h instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang ---   target/riscv

Re: [PATCH v6 11/14] target/riscv: rvk: add support for zksed/zksh extension

2022-02-27 Thread Weiwei Li
在 2022/2/28 上午3:41, Richard Henderson 写道: On 2/27/22 04:25, Weiwei Li wrote:   - add sm3p0, sm3p1, sm4ed and sm4ks instructions Co-authored-by: Ruibo Lu Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang ---   target/riscv/crypto_helper.c    | 49 +   target

[PATCH v7 03/14] target/riscv: rvk: add support for zbkc extension

2022-02-28 Thread Weiwei Li
- reuse partial instructions of zbc extension, update extension check for them Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Alistair Francis --- target/riscv/insn32.decode | 3 ++- target/riscv/insn_trans/trans_rvb.c.inc | 4 ++-- 2 files changed, 4

[PATCH v7 00/14] support subsets of scalar crypto extension

2022-02-28 Thread Weiwei Li
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 L

[PATCH v7 08/14] target/riscv: rvk: add support for sha256 related instructions in zknh extension

2022-02-28 Thread Weiwei Li
- add sha256sig0, sha256sig1, sha256sum0 and sha256sum1 instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/insn32.decode | 5 target/riscv/insn_trans/trans_rvk.c.inc | 37 + 2 files changed

[PATCH v7 01/14] target/riscv: rvk: add cfg properties for zbk* and zk*

2022-02-28 Thread Weiwei Li
Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Acked-by: Alistair Francis --- target/riscv/cpu.c | 23 +++ target/riscv/cpu.h | 13 + 2 files changed, 36 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index ddda4906ff..9e8bbce6f1

[PATCH v7 02/14] target/riscv: rvk: add support for zbkb extension

2022-02-28 Thread Weiwei Li
- reuse partial instructions of zbb extension, update extension check for them - add brev8, pack, packh, packw, unzip, zip instructions Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Acked-by: Alistair Francis --- target/riscv/bitmanip_helper.c | 53 ++ target

[PATCH v7 06/14] target/riscv: rvk: add support for zknd/zkne extension in RV32

2022-02-28 Thread Weiwei Li
- add aes32esmi, aes32esi, aes32dsmi and aes32dsi instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 105 target/riscv/helper.h | 6 ++ target/riscv/insn32

[PATCH v7 09/14] target/riscv: rvk: add support for sha512 related instructions for RV32 in zknh extension

2022-02-28 Thread Weiwei Li
- add sha512sum0r, sha512sig0l, sha512sum1r, sha512sig1l, sha512sig0h and sha512sig1h instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/insn32.decode | 6 +++ target/riscv/insn_trans/trans_rvk.c.inc | 63

[PATCH v7 07/14] target/riscv: rvk: add support for zkne/zknd extension in RV64

2022-02-28 Thread Weiwei Li
- add aes64dsm, aes64ds, aes64im, aes64es, aes64esm, aes64ks2, aes64ks1i instructions Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 169 target/riscv/helper.h

[PATCH v7 05/14] crypto: move sm4_sbox from target/arm

2022-02-28 Thread Weiwei Li
- share it between target/arm and target/riscv Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Reviewed-by: Richard Henderson --- crypto/meson.build | 1 + crypto/sm4.c | 49

[PATCH v7 04/14] target/riscv: rvk: add support for zbkx extension

2022-02-28 Thread Weiwei Li
- add xperm4 and xperm8 instructions Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson --- target/riscv/bitmanip_helper.c | 27 + target/riscv/helper.h | 2 ++ target/riscv/insn32.decode | 4

[PATCH v7 10/14] target/riscv: rvk: add support for sha512 related instructions for RV64 in zknh extension

2022-02-28 Thread Weiwei Li
- add sha512sum0, sha512sig0, sha512sum1 and sha512sig1 instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/insn32.decode | 5 target/riscv/insn_trans/trans_rvk.c.inc | 32 + 2 files changed

[PATCH v7 13/14] disas/riscv.c: rvk: add disas support for Zbk* and Zk* instructions

2022-02-28 Thread Weiwei Li
Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- disas/riscv.c | 170 ++ 1 file changed, 170 insertions(+) diff --git a/disas/riscv.c b/disas/riscv.c index 03c8dc9961..44a2c16a0b 100644

[PATCH v7 14/14] target/riscv: rvk: expose zbk* and zk* properties

2022-02-28 Thread Weiwei Li
Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 13 + 1 file changed, 13 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 9e8bbce6f1..11a35fb5d6 100644 --- a/target/riscv/cpu.c +++ b/target/riscv

[PATCH v7 12/14] target/riscv: rvk: add CSR support for Zkr

2022-02-28 Thread Weiwei Li
- add SEED CSR - add USEED, SSEED fields for MSECCFG CSR Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu_bits.h | 9 ++ target/riscv/csr.c | 64 + target/riscv

[PATCH v7 11/14] target/riscv: rvk: add support for zksed/zksh extension

2022-02-28 Thread Weiwei Li
- add sm3p0, sm3p1, sm4ed and sm4ks instructions Co-authored-by: Ruibo Lu Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/crypto_helper.c| 28 target/riscv/helper.h | 3 ++ target/riscv/insn32.decode | 6

Re: [PATCH v7 09/14] target/riscv: rvk: add support for sha512 related instructions for RV32 in zknh extension

2022-02-28 Thread Weiwei Li
在 2022/3/1 上午3:38, Richard Henderson 写道: On 2/28/22 04:48, Weiwei Li wrote: +#define GEN_SHA512H_RV32(NAME, OP, NUM1, NUM2, NUM3) \ +static void gen_##NAME(TCGv dest, TCGv src1, TCGv src2) \ +{ \ +    TCGv_i64 t0 = tcg_temp_new_i64(); \ +    TCGv_i64 t1 = tcg_temp_new_i64(); \ +    TCGv_i64

Re: [PATCH v7 12/14] target/riscv: rvk: add CSR support for Zkr

2022-02-28 Thread Weiwei Li
在 2022/3/1 上午4:11, Richard Henderson 写道: On 2/28/22 04:48, Weiwei Li wrote: +/* Crypto Extension */ +static RISCVException rmw_seed(CPURISCVState *env, int csrno, +  target_ulong *ret_value, +  target_ulong new_value, target_ulong

Re: [PATCH v7 12/14] target/riscv: rvk: add CSR support for Zkr

2022-02-28 Thread Weiwei Li
在 2022/3/1 上午9:44, Weiwei Li 写道: 在 2022/3/1 上午4:11, Richard Henderson 写道: On 2/28/22 04:48, Weiwei Li wrote: +/* Crypto Extension */ +static RISCVException rmw_seed(CPURISCVState *env, int csrno, +  target_ulong *ret_value

[PATCH v8 07/14] target/riscv: rvk: add support for zkne/zknd extension in RV64

2022-03-01 Thread Weiwei Li
- add aes64dsm, aes64ds, aes64im, aes64es, aes64esm, aes64ks2, aes64ks1i instructions Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson --- target/riscv/crypto_helper.c| 169

[PATCH v8 03/14] target/riscv: rvk: add support for zbkc extension

2022-03-01 Thread Weiwei Li
- reuse partial instructions of zbc extension, update extension check for them Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Alistair Francis Reviewed-by: Richard Henderson --- target/riscv/insn32.decode | 3 ++- target/riscv/insn_trans/trans_rvb.c.inc | 4

[PATCH v8 09/14] target/riscv: rvk: add support for sha512 related instructions for RV32 in zknh extension

2022-03-01 Thread Weiwei Li
- add sha512sum0r, sha512sig0l, sha512sum1r, sha512sig1l, sha512sig0h and sha512sig1h instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/insn32.decode | 6 ++ target/riscv/insn_trans/trans_rvk.c.inc | 100

[PATCH v8 01/14] target/riscv: rvk: add cfg properties for zbk* and zk*

2022-03-01 Thread Weiwei Li
Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Acked-by: Alistair Francis --- target/riscv/cpu.c | 23 +++ target/riscv/cpu.h | 13 + 2 files changed, 36 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index ddda4906ff..9e8bbce6f1

[PATCH v8 04/14] target/riscv: rvk: add support for zbkx extension

2022-03-01 Thread Weiwei Li
- add xperm4 and xperm8 instructions Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson --- target/riscv/bitmanip_helper.c | 27 + target/riscv/helper.h | 2 ++ target/riscv/insn32.decode | 4

[PATCH v8 06/14] target/riscv: rvk: add support for zknd/zkne extension in RV32

2022-03-01 Thread Weiwei Li
- add aes32esmi, aes32esi, aes32dsmi and aes32dsi instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson --- target/riscv/crypto_helper.c| 105 target/riscv/helper.h

[PATCH v8 02/14] target/riscv: rvk: add support for zbkb extension

2022-03-01 Thread Weiwei Li
- reuse partial instructions of zbb extension, update extension check for them - add brev8, pack, packh, packw, unzip, zip instructions Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Acked-by: Alistair Francis Reviewed-by: Richard Henderson --- target/riscv/bitmanip_helper.c

[PATCH v8 08/14] target/riscv: rvk: add support for sha256 related instructions in zknh extension

2022-03-01 Thread Weiwei Li
- add sha256sig0, sha256sig1, sha256sum0 and sha256sum1 instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson --- target/riscv/insn32.decode | 5 +++ target/riscv/insn_trans/trans_rvk.c.inc | 55

[PATCH v8 00/14] support subsets of scalar crypto extension

2022-03-01 Thread Weiwei Li
ip * use aes related sbox array from crypto/aes.h * move sm4_sbox to crypto/sm4.c, and share it with target/arm Weiwei Li (14): target/riscv: rvk: add cfg properties for zbk* and zk* target/riscv: rvk: add support for zbkb extension target/riscv: rvk: add support for zbkc extension target/riscv:

[PATCH v8 05/14] crypto: move sm4_sbox from target/arm

2022-03-01 Thread Weiwei Li
- share it between target/arm and target/riscv Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Reviewed-by: Richard Henderson --- crypto/meson.build | 1 + crypto/sm4.c | 49

[PATCH v8 14/14] target/riscv: rvk: expose zbk* and zk* properties

2022-03-01 Thread Weiwei Li
Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 13 + 1 file changed, 13 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 9e8bbce6f1..11a35fb5d6 100644 --- a/target/riscv/cpu.c +++ b/target/riscv

[PATCH v8 12/14] target/riscv: rvk: add CSR support for Zkr

2022-03-01 Thread Weiwei Li
- add SEED CSR - add USEED, SSEED fields for MSECCFG CSR Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/cpu_bits.h | 9 ++ target/riscv/csr.c | 71 + target/riscv

[PATCH v8 11/14] target/riscv: rvk: add support for zksed/zksh extension

2022-03-01 Thread Weiwei Li
- add sm3p0, sm3p1, sm4ed and sm4ks instructions Co-authored-by: Ruibo Lu Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson --- target/riscv/crypto_helper.c| 28 target/riscv/helper.h | 3 ++ target/riscv/insn32

[PATCH v8 13/14] disas/riscv.c: rvk: add disas support for Zbk* and Zk* instructions

2022-03-01 Thread Weiwei Li
Co-authored-by: Ruibo Lu Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- disas/riscv.c | 170 ++ 1 file changed, 170 insertions(+) diff --git a/disas/riscv.c b/disas/riscv.c index 03c8dc9961..44a2c16a0b 100644

[PATCH v8 10/14] target/riscv: rvk: add support for sha512 related instructions for RV64 in zknh extension

2022-03-01 Thread Weiwei Li
- add sha512sum0, sha512sig0, sha512sum1 and sha512sig1 instructions Co-authored-by: Zewen Ye Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Richard Henderson --- target/riscv/insn32.decode | 5 +++ target/riscv/insn_trans/trans_rvk.c.inc | 53

Re: [PATCH v7 12/14] target/riscv: rvk: add CSR support for Zkr

2022-03-01 Thread Weiwei Li
在 2022/3/1 下午11:59, Richard Henderson 写道: On 2/28/22 16:27, Weiwei Li wrote: 在 2022/3/1 上午9:44, Weiwei Li 写道: 在 2022/3/1 上午4:11, Richard Henderson 写道: On 2/28/22 04:48, Weiwei Li wrote: +/* Crypto Extension */ +static RISCVException rmw_seed(CPURISCVState *env, int csrno

[PATCH] target/riscv: write back unmodified value for csrrc/csrrs with rs1 is not x0 but holding zero

2022-03-02 Thread Weiwei Li
For csrrs and csrrc, if rs1 specifies a register other than x0, holding a zero value, the instruction will still attempt to write the unmodified value back to the csr and will cause side effects Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang --- target/riscv/csr.c

Re: [PATCH v4 3/6] target/riscv: add support for zfinx

2022-01-27 Thread Weiwei Li
在 2022/1/28 下午2:09, Alistair Francis 写道: On Thu, Jan 13, 2022 at 11:52 AM Weiwei Li wrote: - update extension check REQUIRE_ZFINX_OR_F - update single float point register read/write - disable nanbox_s check Co-authored-by: ardxwe Signed-off-by: Weiwei Li Signed-off-by: Junqiang

Re: [PATCH v6 2/5] target/riscv: add PTE_A/PTE_D/PTE_U bits check for inner PTE

2022-01-27 Thread Weiwei Li
在 2022/1/28 下午1:40, Alistair Francis 写道: On Tue, Jan 25, 2022 at 5:47 PM Weiwei Li wrote: Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Anup Patel Could you please add a commit message to this patch? Alistair OK. I'll add it. Regards, Weiwei Li --- t

[PATCH v7 3/5] target/riscv: add support for svnapot extension

2022-01-28 Thread Weiwei Li
- add PTE_N bit - add PTE_N bit check for inner PTE - update address translation to support 64KiB continuous region (napot_bits = 4) Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Anup Patel --- target/riscv/cpu.c| 2 ++ target/riscv/cpu_bits.h | 1 + target

<    1   2   3   4   5   6   7   8   9   10   >