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 1242850

Summary: Ipxe can not recognize "network device" when enable virtio-1 of virtio-net-pci
Product: Red Hat Enterprise Linux 7 Reporter: Qian Guo <qiguo>
Component: ipxeAssignee: Ladi Prosek <lprosek>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.2CC: alex.williamson, hhuang, jen, jinzhao, juzhang, knoel, lprosek, michen, mrezanin, stefanha, weliao
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: ipxe-20160127-3.git6366fa7a.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-04 00:36:20 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: 1288337    
Attachments:
Description Flags
Can not recognize the network device
none
ctrl-B, can not find any network device none

Description Qian Guo 2015-07-14 09:21:17 UTC
Created attachment 1051708 [details]
Can not recognize the network device

Description of problem:
Try to boot via network when enable virtio-1 of virtio-net-pci, but ipxe can not recognize the network device.

Version-Release number of selected component (if applicable):
ipxe-roms-qemu-20130517-7.gitc4bce43.el7.noarch
kernel-3.10.0-294.el7.x86_64
qemu-kvm-rhev-2.3.0-9.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Try to boot from virtio-net-pci when enable virtio-1
2.
3.

Actual results:
Can not boot from the network device, ipxe can not recognize the network device

Expected results:
Can boot from network devbice

Additional info:
if disable virtio-1, works well

Comment 1 Qian Guo 2015-07-14 09:21:48 UTC
Created attachment 1051709 [details]
ctrl-B, can not find any network device

Comment 5 juzhang 2016-01-14 09:55:26 UTC
Hi Weliao, 

Could you have a try?

Comment 8 Stefan Hajnoczi 2016-02-29 11:01:02 UTC
I investigated requirements for a VIRTIO 1.0 Transitional driver.  Today iPXE only implements the virtio 0.9.5 draft and therefore does not support VIRTIO 1.0 devices.

Unfortunately I do not have time to write patches at the moment, but here are the changes necessary for VIRTIO 1.0 support.

A "Transitional" driver supports both virtio 0.9.5 and VIRTIO 1.0.  The VIRTIO_F_VERSION_1 feature bit is used to select mode.

PCI IDs:
1. VIRTIO 1.0-only virtio-net uses PCI Device ID 0x1041 instead of 0x1000.
2. Keep in mind that Transitional devices support both virtio 0.9.5 and VIRTIO 1.0.  The virtio-net PCI Device ID remains 0x1000 for Transitional devices.

Device Probing:
1. Check PCI Capabilities for PCI_CAP_ID_VNDR.  The most important one is VIRTIO_PCI_CAP_COMMON_CFG (similar to the hardware registers previously accessed via the first I/O BAR).
2. If VIRTIO_PCI_CAP_COMMON_CFG isn't found, fall back to existing virtio 0.9.5 code.

Device Initialization:
1. Add S_FEATURES_OK step to Status register handshake (S_DRIVER_OK, etc).
2. Update for VIRTIO 1.0's more flexible virtqueue layout and program the vring hardware registers as necessary.

Virtqueues:
1. Use little-endian for all accesses.

Comment 9 Ladi Prosek 2016-04-17 15:39:29 UTC
VIRTIO 1.0 support added in upstream commits 2379494, 7b499f8, 8a055a2, 988243c.

Comment 10 Miroslav Rezanina 2016-07-15 05:24:13 UTC
Fix included in ipxe-20160127-3.git6366fa7a.el7

Comment 12 weliao 2016-07-19 05:44:58 UTC
Reproduced this bug with following versions:
ipxe-roms-qemu-20160127-2.git6366fa7a.el7.noarch
qemu-kvm-rhev-2.6.0-13.el7.x86_64
3.10.0-469.el7.x86_64
Steps to Reproduce:
1.Try to boot from virtio-net-pci when enable virtio-1
result:
Can not boot from the network device, ipxe can not recognize the network device

Verify this bug with following versions:
ipxe-roms-qemu-20160127-3.git6366fa7a.el7.noarch
qemu-kvm-rhev-2.6.0-13.el7.x86_64
3.10.0-469.el7.x86_64
the same steps:
result: Can boot from network device.

So this bug was fix well.

Comment 13 jingzhao 2016-07-22 10:01:32 UTC
*** Bug 1358198 has been marked as a duplicate of this bug. ***

Comment 14 weliao 2016-08-23 07:08:50 UTC
According to #comment12,change the status to VERIFIED.

Comment 16 errata-xmlrpc 2016-11-04 00:36:20 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2214.html