mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
ppc/xive2: Dump more NVP state with 'info pic'
The 'PGoFirst' field of a Notify Virtual Processor tells if the NVP belongs to a VP group. Also, print the Reporting Cache Line address, if defined. Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Michael Kowal <kowal@linux.ibm.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
parent
aa90c209bf
commit
cfeafb0d8c
2 changed files with 9 additions and 2 deletions
|
@ -161,14 +161,20 @@ void xive2_nvp_pic_print_info(Xive2Nvp *nvp, uint32_t nvp_idx, GString *buf)
|
||||||
{
|
{
|
||||||
uint8_t eq_blk = xive_get_field32(NVP2_W5_VP_END_BLOCK, nvp->w5);
|
uint8_t eq_blk = xive_get_field32(NVP2_W5_VP_END_BLOCK, nvp->w5);
|
||||||
uint32_t eq_idx = xive_get_field32(NVP2_W5_VP_END_INDEX, nvp->w5);
|
uint32_t eq_idx = xive_get_field32(NVP2_W5_VP_END_INDEX, nvp->w5);
|
||||||
|
uint64_t cache_line = xive2_nvp_reporting_addr(nvp);
|
||||||
|
|
||||||
if (!xive2_nvp_is_valid(nvp)) {
|
if (!xive2_nvp_is_valid(nvp)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_string_append_printf(buf, " %08x end:%02x/%04x IPB:%02x",
|
g_string_append_printf(buf, " %08x end:%02x/%04x IPB:%02x PGoFirst:%02x",
|
||||||
nvp_idx, eq_blk, eq_idx,
|
nvp_idx, eq_blk, eq_idx,
|
||||||
xive_get_field32(NVP2_W2_IPB, nvp->w2));
|
xive_get_field32(NVP2_W2_IPB, nvp->w2),
|
||||||
|
xive_get_field32(NVP2_W0_PGOFIRST, nvp->w0));
|
||||||
|
if (cache_line) {
|
||||||
|
g_string_append_printf(buf, " reporting CL:%016"PRIx64, cache_line);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When the NVP is HW controlled, more fields are updated
|
* When the NVP is HW controlled, more fields are updated
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -151,6 +151,7 @@ typedef struct Xive2Nvp {
|
||||||
#define NVP2_W0_VALID PPC_BIT32(0)
|
#define NVP2_W0_VALID PPC_BIT32(0)
|
||||||
#define NVP2_W0_HW PPC_BIT32(7)
|
#define NVP2_W0_HW PPC_BIT32(7)
|
||||||
#define NVP2_W0_ESC_END PPC_BIT32(25) /* 'N' bit 0:ESB 1:END */
|
#define NVP2_W0_ESC_END PPC_BIT32(25) /* 'N' bit 0:ESB 1:END */
|
||||||
|
#define NVP2_W0_PGOFIRST PPC_BITMASK32(26, 31)
|
||||||
uint32_t w1;
|
uint32_t w1;
|
||||||
#define NVP2_W1_CO PPC_BIT32(13)
|
#define NVP2_W1_CO PPC_BIT32(13)
|
||||||
#define NVP2_W1_CO_PRIV PPC_BITMASK32(14, 15)
|
#define NVP2_W1_CO_PRIV PPC_BITMASK32(14, 15)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue