Liming Gao
6f5531d504
UefiCpuPkg CpuMpPei: Update INF to refer to NASM source file
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
2016-07-11 13:20:22 +08:00
Jeff Fan
9bedfb2f5b
UefiCpuPkg/CpuMpPei: Consume CpuExceptionHandlerLib
...
Cc: Michael Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@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 >
2016-06-01 15:37:01 +08:00
Jeff Fan
a09647f3fe
UefiCpuPkg/CpuMpPei: Wake up APs by proper method
...
If ApLoopMode is ApInHltLoop, BSP will send INIT-SIPI-SIPI to wake up APs.
If ApLoopMode is ApInMwaitLoop or ApInRunLoop, BSP will write one semaphore to
wake up APs.
Contributed-under: TianoCore Contribution Agreement 1.0
Cc: Feng Tian <feng.tian@intel.com >
Cc: Michael Kinney <michael.d.kinney@intel.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19346 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-18 03:26:03 +00:00
Jeff Fan
c87e41b445
UefiCpuPkg/CpuMpPei: Place APs in proper loop mode after AP execution
...
After AP function is executed, we will place AP in proper loop mode. Because AP
maybe waken up by SMI or other reasons. We need to read signature in monitor
buffer to check if APs is waken up by BSP. If it is not waken up by BSP, we will
continue to place them into proper loop mode.
Contributed-under: TianoCore Contribution Agreement 1.0
Cc: Feng Tian <feng.tian@intel.com >
Cc: Michael Kinney <michael.d.kinney@intel.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19345 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-18 03:25:32 +00:00
Jeff Fan
4de216c016
UefiCpuPkg/CpuMpPei: Add GetApLoopMode() to get AP loop mode
...
Add GetApLoopMode() that will get PCD PcdCpuApLoopMode firstly. If it is
ApInMwaitLoop, we will check if MONITOR/MWAIT feature supported by CPUID. If
MONITOR/MWAIT feature is not supported, force AP loop mode to ApInHltLoop.
GetApLoopMode() also return the largest line size required.
Contributed-under: TianoCore Contribution Agreement 1.0
Cc: Feng Tian <feng.tian@intel.com >
Cc: Michael Kinney <michael.d.kinney@intel.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19343 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-18 03:24:27 +00:00
Jeff Fan
ea0f431cec
UefiCpuPkg/CpuMpPei: Update files format to DOS
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18168 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-06 06:57:47 +00:00
Jeff Fan
cb21fcbb65
UefiCpuPkg/CpuMpPei: Add meta data description
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18158 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-05 02:28:49 +00:00
Jeff Fan
8f7b315b1c
UefiCpuPkg/CpuMpPei: Register callback on End Of Pei PPI
...
Add CpuMpEndOfPeiCallback () to restore wakeup buffer data on S3 path and flag
flag wakeup buffer to be un-used type on normal boot path. Set one EndOfPei
flag save/restore wakeup buffer when wakeup APs every time.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18014 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:46:13 +00:00
Jeff Fan
e35d034736
UefiCpuPkg/CpuMpPei: Install PI CPU MP PPI
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18012 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:45:11 +00:00
Jeff Fan
887810c8c9
UefiCpuPkg/CpuMpPei: Implementation of PeiWhoAmI ()
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18005 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:41:59 +00:00
Jeff Fan
a21fe4285e
UefiCpuPkg/CpuMpPei: Update and publish CPU BIST information
...
Get CPU BIST information from SEC Platform Information(2) PPIs and update them
accordingly. Install(Reinstall) SEC Platform Information2 PPI to published the
new CPU BIST.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18004 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:41:33 +00:00
Jeff Fan
d1cf93333f
UefiCpuPkg/CpuMpPei: Load microcode on BSP and APs
...
Add DetectMicrocode() to load microcode on BSP and APs.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18002 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:40:41 +00:00
Jeff Fan
b4cd9f78ba
UefiCpuPkg/CpuMpPei: Sync BPS's mtrr setting to APs
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17999 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:39:24 +00:00
Jeff Fan
7d51bf5c4e
UefiCpuPkg/CpuMpPei: Wakeup APs and collect AP count
...
BSP will send broadcast INIT Startup IPI to all APs and collect APs count and
BIST information.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17997 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:38:35 +00:00
Jeff Fan
e66d675de4
UefiCpuPkg/CpuMpPei: Prepare for buffer for AP wakeup and CPU MP data
...
Get AP wakeup buffer and copy AP reset code into it. Allocate APs' stack and CPU
MP data buffer. Fill CPU MP data fields accordingly.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17995 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:37:50 +00:00
Jeff Fan
46ba0f63e9
UefiCpuPkg/CpuMpPei: Initialize FPU per UEFI specification
...
Invoke InitializeFloatingPointUnits() to initialize FPU per UEFI specification
before call C function in assembly code.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17993 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:36:51 +00:00
Jeff Fan
05e107f8f2
UefiCpuPkg/CpuMpPei: Find available memory < 1MB for AP reset code
...
Search memory resource HOB list to find one available system memory under 1MB
for AP reset code and exchange information between BSP and APs.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17989 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:29:40 +00:00
Jeff Fan
f9d30595ae
UefiCpuPkg/CpuMpPei: Load GDT table on BSP
...
Load new GDT table and update segment accordingly.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17988 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:29:12 +00:00
Jeff Fan
65e79f931f
UefiCpuPkg: Add CpuMpPei module
...
This module is to provide MP PPI services defined in PI 1.4.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17987 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-15 03:28:04 +00:00