Branch: refs/heads/master
Home: https://github.com/tianocore/edk2
Commit: 54aeed7e0086724820370e3a3cfac2c7438ebc8d
https://github.com/tianocore/edk2/commit/54aeed7e0086724820370e3a3cfac2c7438ebc8d
Author: Ray Ni <[email protected]>
Date: 2022-06-10 (Fri, 10 Jun 2022)
Changed paths:
M UefiCpuPkg/Library/MpInitLib/DxeMpLib.c
M UefiCpuPkg/Library/MpInitLib/MpLib.c
M UefiCpuPkg/Library/MpInitLib/MpLib.h
M UefiCpuPkg/Library/MpInitLib/PeiMpLib.c
Log Message:
-----------
MpInitLib: Allocate code buffer for PEI phase
Today's implementation assumes PEI phase runs at 32bit so
the execution-disable feature is not applicable.
It's not always TRUE.
The patch allocates 32bit&64bit code buffer for PEI phase as well.
Signed-off-by: Ray Ni <[email protected]>
Reviewed-by: Eric Dong <[email protected]>
Commit: 76323c31458c37c2f16288bac3e7699bdbc677d0
https://github.com/tianocore/edk2/commit/76323c31458c37c2f16288bac3e7699bdbc677d0
Author: Ray Ni <[email protected]>
Date: 2022-06-10 (Fri, 10 Jun 2022)
Changed paths:
M UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
M UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
Log Message:
-----------
MpInitLib: remove unneeded global ASM_PFX
global in NASM file is used for symbols that are
referenced in C files.
Remove unneeded global keyword in NASM file.
Signed-off-by: Ray Ni <[email protected]>
Reviewed-by: Eric Dong <[email protected]>
Commit: b4d7b9d2b50f12d34f00afc7c7b4710778209521
https://github.com/tianocore/edk2/commit/b4d7b9d2b50f12d34f00afc7c7b4710778209521
Author: Ray Ni <[email protected]>
Date: 2022-06-10 (Fri, 10 Jun 2022)
Changed paths:
M UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
M UefiCpuPkg/Library/MpInitLib/MpEqu.inc
M UefiCpuPkg/Library/MpInitLib/MpLib.c
M UefiCpuPkg/Library/MpInitLib/MpLib.h
M UefiCpuPkg/Library/MpInitLib/X64/AmdSev.nasm
M UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
Log Message:
-----------
MpInitLib: Put SEV logic in separate file
The patch does several simplifications:
1. Treat SwitchToRealProc as part of RendezvousFunnelProc.
So the common logic in MpLib.c doesn't need to be aware of
SwitchToRealProc.
As a result, SwitchToRealSize/Offset are removed from
MP_ASSEMBLY_ADDRESS_MAP.
2. Move SwitchToRealProc to AmdSev.nasm.
All other assembly code in AmdSev.nasm is called through
OneTimeCall.
Signed-off-by: Ray Ni <[email protected]>
Reviewed-by: Eric Dong <[email protected]>
Reviewed-by: Tom Lendacky <[email protected]>
Tested-by: Tom Lendacky <[email protected]>
Cc: Rahul Kumar <[email protected]>
Cc: Michael Roth <[email protected]>
Cc: James Bottomley <[email protected]>
Cc: Min Xu <[email protected]>
Cc: Jiewen Yao <[email protected]>
Cc: Jordan Justen <[email protected]>
Cc: Ard Biesheuvel <[email protected]>
Cc: Erdem Aktas <[email protected]>
Cc: Gerd Hoffmann <[email protected]>
Commit: 283ab9437aadc5c70a9df8bd751954045250e024
https://github.com/tianocore/edk2/commit/283ab9437aadc5c70a9df8bd751954045250e024
Author: Ray Ni <[email protected]>
Date: 2022-06-10 (Fri, 10 Jun 2022)
Changed paths:
M UefiCpuPkg/Library/MpInitLib/AmdSev.c
M UefiCpuPkg/Library/MpInitLib/MpEqu.inc
M UefiCpuPkg/Library/MpInitLib/MpLib.c
Log Message:
-----------
MpInitLib: Only allocate below 1MB memory for 16bit code
Today's implementation allocates below 1MB memory for the 16bit, 32bit
and 64bit code.
But it's not necessary since now the 32bit and 64bit code run at high
memory no matter in PEI and DXE phase.
The patch simplifies the logic to remove the code that handles the
case when WakeupBufferHigh is 0.
It also reduce the memory foot print under 1MB by allocating
memory for 16bit code only.
MP_CPU_EXCHANGE_INFO is still under 1MB which is immediate
after the 16bit code.
Signed-off-by: Ray Ni <[email protected]>
Reviewed-by: Eric Dong <[email protected]>
Commit: ccc269756f773d35aab67ccb935fa9548f30cff3
https://github.com/tianocore/edk2/commit/ccc269756f773d35aab67ccb935fa9548f30cff3
Author: Ray Ni <[email protected]>
Date: 2022-06-10 (Fri, 10 Jun 2022)
Changed paths:
M UefiCpuPkg/Library/MpInitLib/MpLib.c
Log Message:
-----------
MpInitLib: Move the Above1Mb vector allocation to MpInitLibInitialize
The AP vector consists of 2 parts:
1. the initial 16-bit code that should be under 1MB and page aligned.
2. the 32-bit/64-bit code that can be anywhere in the memory with any
alignment.
The need of part #2 is because the memory under 1MB is temporary
"stolen" for use and will "give" back after all AP wake up. The range
of memory is not marked as code page in page table. CPU may trigger
exception as soon as NX is enabled.
The part #2 memory allocation can be done in the MpInitLibInitialize.
Signed-off-by: Ray Ni <[email protected]>
Reviewed-by: Eric Dong <[email protected]>
Compare: https://github.com/tianocore/edk2/compare/e7abb94d1fb8...ccc269756f77
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits