* [Qemu-devel] [PULL 0/1] xhci PCIe endpoint migration compatibility fix
@ 2014-09-10 5:55 Gerd Hoffmann
2014-09-10 5:55 ` [Qemu-devel] [PULL 1/1] " Gerd Hoffmann
2014-09-11 10:43 ` [Qemu-devel] [PULL 0/1] " Peter Maydell
0 siblings, 2 replies; 3+ messages in thread
From: Gerd Hoffmann @ 2014-09-10 5:55 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-stable, Gerd Hoffmann
Hi,
Qemu 2.1.1 release is delayed a bit, so I have the chance to squeeze
in a last-minute fix for a migration compatibility bug in xhci.
please pull,
Gerd
The following changes since commit f102f224556f292f55b6e25147741bb8c48c9451:
Merge remote-tracking branch 'remotes/afaerber/tags/qom-cpu-for-peter' into staging (2014-09-05 16:03:56 +0100)
are available in the git repository at:
git://git.kraxel.org/qemu tags/pull-usb-20140910-1
for you to fetch changes up to e6043e92c2812a56b8f6cf35d5512067c746ce21:
xhci PCIe endpoint migration compatibility fix (2014-09-10 07:20:53 +0200)
----------------------------------------------------------------
xhci PCIe endpoint migration compatibility fix
----------------------------------------------------------------
Dr. David Alan Gilbert (1):
xhci PCIe endpoint migration compatibility fix
hw/usb/hcd-xhci.c | 6 +++++-
include/hw/i386/pc.h | 5 +++++
2 files changed, 10 insertions(+), 1 deletion(-)
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] [PULL 1/1] xhci PCIe endpoint migration compatibility fix
2014-09-10 5:55 [Qemu-devel] [PULL 0/1] xhci PCIe endpoint migration compatibility fix Gerd Hoffmann
@ 2014-09-10 5:55 ` Gerd Hoffmann
2014-09-11 10:43 ` [Qemu-devel] [PULL 0/1] " Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Gerd Hoffmann @ 2014-09-10 5:55 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Gerd Hoffmann, qemu-stable, Anthony Liguori,
Dr. David Alan Gilbert
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Add back the PCIe config capabilities on XHCI cards in non-PCIe slots,
but only for machine types before 2.1.
This fixes a migration incompatibility in the XHCI PCI devices
caused by:
058fdcf52cdbf57b67e7 - xhci: add endpoint cap on express bus only
Note that in fixing it for compatibility with older QEMUs, it breaks
compatibility with existing QEMU 2.1's on older machine types.
The status before this patch was (if it used an XHCI adapter):
machine type | source qemu
any pre-2.1 - FAIL
any 2.1... - PASS
With this patch:
machine type | source qemu
any pre-2.1 - PASS
pre-2.1 2.1... - FAIL
2.1 2.1... - PASS
A test to trigger it is to add '-device nec-usb-xhci,id=xhci,addr=0x12'
to the command line.
Cc: qemu-stable@nongnu.org
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
hw/usb/hcd-xhci.c | 6 +++++-
include/hw/i386/pc.h | 5 +++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index bbe4c5f..73ced1f 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -499,6 +499,7 @@ enum xhci_flags {
XHCI_FLAG_USE_MSI = 1,
XHCI_FLAG_USE_MSI_X,
XHCI_FLAG_SS_FIRST,
+ XHCI_FLAG_FORCE_PCIE_ENDCAP,
};
static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid,
@@ -3626,7 +3627,8 @@ static int usb_xhci_initfn(struct PCIDevice *dev)
PCI_BASE_ADDRESS_SPACE_MEMORY|PCI_BASE_ADDRESS_MEM_TYPE_64,
&xhci->mem);
- if (pci_bus_is_express(dev->bus)) {
+ if (pci_bus_is_express(dev->bus) ||
+ xhci_get_flag(xhci, XHCI_FLAG_FORCE_PCIE_ENDCAP)) {
ret = pcie_endpoint_cap_init(dev, 0xa0);
assert(ret >= 0);
}
@@ -3855,6 +3857,8 @@ static Property xhci_properties[] = {
DEFINE_PROP_BIT("msix", XHCIState, flags, XHCI_FLAG_USE_MSI_X, true),
DEFINE_PROP_BIT("superspeed-ports-first",
XHCIState, flags, XHCI_FLAG_SS_FIRST, true),
+ DEFINE_PROP_BIT("force-pcie-endcap", XHCIState, flags,
+ XHCI_FLAG_FORCE_PCIE_ENDCAP, false),
DEFINE_PROP_UINT32("intrs", XHCIState, numintrs, MAXINTRS),
DEFINE_PROP_UINT32("slots", XHCIState, numslots, MAXSLOTS),
DEFINE_PROP_UINT32("p2", XHCIState, numports_2, 4),
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index a39cb42..77316d5 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -330,6 +330,11 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
.value = "off",\
},\
{\
+ .driver = "nec-usb-xhci",\
+ .property = "force-pcie-endcap",\
+ .value = "on",\
+ },\
+ {\
.driver = "pci-serial",\
.property = "prog_if",\
.value = stringify(0),\
--
1.8.3.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PULL 0/1] xhci PCIe endpoint migration compatibility fix
2014-09-10 5:55 [Qemu-devel] [PULL 0/1] xhci PCIe endpoint migration compatibility fix Gerd Hoffmann
2014-09-10 5:55 ` [Qemu-devel] [PULL 1/1] " Gerd Hoffmann
@ 2014-09-11 10:43 ` Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2014-09-11 10:43 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: QEMU Developers, qemu-stable
On 10 September 2014 06:55, Gerd Hoffmann <kraxel@redhat.com> wrote:
> Hi,
>
> Qemu 2.1.1 release is delayed a bit, so I have the chance to squeeze
> in a last-minute fix for a migration compatibility bug in xhci.
>
> please pull,
> Gerd
>
> The following changes since commit f102f224556f292f55b6e25147741bb8c48c9451:
>
> Merge remote-tracking branch 'remotes/afaerber/tags/qom-cpu-for-peter' into staging (2014-09-05 16:03:56 +0100)
>
> are available in the git repository at:
>
>
> git://git.kraxel.org/qemu tags/pull-usb-20140910-1
>
> for you to fetch changes up to e6043e92c2812a56b8f6cf35d5512067c746ce21:
>
> xhci PCIe endpoint migration compatibility fix (2014-09-10 07:20:53 +0200)
>
> ----------------------------------------------------------------
> xhci PCIe endpoint migration compatibility fix
>
> ----------------------------------------------------------------
> Dr. David Alan Gilbert (1):
> xhci PCIe endpoint migration compatibility fix
>
> hw/usb/hcd-xhci.c | 6 +++++-
> include/hw/i386/pc.h | 5 +++++
> 2 files changed, 10 insertions(+), 1 deletion(-)
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-09-11 10:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-10 5:55 [Qemu-devel] [PULL 0/1] xhci PCIe endpoint migration compatibility fix Gerd Hoffmann
2014-09-10 5:55 ` [Qemu-devel] [PULL 1/1] " Gerd Hoffmann
2014-09-11 10:43 ` [Qemu-devel] [PULL 0/1] " Peter Maydell
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).