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.