So I ran with the suggestion by Laszlo to move the page table setup into macros and untangle the non-CoCo / TDX / SEV code paths. The first five patches of the series are doing that (without functional changes).
Support for 5-level paging is added by the following five patches. This way it is indeed easier to understand. Additional bonus is that the patches can be splitted into smaller pieces and 5-level paging for the three cases (non-CoCo / TDX / SEC) can be enabled independently. The SEV patches (#9 + #10) are included here for completeness, but it is probably a good idea to merge them only after 5-level paging support was added to BaseMemEncryptSevLib. This way we can turn on 5-level paging support without breaking SEV. Gerd Hoffmann (10): OvmfPkg/ResetVector: improve page table flag names OvmfPkg/ResetVector: add ClearOvmfPageTables macro OvmfPkg/ResetVector: add CreatePageTables4Level macro OvmfPkg/ResetVector: split TDX BSP workflow OvmfPkg/ResetVector: split SEV and non-CoCo workflows OvmfPkg/ResetVector: add 5-level paging support OvmfPkg/ResetVector: print post codes for 4/5 level paging OvmfPkg/ResetVector: wire up 5-level paging for TDX OvmfPkg/ResetVector: leave SEV VC handler installed longer OvmfPkg/ResetVector: wire up 5-level paging for SEV OvmfPkg/ResetVector/ResetVector.inf | 1 + OvmfPkg/ResetVector/Ia32/AmdSev.asm | 34 +-- OvmfPkg/ResetVector/Ia32/IntelTdx.asm | 17 +- OvmfPkg/ResetVector/Ia32/PageTables64.asm | 300 +++++++++++++++++----- OvmfPkg/ResetVector/Main.asm | 4 + OvmfPkg/ResetVector/ResetVector.nasmb | 1 + 6 files changed, 264 insertions(+), 93 deletions(-) -- 2.43.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#115802): https://edk2.groups.io/g/devel/message/115802 Mute This Topic: https://groups.io/mt/104506788/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-