summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg
diff options
context:
space:
mode:
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2011-04-26 18:27:15 +0000
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2011-04-26 18:27:15 +0000
commitaa01abaa779cb30614c014a9314fe4f63bba0f88 (patch)
tree4e35e6edd7f629e6ffba168bf352e265d572ef16 /ArmPlatformPkg
parentbf7d7a673b1d18829aa2d638be6f2ce84fb91ead (diff)
downloadedk2-platforms-aa01abaa779cb30614c014a9314fe4f63bba0f88.tar.xz
ArmPlatformPkg/ArmPlatformLib: Renamed ArmPlatformInitialize into ArmPlatformSecInitialize
Some platforms require some of their controllers to be initialized in Secure world. This function make the difference between Secure and Normal world platform initialization. ArmPlatformPkg/ArmPlatformLib: Introduce ArmPlatformNormalInitialize Contain the code that initializes platform controllers that would be initialized in Normal World by PlatformPei. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11591 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg')
-rw-r--r--ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c49
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c41
-rw-r--r--ArmPlatformPkg/Include/Library/ArmPlatformLib.h46
-rw-r--r--ArmPlatformPkg/PlatformPei/PlatformPei.c3
-rw-r--r--ArmPlatformPkg/Sec/Sec.c2
5 files changed, 115 insertions, 26 deletions
diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c
index 070db6ab59..8be95ce38f 100644
--- a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c
+++ b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c
@@ -29,9 +29,13 @@
@return A non-zero value if Trustzone supported.
**/
-UINTN ArmPlatformTrustzoneSupported(VOID) {
+UINTN
+ArmPlatformTrustzoneSupported (
+ VOID
+ )
+{
// There is no Trustzone controllers (TZPC & TZASC) and no Secure Memory on RTSM
- return FALSE;
+ return FALSE;
}
/**
@@ -41,8 +45,12 @@ UINTN ArmPlatformTrustzoneSupported(VOID) {
of the secure peripherals and memory regions.
**/
-VOID ArmPlatformTrustzoneInit(VOID) {
- ASSERT(FALSE);
+VOID
+ArmPlatformTrustzoneInit (
+ VOID
+ )
+{
+ ASSERT(FALSE);
}
/**
@@ -52,9 +60,13 @@ VOID ArmPlatformTrustzoneInit(VOID) {
This function can do nothing if this feature is not relevant to your platform.
**/
-VOID ArmPlatformBootRemapping(VOID) {
+VOID
+ArmPlatformBootRemapping (
+ VOID
+ )
+{
// Disable memory remapping and return to normal mapping
- MmioOr32 (ARM_EB_SYSCTRL, BIT8); //EB_SP810_CTRL_BASE
+ MmioOr32 (ARM_EB_SYSCTRL, BIT8); //EB_SP810_CTRL_BASE
}
/**
@@ -79,18 +91,37 @@ ArmPlatformGetBootMode (
**/
VOID
-ArmPlatformInitialize (
+ArmPlatformSecInitialize (
VOID
) {
// Do nothing yet
}
/**
+ Initialize controllers that must setup in the normal world
+
+ This function is called by the ArmPlatformPkg/Pei or ArmPlatformPkg/Pei/PlatformPeim
+ in the PEI phase.
+
+**/
+VOID
+ArmPlatformNormalInitialize (
+ VOID
+ )
+{
+ // Nothing to do here
+}
+
+/**
Initialize the system (or sometimes called permanent) memory
This memory is generally represented by the DRAM.
**/
-VOID ArmPlatformInitializeSystemMemory(VOID) {
- // We do not need to initialize the System Memory on RTSM
+VOID
+ArmPlatformInitializeSystemMemory (
+ VOID
+ )
+{
+ // We do not need to initialize the System Memory on RTSM
}
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
index 490dda1a92..82b4ae14cb 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
@@ -63,8 +63,12 @@ struct pl341_dmc_config ddr_timings = {
@return A non-zero value if Trustzone supported.
**/
-UINTN ArmPlatformTrustzoneSupported(VOID) {
- return (MmioRead32(ARM_VE_SYS_CFGRW1_REG) & ARM_VE_CFGRW1_TZASC_EN_BIT_MASK);
+UINTN
+ArmPlatformTrustzoneSupported (
+ VOID
+ )
+{
+ return (MmioRead32(ARM_VE_SYS_CFGRW1_REG) & ARM_VE_CFGRW1_TZASC_EN_BIT_MASK);
}
/**
@@ -160,7 +164,11 @@ ArmPlatformGetBootMode (
This function can do nothing if this feature is not relevant to your platform.
**/
-VOID ArmPlatformBootRemapping(VOID) {
+VOID
+ArmPlatformBootRemapping (
+ VOID
+ )
+{
UINT32 val32 = MmioRead32(ARM_VE_SYS_CFGRW1_REG); //Scc - CFGRW1
// we remap the DRAM to 0x0
MmioWrite32(ARM_VE_SYS_CFGRW1_REG, (val32 & 0x0FFFFFFF) | ARM_VE_CFGRW1_REMAP_DRAM);
@@ -174,7 +182,7 @@ VOID ArmPlatformBootRemapping(VOID) {
**/
VOID
-ArmPlatformInitialize (
+ArmPlatformSecInitialize (
VOID
) {
// The L2x0 controller must be intialize in Secure World
@@ -182,12 +190,31 @@ ArmPlatformInitialize (
}
/**
+ Initialize controllers that must setup in the normal world
+
+ This function is called by the ArmPlatformPkg/Pei or ArmPlatformPkg/Pei/PlatformPeim
+ in the PEI phase.
+
+**/
+VOID
+ArmPlatformNormalInitialize (
+ VOID
+ )
+{
+ // Nothing to do here
+}
+
+/**
Initialize the system (or sometimes called permanent) memory
This memory is generally represented by the DRAM.
**/
-VOID ArmPlatformInitializeSystemMemory(VOID) {
- PL341DmcInit(&ddr_timings);
- PL301AxiInit(ARM_VE_FAXI_BASE);
+VOID
+ArmPlatformInitializeSystemMemory (
+ VOID
+ )
+{
+ PL341DmcInit(&ddr_timings);
+ PL301AxiInit(ARM_VE_FAXI_BASE);
}
diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h
index ec95941b51..3fec90298c 100644
--- a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h
+++ b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h
@@ -65,7 +65,10 @@ VOID ArmPlatformIsMemoryInitialized(VOID);
pointer is not used (probably required to use assembly language)
**/
-VOID ArmPlatformInitializeBootMemory(VOID);
+VOID
+ArmPlatformInitializeBootMemory (
+ VOID
+ );
/**
Return the current Boot Mode
@@ -88,7 +91,19 @@ ArmPlatformGetBootMode (
**/
VOID
-ArmPlatformInitialize (
+ArmPlatformSecInitialize (
+ VOID
+ );
+
+/**
+ Initialize controllers that must setup in the normal world
+
+ This function is called by the ArmPlatformPkg/Pei or ArmPlatformPkg/Pei/PlatformPeim
+ in the PEI phase.
+
+**/
+VOID
+ArmPlatformNormalInitialize (
VOID
);
@@ -98,7 +113,10 @@ ArmPlatformInitialize (
This memory is generally represented by the DRAM.
**/
-VOID ArmPlatformInitializeSystemMemory(VOID);
+VOID
+ArmPlatformInitializeSystemMemory (
+ VOID
+ );
/**
Remap the memory at 0x0
@@ -107,7 +125,10 @@ VOID ArmPlatformInitializeSystemMemory(VOID);
This function can do nothing if this feature is not relevant to your platform.
**/
-VOID ArmPlatformBootRemapping(VOID);
+VOID
+ArmPlatformBootRemapping (
+ VOID
+ );
/**
Return if Trustzone is supported by your platform
@@ -120,7 +141,10 @@ VOID ArmPlatformBootRemapping(VOID);
@return A non-zero value if Trustzone supported.
**/
-UINTN ArmPlatformTrustzoneSupported(VOID);
+UINTN
+ArmPlatformTrustzoneSupported (
+ VOID
+ );
/**
Initialize the Secure peripherals and memory regions
@@ -129,7 +153,10 @@ UINTN ArmPlatformTrustzoneSupported(VOID);
of the secure peripherals and memory regions.
**/
-VOID ArmPlatformTrustzoneInit(VOID);
+VOID
+ArmPlatformTrustzoneInit (
+ VOID
+ );
/**
Return the information about the memory region in permanent memory used by PEI
@@ -156,9 +183,10 @@ VOID ArmPlatformGetPeiMemory (
entry
**/
-VOID ArmPlatformGetVirtualMemoryMap (
- OUT ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap
-);
+VOID
+ArmPlatformGetVirtualMemoryMap (
+ OUT ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap
+ );
/**
Return the EFI Memory Map of your platform
diff --git a/ArmPlatformPkg/PlatformPei/PlatformPei.c b/ArmPlatformPkg/PlatformPei/PlatformPei.c
index 0d90173670..f3e96782f1 100644
--- a/ArmPlatformPkg/PlatformPei/PlatformPei.c
+++ b/ArmPlatformPkg/PlatformPei/PlatformPei.c
@@ -73,6 +73,9 @@ Returns:
DEBUG ((EFI_D_ERROR, "Platform PEIM Loaded\n"));
+ // Initialize the platform specific controllers
+ ArmPlatformNormalInitialize ();
+
BuildCpuHob (PcdGet8 (PcdPrePiCpuMemorySize), PcdGet8 (PcdPrePiCpuIoSize));
BuildFvHob (FixedPcdGet32(PcdFlashFvMainBase), FixedPcdGet32(PcdFlashFvMainSize));
diff --git a/ArmPlatformPkg/Sec/Sec.c b/ArmPlatformPkg/Sec/Sec.c
index 508f418ce3..b8e5225520 100644
--- a/ArmPlatformPkg/Sec/Sec.c
+++ b/ArmPlatformPkg/Sec/Sec.c
@@ -115,7 +115,7 @@ CEntryPoint (
if (CoreId == ARM_PRIMARY_CORE) {
// Initialize peripherals that must be done at the early stage
// Example: Some L2x0 controllers must be initialized in Secure World
- ArmPlatformInitialize ();
+ 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