Skip to content

Commit

Permalink
OvmfPkg: update -D E1000_ENABLE from Intel PROEFI v.07 to BootUtil v.22
Browse files Browse the repository at this point in the history
Jiaxin reports that the OvmfPkg/README instructions for downloading the
Intel PROEFI drivers, and the filenames in OvmfPkg/OvmfPkg*.fdf for
incorporating the same in the OVMF binaries, are no longer up to date; the
download link has stopped working.

Additionally, the IA32 driver binary is no more distributed by Intel.

Update OvmfPkg/README with new download instructions, and adapt the OVMF
FDF files.

With this driver in use for QEMU's e1000 NIC, the DH shell command prints,
as Controller Name, "Intel(R) PRO/1000 MT Network Connection". I
successfully tested DHCP and ping from the UEFI shell.

Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Reported-by: Jiaxin Wu <jiaxin.wu@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=613
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
  • Loading branch information
lersek committed Jul 5, 2017
1 parent 504f149 commit 253d81c
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 18 deletions.
5 changes: 0 additions & 5 deletions OvmfPkg/OvmfPkgIa32.fdf
Expand Up @@ -294,11 +294,6 @@ INF MdeModulePkg/Logo/LogoDxe.inf
#
# Network modules
#
!if $(E1000_ENABLE)
FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
SECTION PE32 = Intel3.5/EFI32/E3507E2.EFI
}
!endif
INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
Expand Down
2 changes: 1 addition & 1 deletion OvmfPkg/OvmfPkgIa32X64.fdf
Expand Up @@ -296,7 +296,7 @@ INF MdeModulePkg/Logo/LogoDxe.inf
#
!if $(E1000_ENABLE)
FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI
SECTION PE32 = Intel3.5/EFIX64/E3522X2.EFI
}
!endif
INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
Expand Down
2 changes: 1 addition & 1 deletion OvmfPkg/OvmfPkgX64.fdf
Expand Up @@ -296,7 +296,7 @@ INF MdeModulePkg/Logo/LogoDxe.inf
#
!if $(E1000_ENABLE)
FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI
SECTION PE32 = Intel3.5/EFIX64/E3522X2.EFI
}
!endif
INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
Expand Down
33 changes: 22 additions & 11 deletions OvmfPkg/README
Expand Up @@ -224,24 +224,35 @@ longer.)
basic virtio-net driver, located in OvmfPkg/VirtioNetDxe.

* Also independently of the iPXE NIC drivers, Intel's proprietary E1000 NIC
driver (PROEFI) can be embedded in the OVMF image at build time:

- Download UEFI drivers for the e1000 NIC
- http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17515&lang=eng
- Install the drivers into a directory called Intel3.5 in your WORKSPACE.
driver (from the BootUtil distribution) can be embedded in the OVMF image at
build time:

- Download BootUtil:
- Navigate to
https://downloadcenter.intel.com/download/19186/Ethernet-Intel-Ethernet-Connections-Boot-Utility-Preboot-Images-and-EFI-Drivers
- Click the download link for "PREBOOT.EXE".
- Accept the Intel Software License Agreement that appears.
- Unzip "PREBOOT.EXE" into a separate directory (this works with the
"unzip" utility on platforms different from Windows as well).
- Copy the "APPS/EFI/EFIx64/E3522X2.EFI" driver binary to
"Intel3.5/EFIX64/E3522X2.EFI" in your WORKSPACE.
- Intel have stopped distributing an IA32 driver binary (which used to
match the filename pattern "E35??E2.EFI"), thus this method will only
work for the IA32X64 and X64 builds of OVMF.

- Include the driver in OVMF during the build:
- Add "-D E1000_ENABLE" to your build command,
- Add "-D E1000_ENABLE" to your build command (only when building
"OvmfPkg/OvmfPkgIa32X64.dsc" or "OvmfPkg/OvmfPkgX64.dsc").
- For example: "build -D E1000_ENABLE".

* When a matching iPXE driver is configured for a NIC as described above, it
takes priority over other drivers that could possibly drive the card too:

| e1000 ne2k_pci pcnet rtl8139 virtio-net-pci
-------------+------------------------------------------------
iPXE | x x x x x
VirtioNetDxe | x
Intel PROEFI | x
| e1000 ne2k_pci pcnet rtl8139 virtio-net-pci
---------------------+------------------------------------------------
iPXE | x x x x x
VirtioNetDxe | x
Intel BootUtil (X64) | x

=== OVMF Flash Layout ===

Expand Down

2 comments on commit 253d81c

@992548897
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, I'd learned that currently only 1024*768 resolution is supported for win7, however, i'd like to know why and is there any plan for further support for other resolutions on win7 system.

@lersek
Copy link
Member Author

@lersek lersek commented on 253d81c Feb 28, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi,

(1) I don't understand how your question relates to this edk2 commit. In the future, please ask such questions on the edk2-devel mailing list: https://lists.01.org/mailman/listinfo/edk2-devel

(2) Under UEFI Windows 7, you can use more resolutions, but for that, you have to select the QXL video card model in QEMU, and install the native QXL video driver in the Windows guest. Please refer to the OvmfPkg/README file -- at the end, there is a section titled "UEFI Windows 7 & Windows 2008 Server".

(3) You can read about the Int10h VBE shim in commit 9080334. No other video resolutions are planned for the VBE shim.

Please sign in to comment.