Message ID | 20210126171059.307867-3-clg@kaod.org |
---|---|
State | New |
Headers | show |
Series | ppc/pnv: Misc cleanups | expand |
On Tue, Jan 26, 2021 at 06:10:54PM +0100, Cédric Le Goater wrote: > ENDs allocated by OPAL for the HW thread VPs are tagged as owned by FW. > Dump the state in 'info pic'. > > Signed-off-by: Cédric Le Goater <clg@kaod.org> Applied to ppc-for-6.0, thanks. > --- > include/hw/ppc/xive_regs.h | 2 ++ > hw/intc/xive.c | 3 ++- > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/include/hw/ppc/xive_regs.h b/include/hw/ppc/xive_regs.h > index 787969282593..b7fde2354e31 100644 > --- a/include/hw/ppc/xive_regs.h > +++ b/include/hw/ppc/xive_regs.h > @@ -236,6 +236,8 @@ typedef struct XiveEND { > (be32_to_cpu((end)->w0) & END_W0_UNCOND_ESCALATE) > #define xive_end_is_silent_escalation(end) \ > (be32_to_cpu((end)->w0) & END_W0_SILENT_ESCALATE) > +#define xive_end_is_firmware(end) \ > + (be32_to_cpu((end)->w0) & END_W0_FIRMWARE) > > static inline uint64_t xive_end_qaddr(XiveEND *end) > { > diff --git a/hw/intc/xive.c b/hw/intc/xive.c > index fa8c3d82877f..eeb4e62ba954 100644 > --- a/hw/intc/xive.c > +++ b/hw/intc/xive.c > @@ -1294,7 +1294,7 @@ void xive_end_pic_print_info(XiveEND *end, uint32_t end_idx, Monitor *mon) > > pq = xive_get_field32(END_W1_ESn, end->w1); > > - monitor_printf(mon, " %08x %c%c %c%c%c%c%c%c%c prio:%d nvt:%02x/%04x", > + monitor_printf(mon, " %08x %c%c %c%c%c%c%c%c%c%c prio:%d nvt:%02x/%04x", > end_idx, > pq & XIVE_ESB_VAL_P ? 'P' : '-', > pq & XIVE_ESB_VAL_Q ? 'Q' : '-', > @@ -1305,6 +1305,7 @@ void xive_end_pic_print_info(XiveEND *end, uint32_t end_idx, Monitor *mon) > xive_end_is_escalate(end) ? 'e' : '-', > xive_end_is_uncond_escalation(end) ? 'u' : '-', > xive_end_is_silent_escalation(end) ? 's' : '-', > + xive_end_is_firmware(end) ? 'f' : '-', > priority, nvt_blk, nvt_idx); > > if (qaddr_base) {
diff --git a/include/hw/ppc/xive_regs.h b/include/hw/ppc/xive_regs.h index 787969282593..b7fde2354e31 100644 --- a/include/hw/ppc/xive_regs.h +++ b/include/hw/ppc/xive_regs.h @@ -236,6 +236,8 @@ typedef struct XiveEND { (be32_to_cpu((end)->w0) & END_W0_UNCOND_ESCALATE) #define xive_end_is_silent_escalation(end) \ (be32_to_cpu((end)->w0) & END_W0_SILENT_ESCALATE) +#define xive_end_is_firmware(end) \ + (be32_to_cpu((end)->w0) & END_W0_FIRMWARE) static inline uint64_t xive_end_qaddr(XiveEND *end) { diff --git a/hw/intc/xive.c b/hw/intc/xive.c index fa8c3d82877f..eeb4e62ba954 100644 --- a/hw/intc/xive.c +++ b/hw/intc/xive.c @@ -1294,7 +1294,7 @@ void xive_end_pic_print_info(XiveEND *end, uint32_t end_idx, Monitor *mon) pq = xive_get_field32(END_W1_ESn, end->w1); - monitor_printf(mon, " %08x %c%c %c%c%c%c%c%c%c prio:%d nvt:%02x/%04x", + monitor_printf(mon, " %08x %c%c %c%c%c%c%c%c%c%c prio:%d nvt:%02x/%04x", end_idx, pq & XIVE_ESB_VAL_P ? 'P' : '-', pq & XIVE_ESB_VAL_Q ? 'Q' : '-', @@ -1305,6 +1305,7 @@ void xive_end_pic_print_info(XiveEND *end, uint32_t end_idx, Monitor *mon) xive_end_is_escalate(end) ? 'e' : '-', xive_end_is_uncond_escalation(end) ? 'u' : '-', xive_end_is_silent_escalation(end) ? 's' : '-', + xive_end_is_firmware(end) ? 'f' : '-', priority, nvt_blk, nvt_idx); if (qaddr_base) {
ENDs allocated by OPAL for the HW thread VPs are tagged as owned by FW. Dump the state in 'info pic'. Signed-off-by: Cédric Le Goater <clg@kaod.org> --- include/hw/ppc/xive_regs.h | 2 ++ hw/intc/xive.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-)