On 10/01/2022 22.19, Eric Auger wrote:
At the moment the IO space limit is hardcoded to
QPCI_PIO_LIMIT = 0x10000. When accesses are performed to a bar,
the base address of this latter is compared against the limit
to decide whether we perform an IO or a memory access.

On ARM, we cannot keep this PIO limit as the arm-virt machine
uses [0x3eff0000, 0x3f000000 ] for the IO space map and we
are mandated to allocate at 0x0.

Add a new flag in QPCIBar indicating whether it is an IO bar
or a memory bar. This flag is set on QPCIBar allocation and
provisionned based on the BAR configuration. Then the new flag
is used in access functions and in iomap() function.

Signed-off-by: Eric Auger <eric.au...@redhat.com>
---
  tests/qtest/libqos/pci-pc.c    |  1 +
  tests/qtest/libqos/pci-spapr.c |  1 +
  tests/qtest/libqos/pci.c       | 78 ++++++++++++++++++++++------------
  tests/qtest/libqos/pci.h       |  5 +--
  4 files changed, 54 insertions(+), 31 deletions(-)

Reviewed-by: Thomas Huth <th...@redhat.com>


Reply via email to