[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs |
Date: |
Thu, 17 Jan 2019 09:58:12 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 01/17/19 09:53, Laszlo Ersek wrote:
> Hello Michael,
>
> On 01/16/19 17:01, Michael S. Tsirkin wrote:
>> On Wed, Jan 16, 2019 at 01:29:53PM +0100, Igor Mammedov wrote:
>>> On Tue, 15 Jan 2019 21:47:49 +0100
>>> Laszlo Ersek <address@hidden> wrote:
>>>
>>>> On 01/15/19 16:41, Igor Mammedov wrote:
>>>>> Add firmware blobs built with PcdAcpiTestSupport=TRUE,
>>>>> that puts RSDP address in RAM after 1Mb aligned GUID
>>>>> AB87A6B1-2034-BDA0-71BD-375007757785
>>>>> so that tests could scan and find it in RAM once firmware's
>>>>> initialized ACPI tables.
>>>>>
>>>>> Signed-off-by: Igor Mammedov <address@hidden>
>>>>> ---
>>>>> Makefile | 3 ++-
>>>>> pc-bios/avmf.img | Bin 0 -> 2097152 bytes
>>>>> pc-bios/avmf_vars.img | Bin 0 -> 786432 bytes
>>>>> 3 files changed, 2 insertions(+), 1 deletion(-)
>>>>> create mode 100644 pc-bios/avmf.img
>>>>> create mode 100644 pc-bios/avmf_vars.img
>>>>
>>>> "AVMF" is not a great name. "AAVMF" is a downstream name alright, but
>>>> many dislike it in upstream use. "edk2-aarch64" or "edk2-ArmVirtQemu"
>>>> would be more precise, but those are verbose. Sigh, why are names so
>>>> hard. What does everyone think?
>>> I'm fine with either version.
>>>
>>>> Also, do you have to care about the license of firmware images built
>>>> from edk2 when bundling such images? Since edk2 commit 9a67ba261fe9
>>>> ("ArmVirtPkg: Replace obsoleted network drivers from platform DSC/FDF.",
>>>> 2018-12-14), you cannot build the ArmVirtQemu (aka AAVMF) firmware
>>>> without OpenSSL. Thus, the resultant license is 2-BSDL + OpenSSL -- for
>>>> now anyway.
>>>>
>>>> Because, in the near future, that might change again. edk2 is in the
>>>> process of moving to Apache-2.0, and OpenSSL will also move (AFAICT) to
>>>> Apache-2.0 starting with release 3.0.0. (See commit 151333164ece,
>>>> "Change license to the Apache License v2.0", 2018-12-06.)
>>> That's another reason to look into EFI app approach (a simple one without
>>> dependencies) ans let distro to provide firmware image.
>>
>> That will mean supporting very old firmware with the app.
>> I'm all for the EFI app approach for modularity
>> but I think we should include the batteries with this toy.
>
> There are two approaches here. (Both require that edk2 be present in the
> QEMU source tree as a submodule, and both require QEMU to receive a
> script for building edk2 in *some* way.)
>
>
> (1) Carry the bios-tables-test helper UEFI app as an "out of tree"
> module, from the perspective of edk2; carry it natively in the QEMU tree.
>
> * Edk2 supports this use case as a first class citizen.
>
> * In this case, the UEFI application is permitted to link only such
> libraries from edk2 that the resultant binary inherit no platform
> dependencies. The app can only be made dependent on a minimum UEFI spec
> release, if necessary. The resultant binary can be run on any conformant
> UEFI implementation, including physical hardware.
>
> An example for "platform dependency prohibition" is that the X64 build
> of the app could not print debug messages to the QEMU debug port (like
> the rest of OVMF does), only to the UEFI console. On OVMF, that console
> would direct the debug messages to the serial port and the graphics card.
>
> Regarding a minimum UEFI spec release, the oldest UEFI spec I have on my
> disk is "2.3.1, Errata C", dated "June 27, 2012". I'm not aware of
> anything in the helper app that requires more recent spec features.
>
> * Should we have to extend the UEFI app with a feature, we could easily
> do that in sync with the consumer QEMU test code.
>
> * The build output to commit to the QEMU repo would be an ISO image
> containing the UEFI binary as a "boot loader". It would not contain
> OpenSSL bits. The derived license would be a combination of core edk2's
> license and our out-of-edk2-module's license.
>
>
> (2) Carry the bios-tables-test helper *functionality* (not necessarily a
> standalone UEFI application) in edk2; add a custom build flag to the
> OVMF and ArmVirtQemu firmware platforms to enable the helper functionality.
>
> * In this case, the test helper logic is permitted to rely on platform
> internals. For example, on X64, it could print debug messages to the
> QEMU debug port, like the rest of OVMF does.
>
> * Whenever a new feature became necessary, edk2 would get new patches,
> then QEMU would bump the submodule commit reference accordingly.
>
> * The build output to commit to the QEMU repo would be a custom firmware
> image (built with the special build flag mentioned above), and no other
> bootable media would be formatted / saved. The custom firmware image
> would contain OpenSSL bits. The image's license would be derived from
> edk2 and from the OpenSSL submodule used by edk2.
>
> * Also, the custom firmware image would not be suitable for "production"
> use, so it couldn't be at once bundled under pc-bios as well -- that
> would remain a separate RFE.
>
>
> Since last night, I have some rough patches for (1), including the
> QEMU-side Makefile + build script.
>
> Regarding (2), I also have the edk2-native code ready (I had posted it a
> few weeks back -- that's what Igor used now). For the QEMU side of
> approach (2), I reckon I could reuse most of the build script I already
> have for (1).
>
> Could we please decide for (1) vs (2), before I put more work into (1)?
Sorry, borked English, I meant "decide between (1) and (2)". I didn't
intend to express a preference (I don't have one).
Thanks,
Laszlo
- Re: [Qemu-devel] [PATCH 10/14] tests: acpi: ignore SMBIOS tests when UEFI firmware is used, (continued)
- [Qemu-devel] [PATCH 12/14] tests: acpi: prepare AVMF firmware blobs to be used by bios-tables-test, Igor Mammedov, 2019/01/15
- [Qemu-devel] [PATCH 13/14] tests: acpi: add simple arm/virt testcase, Igor Mammedov, 2019/01/15
- [Qemu-devel] [PATCH 14/14] tests: acpi: refactor rebuild-expected-aml.sh to dump ACPI tables for a specified list of targets, Igor Mammedov, 2019/01/15
- Message not available
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Laszlo Ersek, 2019/01/15
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Igor Mammedov, 2019/01/16
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Michael S. Tsirkin, 2019/01/16
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Laszlo Ersek, 2019/01/17
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs,
Laszlo Ersek <=
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Gerd Hoffmann, 2019/01/17
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Laszlo Ersek, 2019/01/17
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Gerd Hoffmann, 2019/01/17
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Laszlo Ersek, 2019/01/18
- Re: [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs, Igor Mammedov, 2019/01/17