@@ -36,6 +36,11 @@ ICSState *xive_ics_get(XIVE *x, uint32_t lisn)
return ics_valid_irq(ics, lisn) ? ics : NULL;
}
+void xive_ics_pic_print_info(XIVE *x, Monitor *mon)
+{
+ ics_pic_print_info(ICS_BASE(&x->ipi_xs), mon);
+}
+
static XiveICSState *xive_ics_find(sPAPRMachineState *spapr, uint32_t lisn)
{
XICSFabricClass *xic = XICS_FABRIC_GET_CLASS(spapr);
@@ -3399,6 +3399,10 @@ static void spapr_pic_print_info(InterruptStatsProvider *obj,
icp_pic_print_info(ICP(cpu->intc), mon);
}
+ if (spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) {
+ xive_ics_pic_print_info(spapr->xive, mon);
+ }
+
ics_pic_print_info(spapr->ics, mon);
}
@@ -75,5 +75,6 @@ void xive_ics_create(XiveICSState *xs, XIVE *x, uint32_t offset,
uint32_t nr_irqs, uint32_t shift, uint32_t flags,
Error **errp);
ICSState *xive_ics_get(XIVE *x, uint32_t lisn);
+void xive_ics_pic_print_info(XIVE *x, Monitor *mon);
#endif /* PPC_XIVE_H */
Signed-off-by: Cédric Le Goater <clg@kaod.org> --- hw/intc/xive_spapr.c | 5 +++++ hw/ppc/spapr.c | 4 ++++ include/hw/ppc/xive.h | 1 + 3 files changed, 10 insertions(+)