From b5a572238d3c45ec8d3d0ec2c6ee3e6930458b96 Mon Sep 17 00:00:00 2001 From: oliviermartin Date: Fri, 10 May 2013 12:49:10 +0000 Subject: ArmPlatform/ArmPlatformLib: Introduced ArmPlatformPeiBootAction() This function allows platform to do any specific actions prior to the start the PEI phase. For instance, this function could be used by some platforms to initialize clocks that are required at the early stage of the PEI phase. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin Acked-by: Ryan Harkin Reviewed-by: Leif Lindholm git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14347 6f19259b-4bc3-4df7-8a09-765794883524 --- .../ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S | 6 +++++- .../Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm | 5 +++++ .../ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf | 4 +++- .../ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S | 5 ++++- .../ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm | 5 +++++ .../ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S | 7 ++++++- .../ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm | 5 +++++ 7 files changed, 33 insertions(+), 4 deletions(-) (limited to 'ArmPlatformPkg/ArmVExpressPkg') diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S index 09cfc827a1..b560f56c51 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S @@ -17,11 +17,15 @@ #include .text -.align 3 +.align 2 +GCC_ASM_EXPORT(ArmPlatformPeiBootAction) GCC_ASM_EXPORT(ArmPlatformGetCorePosition) GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore) +ASM_PFX(ArmPlatformPeiBootAction): + bx lr + //UINTN //ArmPlatformGetCorePosition ( // IN UINTN MpId diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm index 1b5474b5f2..0ae95f5dbd 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm @@ -18,12 +18,17 @@ INCLUDE AsmMacroIoLib.inc + EXPORT ArmPlatformPeiBootAction EXPORT ArmPlatformGetCorePosition EXPORT ArmPlatformIsPrimaryCore PRESERVE8 AREA CTA15A7Helper, CODE, READONLY +ArmPlatformPeiBootAction FUNCTION + bx lr + ENDFUNC + //UINTN //ArmPlatformGetCorePosition ( // IN UINTN MpId diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf index 5a44eb5f70..d160a4fc91 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf @@ -1,5 +1,5 @@ #/* @file -# Copyright (c) 2011-2012, ARM Limited. All rights reserved. +# Copyright (c) 2011-2013, ARM Limited. All rights reserved. # # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -37,6 +37,8 @@ SerialPortLib [Sources.common] + CTA9x4Helper.asm | RVCT + CTA9x4Helper.S | GCC CTA9x4.c CTA9x4Mem.c CTA9x4Helper.S | GCC diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S index fc7312b6f1..e12b8cd4e9 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S @@ -17,8 +17,8 @@ .text .align 2 +GCC_ASM_EXPORT(ArmPlatformPeiBootAction) GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore) -GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId) GCC_ASM_EXPORT(ArmPlatformGetCorePosition) GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore) @@ -56,4 +56,7 @@ ASM_PFX(ArmPlatformGetCorePosition): and r0, r0, #ARM_CORE_MASK bx lr +ASM_PFX(ArmPlatformPeiBootAction): + bx lr + ASM_FUNCTION_REMOVE_IF_UNREFERENCED diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm index c2db346723..9508cedd84 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm @@ -18,6 +18,7 @@ INCLUDE AsmMacroIoLib.inc + EXPORT ArmPlatformPeiBootAction EXPORT ArmPlatformIsPrimaryCore EXPORT ArmPlatformGetPrimaryCoreMpId EXPORT ArmPlatformGetCorePosition @@ -62,4 +63,8 @@ ArmPlatformGetCorePosition FUNCTION bx lr ENDFUNC +ArmPlatformPeiBootAction FUNCTION + bx lr + ENDFUNC + END diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S index 1c256af241..95006c5f25 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S @@ -16,12 +16,14 @@ #include #include #include +#include "AsmMacroIoLib.inc" #include .text .align 2 +GCC_ASM_EXPORT(ArmPlatformPeiBootAction) GCC_ASM_EXPORT(ArmGetCpuCountPerCluster) GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore) GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId) @@ -30,6 +32,9 @@ GCC_ASM_EXPORT(ArmPlatformGetCorePosition) GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore) GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask) +ASM_PFX(ArmPlatformPeiBootAction): + bx lr + # IN None # OUT r0 = SCU Base Address ASM_PFX(ArmGetScuBaseAddress): @@ -37,7 +42,7 @@ ASM_PFX(ArmGetScuBaseAddress): # the Configuration BAR as a stack is not necessary setup. The SCU is at the # offset 0x0000 from the Private Memory Region. mrc p15, 4, r0, c15, c0, 0 - bx lr + bx lr //UINTN //ArmPlatformGetPrimaryCoreMpId ( diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm index 02b9f0f4a7..5befec31ef 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm @@ -22,6 +22,7 @@ INCLUDE AsmMacroIoLib.inc + EXPORT ArmPlatformPeiBootAction EXPORT ArmGetCpuCountPerCluster EXPORT ArmPlatformIsPrimaryCore EXPORT ArmPlatformGetPrimaryCoreMpId @@ -32,6 +33,10 @@ AREA RTSMHelper, CODE, READONLY +ArmPlatformPeiBootAction FUNCTION + bx lr + ENDFUNC + // IN None // OUT r0 = SCU Base Address ArmGetScuBaseAddress FUNCTION -- cgit v1.2.3