]> git.proxmox.com Git - mirror_edk2.git/commit - UefiCpuPkg/Library/MpInitLib/MpLib.c
UefiCpuPkg/MpInitLib: Move timeout delay to WakupAp()
authorJeff Fan <jeff.fan@intel.com>
Wed, 24 Aug 2016 13:37:14 +0000 (21:37 +0800)
committerJeff Fan <jeff.fan@intel.com>
Thu, 25 Aug 2016 08:12:32 +0000 (16:12 +0800)
commitc1192210604f51c8397864293b1bdc00c5242c58
tree2e3bb72202ace128514200d7ad226f65c048a0c4
parent1219c85df42d5c9ed187565328e2f5cead5682ed
UefiCpuPkg/MpInitLib: Move timeout delay to WakupAp()

After sending the 1st broadcast INIT-SIPI-SIPI, BSP will collect APs count after
one specified timeout delay. However, WakupAp() will restore reset vector
immediately after sending 1st broadcast INIT-SIPI-SIPI. Some processors may not
complete executing reset vector code.

This fix is to move MicroSecondDelay() from CollectProcessorCount() to the place
that is after sending 1st broadcast INIT-SIPI-SIPI and before FreeResetVector()
in WakupAp().

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
UefiCpuPkg/Library/MpInitLib/MpLib.c