Hi Chao, Yikes. Let me poke at this on my end as well and see if I can do something less hacky. Meanwhile, you’re welcome to propose pull requests for LoongArch support to either the MUA or the Unicorn-for-efi repo (I was thinking of backporting TCI TCG backend to unicorn as a fallback for unsupported arches). A From: Chao Li Sent: Sunday, September 1, 2024 9:49 PM To: devel@edk2.groups.io; ardb@kernel.org; Rebecca Cran ; Warkentin, Andrei Cc: quic_llindhol@quicinc.com; Kinney, Michael D Subject: Re: [edk2-devel] [PATCH] Emulator/X86EmulatorDxe: Replace with MultiArchUefiPkg build Hi Ard and Rebecca, Actually, I am working on this project to support LoongArch, and some work has not been completed yet. But I found that Basetools has a bug. If the command line parameter is greater than 4096, it will be saved using cc_resp.txt. However, https://github.com/intel/unicorn-for-efi/blob/main/efi/UnicornX86Lib.inf contains a C language escape character "DCONFIG_TARGET_HEADER=\"config-target-$(UNICORN_EMU_ARCH).h\"". If it is stored in cc_resp.txt, the format will become: "DCONFIG_TARGET_HEADER=/"config-target-$(UNICORN_EMU_ARCH).h/"", which will cause the compiler to fail to replace the correct header file name during the preprocessing stage and prompt "File not found". I am trying to find a solution in Basetools, but there is no result now. Thanks, Chao On 2024/9/1 16:05, Ard Biesheuvel via groups.io wrote: Hi Rebecca, On Sun, 1 Sept 2024 at 00:33, Rebecca Cran wrote: Replace the old X86EmulatorDxe with one built from https://github.com/intel/MultiArchUefiPkg. This is a much more modern, recent implementation that's more reliable and is actively maintained. Add driver binaries for both AArch64 and RISCV64, along with the LoadOpRom application. Signed-off-by: Rebecca Cran --- Emulator/X86EmulatorDxe/AArch64/EmulatorDxe.depex | Bin 0 -> 54 bytes Emulator/X86EmulatorDxe/AArch64/EmulatorDxe.efi | Bin 0 -> 573440 bytes Emulator/X86EmulatorDxe/AArch64/LoadOpRom.efi | Bin 0 -> 28672 bytes Emulator/X86EmulatorDxe/README.md | 11 +++++++---- Emulator/X86EmulatorDxe/RISCV64/EmulatorDxe.depex | Bin 0 -> 54 bytes Emulator/X86EmulatorDxe/RISCV64/EmulatorDxe.efi | Bin 0 -> 561216 bytes Emulator/X86EmulatorDxe/RISCV64/LoadOpRom.efi | Bin 0 -> 30848 bytes Emulator/X86EmulatorDxe/X86EmulatorDxe.depex | Bin 36 -> 0 bytes Emulator/X86EmulatorDxe/X86EmulatorDxe.efi | Bin 913408 -> 0 bytes Emulator/X86EmulatorDxe/X86EmulatorDxe.inf | 10 +++++++--- 10 files changed, 14 insertions(+), 7 deletions(-) Happy to see that this work has been absorbed into a project that will improve and maintain it going forward. However, according to the github.com repo Readme of MultiArchUefiCpuPkg, these binaries include statically linked UniCorn builds, which are a mix of LPGL and GPLv2, so you will need to update the LICENSE file accordingly. Also, glancing over the code, it seems like it removes the NULL pointer dereference handling that the original X86EmulatorPkg has - this code was added for a purpose, as some Nvidia option ROMs will happily dereference NULL pointers, which happens to work on most older X64 firmware because page 0x0 happens to be mapped. Perhaps Andrei can comment on this point? -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#120519): https://edk2.groups.io/g/devel/message/120519 Mute This Topic: https://groups.io/mt/108202804/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-