IMPORT ArmPlatformSecBootMemoryInit\r
IMPORT ArmDisableInterrupts\r
IMPORT ArmDisableCachesAndMmu\r
- IMPORT ArmWriteVBar\r
IMPORT ArmReadMpidr\r
IMPORT ArmCallWFE\r
- IMPORT SecVectorTable\r
EXPORT _ModuleEntryPoint\r
\r
PRESERVE8\r
// Jump to Platform Specific Boot Action function\r
blx ArmPlatformSecBootAction\r
\r
- // Set VBAR to the start of the exception vectors in Secure Mode\r
- ldr r0, =SecVectorTable\r
- blx ArmWriteVBar\r
-\r
_IdentifyCpu \r
// Identify CPU ID\r
bl ArmReadMpidr\r
b _SetupSecondaryCoreStack\r
\r
_InitMem\r
+ // If we are not doing a cold boot in this case we should assume the Initial Memory to be already initialized\r
+ cmp r10, #ARM_SEC_COLD_BOOT\r
+ bne _SetupPrimaryCoreStack\r
+\r
// Initialize Init Boot Memory\r
bl ArmPlatformSecBootMemoryInit\r
\r
add r1, r1, r2\r
\r
// Get the Core Position (ClusterId * 4) + CoreId\r
- GetCorePositionInStack(r0, r5, r2)\r
+ GetCorePositionFromMpId(r0, r5, r2)\r
// The stack starts at the top of the stack region. Add '1' to the Core Position to get the top of the stack\r
add r0, r0, #1\r
\r