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. v2 changes: - remove SetCr3La57 label, use Enable5LevelPaging macro instead. - turn GetSevCBitMaskAbove31 into a macro. - comment fixes. 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 | 40 ++- OvmfPkg/ResetVector/Ia32/IntelTdx.asm | 17 +- OvmfPkg/ResetVector/Ia32/PageTables64.asm | 299 +++++++++++++++++----- OvmfPkg/ResetVector/Main.asm | 4 + OvmfPkg/ResetVector/ResetVector.nasmb | 5 +- 6 files changed, 272 insertions(+), 94 deletions(-) -- 2.44.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116215): https://edk2.groups.io/g/devel/message/116215 Mute This Topic: https://groups.io/mt/104660109/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-