ArmPlatformPkg/DebugSecExtraActionLib: Added Warning comment to signal the DRAM must be inititalized at this stage

Since the System Memory initialization has been moved inside ArmPlatformSecLib
on some platforms, the use of this library could crash if the firmware engineer
forgot to initialize the DRAM.
This library 'patches' the DRAM to add an infinite loop.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13262 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
oliviermartin 2012-05-02 20:15:49 +00:00
parent 9d59a88be1
commit cfe1bb1765
1 changed files with 10 additions and 0 deletions

View File

@ -64,6 +64,11 @@ ArmPlatformSecExtraAction (
UINTN CharCount; UINTN CharCount;
if (FeaturePcdGet (PcdStandalone) == FALSE) { if (FeaturePcdGet (PcdStandalone) == FALSE) {
//
// Warning: This code assumes the DRAM has already been initialized by ArmPlatformSecLib
//
if (IS_PRIMARY_CORE(MpId)) { if (IS_PRIMARY_CORE(MpId)) {
UINTN* StartAddress = (UINTN*)PcdGet32(PcdFvBaseAddress); UINTN* StartAddress = (UINTN*)PcdGet32(PcdFvBaseAddress);
@ -85,6 +90,11 @@ ArmPlatformSecExtraAction (
*JumpAddress = (UINTN)NonSecureWaitForFirmware; *JumpAddress = (UINTN)NonSecureWaitForFirmware;
} }
} else if (FeaturePcdGet (PcdSystemMemoryInitializeInSec)) { } else if (FeaturePcdGet (PcdSystemMemoryInitializeInSec)) {
//
// Warning: This code assumes the DRAM has already been initialized by ArmPlatformSecLib
//
if (IS_PRIMARY_CORE(MpId)) { if (IS_PRIMARY_CORE(MpId)) {
// Signal the secondary cores they can jump to PEI phase // Signal the secondary cores they can jump to PEI phase
ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E, PcdGet32 (PcdGicSgiIntId)); ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E, PcdGet32 (PcdGicSgiIntId));