\r
=== STATUS ===\r
\r
-Current status: Alpha\r
-\r
Current capabilities:\r
* IA32 and X64 architectures\r
* QEMU (0.10.0 or later)\r
- Optional NIC support. Requires QEMU (0.12.2 or later)\r
* UEFI Linux boots\r
* UEFI Windows 8 boots\r
+* UEFI Windows 7 & Windows 2008 Server boot (see important notes below!)\r
\r
=== FUTURE PLANS ===\r
\r
-* Stabilize UEFI Linux boot\r
* Test/Stabilize UEFI Self-Certification Tests (SCT) results\r
\r
=== BUILDING OVMF ===\r
* A properly configured ASL compiler:\r
- Intel ASL compiler: Available from http://www.acpica.org\r
- Microsoft ASL compiler: Available from http://www.acpi.info\r
+* NASM: http://www.nasm.us/\r
\r
Update Conf/target.txt ACTIVE_PLATFORM for OVMF:\r
PEI arch DXE arch UEFI interfaces\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
+* QEMU 0.12.2 or later is required.\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 the bios.bin\r
- file is located.\r
+* Use OVMF for QEMU firmware (3 options available)\r
+ - Option 1: QEMU 1.6 or newer; Use QEMU -pflash parameter\r
+ * QEMU/OVMF will use emulated flash, and fully support UEFI variables\r
+ * Run qemu with: -pflash path/to/OVMF.fd\r
+ - Option 2: Use QEMU -bios parameter\r
+ * Note that UEFI variables will be partially emulated, and non-volatile\r
+ variables may lose their contents after a reboot\r
+ * Run qemu with: -bios path/to/OVMF.fd\r
+ - Option 3: Use QEMU -L parameter\r
+ * Note that UEFI variables will be partially emulated, and non-volatile\r
+ variables may lose their contents after a reboot\r
+ * Either copy, rename or symlink OVMF.fd => bios.bin\r
+ * Use the QEMU -L parameter to specify the directory where the bios.bin\r
+ file is located.\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
VirtioNetDxe | x\r
Intel PROEFI | x\r
\r
+=== OVMF Flash Layout ===\r
+\r
+Like all current IA32/X64 system designs, OVMF's firmware\r
+device (rom/flash) appears in QEMU's physical address space\r
+just below 4GB (0x100000000).\r
+\r
+The layout of the firmware device in memory looks like:\r
+\r
++--------------------------------------- 4GB (0x100000000)\r
+| VTF0 (16-bit reset code) and OVMF SEC\r
+| (SECFV)\r
++--------------------------------------- varies based on flash size\r
+|\r
+| Compressed main firmware image\r
+| (FVMAIN_COMPACT)\r
+|\r
++--------------------------------------- base + 0x20000\r
+| Fault-tolerant write (FTW)\r
+| Spare blocks (64KB/0x10000)\r
++--------------------------------------- base + 0x10000\r
+| FTW Work block (4KB/0x1000)\r
++--------------------------------------- base + 0x0f000\r
+| Event log area (4KB/0x1000)\r
++--------------------------------------- base + 0x0e000\r
+| Non-volatile variable storage\r
+| area (56KB/0xe000)\r
++--------------------------------------- base address\r
+\r
+OVMF supports building a 1MB or a 2MB flash image. The base address for\r
+a 1MB image in QEMU physical memory is 0xfff00000. The base address for\r
+a 2MB image is 0xffe00000.\r
+\r
+The code in SECFV locates FVMAIN_COMPACT, and decompresses the\r
+main firmware (MAINFV) into RAM memory at address 0x800000. The\r
+remaining OVMF firmware then uses this decompressed firmware\r
+volume image.\r
+\r
=== UNIXGCC Debug ===\r
\r
If you build with the UNIXGCC toolchain, then debugging will be disabled\r
GCC:*_*_*_CC_FLAGS = -UMDEPKG_NDEBUG\r
}\r
\r
+=== UEFI Windows 7 & Windows 2008 Server ===\r
+\r
+* One of the '-vga std' and '-vga qxl' QEMU options should be used.\r
+* Only one video mode, 1024x768x32, is supported at OS runtime.\r
+* The '-vga qxl' QEMU option is recommended. After booting the installed\r
+ guest OS, select the video card in Device Manager, and upgrade its driver\r
+ to the QXL XDDM one. Download location:\r
+ <http://www.spice-space.org/download.html>, Guest | Windows binaries.\r
+ This enables further resolutions at OS runtime, and provides S3\r
+ (suspend/resume) capability.\r