On Tue, 7 Nov 2017 18:24:32 +0100 Pierre Morel <pmo...@linux.vnet.ibm.com> wrote:
> Right now the PCI support is very limited (e.g. pass through of a > host vfio device) > To enable features like virtio-pci several modifications needs to be > done. > > Virtio-PCI uses subregions, which may eventually be discontinuous > inside bars instead of a single flat region. > The address offset being formerly calculated from the BAR base address > must be adapted to the subregions instead of to the single region. > > This patch provides the new calculation for the three kind of BAR > access, zPCI STORE, zPCI LOAD and zPCI STORE BLOCK. > > We use the opportunity to > - enhance the fault detection for zPCI STORE and LOAD, > - enhance the fault detection and to provide the maximum STORE BLOCK > block size, maxstbl, for zPCI STORE BLOCK > - factor out part of the code used to calculate the offset and > access the BARs, > - factor out the code for endianess conversion. Will look at this later. Just a quick question: What kind of further functionality is enabled by this? E.g., I can attach a virtio-net-pci device right now, does this enable more virtio devices? > > > Pierre Morel (7): > s390x/pci: factor out endianess conversion > s390x/pci: rework PCI STORE > s390x/pci: rework PCI LOAD > s390x/pci: rework PCI STORE BLOCK > s390x/pci: move the memory region read from pcilg > s390x/pci: move the memory region write from pcistg > s390x/pci: search for subregion inside the BARs > > hw/s390x/s390-pci-bus.h | 1 + > hw/s390x/s390-pci-inst.c | 250 > ++++++++++++++++++++++++++++------------------- > hw/s390x/s390-pci-inst.h | 2 +- > 3 files changed, 153 insertions(+), 100 deletions(-) >