diff options
author | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-02 19:55:32 +0000 |
---|---|---|
committer | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-02 19:55:32 +0000 |
commit | b1d41be7c9c0dc18cf9b73785eee6a20f13db126 (patch) | |
tree | 6cf436c0af3f6196985ef9680972a681337de484 /ArmPlatformPkg/PrePi/PrePi.c | |
parent | f463bb00ad63cdfbec22519c9ae878f43760e97d (diff) | |
download | edk2-b1d41be7c9c0dc18cf9b73785eee6a20f13db126.tar.gz edk2-b1d41be7c9c0dc18cf9b73785eee6a20f13db126.tar.bz2 edk2-b1d41be7c9c0dc18cf9b73785eee6a20f13db126.zip |
ArmPkg/ArmCpuLib: Replaced complex functions ArmCpuSynchronizeWait & ArmCpuSynchronizeSignal by sev & wfe
Previsouly the synchronization of MpCore was using the SGI (Software
Generated Interrupt) to synchronize MpCore during the early boot.
This commit replaced this mechanism by the more appropriate SEV/WFE
instructions (Send/Wait Event instructions).
That also eases the port to a new cpu/platform.
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13249 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg/PrePi/PrePi.c')
-rwxr-xr-x | ArmPlatformPkg/PrePi/PrePi.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c index f3cb3a121f..5090c25123 100755 --- a/ArmPlatformPkg/PrePi/PrePi.c +++ b/ArmPlatformPkg/PrePi/PrePi.c @@ -14,7 +14,6 @@ #include <PiPei.h>
-#include <Library/ArmCpuLib.h>
#include <Library/DebugAgentLib.h>
#include <Library/PrePiLib.h>
#include <Library/PrintLib.h>
@@ -204,11 +203,12 @@ CEntryPoint ( if (IS_PRIMARY_CORE(MpId)) {
mGlobalVariableBase = GlobalVariableBase;
if (ArmIsMpCore()) {
- ArmCpuSynchronizeSignal (ARM_CPU_EVENT_DEFAULT);
+ // Signal the Global Variable Region is defined (event: ARM_CPU_EVENT_DEFAULT)
+ ArmCallSEV ();
}
} else {
- // Wait the Primay core has defined the address of the Global Variable region
- ArmCpuSynchronizeWait (ARM_CPU_EVENT_DEFAULT);
+ // Wait the Primay core has defined the address of the Global Variable region (event: ARM_CPU_EVENT_DEFAULT)
+ ArmCallWFE ();
}
}
|