public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ni, Ray" <ray.ni@intel.com>
To: "S, Ashraf Ali" <ashraf.ali.s@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Kumar, Rahul R" <rahul.r.kumar@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 08:39:51 +0000	[thread overview]
Message-ID: <MN6PR11MB8244DF1FD5CD2A2D5E7EF7858C81A@MN6PR11MB8244.namprd11.prod.outlook.com> (raw)
In-Reply-To: <DM4PR11MB5280737C2263CF4567F25029D781A@DM4PR11MB5280.namprd11.prod.outlook.com>

Ashraf,
If any code wants to map above 512GB, that code can create a new mapping in memory or temporary ram.

I agree your patch adds flexibility to reset vector. But I just do not want the flexibility hurts the maintainability.


Thanks,
Ray
> -----Original Message-----
> From: S, Ashraf Ali <ashraf.ali.s@intel.com>
> Sent: Friday, December 1, 2023 2:26 PM
> To: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io
> Cc: Kumar, Rahul R <rahul.r.kumar@intel.com>; West, Catharine
> <catharine.west@intel.com>; V, Sangeetha <sangeetha.v@intel.com>
> Subject: RE: [PATCH] UefiCpuPkg/ResetVector: Option for 1G Page Table Size
> increase
> 
> Hi., Ray
> 
> Yes, I agree. But if any device which needs to map above 512GB in Pre
> Memory (Early PreMem).
> 
> if any device mapped any device below 512GB. And if the DRAM has 512GB
> then it would create a conflict.
> 
> So we are not changing the default page table size, keeping 512GB only. So
> that it will give room to decide the reset vector size based on the platform
> needs.
> 
> Sizes mentioned below:
> 512GB - 16KB
> 1TB      - 20KB
> 2TB      - 28KB
> 
> Thanks.,
> S, Ashraf Ali
> 
> -----Original Message-----
> From: Ni, Ray <ray.ni@intel.com>
> Sent: Friday, December 1, 2023 10:58 AM
> To: S, Ashraf Ali <ashraf.ali.s@intel.com>; devel@edk2.groups.io
> Cc: Kumar, Rahul R <rahul.r.kumar@intel.com>; West, Catharine
> <catharine.west@intel.com>; V, Sangeetha <sangeetha.v@intel.com>
> Subject: RE: [PATCH] UefiCpuPkg/ResetVector: Option for 1G Page Table Size
> increase
> 
> Ashraf,
> When we implement the reset vector, we assume that 512GB page table
> occupies minimal flash size and also sufficient for XIP code.
> Any code that wants more page table coverage should create a new page
> table, either in the temporary ram (when physical mem is not ready) or in
> physical ram.
> 
> Why does this patch increase the default 512 GB coverage?
> 
> Thanks,
> Ray
> > -----Original Message-----
> > From: S, Ashraf Ali <ashraf.ali.s@intel.com>
> > 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: [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 (#111976): https://edk2.groups.io/g/devel/message/111976
Mute This Topic: https://groups.io/mt/102898657/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



      reply	other threads:[~2023-12-01  8:40 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
2023-12-01  5:28 ` Ni, Ray
2023-12-01  6:26   ` Ashraf Ali S
2023-12-01  8:39     ` Ni, Ray [this message]

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=MN6PR11MB8244DF1FD5CD2A2D5E7EF7858C81A@MN6PR11MB8244.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