qemu-devel
[Top][All Lists]
Advanced

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

Re: [EXTERNAL] Re: USB Gen2 passthrough not working


From: Pagan, Angel
Subject: Re: [EXTERNAL] Re: USB Gen2 passthrough not working
Date: Mon, 18 Jan 2021 17:06:43 +0000

Hi Gerd,

This patch works. The USB3 Gen2 device is now seen in the guest as a Gen1 device when attached and I can perform reads and writes to the device. Will you be checking this in soon?

Thanks,
Angel

guest:
Jan 18 16:49:52 localhost kernel: usb 2-4: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
Jan 18 16:49:52 localhost kernel: usb 2-4: New USB device found, idVendor=154b, idProduct=f00c, bcdDevice= 1.00
Jan 18 16:49:52 localhost kernel: usb 2-4: New USB device strings: Mfr=2, Product=3, SerialNumber=1
Jan 18 16:49:52 localhost kernel: usb 2-4: Product: PNY PRO ELITE PSSD
Jan 18 16:49:52 localhost kernel: usb 2-4: Manufacturer: PNY
Jan 18 16:49:52 localhost kernel: usb 2-4: SerialNumber: 511200715265B3130024
Jan 18 16:49:52 localhost kernel: usbcore: registered new interface driver usb-storage
Jan 18 16:49:52 localhost kernel: scsi host6: uas
Jan 18 16:49:52 localhost kernel: usbcore: registered new interface driver uas
Jan 18 16:49:52 localhost kernel: scsi 6:0:0:0: Direct-Access     PNY      PNY PRO ELITE PS 0    PQ: 0 ANSI: 6
Jan 18 16:49:53 localhost kernel: scsi 6:0:0:0: Attached scsi generic sg0 type 0
Jan 18 16:49:53 localhost kernel: sd 6:0:0:0: [sda] 976748545 512-byte logical blocks: (500 GB/465 GiB)
Jan 18 16:49:53 localhost kernel: sd 6:0:0:0: [sda] Write Protect is off
Jan 18 16:49:53 localhost kernel: sd 6:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jan 18 16:49:53 localhost kernel: sd 6:0:0:0: [sda] Optimal transfer size 33553920 bytes
Jan 18 16:49:53 localhost kernel: sda: sda1
Jan 18 16:49:53 localhost kernel: sd 6:0:0:0: [sda] Attached SCSI disk

[root@localhost ~]# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 5000M
    |__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 480M
[root@localhost ~]#

From: Gerd Hoffmann <gerd@kraxel.org>
Sent: Friday, January 15, 2021 4:31 AM
To: Pagan, Angel <Angel.Pagan@stratus.com>
Cc: qemu-devel@nongnu.org <qemu-devel@nongnu.org>
Subject: [EXTERNAL] Re: USB Gen2 passthrough not working
 
[EXTERNAL SENDER: This email originated from outside of Stratus Technologies. Do not click links or open attachments unless you recognize the sender and know the content is safe.]

  Hi,

>  usb 2-3: new SuperSpeedPlus Gen 2 USB device number 3 using xhci_hcd

> localhost login: [   72.763264] usb 1-4: new low-speed USB device number 3 using xhci_hcd

ilibusb reports LIBUSB_SPEED_SUPER_PLUS and qemu
doesn't handle it ...

Lets treat it like superspeed for now, does that help?

--- a/hw/usb/host-libusb.c
+++ b/hw/usb/host-libusb.c
@@ -186,6 +186,7 @@ static const char *speed_name[] = {
     [LIBUSB_SPEED_FULL]    = "12",
     [LIBUSB_SPEED_HIGH]    = "480",
     [LIBUSB_SPEED_SUPER]   = "5000",
+    [LIBUSB_SPEED_SUPER_PLUS] = "5000+",
 };
 
 static const unsigned int speed_map[] = {
@@ -193,6 +194,7 @@ static const unsigned int speed_map[] = {
     [LIBUSB_SPEED_FULL]    = USB_SPEED_FULL,
     [LIBUSB_SPEED_HIGH]    = USB_SPEED_HIGH,
     [LIBUSB_SPEED_SUPER]   = USB_SPEED_SUPER,
+    [LIBUSB_SPEED_SUPER_PLUS] = USB_SPEED_SUPER,
 };
 
 static const unsigned int status_map[] = {


reply via email to

[Prev in Thread] Current Thread [Next in Thread]