From cc1e814923eb231e18f157b0271eab336d6a0e1a Mon Sep 17 00:00:00 2001 From: oliviermartin Date: Tue, 30 Aug 2011 16:54:48 +0000 Subject: ArmPlatformPkg: Fix ARM RealView EB and VE builds Tested with RVCTLINUX and ARMGCC toolchains. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12233 6f19259b-4bc3-4df7-8a09-765794883524 --- .../DebugAgentSymbolsOnlyLib.c | 4 +-- .../Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c | 29 ---------------------- .../ArmRealViewEbLibRTSM/ArmRealViewEbSecLib.inf | 4 +++ ArmPlatformPkg/Include/Drivers/SP804Timer.h | 21 ++++++++++------ .../PeiServicesTablePointerLib.inf | 1 + 5 files changed, 21 insertions(+), 38 deletions(-) diff --git a/ArmPkg/Library/DebugAgentSymbolsOnlyLib/DebugAgentSymbolsOnlyLib.c b/ArmPkg/Library/DebugAgentSymbolsOnlyLib/DebugAgentSymbolsOnlyLib.c index 687a9971ce..ae7fa1ca35 100755 --- a/ArmPkg/Library/DebugAgentSymbolsOnlyLib/DebugAgentSymbolsOnlyLib.c +++ b/ArmPkg/Library/DebugAgentSymbolsOnlyLib/DebugAgentSymbolsOnlyLib.c @@ -280,9 +280,9 @@ InitializeDebugAgent ( // modules if (InitFlag == DEBUG_AGENT_INIT_PREMEM_SEC) { // - // Get the PrePi or PrePeiCore module (defined as SEC type module) + // Get the Sec or PrePeiCore module (defined as SEC type module) // - Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER*)PcdGet32(PcdSecureFdBaseAddress), EFI_FV_FILETYPE_SECURITY_CORE, &FfsHeader); + Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER*)PcdGet32(PcdSecureFvBaseAddress), EFI_FV_FILETYPE_SECURITY_CORE, &FfsHeader); if (!EFI_ERROR(Status)) { Status = GetImageContext (FfsHeader,&ImageContext); if (!EFI_ERROR(Status)) { diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c index 5709ca6c01..a245c239aa 100644 --- a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c +++ b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c @@ -42,21 +42,6 @@ ArmPlatformTrustzoneSupported ( return FALSE; } -/** - Initialize the Secure peripherals and memory regions - - If Trustzone is supported by your platform then this function makes the required initialization - of the secure peripherals and memory regions. - -**/ -VOID -ArmPlatformTrustzoneInit ( - VOID - ) -{ - ASSERT(FALSE); -} - /** Remap the memory at 0x0 @@ -87,20 +72,6 @@ ArmPlatformGetBootMode ( return BOOT_WITH_FULL_CONFIGURATION; } -/** - 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 -ArmPlatformSecInitialize ( - VOID - ) { - // Do nothing yet -} - /** Initialize controllers that must setup in the normal world diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbSecLib.inf b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbSecLib.inf index 60b40074e5..17df8100a4 100644 --- a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbSecLib.inf +++ b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbSecLib.inf @@ -32,6 +32,7 @@ [Sources.common] ArmRealViewEb.c + ArmRealViewEbSec.c ArmRealViewEbHelper.asm | RVCT ArmRealViewEbHelper.S | GCC ArmRealViewEbBoot.asm | RVCT @@ -39,3 +40,6 @@ [FeaturePcd] gEmbeddedTokenSpaceGuid.PcdCacheEnable + +[FixedPcd] + gArmTokenSpaceGuid.PcdNormalFvBaseAddress diff --git a/ArmPlatformPkg/Include/Drivers/SP804Timer.h b/ArmPlatformPkg/Include/Drivers/SP804Timer.h index dee337ebf9..f9a89c5376 100644 --- a/ArmPlatformPkg/Include/Drivers/SP804Timer.h +++ b/ArmPlatformPkg/Include/Drivers/SP804Timer.h @@ -17,13 +17,17 @@ #define _SP804_TIMER_H__ // SP804 Timer constants -#define SP804_TIMER_LOAD_REG 0x00 -#define SP804_TIMER_CURRENT_REG 0x04 -#define SP804_TIMER_CONTROL_REG 0x08 -#define SP804_TIMER_INT_CLR_REG 0x0C -#define SP804_TIMER_RAW_INT_STS_REG 0x10 -#define SP804_TIMER_MSK_INT_STS_REG 0x14 -#define SP804_TIMER_BG_LOAD_REG 0x18 +// Note: The SP804 Timer module comprises two timers, Timer_0 and Timer_1 +// These timers are identical and all their registers have an offset of 0x20 +// i.e. SP804_TIMER_0_LOAD_REG = 0x00 and SP804_TIMER_1_LOAD_REG = 0x20 +// Therefore, define all registers only once and adjust the base addresses by 0x20 +#define SP804_TIMER_LOAD_REG 0x00 +#define SP804_TIMER_CURRENT_REG 0x04 +#define SP804_TIMER_CONTROL_REG 0x08 +#define SP804_TIMER_INT_CLR_REG 0x0C +#define SP804_TIMER_RAW_INT_STS_REG 0x10 +#define SP804_TIMER_MSK_INT_STS_REG 0x14 +#define SP804_TIMER_BG_LOAD_REG 0x18 // Timer control register bit definitions #define SP804_TIMER_CTRL_ONESHOT BIT0 @@ -36,6 +40,9 @@ #define SP804_TIMER_CTRL_PERIODIC BIT6 #define SP804_TIMER_CTRL_ENABLE BIT7 +// Other SP804 Timer definitions +#define SP804_MAX_TICKS 0xFFFFFFFF + // SP810 System Controller constants #define SP810_SYS_CTRL_REG 0x00 #define SP810_SYS_CTRL_TIMER0_TIMCLK BIT15 // 0=REFCLK, 1=TIMCLK diff --git a/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf b/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf index 33f2457b7e..5c0811b837 100644 --- a/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf +++ b/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf @@ -43,4 +43,5 @@ gArmPlatformTokenSpaceGuid.PcdPeiServicePtrGlobalOffset gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize + gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize -- cgit v1.2.3