]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/README: Add information about OVMF flash layout
authorJordan Justen <jordan.l.justen@intel.com>
Tue, 12 Nov 2013 18:34:28 +0000 (18:34 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 12 Nov 2013 18:34:28 +0000 (18:34 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14836 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/README

index 213d8648d6bd9f4e6ade68cb832c7563662c0121..f2c2fc799664e60af64a89f09b70596c57caa8ca 100644 (file)
@@ -179,6 +179,43 @@ longer.)
     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