[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v7 2/5] target/riscv: Handle Smrnmi interrupt and exception
From: |
Clément Léger |
Subject: |
Re: [PATCH v7 2/5] target/riscv: Handle Smrnmi interrupt and exception |
Date: |
Thu, 17 Oct 2024 16:13:58 +0200 |
User-agent: |
Mozilla Thunderbird |
On 14/10/2024 20:19, frank.chang@sifive.com wrote:
> @@ -1679,6 +1718,20 @@ void riscv_cpu_do_interrupt(CPUState *cs)
> target_ulong mtval2 = 0;
> int sxlen = 0;
> int mxlen = 0;
> + bool nnmi_excep = false;
> +
> + if (cpu->cfg.ext_smrnmi && env->rnmip && async) {
> + env->mnstatus = set_field(env->mnstatus, MNSTATUS_NMIE, false);
> + env->mnstatus = set_field(env->mnstatus, MNSTATUS_MNPV,
> + env->virt_enabled);
> + env->mnstatus = set_field(env->mnstatus, MNSTATUS_MNPP,
> + env->priv);
> + env->mncause = cause | ((target_ulong)1U << (TARGET_LONG_BITS - 1));
> + env->mnepc = env->pc;
> + env->pc = env->rnmi_irqvec;
> + riscv_cpu_set_mode(env, PRV_M, virt);
Hi Frank,
Does it make sense to use the virt value here since if we are going to
PRV_M mode, then virt should be false ?
Thanks,
Clément
> + return;
> + }
- [PATCH v7 0/5] Add Smrnmi support, frank . chang, 2024/10/14
- [PATCH v7 1/5] target/riscv: Add 'ext_smrnmi' in the RISCVCPUConfig, frank . chang, 2024/10/14
- [PATCH v7 2/5] target/riscv: Handle Smrnmi interrupt and exception, frank . chang, 2024/10/14
- Re: [PATCH v7 2/5] target/riscv: Handle Smrnmi interrupt and exception,
Clément Léger <=
- [PATCH v7 3/5] target/riscv: Add Smrnmi CSRs, frank . chang, 2024/10/14
- [PATCH v7 4/5] target/riscv: Add Smrnmi mnret instruction, frank . chang, 2024/10/14
- [PATCH v7 5/5] target/riscv: Add Smrnmi cpu extension, frank . chang, 2024/10/14