diff options
author | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-02 20:13:32 +0000 |
---|---|---|
committer | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-02 20:13:32 +0000 |
commit | e314d564db4d52a9e904f6049dad7fc5dece5cb4 (patch) | |
tree | e135daade07ab9b9fba84ad088d4c115c75b9f41 /ArmPlatformPkg/Sec/Sec.c | |
parent | 315649cda206bd439a09c02e82b683ab754df77a (diff) | |
download | edk2-e314d564db4d52a9e904f6049dad7fc5dece5cb4.zip edk2-e314d564db4d52a9e904f6049dad7fc5dece5cb4.tar.gz edk2-e314d564db4d52a9e904f6049dad7fc5dece5cb4.tar.bz2 |
ArmPlatformPkg: Introduced 'ArmPlatformSecLib'
The function only used in Secure Firmware used to be mixed with
the Non-Secure/Normal functions in ArmPlatformLib.
When the Secure Firmware was not required for some platforms (eg:
BeagleBoard), these functions were empty functions.
This new interface has been created to clean the ArmPlatformLib
interface between the SEC and PEI phases.
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13260 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg/Sec/Sec.c')
-rw-r--r-- | ArmPlatformPkg/Sec/Sec.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/ArmPlatformPkg/Sec/Sec.c b/ArmPlatformPkg/Sec/Sec.c index 00293f0..f9746ad 100644 --- a/ArmPlatformPkg/Sec/Sec.c +++ b/ArmPlatformPkg/Sec/Sec.c @@ -19,7 +19,6 @@ #include <Library/BaseMemoryLib.h> #include <Library/SerialPortLib.h> #include <Library/ArmGicLib.h> -#include <Library/ArmCpuLib.h> #include "SecInternal.h" @@ -50,7 +49,11 @@ CEntryPoint ( if (FixedPcdGet32 (PcdVFPEnabled)) { ArmEnableVFP(); } - + + // Initialize peripherals that must be done at the early stage + // Example: Some L2 controller, interconnect, clock, DMC, etc + ArmPlatformSecInitialize (MpId); + // Primary CPU clears out the SCU tag RAMs, secondaries wait if (IS_PRIMARY_CORE(MpId)) { if (ArmIsMpCore()) { @@ -93,19 +96,6 @@ CEntryPoint ( // Enable Full Access to CoProcessors ArmWriteCpacr (CPACR_CP_FULL_ACCESS); - if (IS_PRIMARY_CORE(MpId)) { - // Initialize peripherals that must be done at the early stage - // Example: Some L2x0 controllers must be initialized in Secure World - ArmPlatformSecInitialize (); - - // If we skip the PEI Core we could want to initialize the DRAM in the SEC phase. - // If we are in standalone, we need the initialization to copy the UEFI firmware into DRAM - if (FeaturePcdGet (PcdSystemMemoryInitializeInSec)) { - // Initialize system memory (DRAM) - ArmPlatformInitializeSystemMemory (); - } - } - // Test if Trustzone is supported on this platform if (FixedPcdGetBool (PcdTrustzoneSupport)) { if (ArmIsMpCore()) { @@ -155,7 +145,7 @@ TrustedWorldInitialization ( ArmGicSetupNonSecure (MpId, PcdGet32(PcdGicDistributorBase), PcdGet32(PcdGicInterruptInterfaceBase)); // Initialize platform specific security policy - ArmPlatformTrustzoneInit (MpId); + ArmPlatformSecTrustzoneInit (MpId); // Setup the Trustzone Chipsets if (IS_PRIMARY_CORE(MpId)) { |