From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Alexandru Elisei <alexandru.elisei@arm.com>
Cc: kvm@vger.kernel.org, will@kernel.org,
julien.thierry.kdev@gmail.com, andre.przywara@arm.com,
sami.mujawar@arm.com
Subject: Re: [PATCH kvmtool 00/16] Add writable BARs and PCIE 1.1 support
Date: Thu, 28 Nov 2019 17:41:15 +0000 [thread overview]
Message-ID: <20191128174115.GA14099@e121166-lin.cambridge.arm.com> (raw)
In-Reply-To: <20191125103033.22694-1-alexandru.elisei@arm.com>
On Mon, Nov 25, 2019 at 10:30:17AM +0000, Alexandru Elisei wrote:
> kvmtool uses the Linux-only dt property 'linux,pci-probe-only' to prevent
> it from trying to reprogram the BARs. Let's make the BARs writable so we
> can get rid of this band-aid.
For the sake of precision, PCI BARs are *always* writable and are indeed
written in eg Linux kernel enumeration code regardless of what DT
firmware property is present - in order to size them.
This series - which is very welcome - allows something different, namely
it allows changing the BARs value from a default address space
configuration aka reassigning BARs in Linux kernel speak.
Thanks,
Lorenzo
> Let's also extend the legacy PCI emulation, which came out in 1992, so we
> can properly emulate the PCI Express version 1.1 protocol, which is
> relatively newer, being published in 2005.
>
> With these two changes, we are very close to running EDK2 as the firmware
> for the virtual machine; the only thing that is missing is flash emulation
> for storing firmware variables.
>
> Summary of the patches:
> * Patches 1-12 are fixes or enhancements needed to support reprogramable
> BARs.
> * Patches 13-15 add support for reprogramable BARs and remove the dt
> property.
> * Patch 16 adds support for PCIE 1.1.
>
> Based on the series at [1].
>
> [1] https://lists.cs.columbia.edu/pipermail/kvmarm/2019-March/034964.html
>
> Alexandru Elisei (8):
> Makefile: Use correct objcopy binary when cross-compiling for x86_64
> Remove pci-shmem device
> Check that a PCI device's memory size is power of two
> arm: pci.c: Advertise only PCI bus 0 in the DT
> virtio/pci: Ignore MMIO and I/O accesses when they are disabled
> Use independent read/write locks for ioport and mmio
> virtio/pci: Add support for BAR configuration
> Add PCI Express 1.1 support
>
> Julien Thierry (7):
> ioport: pci: Move port allocations to PCI devices
> pci: Fix ioport allocation size
> arm/pci: Fix PCI IO region
> arm/pci: Do not use first PCI IO space bytes for devices
> virtio/pci: Make memory and IO BARs independent
> vfio: Add support for BAR configuration
> arm/fdt: Remove 'linux,pci-probe-only' property
>
> Sami Mujawar (1):
> pci: Fix BAR resource sizing arbitration
>
> Makefile | 4 +-
> arm/fdt.c | 1 -
> arm/include/arm-common/kvm-arch.h | 2 +-
> arm/include/arm-common/pci.h | 1 +
> arm/kvm.c | 3 +
> arm/pci.c | 28 ++-
> builtin-run.c | 5 -
> hw/pci-shmem.c | 400 ------------------------------
> hw/vesa.c | 21 +-
> include/kvm/ioport.h | 4 -
> include/kvm/pci-shmem.h | 32 ---
> include/kvm/pci.h | 61 ++++-
> include/kvm/util.h | 2 +
> include/kvm/vesa.h | 6 +-
> include/kvm/virtio-pci.h | 1 +
> ioport.c | 36 +--
> mmio.c | 26 +-
> pci.c | 64 ++++-
> powerpc/include/kvm/kvm-arch.h | 2 +-
> vfio/core.c | 6 +-
> vfio/pci.c | 97 +++++++-
> virtio/pci.c | 355 ++++++++++++++++++++------
> x86/include/kvm/kvm-arch.h | 2 +-
> 23 files changed, 562 insertions(+), 597 deletions(-)
> delete mode 100644 hw/pci-shmem.c
> delete mode 100644 include/kvm/pci-shmem.h
>
> --
> 2.20.1
>
next prev parent reply other threads:[~2019-11-28 17:41 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-25 10:30 [PATCH kvmtool 00/16] Add writable BARs and PCIE 1.1 support Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 01/16] Makefile: Use correct objcopy binary when cross-compiling for x86_64 Alexandru Elisei
2019-11-27 18:23 ` Andre Przywara
2019-11-25 10:30 ` [PATCH kvmtool 02/16] pci: Fix BAR resource sizing arbitration Alexandru Elisei
2019-11-27 18:24 ` Andre Przywara
2019-11-28 9:37 ` Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 03/16] Remove pci-shmem device Alexandru Elisei
2019-11-27 18:24 ` Andre Przywara
2019-11-25 10:30 ` [PATCH kvmtool 04/16] Check that a PCI device's memory size is power of two Alexandru Elisei
2019-11-27 18:25 ` Andre Przywara
2020-01-15 12:43 ` Alexandru Elisei
2020-01-15 14:07 ` Andre Przywara
2020-01-15 15:00 ` Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 05/16] arm: pci.c: Advertise only PCI bus 0 in the DT Alexandru Elisei
2019-11-28 17:43 ` Andre Przywara
2020-01-15 14:49 ` Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 06/16] ioport: pci: Move port allocations to PCI devices Alexandru Elisei
2020-01-28 18:25 ` Andre Przywara
2020-01-29 10:07 ` Alexandru Elisei
2020-01-29 10:29 ` Andre Przywara
2019-11-25 10:30 ` [PATCH kvmtool 07/16] pci: Fix ioport allocation size Alexandru Elisei
2020-01-28 18:26 ` Andre Przywara
2020-01-29 11:11 ` Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 08/16] arm/pci: Fix PCI IO region Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 09/16] arm/pci: Do not use first PCI IO space bytes for devices Alexandru Elisei
2019-12-02 12:15 ` Lorenzo Pieralisi
2020-01-15 15:08 ` Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 10/16] virtio/pci: Make memory and IO BARs independent Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 11/16] virtio/pci: Ignore MMIO and I/O accesses when they are disabled Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 12/16] Use independent read/write locks for ioport and mmio Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 13/16] vfio: Add support for BAR configuration Alexandru Elisei
2019-11-29 17:05 ` Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 14/16] virtio/pci: " Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 15/16] arm/fdt: Remove 'linux,pci-probe-only' property Alexandru Elisei
2019-11-25 10:30 ` [PATCH kvmtool 16/16] Add PCI Express 1.1 support Alexandru Elisei
2019-11-28 17:41 ` Lorenzo Pieralisi [this message]
2020-01-15 15:10 ` [PATCH kvmtool 00/16] Add writable BARs and PCIE " Alexandru Elisei
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191128174115.GA14099@e121166-lin.cambridge.arm.com \
--to=lorenzo.pieralisi@arm.com \
--cc=alexandru.elisei@arm.com \
--cc=andre.przywara@arm.com \
--cc=julien.thierry.kdev@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=sami.mujawar@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).