Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 947051

Summary: [RFE] implement xhci support in seabios
Product: Red Hat Enterprise Linux 7 Reporter: Sibiao Luo <sluo>
Component: seabiosAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: high    
Version: 7.0CC: chayang, flang, hhuang, juzhang, knoel, michen, qzhang, rhod, shu, sluo, virt-bugs, virt-maint, xfu
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: seabios-1.7.2.2-4.el7 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 12:17:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 838171, 949416    
Attachments:
Description Flags
Screenshot for no xHCI usb storage in seabios.
none
On verify version none

Description Sibiao Luo 2013-04-01 11:26:09 UTC
Description of problem:
boot a guest with a simulated usb-storage using xhci controller, but the seabios fail to detect it in boot menu.
BTW, both the Q35 and pc-i440fx-1.4 have this issue. if i test the usb-storage using echi controller, it have no such issue.

Version-Release number of selected component (if applicable):
host info:
host info:
kernel-3.9.0-0.rc4.45.el7.x86_64
qemu-kvm-1.4.0-1.el7.x86_64
seabios-1.7.2-0.2.gita810e4e7.el7.x86_64
guest info:
windows: win2012/win8 64bit
rhel7:   kernel-3.9.0-0.rc4.45.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.boot a guest with a simulated usb-storage using xhci controller.
e.g:...-boot menu=on...-device nec-usb-xhci,id=xhci0 -drive file=/home/my-usb-storage.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=none,aio=native -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on
2.press F12 during POST.
3.info block/usb in HMP monitor.

Actual results:
after step 2, there is no usb storage device listed in boot menu, i will attach the screenshot later.
Press F12 for boot menu.

Select boot device:

1. virtio-scsi Drive QEMU HARDDISK 1.4.
2. virtio-scsi Drive QEMU HARDDISK 1.4.
3. Legacy option rom
4. Floppy [drive A]
5. iPXE (PCI 00:05.0)

after step 3,
(qemu) info block
drive-system-disk: removable=0 io-status=ok file=/home/RHEL-Server-7.0-64-scsi.qcow2 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
drive-data-disk: removable=0 io-status=ok file=/home/my-data-disk.raw ro=0 drv=raw encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
drive-usb-0-1: removable=1 locked=0 tray-open=0 io-status=ok file=/home/my-usb-storage.qcow2 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
ide1-cd0: removable=1 locked=0 tray-open=0 [not inserted]
floppy0: removable=1 locked=0 tray-open=0 [not inserted]
sd0: removable=1 locked=0 tray-open=0 [not inserted]
(qemu) info usb
  Device 0.1, Port 1, Speed 480 Mb/s, Product QEMU USB Tablet
  Device 0.1, Port 2, Speed 12 Mb/s, Product QEMU USB Mouse
  Device 1.0, Port 1, Speed 5000 Mb/s, Product QEMU USB MSD
(qemu) 

Expected results:
the seabios should list the usb storage device correctly, like:
Press F12 for boot menu.

Select boot device:

1. virtio-scsi Drive QEMU HARDDISK 1.4.
2. virtio-scsi Drive QEMU HARDDISK 1.4.
3. Legacy option rom
4. Floppy [drive A]
5. iPXE (PCI 00:05.0)
6. USB MSC Drive QEMU QEMU HARDDISK 1.4.   <-----example

Additional info:

Comment 1 Sibiao Luo 2013-04-01 11:26:56 UTC
Created attachment 730249 [details]
Screenshot for no xHCI usb storage in seabios.

Comment 2 Sibiao Luo 2013-04-08 10:16:24 UTC
passthrough the USB3.0 using the xHCI controller to windows guest also hit this issue.

Comment 3 Hai Huang 2013-04-22 17:31:20 UTC
Please re-assign this BZ if the root cause is in seabios rather 
than xHCI.

Comment 4 Gerd Hoffmann 2013-04-23 05:54:24 UTC
seabios has no xhci support (yet), so this is normal ;)

Comment 5 Gerd Hoffmann 2013-09-03 14:44:06 UTC
Coding is done, patches are in upstream review process.

Comment 9 Gerd Hoffmann 2013-10-02 07:01:07 UTC
patches posted.

Comment 10 Miroslav Rezanina 2013-11-05 06:29:29 UTC
Fix included in seabios-1.7.2.2-4.el7

Comment 12 Gerd Hoffmann 2013-11-06 09:28:29 UTC
*** Bug 949416 has been marked as a duplicate of this bug. ***

Comment 13 langfang 2013-11-21 06:46:48 UTC
Reproduce this bug as follow version:
Host:
# rpm -q seabios
seabios-1.7.2.2-2.el7.x86_64
# rpm -q qemu-kvm
qemu-kvm-1.5.3-3.el7.x86_64


Steps:

Steps to Reproduce:
1.boot a guest with a simulated usb-storage using xhci controller.
e.g:...-boot menu=on...-device nec-usb-xhci,id=xhci0 -drive file=/home/my-usb-storage.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=unsafe,aio=native -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on
2.press F12 during POST.
3.info block/usb in HMP monitor.

(qemu) info block
drive-ide0-0-0: removable=0 io-status=ok file=/home/flang/win2008r2-64-virtio.qcow2 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
drive-scsi0-0-2: removable=1 locked=0 tray-open=0 io-status=ok [not inserted]
drive-usb-0-1: removable=1 locked=0 tray-open=0 io-status=ok file=/home/flang/my-usb-storage.qcow2 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
(qemu) info usb
  Device 0.1, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
  Device 1.0, Port 1, Speed 5000 Mb/s, Product QEMU USB MSD


Resutls:

After step 2, there is no usb storage device listed in boot menu.


Verify this bug as follow version:
Host
# rpm -q seabios
seabios-1.7.2.2-4.el7.x86_64
# rpm -q qemu-kvm
qemu-kvm-1.5.3-3.el7.x86_64

Guest:win2008r2-64

Steps as same as reproduce


Results:

1.Boot guest-->during POST press "F12"--->show the usb storage using xhci controller.Please see attachment.

Addtional info :
1)
 /usr/libexec/qemu-kvm  -M pc-i440fx-rhel7.0.0 -enable-kvm -m 4G -smp 4,sockets=2,cores=2,threads=1 -uuid `uuidgen` -nodefaults -rtc base=utc -drive file=/home/flang/win2008r2-64-virtio.qcow2,format=qcow2,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=unsafe  -device virtio-blk-pci,drive=drive-ide0-0-0,id=ide0-0-0  -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:60:3f:29,bus=pci.0,addr=0x4  -monitor stdio  -boot menu=on,order=c -vnc :10 -vga qxl  -usb -device usb-tablet,id=input0  -drive if=none,id=drive-scsi0-0-2,readonly=on,format=raw  -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0xe -device scsi-cd,bus=scsi0.0,scsi-id=2,drive=drive-scsi0-0-2,id=scsi0-0-2  -device nec-usb-xhci,id=xhci0 -drive file=/home/flang/my-usb-storage.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=unsafe,aio=native -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on

2)
according to comment 2,i also test passthrough usb3.0 device --->during POST press "F12"--->show the usb device.

According to above test ,this bug has fixed.

Comment 14 langfang 2013-11-21 06:48:54 UTC
Created attachment 827009 [details]
On verify version

Comment 16 Ludek Smid 2014-06-13 12:17:21 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.