mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
hw/riscv: Allow creating multiple instances of PLIC
We extend PLIC emulation to allow multiple instances of PLIC in a QEMU RISC-V machine. To achieve this, we remove first HART id zero assumption from PLIC emulation. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20200616032229.766089-3-anup.patel@wdc.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
3bf03f0899
commit
c9270e10a5
5 changed files with 23 additions and 19 deletions
|
@ -48,6 +48,7 @@ typedef struct SiFivePLICState {
|
|||
/*< public >*/
|
||||
MemoryRegion mmio;
|
||||
uint32_t num_addrs;
|
||||
uint32_t num_harts;
|
||||
uint32_t bitfield_words;
|
||||
PLICAddr *addr_config;
|
||||
uint32_t *source_priority;
|
||||
|
@ -58,6 +59,7 @@ typedef struct SiFivePLICState {
|
|||
|
||||
/* config */
|
||||
char *hart_config;
|
||||
uint32_t hartid_base;
|
||||
uint32_t num_sources;
|
||||
uint32_t num_priorities;
|
||||
uint32_t priority_base;
|
||||
|
@ -70,10 +72,10 @@ typedef struct SiFivePLICState {
|
|||
} SiFivePLICState;
|
||||
|
||||
DeviceState *sifive_plic_create(hwaddr addr, char *hart_config,
|
||||
uint32_t num_sources, uint32_t num_priorities,
|
||||
uint32_t priority_base, uint32_t pending_base,
|
||||
uint32_t enable_base, uint32_t enable_stride,
|
||||
uint32_t context_base, uint32_t context_stride,
|
||||
uint32_t aperture_size);
|
||||
uint32_t hartid_base, uint32_t num_sources,
|
||||
uint32_t num_priorities, uint32_t priority_base,
|
||||
uint32_t pending_base, uint32_t enable_base,
|
||||
uint32_t enable_stride, uint32_t context_base,
|
||||
uint32_t context_stride, uint32_t aperture_size);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue