Now v9 of pcie aer patch series. I dropped qmp patch to inject aer error because it will depends on Gleb's openfirmware path patches. Once his patches are merged, the glue patch will be respined.
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. Change v8 -> v9: - dropped qmp glue aer error injection. - folded pci command register initialization patches - make pcie_aer_init() return error 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 (8): pci: revise pci command register 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 ioh3420: support aer x3130/upstream: support aer x3130/downstream: support aer. Makefile.objs | 2 +- hw/ioh3420.c | 80 ++++- hw/pci.c | 120 +++++++- hw/pcie.h | 14 + hw/pcie_aer.c | 827 +++++++++++++++++++++++++++++++++++++++++++++++ hw/pcie_aer.h | 106 ++++++ hw/pcie_regs.h | 2 + hw/xio3130_downstream.c | 43 ++- hw/xio3130_upstream.c | 33 ++- qemu-common.h | 3 + 10 files changed, 1189 insertions(+), 41 deletions(-) create mode 100644 hw/pcie_aer.c create mode 100644 hw/pcie_aer.h