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: "Ni, Ruiyu" <ruiyu.ni@intel.com>,
	"Zimmer, Vincent" <vincent.zimmer@intel.com>,
	"Dong, Eric" <eric.dong@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	 "agraf@suse.de" <agraf@suse.de>, Andrew Fish <afish@apple.com>,
	 "Richardson, Brian" <brian.richardson@intel.com>,
	Laszlo Ersek <lersek@redhat.com>,
	"Zeng, Star" <star.zeng@intel.com>
Subject: Re: [PATCH 0/4] MdeModulePkg: add support for dispatching foreign arch PE/COFF images
Date: Sat, 15 Sep 2018 15:28:09 +0200	[thread overview]
Message-ID: <CAKv+Gu-sKgHZQimcZ=rQd1t_Z_Z5=FAmP2Pnr+MYFK61UWvN4A@mail.gmail.com> (raw)
In-Reply-To: <E92EE9817A31E24EB0585FDF735412F5B8AD74A2@ORSMSX113.amr.corp.intel.com>

On 13 September 2018 at 19:20, Kinney, Michael D
<michael.d.kinney@intel.com> wrote:
> Ard,
>
> I think there is a fundamental assumption that
> the sizeof(UINTN) and size of pointers of
> the native CPU are the same as the emulated CPU.
> If that is not the case, then I would like to see
> more details.  Otherwise that is a significant
> restriction that needs to be clearly documented.
>

There is no such assumption. The PE/COFF emulator protocol is an
abstract protocol that leaves it fully up to the implementation to
decide whether it can support images of machine type X and image type
Y.

> Protocols that only allow a single instance need to
> clearly document that assumption.
>

I will remove that restriction.

> If we decide to treat EBC as an emulated CPU, then
> we would want to support multiple instances of the
> protocol.  The updates to the DXE Core are a bit
> confusing because it has separate handling of EBC
> and emulated CPUs.  I think it would make the DXE
> Core logic simpler and easier to understand if they
> were combined.
>

Yes, excellent idea, and it results in a nice cleanup as well

> I asked about the startup case because if we do EBC,
> then we may need more services in the protocol because
> of the thunk code between native and EBC code.  At the
> time EBC was originally implemented, we did not have
> paging enabled and the EBC interpreter work without
> depending on a page fault handler.
>
> The way the protocol is currently defined, I believe it
> fundamentally assumes paging is enabled.  If paging is
> not enabled, then the current protocol services are not
> sufficient for any emulated CPU.  Do we want this to work
> for paging disabled cases?  If not, another assumption
> to clearly document.
>

The paging disabled case is interesting. Does the UEFI spec even
permit running in DXE with paging disabled?

In any case, I will send out a v2 as the basis for further discussion.
We can also sit down and discuss it in Vancouver the coming week.


  reply	other threads:[~2018-09-15 13:28 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
2018-09-13 17:20     ` Kinney, Michael D
2018-09-15 13:28       ` Ard Biesheuvel [this message]
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-sKgHZQimcZ=rQd1t_Z_Z5=FAmP2Pnr+MYFK61UWvN4A@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