From: Alistair Francis <alistair.francis@opensource.wdc.com>
To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org
Cc: Palmer Dabbelt <palmer@dabbelt.com>,
alistair23@gmail.com, Bin Meng <bin.meng@windriver.com>,
bmeng.cn@gmail.com, Alistair Francis <alistair.francis@wdc.com>
Subject: [PATCH 0/2] target/riscv: Allow software access to MIP SEIP
Date: Tue, 15 Mar 2022 16:40:05 +1000 [thread overview]
Message-ID: <20220315064007.3600746-1-alistair.francis@opensource.wdc.com> (raw)
From: Alistair Francis <alistair.francis@wdc.com>
The RISC-V specification states that:
"Supervisor-level external interrupts are made pending based on the
logical-OR of the software-writable SEIP bit and the signal from the
external interrupt controller."
We currently only allow either the interrupt controller or software to
set the bit, which is incorrect.
This patch removes the miclaim mask when writing MIP to allow M-mode
software to inject interrupts, even with an interrupt controller.
We then also need to keep track of which source is setting MIP_SEIP. The
final value is a OR of both, so we add two bools and use that to keep
track of the current state. This way either source can change without
loosing the correct value.
This fixes: https://gitlab.com/qemu-project/qemu/-/issues/904
Alistair Francis (2):
target/riscv: cpu: Fixup indentation
target/riscv: Allow software access to MIP SEIP
target/riscv/cpu.h | 8 ++++++++
target/riscv/cpu.c | 16 ++++++++++++----
target/riscv/csr.c | 8 ++++++--
3 files changed, 26 insertions(+), 6 deletions(-)
--
2.35.1
next reply other threads:[~2022-03-15 7:09 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-15 6:40 Alistair Francis [this message]
2022-03-15 6:40 ` [PATCH 1/2] target/riscv: cpu: Fixup indentation Alistair Francis
2022-03-15 7:29 ` Bin Meng
2022-03-15 14:59 ` Weiwei Li
2022-03-15 6:40 ` [PATCH 2/2] target/riscv: Allow software access to MIP SEIP Alistair Francis
2022-03-15 8:51 ` Bin Meng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220315064007.3600746-1-alistair.francis@opensource.wdc.com \
--to=alistair.francis@opensource.wdc.com \
--cc=alistair.francis@wdc.com \
--cc=alistair23@gmail.com \
--cc=bin.meng@windriver.com \
--cc=bmeng.cn@gmail.com \
--cc=palmer@dabbelt.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).