UefiCpuPkg: ApWakeupFunction directly use CpuMpData.
In the original design, once the APs finished executing their assembly code and switched to executing C code, they would enter a continuous loop within a function. In this function, they would collect CpuMpData using the MP_CPU_EXCHANGE_INFO mechanism. However, in the updated approach, CpuMpData can now be passed directly to the ApWakeUpFunction, bypassing the need for MP_CPU_EXCHANGE_INFO. This modification is made in preparation for eliminating the requirement of a second INIT-SIPI-SIPI sequence in the DXE phase. Tested-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Yuanhao Xie <yuanhao.xie@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
8bb018afaf
commit
629c1dacc9
@@ -197,8 +197,8 @@ CProcedureInvoke:
|
||||
|
||||
push ebx ; Push ApIndex
|
||||
mov eax, esi
|
||||
add eax, MP_CPU_EXCHANGE_INFO_OFFSET
|
||||
push eax ; push address of exchange info data buffer
|
||||
add eax, MP_CPU_EXCHANGE_INFO_FIELD (CpuMpData)
|
||||
push dword [eax] ; push address of CpuMpData
|
||||
|
||||
mov edi, esi
|
||||
add edi, MP_CPU_EXCHANGE_INFO_FIELD (CFunction)
|
||||
|
Reference in New Issue
Block a user