Thanks for the change.

But it doesn't highlight another impact due to this change: CET logic is 
removed from the SEC/PEI version.
It's not an issue because CET is only enabled in SMM environment today.
But better to highlight the impact in the commit message, and explicitly say 
that limitation in the SecPeiCpuExceptionHandlerLib.inf file.

Thanks,
Ray

-----Original Message-----
From: Ard Biesheuvel <a...@kernel.org> 
Sent: Friday, March 31, 2023 5:21 AM
To: devel@edk2.groups.io
Cc: Ard Biesheuvel <a...@kernel.org>; Ni; Ni, Ray <ray...@intel.com>; Andrew 
Fish <af...@apple.com>; Kinney, Michael D <michael.d.kin...@intel.com>; Liu, 
Zhiguang <zhiguang....@intel.com>; Rebecca Cran <rebe...@bsdio.com>; Tom 
Lendacky <thomas.lenda...@amd.com>
Subject: [RFT PATCH v2 3/6] UefiCpuPkg/CpuExceptionHandlerLib: Use single 
SEC/PEI version

Currently, we use the non-Xcode5 version of ExceptionHandlerAsm.nasm
only for the SEC and PEI phases, and this version was not compatible
with the XCODE or LLD linkers, which do not permit absolute relocations
in read-only sections by default. This has been fixed now, so we can use
it for all toolchains.

Let's rename the .nasm file to reflect the fact that is used for the
SecPei flavor of this library only, and while at it, remove some
unnecessary absolute references.

Since this makes the generic version compatible with the XCODE, let's
use this [smaller] version for XCODE5 builds too.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>
---
 UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf     
                            | 2 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{ExceptionHandlerAsm.nasm => 
SecPeiExceptionHandlerAsm.nasm} | 7 +++----
 
UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
                           | 2 +-
 3 files changed, 5 insertions(+), 6 deletions(-)

diff --git 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf
index df44371fe018e06d..10c5c5f2e5d203f6 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf
@@ -28,7 +28,7 @@ [Sources.Ia32]
   Ia32/ArchInterruptDefs.h

 

 [Sources.X64]

-  X64/ExceptionHandlerAsm.nasm

+  X64/SecPeiExceptionHandlerAsm.nasm

   X64/ArchExceptionHandler.c

   X64/ArchInterruptDefs.h

 

diff --git 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/SecPeiExceptionHandlerAsm.nasm
similarity index 95%
rename from 
UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
rename to 
UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/SecPeiExceptionHandlerAsm.nasm
index aaf8d622e6f3b8f1..585298768a66af6a 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
+++ 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/SecPeiExceptionHandlerAsm.nasm
@@ -276,8 +276,7 @@ DrFinish:
     ; and make sure RSP is 16-byte aligned

     ;

     sub     rsp, 4 * 8 + 8

-    mov     rax, ASM_PFX(CommonExceptionHandler)

-    call    rax

+    call    ASM_PFX(CommonExceptionHandler)

     add     rsp, 4 * 8 + 8

 

     cli

@@ -384,10 +383,10 @@ DoIret:
 ; comments here for definition of address map

 global ASM_PFX(AsmGetTemplateAddressMap)

 ASM_PFX(AsmGetTemplateAddressMap):

-    mov     rax, AsmIdtVectorBegin

+    lea     rax, [AsmIdtVectorBegin]

     mov     qword [rcx], rax

     mov     qword [rcx + 0x8],  (AsmIdtVectorEnd - AsmIdtVectorBegin) / 32

-    mov     rax, HookAfterStubHeaderBegin

+    lea     rax, [HookAfterStubHeaderBegin]

     mov     qword [rcx + 0x10], rax

     ret

 

diff --git 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
index 619b39d7f1de9ae3..c58fbb0d74500e48 100644
--- 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
+++ 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
@@ -33,7 +33,7 @@ [Sources.Ia32]
   Ia32/ArchInterruptDefs.h

 

 [Sources.X64]

-  X64/Xcode5ExceptionHandlerAsm.nasm

+  X64/SecPeiExceptionHandlerAsm.nasm

   X64/ArchExceptionHandler.c

   X64/ArchInterruptDefs.h

 

-- 
2.39.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102230): https://edk2.groups.io/g/devel/message/102230
Mute This Topic: https://groups.io/mt/97960765/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: 
https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to