From: oliviermartin Date: Wed, 2 May 2012 20:15:49 +0000 (+0000) Subject: ArmPlatformPkg/DebugSecExtraActionLib: Added Warning comment to signal the DRAM must... X-Git-Tag: edk2-stable201903~13437 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=cfe1bb1765593aa117786f2973b9b0714680bf23 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 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13262 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.c b/ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.c index 471a42c1ab..2497da1092 100755 --- a/ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.c +++ b/ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.c @@ -64,6 +64,11 @@ ArmPlatformSecExtraAction ( UINTN CharCount; if (FeaturePcdGet (PcdStandalone) == FALSE) { + + // + // Warning: This code assumes the DRAM has already been initialized by ArmPlatformSecLib + // + if (IS_PRIMARY_CORE(MpId)) { UINTN* StartAddress = (UINTN*)PcdGet32(PcdFvBaseAddress); @@ -85,6 +90,11 @@ ArmPlatformSecExtraAction ( *JumpAddress = (UINTN)NonSecureWaitForFirmware; } } else if (FeaturePcdGet (PcdSystemMemoryInitializeInSec)) { + + // + // Warning: This code assumes the DRAM has already been initialized by ArmPlatformSecLib + // + if (IS_PRIMARY_CORE(MpId)) { // Signal the secondary cores they can jump to PEI phase ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E, PcdGet32 (PcdGicSgiIntId));