to support firmware for Virtual Machines using the edk2\r
code base. More information can be found at:\r
\r
- https://edk2.tianocore.org/OVMF.html\r
+http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF\r
\r
=== STATUS ===\r
\r
* QEMU (0.9.1 or later)\r
- Video, keyboard, IDE, CD-ROM, serial\r
- Runs UEFI shell\r
+ - Optional NIC support. Requires QEMU (0.12.2 or later)\r
* UEFI Linux has booted (but is not stable)\r
\r
=== FUTURE PLANS ===\r
or\r
* Microsoft ASL compiler: Available from http://www.acpi.info\r
\r
+Optional Pre-requisites:\r
+* UEFI drivers for the e1000 NIC supported by QEMU\r
+ * http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17515&lang=eng\r
+ * Install the drivers into a directory called Intel3.5 in your WORKSPACE\r
+ \r
Update Conf/target.txt ACTIVE_PLATFORM for OVMF:\r
PEI arch DXE arch UEFI interfaces\r
* OvmfPkg/OvmfPkgIa32.dsc IA32 IA32 IA32\r
* OvmfPkg/OvmfPkgIa32X64.dsc IA32 X64 X64\r
* OvmfPkg/OvmfPkgX64.dsc X64 X64 X64\r
\r
-Following the edk2 build process, you will find OVMF.fd at:\r
-$WORKSPACE/Build/*/*/FV/OVMF.fd\r
+Update Conf/target.txt TARGET_ARCH based on the .dsc file:\r
+ TARGET_ARCH\r
+* OvmfPkg/OvmfPkgIa32.dsc IA32\r
+* OvmfPkg/OvmfPkgIa32X64.dsc IA32 X64\r
+* OvmfPkg/OvmfPkgX64.dsc X64\r
+\r
+Following the edk2 build process, you will find the OVMF binaries\r
+under the $WORKSPACE/Build/*/*/FV directory. The actual path will\r
+depend on how your build is configured. You can expect to find\r
+these binary outputs:\r
+* OVMF.FD\r
+ * Please note! This filename has changed. Older releases used OVMF.Fv.\r
+* CirrusLogic5446.rom\r
+\r
+To enable network support add -D NETWORK_ENABLE to the build.exe command\r
+* build -D NETWORK_ENABLE\r
+\r
+More information on building OVMF can be found at:\r
+\r
+http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=How_to_build_OVMF\r
\r
=== RUNNING OVMF on QEMU ===\r
\r
* QEMU 0.9.1 or later is required.\r
-* Either copy, rename or symlink OVMF.fd => bios.bin\r
+* Either copy, rename or symlink OVMF.FD => bios.bin\r
+* Either copy, rename or symlink CirrusLogic5446.rom => vgabios-cirrus.bin\r
* Be sure to use qemu-system-x86_64, if you are using and X64 firmware.\r
(qemu-system-x86_64 works for the IA32 firmware as well, of course.)\r
-* Use the QEMU -L parameter to specify the directory where bios.bin\r
- is located.\r
-* If QEMU returns an error about not finding a video bios, you can\r
- try creating an empty copy of the video bios file, or copy the\r
- video bios from QEMU's BIOS directory.\r
+* Use the QEMU -L parameter to specify the directory where the bios.bin\r
+ and vgabios-cirrus.bin files are located.\r
* Optionally you can use the QEMU -serial command to capture the\r
OVMF debug messages. For example: -serial file:serial.log\r
* The EFI shell is built into OVMF builds at this time, so it should\r
run automatically if a UEFI boot application is not found on the\r
removable media.\r
-\r
+* On Linux, newer version of QEMU may enable KVM feature, and this might cause OVMF\r
+ to fail to boot. The QEMU '-no-kvm' may allow OVMF to boot.\r
+* Use the QEMU -net parameter to enable NIC support.\r
+ * QEMU does not support UEFI DHCP or UEFI PXE Boot, so lomg timeouts will occur\r
+ when NICs are enabled. The long timeouts can be avoided by interrupts the \r
+ boot sequence by pressing a key when the logo appears. \r
+ * Enable e1000 NIC with a DHCP server and restrict packet forwarding\r
+ -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r
+ * Enable e1000 NIC with a DHCP server, restrict packet forwarding, and generate PCAP file\r
+ -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10 -net dump,file=a.pcap\r
+ * Enable 2 e1000 NICs with a DHCP server and restrict packet forwarding\r
+ -net nic,model=e1000,addr=3 -net nic,model=e1000,addr=4 -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r