[edk2-devel] OVMF: NV Variable Store Layout of Larger Build Targets

Ard Biesheuvel ardb at kernel.org
Fri Aug 27 14:46:33 UTC 2021


(+ Gerd)

On Sat, 21 Aug 2021 at 03:10, Devon Bautista
<dbautista at newmexicoconsortium.org> wrote:
>
> Hello All,
>
> I am currently working with the Linuxboot developers to improve testing kernel + initramfs pairs in firmware using OVMF.
>
> The current maximum image size of an OVMF image is 4MB, which is insufficient for storing even a minimal and compressed kernel and initramfs. To get around this, we've been maintaining our own fork of EDK2 that adds 8MiB and 16MiB OVMF build targets that have enough room in the DXE volume to store a reasonably-sized kernel and initramfs. However, it would be convenient if upstream EDK2 supported these larger OVMF targets.
>
> In discussing this with the previous OVMF maintainer Laszlo Ersek here, it was brought up that:
>
> The trend of the ever-growing DXE-phase warrants a larger firmware volume size
> 8MiB and 16MiB image sizes seem to be justified because of this QEMU commit
>
> However, as Laszlo mentioned, introducing a larger volume size is compatibility breaking, and so seizing the opportunity to come up with a larger non-volatile variable store layout is necessary.
>
> That said, I would like to use this thread to discuss among hardware vendors an optimal variable store layout for these larger image sizes.
>
> Best,
> Devon


> For reference, here is a summary of which sections increased when the 4MiB build target was added (taken from commit b24fca05) after the previous 2MiB limit:
>
>   Description                Compression type                Size [KB]
>   -------------------------  -----------------  ----------------------
>   Non-volatile data storage  open-coded binary    128 ->   528 ( +400)
>                                data
>     Variable store                                 56 ->   256 ( +200)
>     Event log                                       4 ->     4 (   +0)
>     Working block                                   4 ->     4 (   +0)
>     Spare area                                     64 ->   264 ( +200)
>
>   FVMAIN_COMPACT             uncompressed        1712 ->  3360 (+1648)
>     FV FFS file              LZMA compressed
>       PEIFV                  uncompressed         896 ->   896 (   +0)
>         individual PEI       uncompressed
>           modules
>       DXEFV                  uncompressed       10240 -> 10240 (   +0)
>         individual DXE       uncompressed
>           modules
>
>   SECFV                      uncompressed         208 ->   208 (   +0)
>     SEC driver
>     reset vector code
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#79908): https://edk2.groups.io/g/devel/message/79908
Mute This Topic: https://groups.io/mt/85034796/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list