diff options
author | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-03-31 12:12:58 +0000 |
---|---|---|
committer | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-03-31 12:12:58 +0000 |
commit | 8e06b586e832e4c050eb506c2fadbdca5bf361ff (patch) | |
tree | a719b2610ed4bcbfe324aee2420cd90e045b09c1 /ArmPlatformPkg/ArmVExpressPkg | |
parent | 262a9b04441b9e38b8c43ae0e4c60ae62df35504 (diff) | |
download | edk2-platforms-8e06b586e832e4c050eb506c2fadbdca5bf361ff.tar.xz |
ArmPlatformPkg: Introduce ArmPlatformInitialize() function
This function is responsible to handle all the specific platform code that must
be run in secure world to initialize some controllers.
ArmPlatformPkg/Sec: Move the L2x0 initialization to ArmPlatformLib
The L2x0 controller must be initialized in secure world. Move its initialization
into the ArmPlatformInitialize() of the Cortex A9x4 Core Tile PlatformLib.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11476 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg/ArmVExpressPkg')
4 files changed, 25 insertions, 2 deletions
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc index c5aa4772b9..c0e3103a73 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc @@ -90,6 +90,8 @@ UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + # ARM PL310 L2 Cache Driver + L2X0CacheLib|ArmPkg/Drivers/PL310L2Cache/PL310L2CacheSec.inf # ARM PL341 DMC Driver PL341DmcLib|ArmPkg/Drivers/PL34xDmc/PL341Dmc.inf # ARM PL301 Axi Driver @@ -132,8 +134,6 @@ # ARM PL354 SMC Driver PL354SmcSecLib|ArmPkg/Drivers/PL35xSmc/PL354SmcSec.inf - # ARM PL310 L2 Cache Driver - L2X0CacheLib|ArmPkg/Drivers/PL310L2Cache/PL310L2CacheSec.inf # ARM PL390 General Interrupt Driver in Secure and Non-secure PL390GicSecLib|ArmPkg/Drivers/PL390Gic/PL390GicSec.inf PL390GicNonSecLib|ArmPkg/Drivers/PL390Gic/PL390GicNonSec.inf diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf index 15e20b6783..80631240a7 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf @@ -33,6 +33,7 @@ MemoryAllocationLib PL341DmcLib PL301AxiLib + L2X0CacheLib [Sources.common] CTA9x4.c @@ -47,3 +48,5 @@ [FixedPcd] gArmTokenSpaceGuid.PcdNormalFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdSize + + gArmTokenSpaceGuid.PcdL2x0ControllerBase diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressSecLib.inf b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressSecLib.inf index aef37b2f7e..aefd53c486 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressSecLib.inf +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressSecLib.inf @@ -33,6 +33,7 @@ PL354SmcSecLib
PL341DmcLib
PL301AxiLib
+ L2X0CacheLib
[Sources.common]
CTA9x4.c
@@ -48,3 +49,5 @@ [FixedPcd]
gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gArmTokenSpaceGuid.PcdNormalFdSize
+
+ gArmTokenSpaceGuid.PcdL2x0ControllerBase
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c index 69091d1119..2d39207e29 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c @@ -18,6 +18,8 @@ #include <Library/DebugLib.h> #include <Library/PcdLib.h> #include <Drivers/PL341Dmc.h> +#include <Drivers/PL301Axi.h> +#include <Library/L2X0CacheLib.h> #include <Library/SerialPortLib.h> #define SerialPrint(txt) SerialPortWrite (txt, AsciiStrLen(txt)+1); @@ -149,6 +151,21 @@ VOID ArmPlatformBootRemapping(VOID) { } /** + Initialize controllers that must setup at the early stage + + Some peripherals must be initialized in Secure World. + For example, some L2x0 requires to be initialized in Secure World + +**/ +VOID +ArmPlatformInitialize ( + VOID + ) { + // The L2x0 controller must be intialize in Secure World + L2x0CacheInit(PcdGet32(PcdL2x0ControllerBase), FALSE); +} + +/** Initialize the system (or sometimes called permanent) memory This memory is generally represented by the DRAM. |