--- a/hw/xen/xen_pt.h +++ b/hw/xen/xen_pt.h @@ -10,6 +10,7 @@ void xen_pt_log(const PCIDevice *d, cons #define XEN_PT_ERR(d, _f, _a...) xen_pt_log(d, "%s: Error: "_f, __func__, ##_a) +#define XEN_PT_LOGGING_ENABLED//temp #ifdef XEN_PT_LOGGING_ENABLED # define XEN_PT_LOG(d, _f, _a...) xen_pt_log(d, "%s: " _f, __func__, ##_a) # define XEN_PT_WARN(d, _f, _a...) \ --- a/hw/xen/xen_pt_config_init.c +++ b/hw/xen/xen_pt_config_init.c @@ -1474,6 +1474,8 @@ static int xen_pt_msixctrl_reg_write(Xen writable_mask = reg->emu_mask & ~reg->ro_mask & valid_mask; *data = XEN_PT_MERGE_VALUE(*val, *data, writable_mask); +XEN_PT_LOG(&s->dev, "MSI-X ctrl %04x (%04x/%04x)\n",//temp + *val, *data, XEN_PT_MERGE_VALUE(*val, dev_value, throughable_mask));//temp /* create value for writing to I/O device register */ *val = XEN_PT_MERGE_VALUE(*val, dev_value, throughable_mask); @@ -2027,7 +2029,7 @@ int xen_pt_config_init(XenPCIPassthrough reg_grp_offset, ®_grp_entry->size); if (rc < 0) { - XEN_PT_LOG(&s->dev, "Failed to initialize %d/%ld, type=0x%x, rc:%d\n", + XEN_PT_LOG(&s->dev, "Failed to initialize %d/%zd, type=0x%x, rc:%d\n", i, ARRAY_SIZE(xen_pt_emu_reg_grps), xen_pt_emu_reg_grps[i].grp_type, rc); xen_pt_config_delete(s); @@ -2044,7 +2046,7 @@ int xen_pt_config_init(XenPCIPassthrough /* initialize capability register */ rc = xen_pt_config_reg_init(s, reg_grp_entry, regs); if (rc < 0) { - XEN_PT_LOG(&s->dev, "Failed to initialize %d/%ld reg 0x%x in grp_type=0x%x (%d/%ld), rc=%d\n", + XEN_PT_LOG(&s->dev, "Failed to initialize %d/%zd reg 0x%x in grp_type=0x%x (%d/%zd), rc=%d\n", j, ARRAY_SIZE(xen_pt_emu_reg_grps[i].emu_regs), regs->offset, xen_pt_emu_reg_grps[i].grp_type, i, ARRAY_SIZE(xen_pt_emu_reg_grps), rc); --- a/hw/xen/xen_pt_msi.c +++ b/hw/xen/xen_pt_msi.c @@ -444,6 +444,7 @@ static void pci_msix_write(void *opaque, entry = &msix->msix_entry[entry_nr]; offset = addr % PCI_MSIX_ENTRY_SIZE; +XEN_PT_LOG(&s->dev, "[%"PRIx64"]=%08"PRIx64" (%u,%x)\n", addr, val, entry_nr, offset);//temp if (offset != PCI_MSIX_ENTRY_VECTOR_CTRL) { if (get_entry_value(entry, offset) == val && entry->pirq != XEN_PT_UNASSIGNED_PIRQ) {