From e314d564db4d52a9e904f6049dad7fc5dece5cb4 Mon Sep 17 00:00:00 2001 From: oliviermartin Date: Wed, 2 May 2012 20:13:32 +0000 Subject: 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 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13260 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPlatformPkg/Include/Library/ArmPlatformLib.h | 66 ----------------- ArmPlatformPkg/Include/Library/ArmPlatformSecLib.h | 84 ++++++++++++++++++++++ 2 files changed, 84 insertions(+), 66 deletions(-) create mode 100644 ArmPlatformPkg/Include/Library/ArmPlatformSecLib.h (limited to 'ArmPlatformPkg/Include') diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h index bb5778f59b..3d7e1bc248 100644 --- a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h +++ b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h @@ -41,21 +41,6 @@ typedef struct { UINT64 NumberOfBytes; } ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR; -/** - Initialize the memory where the initial stacks will reside - - This memory can contain the initial stacks (Secure and Secure Monitor stacks). - In some platform, this region is already initialized and the implementation of this function can - do nothing. This memory can also represent the Secure RAM. - This function is called before the satck has been set up. Its implementation must ensure the stack - pointer is not used (probably required to use assembly language) - -**/ -VOID -ArmPlatformInitializeBootMemory ( - VOID - ); - /** Return the current Boot Mode @@ -69,45 +54,6 @@ ArmPlatformGetBootMode ( VOID ); -/** - Call at the beginning of the platform boot up - - This function allows the firmware platform to do extra actions at the early - stage of the platform power up. - - Note: This function must be implemented in assembler as there is no stack set up yet - -**/ -VOID -ArmPlatformSecBootAction ( - 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 -ArmPlatformSecInitialize ( - VOID - ); - -/** - Call before jumping to Normal World - - This function allows the firmware platform to do extra actions before - jumping to the Normal World - -**/ -VOID -ArmPlatformSecExtraAction ( - IN UINTN MpId, - OUT UINTN* JumpAddress - ); - /** Initialize controllers that must setup in the normal world @@ -131,18 +77,6 @@ ArmPlatformInitializeSystemMemory ( VOID ); -/** - 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 ( - IN UINTN MpId - ); - /** Return the Virtual Memory Map of your platform diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformSecLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformSecLib.h new file mode 100644 index 0000000000..477fd7d99f --- /dev/null +++ b/ArmPlatformPkg/Include/Library/ArmPlatformSecLib.h @@ -0,0 +1,84 @@ +/** @file +* +* Copyright (c) 2011-2012, 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 +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#ifndef _ARMPLATFORMSECLIB_H_ +#define _ARMPLATFORMSECLIB_H_ + +/** + Initialize the memory where the initial stacks will reside + + This memory can contain the initial stacks (Secure and Secure Monitor stacks). + In some platform, this region is already initialized and the implementation of this function can + do nothing. This memory can also represent the Secure RAM. + This function is called before the satck has been set up. Its implementation must ensure the stack + pointer is not used (probably required to use assembly language) + +**/ +VOID +ArmPlatformSecBootMemoryInit ( + VOID + ); + +/** + Call at the beginning of the platform boot up + + This function allows the firmware platform to do extra actions at the early + stage of the platform power up. + + Note: This function must be implemented in assembler as there is no stack set up yet + +**/ +VOID +ArmPlatformSecBootAction ( + VOID + ); + +/** + Initialize controllers that must setup at the early stage + + Some peripherals must be initialized in Secure World. + For example: Some L2 controller, interconnect, clock, DMC, etc + +**/ +RETURN_STATUS +ArmPlatformSecInitialize ( + IN UINTN MpId + ); + +/** + Call before jumping to Normal World + + This function allows the firmware platform to do extra actions before + jumping to the Normal World + +**/ +VOID +ArmPlatformSecExtraAction ( + IN UINTN MpId, + OUT UINTN* JumpAddress + ); + +/** + 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 +ArmPlatformSecTrustzoneInit ( + IN UINTN MpId + ); + +#endif -- cgit v1.2.3