public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: "Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	"agraf@suse.de" <agraf@suse.de>,
	 "Zimmer, Vincent" <vincent.zimmer@intel.com>,
	"Richardson, Brian" <brian.richardson@intel.com>,
	 Andrew Fish <afish@apple.com>, Laszlo Ersek <lersek@redhat.com>,
	 Leif Lindholm <leif.lindholm@linaro.org>,
	"Zeng, Star" <star.zeng@intel.com>,
	 "Dong, Eric" <eric.dong@intel.com>,
	"Ni, Ruiyu" <ruiyu.ni@intel.com>
Subject: Re: [PATCH 0/4] MdeModulePkg: add support for dispatching foreign arch PE/COFF images
Date: Thu, 13 Sep 2018 12:36:31 +0200	[thread overview]
Message-ID: <CAKv+Gu_jaQOHghd1p+HnqHABtu9L-_AhVCDdtvJU+yJJZbRyCg@mail.gmail.com> (raw)
In-Reply-To: <E92EE9817A31E24EB0585FDF735412F5B8AD6853@ORSMSX113.amr.corp.intel.com>

On 12 September 2018 at 17:10, Kinney, Michael D
<michael.d.kinney@intel.com> wrote:
> Ard,
>
> I think there may be a lot of assumptions in this
> proposal that are not documented.
>
> I do not see any description of how an image is
> started or how calls between native code and emulated
> code are handled.
>

It is the job of the implementation of the emulator to use the
information provided to it at registration time to ensure that calls
to its entry point are handled. One way could be to remap the code
region non-exec (which is what X86EmulatorPkg does) and hook the
exceptions that result when calling into the non-native code. Another
approach could be to do binary translation at load time, hook the
PE/COFF entry point in the header to point to a load stub etc etc.

These are all implementation details of the emulator, and so I am not
sure what exactly we need to document at the protocol level. Does the
above paragraph capture more or less what you mean?

> Also, are multiple emulated CPUs supported?  It looks
> like there can only be one instance of this new protocol.
>

Yes. I am not sure what the added value is of having multiple
emulators. Do you have anything in mind?

In any case, the singleton protocol could be implemented by a wrapper
driver that encapsulates this multiple dispatch functionality. I don't
think it makes sense to duplicate logic for that purpose in the
various places that I touch in this series, and so it shouldn't affect
the protocol prototypes.

> Can you please provide more detailed comments for the
> functions in the new protocol and document the assumptions
> and known limitation in the header?
>

Of course. But note that they are fairly simple prototypes that don't
impose any limitations by themselves, other than that you should call
RegisterImage() before attempting to invoke its entry point.

> From one perspective, EBC is an emulated instruction set.
> Would it make sense to have EBC be one of the emulated
> CPU types that can be plugged in?
>

We could definitely abstract away the EBC handling in the DXE core to
be routed via this protocol, but that would make the changes more
intrusive. I could look into making those changes on top if there is
interest.


  reply	other threads:[~2018-09-13 10:36 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-12 13:21 [PATCH 0/4] MdeModulePkg: add support for dispatching foreign arch PE/COFF images Ard Biesheuvel
2018-09-12 13:21 ` [PATCH 1/4] MdeModulePkg: introduce PE/COFF image emulator protocol Ard Biesheuvel
2018-09-13 10:05   ` Zeng, Star
2018-09-13 10:36     ` Ard Biesheuvel
2018-09-12 13:21 ` [PATCH 2/4] MdeModulePkg/DxeCore: invoke the emulator protocol for foreign images Ard Biesheuvel
2018-09-13 10:23   ` Zeng, Star
2018-09-13 10:37     ` Ard Biesheuvel
2018-09-12 13:21 ` [PATCH 3/4] MdeModulePkg/PciBusDxe: invoke PE/COFF emulator for foreign option ROMs Ard Biesheuvel
2018-09-13 10:24   ` Zeng, Star
2018-09-13 10:46     ` Ard Biesheuvel
2018-09-12 13:21 ` [PATCH 4/4] MdeModulePkg/UefiBootManagerLib: allow foreign Driver#### images Ard Biesheuvel
2018-09-12 14:55 ` [PATCH 0/4] MdeModulePkg: add support for dispatching foreign arch PE/COFF images Gao, Liming
2018-09-12 14:56   ` Ard Biesheuvel
2018-09-12 15:07     ` Carsey, Jaben
2018-09-12 15:11       ` Ard Biesheuvel
2018-09-12 15:10 ` Kinney, Michael D
2018-09-13 10:36   ` Ard Biesheuvel [this message]
2018-09-13 17:20     ` Kinney, Michael D
2018-09-15 13:28       ` Ard Biesheuvel
2018-09-17  4:03         ` Kinney, Michael D
2018-09-19 19:35         ` Andrew Fish
2018-09-19 20:43           ` Ard Biesheuvel
2018-09-21 18:51             ` Andrew Fish
2018-09-12 15:48 ` Carsey, Jaben
2018-09-12 18:50   ` Zimmer, Vincent
2018-09-13  0:47 ` Shi, Steven
2018-09-13  5:18   ` Ard Biesheuvel

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=CAKv+Gu_jaQOHghd1p+HnqHABtu9L-_AhVCDdtvJU+yJJZbRyCg@mail.gmail.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