
Suggested approach ------------------
Based on an upstream discussion on 'virt-tools'[1] mailing list and some Bugzillas, Gerd Hoffmann, Laszlo Ersek and Dan Berrangé had a suggestion to define a firmware metadata format and file (example in [1]):
- For each firmware file we need a metadata file in a well defined location, e.g. /usr/share/qemu/bios/ that lists stuff like:
- Path to the firmware binary - Path to the pre-built OVMF 'vars' file (if any)
How to load the binary (using -bios, -pflash, possibly also -kernel, for uboot @ arm).
- Support architectures - associated QEMU feature flags (Secure Boot)
Also machine types. ovmf builds with smm don't boot on pc. coreboot has hardware-specific roms too, so the pc build wouldn't boot on q35 and visa versa. Same on arm, where the firmware typically is board-specific.
- If the binary provides / requires SMM (System Management Mode)
Possibly a more generic "flags" or "properties" thing, I can easily imagine that simliar requirements show up on other platforms too. Also a "name" and a "description" field would be useful. cheers, Gerd