public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Pedro Falcato" <pedro.falcato@gmail.com>
To: devel@edk2.groups.io, kraxel@redhat.com
Cc: Erdem Aktas <erdemaktas@google.com>,
	Oliver Steffen <osteffen@redhat.com>,
	 Jiewen Yao <jiewen.yao@intel.com>,
	Ard Biesheuvel <ardb+tianocore@kernel.org>,
	 Min Xu <min.m.xu@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	 Michael Roth <michael.roth@amd.com>,
	Liming Gao <gaoliming@byosoft.com.cn>,
	 Laszlo Ersek <lersek@redhat.com>
Subject: Re: [edk2-devel] [PATCH v2 3/5] OvmfPkg/ResetVector: improve page table flag names
Date: Tue, 30 Jan 2024 19:46:50 +0000	[thread overview]
Message-ID: <CAKbZUD0DXEdmkn_9LDWE5jQchUiVZQmH6PFdDmcMcVN-8gOHFw@mail.gmail.com> (raw)
In-Reply-To: <20240130123204.764453-4-kraxel@redhat.com>

On Tue, Jan 30, 2024 at 12:32 PM Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> Add comments, rename some of the PAGE_* flags and combined attributes.
> Specifically use "LARGEPAGE" instead of "2M" because that bit is used
> for both 2M and 1G large pages.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  OvmfPkg/ResetVector/Ia32/PageTables64.asm | 39 +++++++++++++----------
>  1 file changed, 22 insertions(+), 17 deletions(-)
>
> diff --git a/OvmfPkg/ResetVector/Ia32/PageTables64.asm b/OvmfPkg/ResetVector/Ia32/PageTables64.asm
> index 317cad430f29..6fec6f2beeea 100644
> --- a/OvmfPkg/ResetVector/Ia32/PageTables64.asm
> +++ b/OvmfPkg/ResetVector/Ia32/PageTables64.asm
> @@ -10,6 +10,7 @@
>
>  BITS    32
>
> +; common for all levels
>  %define PAGE_PRESENT            0x01
>  %define PAGE_READ_WRITE         0x02
>  %define PAGE_USER_SUPERVISOR    0x04
> @@ -17,25 +18,29 @@ BITS    32
>  %define PAGE_CACHE_DISABLE     0x010
>  %define PAGE_ACCESSED          0x020
>  %define PAGE_DIRTY             0x040
> -%define PAGE_PAT               0x080
>  %define PAGE_GLOBAL           0x0100
> -%define PAGE_2M_MBO            0x080
> -%define PAGE_2M_PAT          0x01000
> +
> +; page table entries (level 1)
> +%define PAGE_PTE_PAT           0x080
> +
> +; page directory entries (level 2+)
> +%define PAGE_PDE_LARGEPAGE     0x080
> +%define PAGE_PDE_PAT         0x01000
>
>  %define PAGE_4K_PDE_ATTR (PAGE_ACCESSED + \
>                            PAGE_DIRTY + \
>                            PAGE_READ_WRITE + \
>                            PAGE_PRESENT)
>
> -%define PAGE_2M_PDE_ATTR (PAGE_2M_MBO + \
> -                          PAGE_ACCESSED + \
> -                          PAGE_DIRTY + \
> -                          PAGE_READ_WRITE + \
> -                          PAGE_PRESENT)
> +%define PAGE_PDE_LARGEPAGE_ATTR (PAGE_PDE_LARGEPAGE + \
> +                                 PAGE_ACCESSED + \
> +                                 PAGE_DIRTY + \
> +                                 PAGE_READ_WRITE + \
> +                                 PAGE_PRESENT)
>
> -%define PAGE_PDP_ATTR (PAGE_ACCESSED + \
> -                       PAGE_READ_WRITE + \
> -                       PAGE_PRESENT)
> +%define PAGE_PDE_DIRECTORY_ATTR (PAGE_ACCESSED + \
> +                                 PAGE_READ_WRITE + \
> +                                 PAGE_PRESENT)
>
>  %define TDX_BSP         1
>  %define TDX_AP          2
> @@ -84,19 +89,19 @@ clearPageTablesMemoryLoop:
>      ;
>      ; Top level Page Directory Pointers (1 * 512GB entry)
>      ;
> -    mov     dword[PT_ADDR (0)], PT_ADDR (0x1000) + PAGE_PDP_ATTR
> +    mov     dword[PT_ADDR (0)], PT_ADDR (0x1000) + PAGE_PDE_DIRECTORY_ATTR
>      mov     dword[PT_ADDR (4)], edx
>
>      ;
>      ; Next level Page Directory Pointers (4 * 1GB entries => 4GB)
>      ;
> -    mov     dword[PT_ADDR (0x1000)], PT_ADDR (0x2000) + PAGE_PDP_ATTR
> +    mov     dword[PT_ADDR (0x1000)], PT_ADDR (0x2000) + PAGE_PDE_DIRECTORY_ATTR

Technically, if we want to be pedantic, these are PDPTEs (or PDPs I
guess), so PDE is misleading here.

-- 
Pedro


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



  parent reply	other threads:[~2024-01-30 19:47 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-30 12:31 [edk2-devel] [PATCH v2 0/5] OvmfPkg: Add support for 5-level paging Gerd Hoffmann
2024-01-30 12:32 ` [edk2-devel] [PATCH v2 1/5] MdeModulePkg/DxeIplPeim: fix PcdUse5LevelPageTable assert Gerd Hoffmann
2024-01-30 12:32 ` [edk2-devel] [PATCH v2 2/5] MdeModulePkg/DxeIplPeim: rename variable Gerd Hoffmann
2024-01-30 18:58   ` Laszlo Ersek
2024-01-30 12:32 ` [edk2-devel] [PATCH v2 3/5] OvmfPkg/ResetVector: improve page table flag names Gerd Hoffmann
2024-01-30 19:04   ` Laszlo Ersek
2024-01-30 19:46   ` Pedro Falcato [this message]
2024-01-30 22:28     ` Laszlo Ersek
2024-01-31  8:14       ` Gerd Hoffmann
2024-01-31 11:22         ` Laszlo Ersek
2024-01-31 17:50           ` Pedro Falcato
2024-01-30 12:32 ` [edk2-devel] [PATCH v2 4/5] OvmfPkg/ResetVector: add 5-level paging support Gerd Hoffmann
2024-01-30 19:13   ` Laszlo Ersek
2024-02-01 15:44   ` Lendacky, Thomas via groups.io
2024-02-01 16:33     ` Gerd Hoffmann
2024-02-01 23:31     ` Laszlo Ersek
2024-01-30 12:32 ` [edk2-devel] [PATCH v2 5/5] OvmfPkg/PlatformInitLib: " Gerd Hoffmann
2024-01-30 19:15 ` [edk2-devel] [PATCH v2 0/5] OvmfPkg: Add support for 5-level paging Laszlo Ersek
2024-02-01 16:01   ` Lendacky, Thomas via groups.io
2024-01-31  6:19 ` Min Xu
2024-01-31  8:24   ` Gerd Hoffmann
2024-02-01  5:44     ` Min Xu
2024-02-01  8:45       ` Gerd Hoffmann
2024-02-01 14:14       ` Gerd Hoffmann
2024-02-02  8:30         ` Min Xu
2024-02-02  8:44           ` Gerd Hoffmann
2024-02-02 19:28             ` Lendacky, Thomas via groups.io
2024-02-12 15:13               ` Gerd Hoffmann
2024-01-31 12:02 ` 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=CAKbZUD0DXEdmkn_9LDWE5jQchUiVZQmH6PFdDmcMcVN-8gOHFw@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