summaryrefslogtreecommitdiffstats
path: root/UefiPayloadPkg/UefiPayloadPkg.dsc
diff options
context:
space:
mode:
authorXie, Yuanhao <yuanhao.xie@intel.com>2023-06-28 16:47:24 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-07-11 02:47:27 +0000
commit964a4f032dcd15d7b0d9246625b13b71182e4eae (patch)
treedd6e681f7ecc5167cdc343d3b0cb20d2c14c9332 /UefiPayloadPkg/UefiPayloadPkg.dsc
parent629c1dacc9bdbc4fa0f31516656334b364c6c926 (diff)
downloadedk2-964a4f032dcd15d7b0d9246625b13b71182e4eae.tar.gz
edk2-964a4f032dcd15d7b0d9246625b13b71182e4eae.tar.bz2
edk2-964a4f032dcd15d7b0d9246625b13b71182e4eae.zip
UefiCpuPkg: Eliminate the second INIT-SIPI-SIPI sequence.
When both the PEI and DXE phases operate in the same execution mode(32-bit/64-bit), the BSP send a special start-up signal during the DXE phase to awaken the Application APs. To eliminate the need for the INIT-SIPI-SIPI sequence at the beginning of the DXE phase, the BSP call the SwitchApContext function to trigger the special start-up signal. By writing the specified StartupSignalValue to the designated StartupSignalAddress, the BSP wakes up the APs from mwait mode. Once the APs receive the MP_HAND_OFF_SIGNAL value, they are awakened and proceed to execute the SwitchContextPerAp procedure. They enter another while loop, transitioning their context from the PEI phase to the DXE phase. The original state transitions for an AP during the procedure are as follows: Idle ----> Ready ----> Busy ----> Idle [BSP] [AP] [AP] Instead of init-sipi-sipi sequence, we make use of a start-up signal to awaken the APs and transfer their context from PEI to DXE. Consequently, APs, rather than the BSP, to set their state to CpuStateReady. 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>
Diffstat (limited to 'UefiPayloadPkg/UefiPayloadPkg.dsc')
0 files changed, 0 insertions, 0 deletions