public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gerd Hoffmann" <kraxel@redhat.com>
To: "Liu, Zhiguang" <zhiguang.liu@intel.com>
Cc: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Ni, Ray" <ray.ni@intel.com>,
	"Liming Gao" <gaoliming@byosoft.com.cn>,
	"László Érsek" <lersek@redhat.com>,
	"Oliver Steffen" <osteffen@redhat.com>
Subject: Re: [edk2-devel] [PATCH v2 1/2] MdeModulePkg: rename PcdUse5LevelPageTable to PcdEnable5LevelPageTable
Date: Fri, 26 Jan 2024 14:19:05 +0100	[thread overview]
Message-ID: <fe32jq4fra3ruou2ripenmda5c3knwjnpwsf4crh4tyibr2weg@3obypedvj5wy> (raw)
In-Reply-To: <SJ0PR11MB505337F759EC2ACAE377588390792@SJ0PR11MB5053.namprd11.prod.outlook.com>

On Fri, Jan 26, 2024 at 02:49:13AM +0000, Liu, Zhiguang wrote:
> Hi Gerd,
> For the PCD, it current has below usage.
> 1) for 32-bit PEI and 64-bit DXE, this PCD will decide if use 5 level paging in DXE.

Yes.  That is the only real use of the PCD today.  I expect the days of
32bit BEI / 64bit DXE firmware builds are numbered though.  There has
been a steady stream of patches from intel to push edk2 to full 64-bit
support, and there also is the x86s proposal[1].

> 2) for 64-bit PEI and DXE, reset vector chooses if use 5 level paging
> in early phase. But BIOS can still switch paging mode based on this
> PCD later.

I don't think edk2 implements the paging mode switch.  It's also not
that easy to do because the paging mode can only be switched with paging
turned off (which implies long mode turned off too).

> Since this PCD can be dynamic, we can let user to choose different
> paging mode in BIOS setup menu, and use this paging mode on reboot.

Is there any (pure 64-bit) firmware actually implementing this today?

> You may want to use one BIOS to support machine with different la57 capability, I assume two possible ways:
> 1) make the PCD as dynamic, and set it based on la57 capability.

You mean la57 state I assume (i.e. cr4.la57)?

i.e. for the 32-PEI / 64-DXE builds the PCD decides which mode will be
used, and for pure 64-bit builds the PCD will be set according to the
mode the CPU is running in?

take care,
  Gerd



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114609): https://edk2.groups.io/g/devel/message/114609
Mute This Topic: https://groups.io/mt/103950404/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2024-01-26 13:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-25  8:20 [edk2-devel] [PATCH v2 0/2] MdeModulePkg: 5-level paging fixes Gerd Hoffmann
2024-01-25  8:20 ` [edk2-devel] [PATCH v2 1/2] MdeModulePkg: rename PcdUse5LevelPageTable to PcdEnable5LevelPageTable Gerd Hoffmann
2024-01-25 12:01   ` Ni, Ray
2024-01-25 12:17     ` Gerd Hoffmann
2024-01-26  2:49       ` Zhiguang Liu
2024-01-26 13:19         ` Gerd Hoffmann [this message]
2024-01-25  8:20 ` [edk2-devel] [PATCH v2 2/2] MdeModulePkg/VirtualMemory: fix 5-level paging assert Gerd Hoffmann
2024-01-25 23:22 ` [edk2-devel] [PATCH v2 0/2] MdeModulePkg: 5-level paging fixes Laszlo Ersek

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=fe32jq4fra3ruou2ripenmda5c3knwjnpwsf4crh4tyibr2weg@3obypedvj5wy \
    --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