public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: Pedro Falcato <pedro.falcato@gmail.com>,
	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>
Subject: Re: [edk2-devel] [PATCH v2 3/5] OvmfPkg/ResetVector: improve page table flag names
Date: Tue, 30 Jan 2024 23:28:04 +0100	[thread overview]
Message-ID: <69c99682-80b5-274d-4f8e-c8c8f4ed5e7a@redhat.com> (raw)
In-Reply-To: <CAKbZUD0DXEdmkn_9LDWE5jQchUiVZQmH6PFdDmcMcVN-8gOHFw@mail.gmail.com>

On 1/30/24 20:46, Pedro Falcato wrote:
> 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.

I remembered the fact that the SDM used different terms for different
table levels, but honestly, I've never been able to keep all those in my
mind for longer than 5 minutes. I recall them as fairly arbitrary. So I
consciously ignored this; in my book, this doesn't count as misleading.
But, I have nothing against more detailed macro names, if Gerd's willing
to respin!

Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114830): https://edk2.groups.io/g/devel/message/114830
Mute This Topic: https://groups.io/mt/104052210/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:[~2024-01-30 22:28 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
2024-01-30 22:28     ` Laszlo Ersek [this message]
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=69c99682-80b5-274d-4f8e-c8c8f4ed5e7a@redhat.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