Re: [PATCH kvmtool 00/16] Add writable BARs and PCIE 1.1 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 11/28/19 5:41 PM, Lorenzo Pieralisi wrote:
> 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.

You are correct, I'll change the language to use "BAR reassignment". Thank you for
pointing it out.

Thanks,
Alex
>
> 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
>>



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux