[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCHv5 07/12] libqos: Implement mmio accessors in terms
From: |
Alexey Kardashevskiy |
Subject: |
Re: [Qemu-ppc] [PATCHv5 07/12] libqos: Implement mmio accessors in terms of mem{read, write} |
Date: |
Tue, 25 Oct 2016 17:47:43 +1100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 |
On 24/10/16 15:59, David Gibson wrote:
> In the libqos PCI code we now have accessors both for registers (byte
> significance preserving) and for streaming data (byte address order
> preserving). These exist in both the interface for qtest drivers and in
> the machine specific backends.
>
> However, the register-style accessors aren't actually necessary in the
> backend. They can be implemented in terms of the byte address order
> preserving accessors by the libqos wrappers. This works because PCI is
> always little endian.
>
> This does assume that the back end byte address order preserving accessors
> will perform the equivalent of a single bus transaction for short lengths.
> This is the case, and in fact they currently end up using the same
> cpu_physical_memory_rw() implementation within the qtest accelerator.
>
> Signed-off-by: David Gibson <address@hidden>
> Reviewed-by: Laurent Vivier <address@hidden>
> Reviewed-by: Greg Kurz <address@hidden>
> ---
> tests/libqos/pci-pc.c | 38 --------------------------------------
> tests/libqos/pci-spapr.c | 44 --------------------------------------------
> tests/libqos/pci.c | 20 ++++++++++++++------
> tests/libqos/pci.h | 8 --------
> 4 files changed, 14 insertions(+), 96 deletions(-)
>
[...]
> diff --git a/tests/libqos/pci.h b/tests/libqos/pci.h
> index 2b08362..ce6ed08 100644
> --- a/tests/libqos/pci.h
> +++ b/tests/libqos/pci.h
> @@ -27,18 +27,10 @@ struct QPCIBus {
> uint16_t (*pio_readw)(QPCIBus *bus, uint32_t addr);
> uint32_t (*pio_readl)(QPCIBus *bus, uint32_t addr);
>
> - uint8_t (*mmio_readb)(QPCIBus *bus, uint32_t addr);
> - uint16_t (*mmio_readw)(QPCIBus *bus, uint32_t addr);
> - uint32_t (*mmio_readl)(QPCIBus *bus, uint32_t addr);
> -
> void (*pio_writeb)(QPCIBus *bus, uint32_t addr, uint8_t value);
> void (*pio_writew)(QPCIBus *bus, uint32_t addr, uint16_t value);
> void (*pio_writel)(QPCIBus *bus, uint32_t addr, uint32_t value);
>
> - void (*mmio_writeb)(QPCIBus *bus, uint32_t addr, uint8_t value);
> - void (*mmio_writew)(QPCIBus *bus, uint32_t addr, uint16_t value);
> - void (*mmio_writel)(QPCIBus *bus, uint32_t addr, uint32_t value);
> -
> void (*memread)(QPCIBus *bus, uint32_t addr, void *buf, size_t len);
> void (*memwrite)(QPCIBus *bus, uint32_t addr, const void *buf, size_t
> len);
>
>
You added them in "libqos: Handle PCI IO de-multiplexing in common code"
(few patched before) and removing them now - if you moved this patch
earlier, it would reduce the series, or what do I miss?
--
Alexey
- Re: [Qemu-ppc] [PATCHv5 04/12] libqos: Better handling of PCI legacy IO, (continued)
- [Qemu-ppc] [PATCHv5 05/12] tests: Adjust tco-test to use qpci_legacy_iomap(), David Gibson, 2016/10/24
- [Qemu-ppc] [PATCHv5 11/12] tests: Don't assume structure of PCI IO base in ahci-test, David Gibson, 2016/10/24
- [Qemu-ppc] [PATCHv5 01/12] libqos: Give qvirtio_config_read*() consistent semantics, David Gibson, 2016/10/24
- [Qemu-ppc] [PATCHv5 10/12] tests: Use qpci_mem{read, write} in ivshmem-test, David Gibson, 2016/10/24
- [Qemu-ppc] [PATCHv5 07/12] libqos: Implement mmio accessors in terms of mem{read, write}, David Gibson, 2016/10/24
- Re: [Qemu-ppc] [PATCHv5 07/12] libqos: Implement mmio accessors in terms of mem{read, write},
Alexey Kardashevskiy <=
[Qemu-ppc] [PATCHv5 06/12] libqos: Add streaming accessors for PCI MMIO, David Gibson, 2016/10/24
[Qemu-ppc] [PATCHv5 03/12] libqos: Move BAR assignment to common code, David Gibson, 2016/10/24
[Qemu-ppc] [PATCHv5 08/12] tests: Clean up IO handling in ide-test, David Gibson, 2016/10/24