mirror of https://github.com/acidanthera/audk.git
ArmPlatform/Sec: Ensure all the CPU cores are calling ArmCpuSetup()
Only the primary core was calling this function. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12646 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
aa26b8f6c8
commit
710b8acb56
|
@ -35,10 +35,20 @@ CEntryPoint (
|
|||
UINTN CharCount;
|
||||
UINTN JumpAddress;
|
||||
|
||||
// Invalidate the data cache. Doesn't have to do the Data cache clean.
|
||||
ArmInvalidateDataCache();
|
||||
|
||||
// Invalidate Instruction Cache
|
||||
ArmInvalidateInstructionCache();
|
||||
|
||||
// Invalidate I & D TLBs
|
||||
ArmInvalidateInstructionAndDataTlb();
|
||||
|
||||
// CPU specific settings
|
||||
ArmCpuSetup (MpId);
|
||||
|
||||
// Primary CPU clears out the SCU tag RAMs, secondaries wait
|
||||
if (IS_PRIMARY_CORE(MpId)) {
|
||||
ArmCpuSetup (MpId);
|
||||
|
||||
if (ArmIsMpCore()) {
|
||||
ArmCpuSynchronizeSignal (ARM_CPU_EVENT_BOOT_MEM_INIT);
|
||||
}
|
||||
|
@ -69,15 +79,6 @@ CEntryPoint (
|
|||
ArmGicEnableInterruptInterface (PcdGet32(PcdGicInterruptInterfaceBase));
|
||||
}
|
||||
|
||||
// Invalidate the data cache. Doesn't have to do the Data cache clean.
|
||||
ArmInvalidateDataCache();
|
||||
|
||||
// Invalidate Instruction Cache
|
||||
ArmInvalidateInstructionCache();
|
||||
|
||||
// Invalidate I & D TLBs
|
||||
ArmInvalidateInstructionAndDataTlb();
|
||||
|
||||
// Enable Full Access to CoProcessors
|
||||
ArmWriteCPACR (CPACR_CP_FULL_ACCESS);
|
||||
|
||||
|
|
Loading…
Reference in New Issue