On Mon, Jul 15, 2024 at 8:15 PM Ethan Chen via <qemu-devel@nongnu.org> wrote: > > The iopmp_setup_cpu() function configures the RISCV CPU to support IOPMP and > specifies the CPU's RRID. > > Signed-off-by: Ethan Chen <etha...@andestech.com> > --- > hw/misc/riscv_iopmp.c | 6 ++++++ > include/hw/misc/riscv_iopmp.h | 1 + > 2 files changed, 7 insertions(+) > > diff --git a/hw/misc/riscv_iopmp.c b/hw/misc/riscv_iopmp.c > index e62ac57437..374bf5c610 100644 > --- a/hw/misc/riscv_iopmp.c > +++ b/hw/misc/riscv_iopmp.c > @@ -1211,5 +1211,11 @@ void iopmp_setup_system_memory(DeviceState *dev, const > MemMapEntry *memmap, > "iopmp-downstream-as"); > } > > +void iopmp_setup_cpu(RISCVCPU *cpu, uint32_t rrid) > +{ > + cpu->cfg.iopmp = true; > + cpu->cfg.iopmp_rrid = rrid; > +}
This should just be a normal CPU property, which the machine can then set to true if required Alistair > + > > type_init(iopmp_register_types); > diff --git a/include/hw/misc/riscv_iopmp.h b/include/hw/misc/riscv_iopmp.h > index ebe9c4bc4a..7e7da56d10 100644 > --- a/include/hw/misc/riscv_iopmp.h > +++ b/include/hw/misc/riscv_iopmp.h > @@ -167,5 +167,6 @@ typedef struct IopmpState { > > void iopmp_setup_system_memory(DeviceState *dev, const MemMapEntry *memmap, > uint32_t mapentry_num); > +void iopmp_setup_cpu(RISCVCPU *cpu, uint32_t rrid); > > #endif > -- > 2.34.1 > >