It will be used when the guest chooses the XIVE exploitation mode in CAS. Signed-off-by: Cédric Le Goater <c...@kaod.org> --- hw/intc/spapr_xive.c | 12 ++++++++++++ include/hw/ppc/spapr_xive.h | 1 + 2 files changed, 13 insertions(+)
diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c index ad3f03e37401..adcbbc6ec245 100644 --- a/hw/intc/spapr_xive.c +++ b/hw/intc/spapr_xive.c @@ -807,3 +807,15 @@ bool spapr_xive_eq_for_target(sPAPRXive *xive, uint32_t target, return true; } + +void spapr_xive_mmio_map(sPAPRXive *xive) +{ + /* ESBs */ + sysbus_mmio_map(SYS_BUS_DEVICE(xive), 0, xive->esb_base); + + /* Thread Management Interrupt Areas */ + /* TODO: Only map the OS TIMA for the moment. Mapping the whole + * region needs some rework in the handlers */ + sysbus_mmio_map(SYS_BUS_DEVICE(xive), 1, + xive->tm_base + (1 << xive->tm_shift)); +} diff --git a/include/hw/ppc/spapr_xive.h b/include/hw/ppc/spapr_xive.h index 0a156f2d8591..13cf10f365d8 100644 --- a/include/hw/ppc/spapr_xive.h +++ b/include/hw/ppc/spapr_xive.h @@ -70,5 +70,6 @@ typedef struct sPAPRMachineState sPAPRMachineState; void spapr_xive_hcall_init(sPAPRMachineState *spapr); void spapr_xive_populate(sPAPRXive *xive, void *fdt, uint32_t phandle); +void spapr_xive_mmio_map(sPAPRXive *xive); #endif /* PPC_SPAPR_XIVE_H */ -- 2.13.5