[PATCH 2/2] target/riscv: Add standard B extension implied rule

2025-05-13 Thread frank . chang
From: Frank Chang Add the missing implied rule for standard B extension. Standard B extension implies Zba, Zbb, Zbs extensions. RISC-V B spec: https://github.com/riscv/riscv-b Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Reviewed-by: Jim Shu --- target/riscv/cpu.c | 14

[PATCH 1/2] target/riscv: Add the implied rule for G extension

2025-05-13 Thread frank . chang
From: Jim Shu Add the missing implied rule from G to imafd_zicsr_zifencei. Signed-off-by: Jim Shu Reviewed-by: Frank Chang --- target/riscv/cpu.c | 14 +- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index d92874baa0

Re: [PATCH for-10.1] hw/riscv: do not mark any machine as default

2025-03-27 Thread Frank Chang
Reviewed-by: Frank Chang Daniel Henrique Barboza 於 2025年3月27日 週四 下午9:04寫道: > > Commit 5b4beba124 ("RISC-V Spike Machines") added the Spike machine and > made it default for qemu-system-riscv32/64. It was the first RISC-V > machine added in QEMU so setting it as default w

Re: [PATCH v11 3/6] target/riscv: Handle Smrnmi interrupt and exception

2025-01-05 Thread Frank Chang
and 'rnmi-exception-vector' as the > property > > of the harts. It’s very easy for users to set the address based on their > > expectation. This patch also adds the functionality to handle the RNMI > signals. > > > > Signed-off-by: Frank Chang > > Signed-of

[PATCH v12 3/6] target/riscv: Handle Smrnmi interrupt and exception

2025-01-05 Thread frank . chang
the functionality to handle the RNMI signals. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Daniel Henrique Barboza --- hw/riscv/riscv_hart.c | 41 include/hw/riscv/riscv_hart.h | 4 ++ target/riscv/cpu.c| 11 + target/riscv/c

Re: [PATCH v11 5/6] target/riscv: Add Smrnmi cpu extension

2025-01-05 Thread Frank Chang
> > mnstatus.NMIE to 1 before enabling any interrupts. Otherwise, all > > interrupts will be disabled. Since our current OpenSBI does not > > support Smrnmi yet, let's disable Smrnmi for the 'max' type CPU for > > now. We can re-enable it once OpenSBI include

[PATCH v12 1/6] target/riscv: Add 'ext_smrnmi' in the RISCVCPUConfig

2025-01-05 Thread frank . chang
From: Tommy Wu The boolean variable 'ext_smrnmi' is used to determine whether the Smrnmi extension exists. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu_cfg.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/c

[PATCH v12 6/6] target/riscv: Add Zicfilp support for Smrnmi

2025-01-05 Thread frank . chang
From: Frank Chang Zicfilp extension introduces the MNPELP (bit 9) in mnstatus. The MNPELP field holds the previous ELP. When a RNMI trap is delivered, the MNPELP is set to ELP and ELP set to NO_LP_EXPECTED. Upon a mnret, if the mnstatus.MNPP holds the value y, then ELP is set to the value of

[PATCH v12 4/6] target/riscv: Add Smrnmi mnret instruction

2025-01-05 Thread frank . chang
From: Tommy Wu This patch adds a new instruction 'mnret'. 'mnret' is an M-mode-only instruction that uses the values in `mnepc` and `mnstatus` to return to the program counter, privilege mode, and virtualization mode of the interrupted context. Signed-off-by: Frank Chang

[PATCH v12 0/6] Add Smrnmi support

2025-01-05 Thread frank . chang
From: Frank Chang This patchset added support for Smrnmi Extension in RISC-V. There are four new CSRs and one new instruction added to allow NMI to be resumable in RISC-V, which are: = * mnscratch (0x740) * mnepc (0x741

[PATCH v12 2/6] target/riscv: Add Smrnmi CSRs

2025-01-05 Thread frank . chang
From: Tommy Wu The Smrnmi extension adds the 'mnscratch', 'mnepc', 'mncause', 'mnstatus' CSRs. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 5 +++ target/riscv/cpu.h

[PATCH v12 5/6] target/riscv: Add Smrnmi cpu extension

2025-01-05 Thread frank . chang
x27;s disable Smrnmi for the 'max' type CPU for now. We can re-enable it once OpenSBI includes proper support for it. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Signed-off-by: Daniel Henrique Barboza Reviewed-by: Daniel Henrique Barboza --- target/riscv/cpu.c | 2 ++ targe

[PATCH v11 1/6] target/riscv: Add 'ext_smrnmi' in the RISCVCPUConfig

2024-12-30 Thread frank . chang
From: Tommy Wu The boolean variable 'ext_smrnmi' is used to determine whether the Smrnmi extension exists. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu_cfg.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/c

[PATCH v11 5/6] target/riscv: Add Smrnmi cpu extension

2024-12-30 Thread frank . chang
x27;s disable Smrnmi for the 'max' type CPU for now. We can re-enable it once OpenSBI includes proper support for it. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Signed-off-by: Daniel Henrique Barboza Reviewed-by: Daniel Henrique Barboza --- target/riscv/cpu.c | 2 ++ targe

[PATCH v11 6/6] target/riscv: Add Zicfilp support for Smrnmi

2024-12-30 Thread frank . chang
From: Frank Chang Zicfilp extension introduces the MNPELP (bit 9) in mnstatus. The MNPELP field holds the previous ELP. When a RNMI trap is delivered, the MNPELP is set to ELP and ELP set to NO_LP_EXPECTED. Upon a mnret, if the mnstatus.MNPP holds the value y, then ELP is set to the value of

[PATCH v11 2/6] target/riscv: Add Smrnmi CSRs

2024-12-30 Thread frank . chang
From: Tommy Wu The Smrnmi extension adds the 'mnscratch', 'mnepc', 'mncause', 'mnstatus' CSRs. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 5 +++ target/riscv/cpu.h

[PATCH v11 3/6] target/riscv: Handle Smrnmi interrupt and exception

2024-12-30 Thread frank . chang
the functionality to handle the RNMI signals. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Daniel Henrique Barboza --- hw/riscv/riscv_hart.c | 42 - include/hw/riscv/riscv_hart.h | 4 ++ target/riscv/cpu.c| 11 + target/riscv/c

[PATCH v11 4/6] target/riscv: Add Smrnmi mnret instruction

2024-12-30 Thread frank . chang
From: Tommy Wu This patch adds a new instruction 'mnret'. 'mnret' is an M-mode-only instruction that uses the values in `mnepc` and `mnstatus` to return to the program counter, privilege mode, and virtualization mode of the interrupted context. Signed-off-by: Frank Chang

[PATCH v11 0/6] Add Smrnmi support

2024-12-30 Thread frank . chang
From: Frank Chang This patchset added support for Smrnmi Extension in RISC-V. There are four new CSRs and one new instruction added to allow NMI to be resumable in RISC-V, which are: = * mnscratch (0x740) * mnepc (0x741

Re: [PATCH v10 3/7] target/riscv: Handle Smrnmi interrupt and exception

2024-12-30 Thread Frank Chang
gt; We add the 'rnmi-interrupt-vector' and 'rnmi-exception-vector' as the > property > > of the harts. It’s very easy for users to set the address based on their > > expectation. This patch also adds the functionality to handle the RNMI > signals. > &g

[PATCH v10 3/7] target/riscv: Handle Smrnmi interrupt and exception

2024-12-16 Thread frank . chang
the functionality to handle the RNMI signals. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- hw/riscv/riscv_hart.c | 40 + include/hw/riscv/riscv_hart.h | 4 ++ target/riscv/cpu.c| 11 + target/riscv/cpu.h| 3 ++ target/riscv/c

[PATCH v10 0/7] Add Smrnmi support

2024-12-16 Thread frank . chang
From: Frank Chang This patchset added support for Smrnmi Extension in RISC-V. There are four new CSRs and one new instruction added to allow NMI to be resumable in RISC-V, which are: = * mnscratch (0x740) * mnepc (0x741

[PATCH v10 4/7] target/riscv: Add Smrnmi mnret instruction

2024-12-16 Thread frank . chang
From: Tommy Wu This patch adds a new instruction 'mnret'. 'mnret' is an M-mode-only instruction that uses the values in `mnepc` and `mnstatus` to return to the program counter, privilege mode, and virtualization mode of the interrupted context. Signed-off-by: Frank Chang

[PATCH v10 7/7] target/riscv: Disable Smrnmi for the 'max' type CPU

2024-12-16 Thread frank . chang
From: Frank Chang When Smrnmi is present, the firmware (e.g., OpenSBI) must set mnstatus.NMIE to 1 before enabling any interrupts. Otherwise, all interrupts will be disabled. Since our current OpenSBI does not support Smrnmi yet, let's disable Smrnmi for the 'max' type CPU for

[PATCH v10 2/7] target/riscv: Add Smrnmi CSRs

2024-12-16 Thread frank . chang
From: Tommy Wu The Smrnmi extension adds the 'mnscratch', 'mnepc', 'mncause', 'mnstatus' CSRs. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 5 +++ target/riscv/cpu.h

[PATCH v10 5/7] target/riscv: Add Smrnmi cpu extension

2024-12-16 Thread frank . chang
From: Tommy Wu This adds the properties for ISA extension Smrnmi. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- target/riscv/cpu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e6988f44c6..7a4aa235ce 100644 --- a/target/riscv

[PATCH v10 1/7] target/riscv: Add 'ext_smrnmi' in the RISCVCPUConfig

2024-12-16 Thread frank . chang
From: Tommy Wu The boolean variable 'ext_smrnmi' is used to determine whether the Smrnmi extension exists. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu_cfg.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/c

[PATCH v10 6/7] target/riscv: Add Zicfilp support for Smrnmi

2024-12-16 Thread frank . chang
From: Frank Chang Zicfilp extension introduces the MNPELP (bit 9) in mnstatus. The MNPELP field holds the previous ELP. When a RNMI trap is delivered, the MNPELP is set to ELP and ELP set to NO_LP_EXPECTED. Upon a mnret, if the mnstatus.MNPP holds the value y, then ELP is set to the value of

Re: [PATCH v9 0/6] Add Smrnmi support

2024-12-16 Thread Frank Chang
pdate_enabled(cpu, CPU_CFG_OFFSET(ext_zcf), false); > } > + > +/* > + * ext_smrnmi requires OpenSBI changes that our current > + * image does not have. Disable it for now. > + */ > +isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_smrnmi), false); > } > > This will make

Re: [PATCH v9 0/6] Add Smrnmi support

2024-12-11 Thread Frank Chang
Hi, A gentle ping on this. Regards, Frank Chang 於 2024年11月22日 週五 上午11:23寫道: > > From: Frank Chang > > This patchset added support for Smrnmi Extension in RISC-V. > > There are four new CSRs and one new instruction added to allow NMI to be > resumable

[PATCH v9 4/6] target/riscv: Add Smrnmi mnret instruction

2024-11-21 Thread frank . chang
From: Tommy Wu This patch adds a new instruction 'mnret'. 'mnret' is an M-mode-only instruction that uses the values in `mnepc` and `mnstatus` to return to the program counter, privilege mode, and virtualization mode of the interrupted context. Signed-off-by: Frank Chang

[PATCH v9 1/6] target/riscv: Add 'ext_smrnmi' in the RISCVCPUConfig

2024-11-21 Thread frank . chang
From: Tommy Wu The boolean variable 'ext_smrnmi' is used to determine whether the Smrnmi extension exists. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu_cfg.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/c

Re: [PATCH v8 2/5] target/riscv: Handle Smrnmi interrupt and exception

2024-11-21 Thread Frank Chang
On Wed, Nov 20, 2024 at 11:29 AM Frank Chang wrote: > On Mon, Nov 18, 2024 at 11:13 AM Alistair Francis > wrote: > >> On Mon, Oct 21, 2024 at 1:06 PM wrote: >> > >> > From: Tommy Wu >> > >> > Because the RNMI interrupt trap handler address

[PATCH v9 5/6] target/riscv: Add Smrnmi cpu extension

2024-11-21 Thread frank . chang
From: Tommy Wu This adds the properties for ISA extension Smrnmi. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- target/riscv/cpu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index b402d8545b..6c91464a00 100644 --- a/target/riscv

[PATCH v9 6/6] target/riscv: Add Zicfilp support for Smrnmi

2024-11-21 Thread frank . chang
From: Frank Chang Zicfilp extension introduces the MNPELP (bit 9) in mnstatus. The MNPELP field holds the previous ELP. When a RNMI trap is delivered, the MNPELP is set to ELP and ELP set to NO_LP_EXPECTED. Upon a mnret, if the mnstatus.MNPP holds the value y, then ELP is set to the value of

[PATCH v9 0/6] Add Smrnmi support

