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]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent 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