]> git.proxmox.com Git - mirror_qemu.git/commit
riscv: plic: Fix incorrect irq calculation
authorAlistair Francis <Alistair.Francis@wdc.com>
Thu, 4 Apr 2019 18:15:23 +0000 (18:15 +0000)
committerPalmer Dabbelt <palmer@sifive.com>
Thu, 4 Apr 2019 23:36:19 +0000 (16:36 -0700)
commit0feb4a7129eb4f120c75849ddc9e50495c50cb63
tree47228ddc89549d44f57dba7a5b0ce93455246ff9
parent061b51e9195670e9d190cdec46fabcb3c77763fb
riscv: plic: Fix incorrect irq calculation

This patch fixes four different things, to maintain bisectability they
have been merged into a single patch. The following fixes are below:

sifive_plic: Fix incorrect irq calculation
The irq is incorrectly calculated to be off by one. It has worked in the
past as the priority_base offset has also been set incorrectly. We are
about to fix the priority_base offset so first first the irq
calculation.

sifive_u: Fix PLIC priority base offset and numbering
According to the FU540 manual the PLIC source priority address starts at
an offset of 0x04 and not 0x00. The same manual also specifies that the
PLIC only has 53 source priorities. Fix these two incorrect header
files.

We also need to over extend the plic_gpios[] array as the PLIC sources
count from 1 and not 0.

riscv: sifive_e: Fix PLIC priority base offset
According to the FE31 manual the PLIC source priority address starts at
an offset of 0x04 and not 0x00.

riscv: virt: Fix PLIC priority base offset
Update the virt offsets based on the newly updated SiFive U and SiFive E
offsets.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
hw/riscv/sifive_plic.c
include/hw/riscv/sifive_e.h
include/hw/riscv/sifive_u.h
include/hw/riscv/virt.h