2024-11-21 Thread frank . chang
From: Frank Chang This patchset added support for Smrnmi Extension in RISC-V. There are four new CSRs and one new instruction added to allow NMI to be resumable in RISC-V, which are: = * mnscratch (0x740) * mnepc (0x741

[PATCH v9 3/6] target/riscv: Handle Smrnmi interrupt and exception

2024-11-21 Thread frank . chang
the functionality to handle the RNMI signals. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- hw/riscv/riscv_hart.c | 40 + include/hw/riscv/riscv_hart.h | 4 ++ target/riscv/cpu.c| 11 + target/riscv/cpu.h| 3 ++ target/riscv/c

[PATCH v9 2/6] target/riscv: Add Smrnmi CSRs

2024-11-21 Thread frank . chang
From: Tommy Wu The Smrnmi extension adds the 'mnscratch', 'mnepc', 'mncause', 'mnstatus' CSRs. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 5 +++ target/riscv/cpu.h

Re: [PATCH v8 2/5] target/riscv: Handle Smrnmi interrupt and exception

2024-11-19 Thread Frank Chang
and 'rnmi-exception-vector' as the > property > > of the harts. It’s very easy for users to set the address based on their > > expectation. This patch also adds the functionality to handle the RNMI > signals. > > > > Signed-off-by: Frank Chang > > Signe

[PATCH v8 0/5] Add Smrnmi support

2024-10-20 Thread frank . chang
From: Frank Chang This patchset added support for Smrnmi Extension in RISC-V. There are four new CSRs and one new instruction added to allow NMI to be resumable in RISC-V, which are: = * mnscratch (0x740) * mnepc (0x741

[PATCH v8 4/5] target/riscv: Add Smrnmi mnret instruction

2024-10-20 Thread frank . chang
From: Tommy Wu This patch adds a new instruction 'mnret'. 'mnret' is an M-mode-only instruction that uses the values in `mnepc` and `mnstatus` to return to the program counter, privilege mode, and virtualization mode of the interrupted context. Signed-off-by: Frank Chang

[PATCH v8 3/5] target/riscv: Add Smrnmi CSRs

2024-10-20 Thread frank . chang
From: Tommy Wu The Smrnmi extension adds the 'mnscratch', 'mnepc', 'mncause', 'mnstatus' CSRs. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 5 +++ target/riscv/cpu.h | 4 ++ tar

[PATCH v8 2/5] target/riscv: Handle Smrnmi interrupt and exception

2024-10-20 Thread frank . chang
the functionality to handle the RNMI signals. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- hw/riscv/riscv_hart.c | 18 include/hw/riscv/riscv_hart.h | 4 ++ target/riscv/cpu.c| 11 + target/riscv/cpu.h| 6 +++ target/riscv/cpu_bits.h

[PATCH v8 5/5] target/riscv: Add Smrnmi cpu extension

2024-10-20 Thread frank . chang
From: Tommy Wu This adds the properties for ISA extension Smrnmi. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- target/riscv/cpu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index b3195da512..fed64741d1 100644 --- a/target/riscv

[PATCH v8 1/5] target/riscv: Add 'ext_smrnmi' in the RISCVCPUConfig

2024-10-20 Thread frank . chang
From: Tommy Wu The boolean variable 'ext_smrnmi' is used to determine whether the Smrnmi extension exists. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu_cfg.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/c

Re: [PATCH v2 3/6] target/riscv: Add support for Control Transfer Records extension CSRs.

2024-10-17 Thread Frank Chang
On Thu, Oct 17, 2024 at 7:18 PM Rajnesh Kanwal wrote: > On Tue, Aug 27, 2024 at 10:28 AM Frank Chang > wrote: > > > > Rajnesh Kanwal 於 2024年6月19日 週三 下午11:27寫道: > > > > > > This commit adds support for [m|s|vs]ctrcontrol, sctrstatus and > > > sctrd

Re: [PATCH v7 2/5] target/riscv: Handle Smrnmi interrupt and exception

2024-10-17 Thread Frank Chang
ode. Otherwise, we may hit the assertion in: riscv_pmu_cycle_update_priv(), and riscv_pmu_icount_update_priv() The TLB will also not be flushed properly on the virt mode changed. I will fix it in the next patchset. Thanks, Frank Chang > > Thanks, > > Clément > > > > + return; > > + } > >

[PATCH v7 1/5] target/riscv: Add 'ext_smrnmi' in the RISCVCPUConfig

2024-10-14 Thread frank . chang
From: Tommy Wu The boolean variable 'ext_smrnmi' is used to determine whether the Smrnmi extension exists. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu_cfg.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/c

[PATCH v7 5/5] target/riscv: Add Smrnmi cpu extension

2024-10-14 Thread frank . chang
From: Tommy Wu This adds the properties for ISA extension Smrnmi. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- target/riscv/cpu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index b3195da512..fed64741d1 100644 --- a/target/riscv

[PATCH v7 3/5] target/riscv: Add Smrnmi CSRs

2024-10-14 Thread frank . chang
From: Tommy Wu The Smrnmi extension adds the 'mnscratch', 'mnepc', 'mncause', 'mnstatus' CSRs. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 5 +++ target/riscv/cpu.h | 4 ++ tar

[PATCH v7 4/5] target/riscv: Add Smrnmi mnret instruction

2024-10-14 Thread frank . chang
From: Tommy Wu This patch adds a new instruction 'mnret'. 'mnret' is an M-mode-only instruction that uses the values in `mnepc` and `mnstatus` to return to the program counter, privilege mode, and virtualization mode of the interrupted context. Signed-off-by: Frank Chang

[PATCH v7 2/5] target/riscv: Handle Smrnmi interrupt and exception

2024-10-14 Thread frank . chang
the functionality to handle the RNMI signals. Signed-off-by: Frank Chang Signed-off-by: Tommy Wu --- hw/riscv/riscv_hart.c | 18 include/hw/riscv/riscv_hart.h | 4 ++ target/riscv/cpu.c| 11 + target/riscv/cpu.h| 6 +++ target/riscv/cpu_bits.h

[PATCH v7 0/5] Add Smrnmi support

2024-10-14 Thread frank . chang
From: Frank Chang This patchset added support for Smrnmi Extension in RISC-V. There are four new CSRs and one new instruction added to allow NMI to be resumable in RISC-V, which are: = * mnscratch (0x740) * mnepc (0x741

Re: [PATCH v6 0/5] target/riscv: Add Smrnmi support.

2024-10-14 Thread Frank Chang
nt Hi Clément, Sorry for keeping you waiting. I've reviewed the comments from you and Alistair. The comments should be straightforward to fix. I will fix them and send out the patchset later today. Hope that it makes things easier. Regards, Frank Chang > > > Alistair so > &

Re: [PATCH v6 0/5] target/riscv: Add Smrnmi support.

2024-10-13 Thread Frank Chang
Hi Daniel, Thanks for the reminder. I'll take over Tommy's work to send out the v7 patchset later this week. Regards, Frank Chang On Fri, Oct 11, 2024 at 7:38 PM Daniel Henrique Barboza < dbarb...@ventanamicro.com> wrote: > Hi Tommy, > > > Do you plan to send a n

Re: [PATCH v2 3/6] target/riscv: Add support for Control Transfer Records extension CSRs.

2024-08-27 Thread Frank Chang
gt; bool ext_smaia; > bool ext_ssaia; > +bool ext_smctr; > +bool ext_ssctr; Base on: https://github.com/riscv/riscv-control-transfer-records/pull/29 Smctr and Ssctr depend on both S-mode and Sscsrind. We should add the implied rules for Smctr and Ssctr. Regards, Frank Chang

Re: [PATCH] target/riscv: Add a property to set vl to ceil(AVL/2)

2024-07-22 Thread Frank Chang
Reviewed-by: Frank Chang Jason Chien 於 2024年7月23日 週二 上午1:51寫道: > > RVV spec allows implementations to set vl with values within > [ceil(AVL/2),VLMAX] when VLMAX < AVL < 2*VLMAX. This commit adds a > property "rvv_vl_half_avl" to enable setting vl = ceil(AVL/2). Th

Re: [PATCH v9 2/6] target/riscv: Add new CSR fields for S{sn, mn, m}pm extensions as part of Zjpm v0.8

2024-06-27 Thread Frank Chang
static RISCVException write_menvcfg(CPURISCVState > *env, int csrno, > (cfg->ext_sstc ? MENVCFG_STCE : 0) | > (cfg->ext_svadu ? MENVCFG_ADUE : 0); > } > +/* Update PMM field only if the value is valid according to Zjpm v0.8 */ > +if (((val &

Re: [PATCH v9 2/6] target/riscv: Add new CSR fields for S{sn, mn, m}pm extensions as part of Zjpm v0.8

2024-06-27 Thread Frank Chang
} > } else { > -val &= ~(MSECCFG_MMWP | MSECCFG_MML | MSECCFG_RLB); > +mask |= MSECCFG_RLB; > +val &= ~(mask); > } > > env->mseccfg = val; > diff --git a/target/riscv/pmp.h b/target/riscv/pmp.h > index f5c10ce85c..ccff0eb

[PATCH v3 3/6] target/riscv: Add MISA extension implied rules

2024-06-25 Thread frank . chang
From: Frank Chang Add MISA extension implied rules to enable the implied extensions of MISA recursively. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou Reviewed-by: Alistair Francis Reviewed-by: Daniel Henrique Barboza --- target/riscv/cpu.c | 50

[PATCH v3 4/6] target/riscv: Add multi extension implied rules

2024-06-25 Thread frank . chang
From: Frank Chang Add multi extension implied rules to enable the implied extensions of the multi extension recursively. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou Acked-by: Alistair Francis Reviewed-by: Daniel Henrique Barboza --- target/riscv/cpu.c

[PATCH v3 6/6] target/riscv: Remove extension auto-update check statements

2024-06-25 Thread frank . chang
From: Frank Chang Remove the old-fashioned extension auto-update check statements as they are replaced by the extension implied rules. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou Reviewed-by: Daniel Henrique Barboza --- target/riscv/tcg/tcg-cpu.c | 119

[PATCH v3 5/6] target/riscv: Add Zc extension implied rule

2024-06-25 Thread frank . chang
From: Frank Chang Zc extension has special implied rules that need to be handled separately. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou Reviewed-by: Daniel Henrique Barboza --- target/riscv/tcg/tcg-cpu.c | 34 ++ 1 file

[PATCH v3 2/6] target/riscv: Introduce extension implied rule helpers

2024-06-25 Thread frank . chang
From: Frank Chang Introduce helpers to enable the extensions based on the implied rules. The implied extensions are enabled recursively, so we don't have to expand all of them manually. This also eliminates the old-fashioned ordering requirement. For example, Zvksg implies Zvks, Zvks im

[PATCH v3 1/6] target/riscv: Introduce extension implied rules definition

2024-06-25 Thread frank . chang
From: Frank Chang RISCVCPUImpliedExtsRule is created to store the implied rules. 'is_misa' flag is used to distinguish whether the rule is derived from the MISA or other extensions. 'ext' stores the MISA bit if 'is_misa' is true. Otherwise, it stores the offs

[PATCH v3 0/6] Introduce extension implied rules

2024-06-25 Thread frank . chang
From: Frank Chang Currently, the implied extensions are enabled and checked in riscv_cpu_validate_set_extensions(). However, the order of enabling the implied extensions must follow a strict sequence, which is error-prone. This patchset introduce extension implied rule helpers to enable the

Re: [PATCH v2 2/6] target/riscv: Introduce extension implied rule helpers

2024-06-20 Thread Frank Chang
On Fri, Jun 21, 2024 at 12:15 PM Alistair Francis wrote: > On Sun, Jun 16, 2024 at 12:48 PM wrote: > > > > From: Frank Chang > > > > Introduce helpers to enable the extensions based on the implied rules. > > The implied extensions are enabled recursively, so w

Re: [RFC PATCH v4 1/5] accel/tcg: Avoid unnecessary call overhead from qemu_plugin_vcpu_mem_cb

2024-06-20 Thread Frank Chang
Reviewed-by: Frank Chang Max Chou 於 2024年6月14日 週五 上午1:52寫道: > > If there are not any QEMU plugin memory callback functions, checking > before calling the qemu_plugin_vcpu_mem_cb function can reduce the > function call overhead. > > Signed-off-by: Max Chou > --- > acc

[PATCH v2 1/6] target/riscv: Introduce extension implied rules definition

2024-06-15 Thread frank . chang
From: Frank Chang RISCVCPUImpliedExtsRule is created to store the implied rules. 'is_misa' flag is used to distinguish whether the rule is derived from the MISA or other extensions. 'ext' stores the MISA bit if 'is_misa' is true. Otherwise, it stores the offs

[PATCH v2 6/6] target/riscv: Remove extension auto-update check statements

2024-06-15 Thread frank . chang
From: Frank Chang Remove the old-fashioned extension auto-update check statements as they are replaced by the extension implied rules. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou --- target/riscv/tcg/tcg-cpu.c | 119 - 1

[PATCH v2 3/6] target/riscv: Add MISA implied rules

2024-06-15 Thread frank . chang
From: Frank Chang Add MISA extension implied rules to enable the implied extensions of MISA recursively. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 50 +- 1

[PATCH v2 2/6] target/riscv: Introduce extension implied rule helpers

2024-06-15 Thread frank . chang
From: Frank Chang Introduce helpers to enable the extensions based on the implied rules. The implied extensions are enabled recursively, so we don't have to expand all of them manually. This also eliminates the old-fashioned ordering requirement. For example, Zvksg implies Zvks, Zvks im

[PATCH v2 5/6] target/riscv: Add Zc extension implied rule

2024-06-15 Thread frank . chang
From: Frank Chang Zc extension has special implied rules that need to be handled separately. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou --- target/riscv/tcg/tcg-cpu.c | 34 ++ 1 file changed, 34 insertions(+) diff --git a

[PATCH v2 4/6] target/riscv: Add standard extension implied rules

2024-06-15 Thread frank . chang
From: Frank Chang Add standard extension implied rules to enable the implied extensions of the standard extension recursively. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian Tested-by: Max Chou Acked-by: Alistair Francis --- target/riscv/cpu.c | 340

[PATCH v2 0/6] Introduce extension implied rules

2024-06-15 Thread frank . chang
From: Frank Chang Currently, the implied extensions are enabled and checked in riscv_cpu_validate_set_extensions(). However, the order of enabling the implied extensions must follow a strict sequence, which is error-prone. This patchset introduce extension implied rule helpers to enable the

Re: [PATCH RESEND 2/6] target/riscv: Introduce extension implied rule helpers

2024-06-11 Thread Frank Chang
On Wed, Jun 5, 2024 at 2:32 PM wrote: > From: Frank Chang > > Introduce helpers to enable the extensions based on the implied rules. > The implied extensions are enabled recursively, so we don't have to > expand all of them manually. This also eliminates the old-fashioned &g

Re: [PATCH RESEND 1/6] target/riscv: Introduce extension implied rules definition

2024-06-10 Thread Frank Chang
Hi Alistair, On Tue, Jun 11, 2024 at 9:35 AM Alistair Francis wrote: > On Wed, Jun 5, 2024 at 4:35 PM wrote: > > > > From: Frank Chang > > > > RISCVCPUImpliedExtsRule is created to store the implied rules. > > 'is_misa' flag is used to distinguish wh

Re: [PATCH v3 11/13] hw/riscv/riscv-iommu: add DBG support

2024-06-09 Thread Frank Chang
Reviewed-by: Frank Chang Daniel Henrique Barboza 於 2024年5月24日 週五 上午1:42寫道: > > From: Tomasz Jeznach > > DBG support adds three additional registers: tr_req_iova, tr_req_ctl and > tr_response. > > The DBG cap is always enabled. No on/off toggle is provided for it. >

Re: [PATCH v3 10/13] hw/riscv/riscv-iommu: add ATS support

2024-06-09 Thread Frank Chang
Reviewed-by: Frank Chang Daniel Henrique Barboza 於 2024年5月24日 週五 上午1:41寫道: > > From: Tomasz Jeznach > > Add PCIe Address Translation Services (ATS) capabilities to the IOMMU. > This will add support for ATS translation requests in Fault/Event > queues, Page-reque

Re: [PATCH v3 05/13] hw/riscv: add riscv-iommu-pci reference device

2024-06-09 Thread Frank Chang
gt; +.name = "riscv-iommu", > +.unmigratable = 1 > +}; > + > +static void riscv_iommu_pci_init(Object *obj) > +{ > +RISCVIOMMUStatePci *s = RISCV_IOMMU_PCI(obj); > +RISCVIOMMUState *iommu = &s->iommu; > + > +object_initialize_child(ob

Re: [PATCH 0/6] Introduce extension implied rules

2024-06-04 Thread Frank Chang
Patchset resend: https://lists.gnu.org/archive/html/qemu-riscv/2024-06/msg00130.html 於 2024年6月3日 週一 下午2:07寫道: > From: Frank Chang > > Currently, the implied extensions are enabled and checked in > riscv_cpu_validate_set_extensions(). However, the order of enabling the > imp

[PATCH RESEND 6/6] target/riscv: Remove extension auto-update check statements

2024-06-04 Thread frank . chang
From: Frank Chang Remove the old-fashioned extension auto-update check statements as they are replaced by the extension implied rules. Signed-off-by: Frank Chang --- target/riscv/tcg/tcg-cpu.c | 115 - 1 file changed, 115 deletions(-) diff --git a/target

[PATCH RESEND 1/6] target/riscv: Introduce extension implied rules definition

2024-06-04 Thread frank . chang
From: Frank Chang RISCVCPUImpliedExtsRule is created to store the implied rules. 'is_misa' flag is used to distinguish whether the rule is derived from the MISA or other extensions. 'ext' stores the MISA bit if 'is_misa' is true. Otherwise, it stores the offs

[PATCH RESEND 0/6] Introduce extension implied rules

2024-06-04 Thread frank . chang
From: Frank Chang Currently, the implied extensions are enabled and checked in riscv_cpu_validate_set_extensions(). However, the order of enabling the implied extensions must follow a strict sequence, which is error-prone. This patchset introduce extension implied rule helpers to enable the

[PATCH RESEND 4/6] target/riscv: Add standard extension implied rules

2024-06-04 Thread frank . chang
From: Frank Chang Add standard extension implied rules to enable the implied extensions of the standard extension recursively. Signed-off-by: Frank Chang --- target/riscv/cpu.c | 340 + 1 file changed, 340 insertions(+) diff --git a/target/riscv

[PATCH RESEND 2/6] target/riscv: Introduce extension implied rule helpers

2024-06-04 Thread frank . chang
From: Frank Chang Introduce helpers to enable the extensions based on the implied rules. The implied extensions are enabled recursively, so we don't have to expand all of them manually. This also eliminates the old-fashioned ordering requirement. For example, Zvksg implies Zvks, Zvks im

[PATCH RESEND 5/6] target/riscv: Add Zc extension implied rule

2024-06-04 Thread frank . chang
From: Frank Chang Zc extension has special implied rules that need to be handled separately. Signed-off-by: Frank Chang --- target/riscv/tcg/tcg-cpu.c | 34 ++ 1 file changed, 34 insertions(+) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg

[PATCH RESEND 3/6] target/riscv: Add MISA implied rules

2024-06-04 Thread frank . chang
From: Frank Chang Add MISA extension implied rules to enable the implied extensions of MISA recursively. Signed-off-by: Frank Chang --- target/riscv/cpu.c | 50 +- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b

Re: [PATCH 2/6] target/riscv: Introduce extension implied rule helpers

2024-06-04 Thread Frank Chang
於 2024年6月3日 週一 下午2:06寫道: > > From: Frank Chang > > Introduce helpers to enable the extensions based on the implied rules. > The implied extensions are enabled recursively, so we don't have to > expand all of them manually. This also eliminates the old-fashioned >

Re: [PATCH 4/4] hw/net: Fix the transmission return size

2024-06-04 Thread Frank Chang
Reviewed-by: Frank Chang Fea.Wang 於 2024年6月3日 週一 下午1:48寫道: > > Fix the transmission return size because not all bytes could be > transmitted successfully. So, return a successful length instead of a > constant value. > > Signed-off-by: Fea.Wang > --- > hw/net/xilinx_ax

Re: [PATCH 3/4] hw/dma: Add a trace log for a description loading failure

2024-06-04 Thread Frank Chang
Reviewed-by: Frank Chang Fea.Wang 於 2024年6月3日 週一 下午1:49寫道: > > Due to a description loading failure, adding a trace log makes observing > the DMA behavior easy. > > Signed-off-by: Fea.Wang > --- > hw/dma/trace-events| 3 +++ > hw/dma/xilinx_axidma.c | 3 +

Re: [PATCH 2/4] hw/dma: Break the loop when loading descriptions fails

2024-06-04 Thread Frank Chang
Reviewed-by: Frank Chang Fea.Wang 於 2024年6月3日 週一 下午1:48寫道: > > When calling the loading a description function, it should be noticed > that the function may return a failure value. Breaking the loop is one > of the possible ways to handle it. > > Signed-off-by: Fea.Wan

Re: [PATCH 1/4] hw/dma: Enhance error handling in loading description

2024-06-04 Thread Frank Chang
Reviewed-by: Frank Chang Fea.Wang 於 2024年6月3日 週一 下午1:48寫道: > > Loading a description from memory may cause a bus-error. In this > case, the DMA should stop working, set the error flag, and return > the error value. > > Signed-off-by: Fea.Wang > --- > hw/

[PATCH 1/6] target/riscv: Introduce extension implied rules definition

2024-06-02 Thread frank . chang
From: Frank Chang RISCVCPUImpliedExtsRule is created to store the implied rules. 'is_misa' flag is used to distinguish whether the rule is derived from the MISA or other extensions. 'ext' stores the MISA bit if 'is_misa' is true. Otherwise, it stores the offs

[PATCH 5/6] target/riscv: Add Zc extension implied rule

2024-06-02 Thread frank . chang
From: Frank Chang Zc extension has special implied rules that need to be handled separately. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian --- target/riscv/tcg/tcg-cpu.c | 34 ++ 1 file changed, 34 insertions(+) diff --git a/target/riscv/tcg/tcg

[PATCH 0/6] Introduce extension implied rules

2024-06-02 Thread frank . chang
From: Frank Chang Currently, the implied extensions are enabled and checked in riscv_cpu_validate_set_extensions(). However, the order of enabling the implied extensions must follow a strict sequence, which is error-prone. This patchset introduce extension implied rule helpers to enable the

[PATCH 3/6] target/riscv: Add MISA implied rules

2024-06-02 Thread frank . chang
From: Frank Chang Add MISA extension implied rules to enable the implied extensions of MISA recursively. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian --- target/riscv/cpu.c | 50 +- 1 file changed, 49 insertions(+), 1 deletion(-) diff

[PATCH 4/6] target/riscv: Add standard extension implied rules

2024-06-02 Thread frank . chang
From: Frank Chang Add standard extension implied rules to enable the implied extensions of the standard extension recursively. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian --- target/riscv/cpu.c | 340 + 1 file changed, 340 insertions

[PATCH 2/6] target/riscv: Introduce extension implied rule helpers

2024-06-02 Thread frank . chang
From: Frank Chang Introduce helpers to enable the extensions based on the implied rules. The implied extensions are enabled recursively, so we don't have to expand all of them manually. This also eliminates the old-fashioned ordering requirement. For example, Zvksg implies Zvks, Zvks im

[PATCH 6/6] target/riscv: Remove extension auto-update check statements

2024-06-02 Thread frank . chang
From: Frank Chang Remove the old-fashioned extension auto-update check statements as they are replaced by the extension implied rules. Signed-off-by: Frank Chang Reviewed-by: Jerry Zhang Jian --- target/riscv/tcg/tcg-cpu.c | 115 - 1 file changed, 115

  1   2   3   4   5   6   7   8   9   10   >