Here is v8 of the pcie switch emulators patch. This is for qemu main tree. Patch description: The patch series adds pcie/aer functionality to the pcie port emulators and adds new qemu command to inject aer into the guest.
Changes v7 -> v8: - Added command to the forward declaration. - revise pci command/status register initialization - various changes to follow the review - use domain:slot.func:slot.func..:slot.func to specify pci function instead of domain:bus:slot.func - allow symbolic name for aer error name in addition to 32 bit value Changes v6 -> v7: - the glue patch for pushing attention button is dropped for now. This will be addressed later. - various clean up of aer helper functions. changes v5 -> v6: - dropped already merged patches. - add comment on hpev_intx - updated the bridge fix patch - update the aer patch. - reordered the patch series to remove the aer dependency. change v4 -> v5: - introduced pci_xxx_test_and_clear/set_mask - eliminated xxx_notify(msi_trigger, int_level) - eliminated FLR bits. FLR will be addressed at the next phase. changes v3 -> v4: - introduced new pci config helper functions.(clear set bit) - various clean up and some bug fixes. - dropped pci_shift_xxx(). - dropped function pointerin pcie_aer.h - dropped pci_exp_cap(), pcie_aer_cap(). - file rename (pcie_{root, upstream, downsatrem} => ioh33420, x3130). changes v2 -> v3: - msi: improved commant and simplified shift/ffs dance - pci w1c config register framework - split pcie.[ch] into pcie_regs.h, pcie.[ch] and pcie_aer.[ch] - pcie, aer: many changes by following reviews. changes v1 -> v2: - update msi - dropped already pushed out patches. - added msix patches. Isaku Yamahata (11): pci: revise pci command register initialization pci: clean up pci command register io/memory bit initialization pci: fix accesses to pci status register pci: clean up of pci status register pcie_regs.h: more constants pcie/aer: helper functions for pcie aer capability pci: introduce a parser for pci device path pcie/aer: glue aer error injection into qemu monitor ioh3420: support aer x3130/upstream: support aer x3130/downstream: support aer. Makefile.objs | 2 +- hmp-commands.hx | 23 + hw/ioh3420.c | 51 ++- hw/pci.c | 207 +++++++++- hw/pci.h | 1 + hw/pcie.h | 14 + hw/pcie_aer.c | 1045 +++++++++++++++++++++++++++++++++++++++++++++++ hw/pcie_aer.h | 106 +++++ hw/pcie_regs.h | 2 + hw/xio3130_downstream.c | 13 +- hw/xio3130_upstream.c | 12 +- qemu-common.h | 3 + sysemu.h | 5 + 13 files changed, 1456 insertions(+), 28 deletions(-) create mode 100644 hw/pcie_aer.c create mode 100644 hw/pcie_aer.h