On Tue, May 12, 2015 at 11:33:49AM +0200, Michael S. Tsirkin wrote: > On Mon, May 11, 2015 at 01:08:05PM -0700, Sean O. Stalley wrote: > > On Mon, May 11, 2015 at 09:26:08PM +0200, Michael S. Tsirkin wrote: > > > On Mon, May 11, 2015 at 11:56:44AM -0700, Sean O. Stalley wrote: > > > > PCI Enhanced Allocation is a new method of allocating MMIO & IO > > > > resources for PCI devices & bridges. It can be used instead > > > > of the traditional PCI method of using BARs. > > > > > > > > EA entries are hardware-initialized to a fixed address. > > > > Unlike BARs, regions described by EA are cannot be moved. > > > > Because of this, only devices which are perminately connected to > > > > the PCI bus can use EA. A removeable PCI card must not use EA. > > > > > > > > This patchset enables any existing QEMU PCI model to use EA in leiu of > > > > BARs. It adds EA options to the PCI device paramaters. > > > > > > > > The Enhanced Allocation ECN is publicly available here: > > > > https://www.pcisig.com/specifications/conventional/ECN_Enhanced_Allocation_23_Oct_2014_Final.pdf > > > > > > > > Signed-off-by: Sean O. Stalley <sean.stal...@intel.com> > > > > > > > > > I will review this, thanks. Will you also be sending a seabios patch to > > > support these registers? When you do, please Cc me. > > > > Thanks Michael, > > > > I wasn't planning on sending a seabios patch. > > Won't this mean that bios might allocate PCI BARs conflicting with > EA entries, causing guest to crash?
The short answer is yes, having EA hardware without an EA-aware bios could cause the guest to crash. To make matters worse, EA may cause old OSes may crash as well. If the OS supports hot-swap, and tries to remap the BARs, it could have the same problem. This patch allows the user to add EA devices to an existing machine, which is something that would never happen with real EA hardware. EA devices will only be present on new platforms. Because of this, I thought it made more sense to add EA support to EDKII than to seabios. Will adding EA support to seabios be necessary as well? > > I do have some EDKII/OVMF patches I hope to send out soon. I will Cc you on > > those. > > > > -Sean > > > > > > > > > > > > --- > > > > hw/pci/Makefile.objs | 2 +- > > > > hw/pci/pci.c | 96 ++++++++++++++++------ > > > > hw/pci/pci_ea.c | 203 > > > > ++++++++++++++++++++++++++++++++++++++++++++++ > > > > include/hw/pci/pci.h | 7 ++ > > > > include/hw/pci/pci_ea.h | 39 +++++++++ > > > > include/hw/pci/pci_regs.h | 4 + > > > > include/qemu/typedefs.h | 1 + > > > > 7 files changed, 328 insertions(+), 24 deletions(-) > > > > create mode 100644 hw/pci/pci_ea.c > > > > create mode 100644 include/hw/pci/pci_ea.h