public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Zhiguang Liu" <zhiguang.liu@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"S, Ashraf Ali" <ashraf.ali.s@intel.com>
Cc: "Kumar, Rahul R" <rahul.r.kumar@intel.com>,
	"Ni, Ray" <ray.ni@intel.com>,
	"West, Catharine" <catharine.west@intel.com>,
	"V, Sangeetha" <sangeetha.v@intel.com>
Subject: Re: [edk2-devel] [PATCH] UefiCpuPkg/ResetVector: Option for 1G Page Table Size increase
Date: Fri, 1 Dec 2023 01:56:20 +0000	[thread overview]
Message-ID: <PH0PR11MB504870F5C022DC3789A4BDBC9081A@PH0PR11MB5048.namprd11.prod.outlook.com> (raw)
In-Reply-To: <bba4b710dd735ea22dcdfeb68923d602092cf853.1701363734.git.ashraf.ali.s@intel.com>

Hi Ashraf

For 1G page table, page table topology is like below
    Each Pml4 contains at most 512 Pdp.
    Each Pdp contains at most 512 Pdp entries.

Now, we only have one Pml4, one Pdp and 512 Pdp entries.
If increasing Ppd entries to more than 512, we need additional pdq, also need to change Pml4 to include the new added pdq.
Also, we need to make sure all tables are 4K aligned.

Thanks
Zhiguang

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ashraf Ali
> S
> Sent: Friday, December 1, 2023 1:35 AM
> To: devel@edk2.groups.io
> Cc: S, Ashraf Ali <ashraf.ali.s@intel.com>; Kumar, Rahul R
> <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>; West, Catharine
> <catharine.west@intel.com>; V, Sangeetha <sangeetha.v@intel.com>
> Subject: [edk2-devel] [PATCH] UefiCpuPkg/ResetVector: Option for 1G Page
> Table Size increase
> 
> Currently 1G Page table is restricted 512GB. this patch can help to increase the
> page table size based on the input. default will be 512GB build option
> PAGE_TABLE_1G_SIZE is used to increase the page table size
> 
> Cc: Rahul Kumar <rahul1.kumar@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Catharine West <catharine.west@intel.com>
> Cc: V Sangeetha <sangeetha.v@intel.com>
> Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
> ---
>  UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt         |  4 ++--
>  UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf           |  2 ++
>  UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm | 13 +++++++++++--
>  3 files changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> index 4fcb15c3b1..4d153fc1a7 100644
> --- a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> +++ b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> @@ -1,10 +1,10 @@
> 
>  === HOW TO USE VTF0 ===
>  Add this line to your DSC [Components.IA32] or [Components.X64] section:
> -  UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
> +  UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> 
>  Add this line to your FDF FV section:
> -  INF  RuleOverride=RESET_VECTOR
> UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
> +  INF  RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> 
>  In your FDF FFS file rules sections add:
>    [Rule.Common.SEC.RESET_VECTOR]
> diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> index 6b406163db..96106a4b11 100644
> --- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> @@ -53,5 +53,7 @@
>  #       -DARCH_X64, -DARCH_IA32
>  #   * for using 1G page table:
>  #       -DPAGE_TABLE_1G
> +#       * for incresing the 1G page table size (Size in GBs):
> +#           -DPAGE_TABLE_1G_SIZE=1024
>  #   * for different debug channels:
>  #       -DDEBUG_SERIAL, -DDEBUG_PORT80, or not specify any debug channel
> diff --git a/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
> b/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
> index 7960b141be..b080dc5296 100644
> --- a/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
> +++ b/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
> @@ -1,7 +1,7 @@
>  ;------------------------------------------------------------------------------
>  ; @file
>  ; Emits Page Tables for 1:1 mapping.
> -; If using 1G page table, map addresses 0 - 0x8000000000 (512GB),
> +; If using 1G page table, map addresses 0 - 0x8000000000 (512GB, Size
> +can be increse via PAGE_TABLE_1G_SIZE),
>  ; else, map addresses 0 - 0x100000000 (4GB)  ;  ; Copyright (c) 2021 - 2023,
> Intel Corporation. All rights reserved.<BR>
> @@ -39,6 +39,15 @@ BITS    64
>  %define PAGE_PDPTE_1GB(x) ((x << 30) + PAGE_BLE_ATTR)  %define
> PAGE_PDE_2MB(x) ((x << 21) + PAGE_BLE_ATTR)
> 
> +%ifdef PAGE_TABLE_1G_SIZE
> +  %define PAGE_PDPTE_1GB_SIZE PAGE_TABLE_1G_SIZE %else
> +  ;
> +  ; Default 512GB of 1G Page Table
> +  ;
> +  %define PAGE_PDPTE_1GB_SIZE 512
> +%endif
> +
>  ALIGN 16
> 
>  %ifdef PAGE_TABLE_1G
> @@ -47,7 +56,7 @@ Pdp:
>      ; Page-directory pointer table (512 * 1GB entries => 512GB)
>      ;
>      %assign i 0
> -    %rep      512
> +    %rep      PAGE_PDPTE_1GB_SIZE
>          DQ    PAGE_PDPTE_1GB(i)
>          %assign i i+1
>      %endrep
> --
> 2.39.1.windows.1
> 
> 
> 
> 
> 



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



  reply	other threads:[~2023-12-01  1:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-30 17:34 [edk2-devel] [PATCH] UefiCpuPkg/ResetVector: Option for 1G Page Table Size increase Ashraf Ali S
2023-12-01  1:56 ` Zhiguang Liu [this message]
2023-12-01  5:28 ` Ni, Ray
2023-12-01  6:26   ` Ashraf Ali S
2023-12-01  8:39     ` Ni, Ray

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=PH0PR11MB504870F5C022DC3789A4BDBC9081A@PH0PR11MB5048.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