I think it is worth discussing this because the EMU can solve lot's of problems about the OPROM on AARCH64, RISC-V and even LoongArch.
There are two kinds of questions:
A. MultiArchUefiPkg depend on unicorn. The license of MultiArchUefiPkg is LGPL2.1, while the license of unicron is GPL2.0 Is MultiArchCpuPkg has been infected with GPL2.0? I think it is infected, this is why the EmulatorDxe.efi uses GPL2.0 which locted in non-osi repo.
B. Between the FW main body and EmulatorDxe.efi,
they are independent, and if EmulatorDxe.efi is added to the FW
main body, GenFw needs to be used. Does this operation violate
the iterms of GPL2.0 or LGPL2.1? After adding, if we release the
new FW binary file, does it viloate the iterms of GPL2.0 or
LGPL2.1?
On Tue, Oct 22, 2024 at 11:29 AM Rebecca Cran via groups.io <rebecca=os.amperecomputing.com@groups.io> wrote:On 10/22/2024 2:48 AM, Chao Li wrote:I see the final licence in non-osi is GPL2.0, so it that allowed for some people build the EmulatorDxe.efi into their FW and release it?I believe it is allowed because tools like Fiano allow you to remove drivers such as EmulatorDxe from the firmware image.I don't understand what you mean? nor do I understand the question. Mandatory IANAL. You can build whatever GPL-violating contraption as long as you don't distribute it. If you do, you need to comply with the terms of the license. FWIW, GNU seems to think merely including this module would be a GPL violation (https://www.gnu.org/licenses/gpl-faq.html#MereAggregation, see the mention of running together in a shared address space), and thus all your firmware would potentially need to be distributed under the GPL's terms. Ard's old version seems to only be LGPL and thus you'd only need to comply with the LGPL's terms for that specific module (there's no "virality").