Michael Kubacki
053e878bfb
UefiCpuPkg: Apply uncrustify changes
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737
Apply uncrustify changes to .c/.h files in the UefiCpuPkg package
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2021-12-07 17:24:28 +00:00
Antoine Coeur
f60f4cfeb4
UefiCpuPkg/CpuDxe: Fix few typos
...
Fix few typos in comments and documentation.
Cc: Eric Dong <eric.dong@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Signed-off-by: Antoine Coeur <coeur@gmx.fr >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Eric Dong <eric.dong@intel.com >
Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com >
Message-Id: <20200207010831.9046-77-philmd@redhat.com >
2020-02-10 22:30:07 +00:00
Michael D Kinney
0acd869796
UefiCpuPkg: Replace BSD License with BSD+Patent License
...
https://bugzilla.tianocore.org/show_bug.cgi?id=1373
Replace BSD 2-Clause License with BSD+Patent License. This change is
based on the following emails:
https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html
RFCs with detailed process for the license change:
V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Eric Dong <eric.dong@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2019-04-09 10:58:28 -07:00
Eric Dong
29b237f848
UefiCpuPkg CpuDxe: Update return status to follow spec.
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
2017-07-07 08:54:10 +08:00
Jeff Fan
39d49a73a5
UefiCpuPkg/CpuDxe: Remove unused codes and files
...
v5:
1. Remove unused PcdCpuApStackSize and PcdCpuApInitTimeOutInMicroSeconds.
v4:
1. Keep GDT table setup to fix IA32 S3 boot issue.
Cc: Michael Kinney <michael.d.kinney@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Laszlo Ersek <lersek@redhat.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-08-17 20:07:07 +08:00
Jeff Fan
7fadaacd50
UefiCpuPkg/CpuDxe: Consume MpInitLib to produce CPU MP Protocol services
...
Consume MP Initialize library to produce CPU MP Protocol services to simply the
code.
v4:
1. Update CpuDxe.c file header to mention it produces CPU Arch protocol.
2. Update BistData type from UINT32 to EFI_HEALTH_FLAG.
3. Move some header location from CpuMp.h to CpuDxe.h.
v3:
1. Move the code Consume MpInitLib APIs to produce CPU MP Protocol from patch
#40 to this patch.
2. Add DxeMpInitLib.inf in DSC file
Cc: Michael Kinney <michael.d.kinney@intel.com >
Cc: Feng Tian <feng.tian@intel.com >
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
Tested-by: Laszlo Ersek <lersek@redhat.com >
Tested-by: Michael Kinney <michael.d.kinney@intel.com >
2016-08-17 20:06:56 +08:00
Laszlo Ersek
94941c8853
UefiCpuPkg: CpuDxe: broadcast MTRR changes to APs
...
The Quark_EDKII_v1.1.0/IA32FamilyCpuBasePkg/CpuArchDxe
driver applies any MTRR changes to APs, if the
EFI_MP_SERVICES_PROTOCOL is available. We should do the same.
Additionally, the broadcast should occur at MP startup as well,
not only when MTRR settings are changed. The inspiration is
taken from
Quark_EDKII_v1.1.0/IA32FamilyCpuBasePkg/CpuMpDxe/
(see the EarlyMpInit() function and its call sites in
"ProcessorConfig.c").
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18632 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-19 19:08:47 +00:00
Jeff Fan
db61e16308
UefiCpuPkg/CpuDxe: Get CPU BIST information from Guided HOB
...
Get CPU BIST information from gEfiSecPlatformInformation2PpiGuid or
gEfiSecPlatformInformationPpiGuid Guided HOB and update the CPU healthy status
for CPU MP Service.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Feng Tian <feng.tian@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17641 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-16 02:55:54 +00:00
Chen Fan
33f413f0d6
UefiCpuPkg/MpSerivce: add volatile qualifiers
...
For avoid the compiler optimizing the code, we let Parameter and Procedure in CpuData volatile.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17024 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-09 06:45:26 +00:00
Chen Fan
68f0674237
UefiCpuPkg/MpService: Put APs to sleep when not busy.
...
Add a new sleeping state for APs, when no procedure execution, put AP to sleep. when need to execute
procedure, only need to wake up this AP by sent SIPI.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17023 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-09 06:43:11 +00:00
Chen Fan
b302a9784c
UefiCpuPkg/MpService: fix trivial typo in cpu state
...
CpuStateBuzy => CpuStateBusy
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17021 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-09 06:37:32 +00:00
Chen Fan
0e724fc198
UefiCpuPkg/MpService: avoid reset AP still hold a lock
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16368 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:29:40 +00:00
Chen Fan
ac9dbb3b03
UefiCpuPkg/CpuDxe: introduce ResetApStackless()
...
If timeout expires before AP returns from Procedure, the AP should
be terminated, we introduce ResetApStackLess() to send init IPI
to let AP exit Procedurce and re-available.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16366 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:29:13 +00:00
Chen Fan
fe078dd57f
UefiCpuPkg/CpuDxe: split out StartupCode from StartApsStackless()
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16365 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:29:01 +00:00
Chen Fan
b7c05ba517
UefiCpuPkg/CpuDxe: implement Mp Services:SwitchBSP()
...
by now, SwitchBSP() always return UNSUPPORTED
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16360 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:27:52 +00:00
Chen Fan
5fee172fb7
UefiCpuPkg/CpuDxe: implement Mp Services:StartupAllAPs()
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16359 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:27:34 +00:00
Chen Fan
3f4f0af872
UefiCpuPkg/CpuDxe: implement Mp Protocol:StartupThisAP()
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16358 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:27:21 +00:00
Chen Fan
fa7ce675b9
UefiCpuPkg/CpuDxe: implement Mp Protocol:EnableDisableAP()
...
Due to the implementation of AcquireSpinLock() is not MP safe,
so we should use AcquireSpinLockOrFail directly instead.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16357 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:27:09 +00:00
Chen Fan
e7938b5a86
UefiCpuPkg/CpuDxe: implement Mp Services:GetProcessorInfo()
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16356 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:26:53 +00:00
Chen Fan
d894d8b704
UefiCpuPkg/CpuDxe: implement Mp Protocol:GetNumberOfProcessors()
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16355 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:26:42 +00:00
Chen Fan
cfa2fac1f6
UefiCpuPkg/CpuDxe: implement Mp Protocol: WhoAmI()
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16354 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:26:32 +00:00
Chen Fan
03673ae11e
UefiCpuPkg/CpuDxe: introduce MP_SYSTEM_DATA for Mp Service Protocol
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16353 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:26:23 +00:00
Chen Fan
003973d98c
UefiCpuPkg/CpuDxe: introduce EFI_MP_SERVICES_PROTOCOL
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16352 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:26:13 +00:00
Jordan Justen
533263ee5a
UefiCpuPkg/CpuDxe: Add StartApsStackless routine
...
This routine starts the APs and directs them to run the specified
code.
The specified code is entered without a stack being available.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16349 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:25:29 +00:00
Jordan Justen
fab82c1873
UefiCpuPkg/CpuDxe: Add stackless assembly AP entry points
...
The AP startup code simply jumps into this code with the CpuDxe driver
without setting up a stack for the processor.
Therefore, this code must setup the stack before calling into C code.
This is the basic flow:
* AP enters CpuDxe driver code (AsmApEntryPoint) without stack
- AP grabs a lock
- AP sets up stack
- AP calls CpuMp.c:ApEntryPointInC
- If ApEntryPointInC returns, the lock is freed, and another AP may
run
- The AP C code may call AsmApDoneWithCommonStack to indicate that
the AP is no longer using the stack, and another may therefore
proceed to use the stack and then call ApEntryPointInC
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16347 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:24:59 +00:00
Jordan Justen
6022e28cf7
UefiCpuPkg/CpuDxe: Add no-op InitializeMpSupport
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com >
Reviewed-by: Jeff Fan <jeff.fan@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16345 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-13 18:24:25 +00:00