public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ard Biesheuvel" <ardb@kernel.org>
To: devel@edk2.groups.io, ray.ni@intel.com
Subject: Re: [edk2-devel] [Patch V2 5/8] MdeModulePkg: Add UefiCpuPkg.dec to pass DependencyCheck
Date: Mon, 24 Apr 2023 17:59:23 +0200	[thread overview]
Message-ID: <CAMj1kXF4bQ+XHG1fDkGxZTpBXZ9-syZ_FAbT8OjHUbqm_cdVxw@mail.gmail.com> (raw)
In-Reply-To: <MN6PR11MB8244C5D2CD0F6D0FC2655A298C9F9@MN6PR11MB8244.namprd11.prod.outlook.com>

On Sun, 16 Apr 2023 at 07:21, Ni, Ray <ray.ni@intel.com> wrote:
>
> Mike,
>
> MdeModule belongs to the common-package category.
>
> I agree that the common-package should not depend on a specific arch.
>
> MdeModule depending on UefiCpu because DxeIpl needs to prepare an arch specific environment for DXE phase.
>
>
>
> So, I am thinking if the arch-specific-env-preparation can be abstracted through an arch-agnostic API.
>
> Then each arch can implement a concrete instance for that API. The API itself can be in MdeModule pkg.
>
>
>
> In fact, the API is almost already there: “HandOffToDxeCore”.
>
>
>
> So, we could:
>
> Create a new API HandOffToDxeCore() in a new TBD lib class
> Implement different instances for different arch.
> Default instance does nothing arch specific and can be used by EmulatorPkg platform
>
> Today EmulatorPkg uses X64 version of HandOffToDxeCore and skips page table building by setting PcdDxeIplBuildPageTables to FALSE.
>
> UefiCpuPkg implements the HandOffToDxe() for IA32 and X64.
>
>
>
> So, the dependency is reversed: only UefiCpu depends on MdeModule.
>
>
>
> This also removes the arch-specific contents from MdeModulePkg.
>
>
>
> One side effect is: every platform needs to include the new TBD lib class.
>
>
>
> I agree that moving to MdePkg also works. But we might end up with a bigger and bigger MdePkg by including more and more.
>
>
>

I would prefer this approach. CpuPageTableLib is very x86-specific and
does not comply with the requirements for MdePkg.

Loading DXE core and mapping it with restricted permissions (to avoid
W+X memory) will require some kind of abstraction here in any case, so
it would be better to let the x86 specific version of that live in
UefiCpuPkg, and keep this out of MdePkg entirely.

  parent reply	other threads:[~2023-04-24 15:59 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-31  9:33 [Patch V2 0/8] Create page table by CpuPageTableLib in DxeIpl duntan
2023-03-31  9:33 ` [Patch V2 1/8] EmulatorPkg: Add CpuPageTableLib required by DxeIpl in DSC duntan
2023-03-31 10:21   ` Ni, Ray
2023-03-31  9:33 ` [Patch V2 2/8] IntelFsp2Pkg: " duntan
2023-03-31  9:33 ` [Patch V2 3/8] MdeModulePkg: " duntan
2023-04-14  9:09   ` Wang, Jian J
2023-04-24 10:11     ` duntan
2023-03-31  9:33 ` [Patch V2 4/8] OvmfPkg: Add CpuPageTableLib required by DxeIpl in DSC file duntan
2023-03-31 11:50   ` [edk2-devel] " Gerd Hoffmann
2023-03-31  9:33 ` [Patch V2 5/8] MdeModulePkg: Add UefiCpuPkg.dec to pass DependencyCheck duntan
2023-04-14  9:03   ` Wang, Jian J
2023-04-14 15:16     ` [edk2-devel] " Michael D Kinney
2023-04-14 16:07       ` Ni, Ray
2023-04-15 15:50         ` Michael D Kinney
2023-04-15 15:57           ` Michael D Kinney
2023-04-16  5:21             ` Ni, Ray
2023-04-18 19:06               ` Michael D Kinney
2023-04-19  6:00                 ` Ni, Ray
2023-04-19 15:02                   ` Michael D Kinney
2023-04-21  8:10                     ` Ni, Ray
2023-04-21 15:42                       ` Michael D Kinney
2023-04-24 10:27                         ` duntan
2023-04-24 15:59               ` Ard Biesheuvel [this message]
2023-03-31  9:33 ` [Patch V2 6/8] MdeModulePkg/DxeIpl: Create page table by CpuPageTableLib duntan
2023-03-31 10:24   ` Ni, Ray
2023-03-31  9:33 ` [Patch V2 7/8] MdeModulePkg/DxeIpl: Remove duplicated code to enable NX duntan
2023-03-31  9:33 ` [Patch V2 8/8] MdeModulePkg/DxeIpl: Refinement to the code to set PageTable as RO duntan
2023-03-31 10:25   ` Ni, Ray
     [not found] ` <1751776493F12DAB.27612@groups.io>
2023-04-11  6:51   ` [edk2-devel] [Patch V2 4/8] OvmfPkg: Add CpuPageTableLib required by DxeIpl in DSC file duntan
2023-04-11  8:56     ` Gerd Hoffmann
     [not found] ` <1751776BEEE9C9E8.27612@groups.io>
2023-04-11  6:51   ` [edk2-devel] [Patch V2 5/8] MdeModulePkg: Add UefiCpuPkg.dec to pass DependencyCheck duntan
     [not found] ` <1751776458C20361.12651@groups.io>
2023-04-11  6:53   ` [edk2-devel] [Patch V2 3/8] MdeModulePkg: Add CpuPageTableLib required by DxeIpl in DSC duntan

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=CAMj1kXF4bQ+XHG1fDkGxZTpBXZ9-syZ_FAbT8OjHUbqm_cdVxw@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