Create a PLX PEX PCIe Virtual Switch implementation that can be used for modeling trays. This is a generalized version of the xio3130 switch where we can set the PCI information on creation, allowing us to model different trays without creating specific devices for all of them. It is used the same way the xio3130 switch is used + the PCI Signature information.
The idea is to minimize the difficulty of creating different trays whose only difference is recognition by some daemon through PCI signatures. Instead of having to create 8 different versions of xio3130 that have the same functionality but different PCI Signatures, we create one general version where you can declare the PCI Signature information, while keeping the same base functionality. This is not meant to fully replace xio3130 since that is easier to use without knowledge of the PCI Signature, this is meant to decrease the difficulty of creating switch trays that require certain PCI information for recognition without any significant change from a normal PLX Virtual Switch functionality. Changes from v1&2: Updating different formatting and API changes that ocurred QEMU-wide since these patches were first staged in 8.1. Signed-off-by: Nabih Estefan <nabiheste...@google.com> Signed-off-by: Patrick Venture <vent...@google.com> Nabih Estefan (2): hw/pci-bridge: Create Initial revision for PLX Virtual Switch MAINTAINERS: Add entry for PLX VSwitches MAINTAINERS | 6 + hw/pci-bridge/Kconfig | 5 + hw/pci-bridge/meson.build | 1 + hw/pci-bridge/plx_vswitch_downstream.c | 188 +++++++++++++++++++++++++ hw/pci-bridge/plx_vswitch_upstream.c | 178 +++++++++++++++++++++++ include/hw/pci-bridge/plx_vswitch.h | 43 ++++++ 6 files changed, 421 insertions(+) create mode 100644 hw/pci-bridge/plx_vswitch_downstream.c create mode 100644 hw/pci-bridge/plx_vswitch_upstream.c create mode 100644 include/hw/pci-bridge/plx_vswitch.h -- 2.51.0.318.gd7df087d1a-goog