From: "Andrei Warkentin" <andrei.warkentin@intel.com>
To: Chao Li <lichao@loongson.cn>,
"devel@edk2.groups.io" <devel@edk2.groups.io>,
"ardb@kernel.org" <ardb@kernel.org>,
Rebecca Cran <rebecca@bsdio.com>
Cc: "quic_llindhol@quicinc.com" <quic_llindhol@quicinc.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH] Emulator/X86EmulatorDxe: Replace with MultiArchUefiPkg build
Date: Fri, 6 Sep 2024 05:41:39 +0000 [thread overview]
Message-ID: <PH8PR11MB685602C843BB479022DA0CF0839E2@PH8PR11MB6856.namprd11.prod.outlook.com> (raw)
In-Reply-To: <e4df1436-a0af-4c4f-b88a-595e17bd37b2@loongson.cn>
[-- Attachment #1: Type: text/plain, Size: 3989 bytes --]
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 <lichao@loongson.cn>
Sent: Sunday, September 1, 2024 9:49 PM
To: devel@edk2.groups.io; ardb@kernel.org; Rebecca Cran <rebecca@bsdio.com>; Warkentin, Andrei <andrei.warkentin@intel.com>
Cc: quic_llindhol@quicinc.com; Kinney, Michael D <michael.d.kinney@intel.com>
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 <rebecca@bsdio.com><mailto:rebecca@bsdio.com> 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 <rebecca@bsdio.com><mailto:rebecca@bsdio.com>
---
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]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 9165 bytes --]
next prev parent reply other threads:[~2024-09-06 5:41 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-31 22:32 [edk2-devel] [PATCH] Emulator/X86EmulatorDxe: Replace with MultiArchUefiPkg build Rebecca Cran
2024-09-01 8:05 ` Ard Biesheuvel via groups.io
2024-09-02 2:49 ` Chao Li
2024-09-06 5:41 ` Andrei Warkentin [this message]
2024-09-06 8:44 ` Chao Li
2024-09-06 5:32 ` Andrei Warkentin
2024-09-06 14:22 ` Rebecca Cran via groups.io
2024-09-06 15:25 ` Ard Biesheuvel via groups.io
2024-09-06 15:39 ` Rebecca Cran via groups.io
2024-10-22 8:48 ` Chao Li
2024-10-22 10:29 ` Rebecca Cran via groups.io
2024-10-22 23:44 ` Pedro Falcato
2024-10-23 2:08 ` Chao Li
2024-10-23 2:20 ` Rebecca Cran
2024-10-23 11:10 ` Pedro Falcato
2024-09-02 16:45 ` Michael D Kinney
2024-09-02 21:21 ` Rebecca Cran
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=PH8PR11MB685602C843BB479022DA0CF0839E2@PH8PR11MB6856.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox