libqos: Isolate knowledge of spapr memory map to qpci_init_spapr()
commitcd1b354ec05035f84bb05f591cb632770ad36e7c
authorDavid Gibson <david@gibson.dropbear.id.au>
Wed, 12 Oct 2016 02:30:07 +0000 (12 13:30 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Sun, 16 Oct 2016 01:03:09 +0000 (16 12:03 +1100)
tree58722af72c0d1d4e81602ed16302fead892542fb
parentd4d7a59a7a703220757cdc24d08a498db3e70212
libqos: Isolate knowledge of spapr memory map to qpci_init_spapr()

The libqos code for accessing PCI on the spapr machine type uses IOBASE()
and MMIOBASE() macros to determine the address in the CPU memory map of
the windows to PCI address space.

This is a detail of the implementation of PCI in the machine type, it's not
specified by the PAPR standard.  Real guests would get the addresses of the
PCI windows from the device tree.

Finding the device tree in libqos would be awkward, but we can at least
localize this knowledge of the implementation to the init function, saving
it in the QPCIBusSPAPR structure for use by the accessors.

That leaves only one place to fix if we alter the location of the PCI
windows, as we're planning to do.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
tests/libqos/pci-spapr.c