hw/intc: sifive_plic: change interrupt priority register to WARL field
authorJim Shu <jim.shu@sifive.com>
Mon, 3 Oct 2022 04:14:40 +0000 (04:14 +0000)
committerAlistair Francis <alistair.francis@wdc.com>
Fri, 14 Oct 2022 04:29:50 +0000 (14:29 +1000)
commit1aae4a12dab4bf1adc249c2ac6178d15e4b5a77d
treeddd3df4d49986b9b3dd2c5d294a92f8ac42e2a25
parent55144a1fd0d1f37b49ea051291decbbe427b7714
hw/intc: sifive_plic: change interrupt priority register to WARL field

PLIC spec [1] requires interrupt source priority registers are WARL
field and the number of supported priority is power-of-2 to simplify SW
discovery.

Existing QEMU RISC-V machine (e.g. shakti_c) don't strictly follow PLIC
spec, whose number of supported priority is not power-of-2. Just change
each bit of interrupt priority register to WARL field when the number of
supported priority is power-of-2.

[1] https://github.com/riscv/riscv-plic-spec/blob/master/riscv-plic.adoc#interrupt-priorities

Signed-off-by: Jim Shu <jim.shu@sifive.com>
Reviewed-by: Clément Chigot <chigot@adacore.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20221003041440.2320-3-jim.shu@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
hw/intc/sifive_plic.c