mirror of https://github.com/acidanthera/audk.git
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 <olivier.martin@arm.com> Acked-by: Ryan Harkin <ryan.harkin@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14347 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
2d45f194d9
commit
b5a572238d
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// Copyright (c) 2012, ARM Limited. All rights reserved.
|
||||
// Copyright (c) 2012-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
|
||||
|
@ -15,8 +15,9 @@
|
|||
#include <Library/ArmLib.h>
|
||||
|
||||
.text
|
||||
.align 3
|
||||
.align 2
|
||||
|
||||
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
|
||||
GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
|
||||
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
|
||||
|
||||
|
@ -47,3 +48,6 @@ ASM_PFX(ArmPlatformIsPrimaryCore):
|
|||
moveq r0, #1
|
||||
movne r0, #0
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmPlatformPeiBootAction):
|
||||
bx lr
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// Copyright (c) 2012, ARM Limited. All rights reserved.
|
||||
// Copyright (c) 2012-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
|
||||
|
@ -16,14 +16,14 @@
|
|||
|
||||
INCLUDE AsmMacroIoLib.inc
|
||||
|
||||
EXPORT ArmPlatformPeiBootAction
|
||||
EXPORT ArmPlatformGetCorePosition
|
||||
EXPORT ArmPlatformIsPrimaryCore
|
||||
|
||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
|
||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
|
||||
|
||||
PRESERVE8
|
||||
AREA ArmPlatformNullHelper, CODE, READONLY
|
||||
AREA ArmRealViewEbHelper, CODE, READONLY
|
||||
|
||||
//UINTN
|
||||
//ArmPlatformGetCorePosition (
|
||||
|
@ -52,5 +52,8 @@ ArmPlatformIsPrimaryCore FUNCTION
|
|||
bx lr
|
||||
ENDFUNC
|
||||
|
||||
END
|
||||
ArmPlatformPeiBootAction FUNCTION
|
||||
bx lr
|
||||
ENDFUNC
|
||||
|
||||
END
|
||||
|
|
|
@ -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
|
||||
|
@ -32,6 +32,8 @@
|
|||
MemoryAllocationLib
|
||||
|
||||
[Sources.common]
|
||||
ArmRealViewEbHelper.asm | RVCT
|
||||
ArmRealViewEbHelper.S | GCC
|
||||
ArmRealViewEb.c
|
||||
ArmRealViewEbMem.c
|
||||
ArmRealViewEbHelper.asm | RVCT
|
||||
|
|
|
@ -17,11 +17,15 @@
|
|||
#include <ArmPlatform.h>
|
||||
|
||||
.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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -16,12 +16,14 @@
|
|||
#include <Library/ArmLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
#include <AutoGen.h>
|
||||
#include "AsmMacroIoLib.inc"
|
||||
|
||||
#include <Chipset/ArmCortexA9.h>
|
||||
|
||||
.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 (
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// Copyright (c) 2012, ARM Limited. All rights reserved.
|
||||
// Copyright (c) 2012-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
|
||||
|
@ -15,8 +15,9 @@
|
|||
#include <Library/ArmLib.h>
|
||||
|
||||
.text
|
||||
.align 3
|
||||
.align 2
|
||||
|
||||
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
|
||||
GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
|
||||
GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
|
||||
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
|
||||
|
@ -24,6 +25,9 @@ GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
|
|||
GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)
|
||||
GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask)
|
||||
|
||||
ASM_PFX(ArmPlatformPeiBootAction):
|
||||
bx lr
|
||||
|
||||
//UINTN
|
||||
//ArmPlatformGetCorePosition (
|
||||
// IN UINTN MpId
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// Copyright (c) 2012, ARM Limited. All rights reserved.
|
||||
// Copyright (c) 2012-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
|
||||
|
@ -16,6 +16,7 @@
|
|||
|
||||
INCLUDE AsmMacroIoLib.inc
|
||||
|
||||
EXPORT ArmPlatformPeiBootAction
|
||||
EXPORT ArmPlatformGetCorePosition
|
||||
EXPORT ArmPlatformGetPrimaryCoreMpId
|
||||
EXPORT ArmPlatformIsPrimaryCore
|
||||
|
@ -26,6 +27,10 @@
|
|||
PRESERVE8
|
||||
AREA ArmPlatformNullHelper, CODE, READONLY
|
||||
|
||||
ArmPlatformPeiBootAction FUNCTION
|
||||
bx lr
|
||||
ENDFUNC
|
||||
|
||||
//UINTN
|
||||
//ArmPlatformGetCorePosition (
|
||||
// IN UINTN MpId
|
||||
|
|
|
@ -23,11 +23,15 @@ GCC_ASM_IMPORT(CEntryPoint)
|
|||
GCC_ASM_IMPORT(ArmPlatformGetCorePosition)
|
||||
GCC_ASM_IMPORT(ArmPlatformIsPrimaryCore)
|
||||
GCC_ASM_IMPORT(ArmReadMpidr)
|
||||
GCC_ASM_IMPORT(ArmPlatformPeiBootAction)
|
||||
GCC_ASM_EXPORT(_ModuleEntryPoint)
|
||||
|
||||
StartupAddr: .word CEntryPoint
|
||||
|
||||
ASM_PFX(_ModuleEntryPoint):
|
||||
// Do early platform specific actions
|
||||
bl ASM_PFX(ArmPlatformPeiBootAction)
|
||||
|
||||
// Identify CPU ID
|
||||
bl ASM_PFX(ArmReadMpidr)
|
||||
// Keep a copy of the MpId register value
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
IMPORT ArmPlatformGetCorePosition
|
||||
IMPORT ArmPlatformIsPrimaryCore
|
||||
IMPORT ArmReadMpidr
|
||||
IMPORT ArmPlatformPeiBootAction
|
||||
EXPORT _ModuleEntryPoint
|
||||
|
||||
PRESERVE8
|
||||
|
@ -30,6 +31,9 @@
|
|||
StartupAddr DCD CEntryPoint
|
||||
|
||||
_ModuleEntryPoint
|
||||
// Do early platform specific actions
|
||||
bl ArmPlatformPeiBootAction
|
||||
|
||||
// Identify CPU ID
|
||||
bl ArmReadMpidr
|
||||
// Keep a copy of the MpId register value
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
GCC_ASM_IMPORT(CEntryPoint)
|
||||
GCC_ASM_IMPORT(ArmPlatformIsPrimaryCore)
|
||||
GCC_ASM_IMPORT(ArmReadMpidr)
|
||||
GCC_ASM_IMPORT(ArmPlatformPeiBootAction)
|
||||
GCC_ASM_IMPORT(ArmPlatformStackSet)
|
||||
GCC_ASM_EXPORT(_ModuleEntryPoint)
|
||||
|
||||
|
@ -31,6 +32,9 @@ StartupAddr: .word CEntryPoint
|
|||
|
||||
|
||||
ASM_PFX(_ModuleEntryPoint):
|
||||
// Do early platform specific actions
|
||||
bl ASM_PFX(ArmPlatformPeiBootAction)
|
||||
|
||||
// Get ID of this CPU in Multicore system
|
||||
bl ASM_PFX(ArmReadMpidr)
|
||||
// Keep a copy of the MpId register value
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
IMPORT CEntryPoint
|
||||
IMPORT ArmPlatformIsPrimaryCore
|
||||
IMPORT ArmReadMpidr
|
||||
IMPORT ArmPlatformPeiBootAction
|
||||
IMPORT ArmPlatformStackSet
|
||||
|
||||
EXPORT _ModuleEntryPoint
|
||||
|
@ -33,6 +34,9 @@
|
|||
StartupAddr DCD CEntryPoint
|
||||
|
||||
_ModuleEntryPoint
|
||||
// Do early platform specific actions
|
||||
bl ArmPlatformPeiBootAction
|
||||
|
||||
// Get ID of this CPU in Multicore system
|
||||
bl ArmReadMpidr
|
||||
// Keep a copy of the MpId register value
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2012, ARM Limited. All rights reserved.
|
||||
# Copyright (c) 2012-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
|
||||
|
@ -18,6 +18,7 @@
|
|||
.align 2
|
||||
|
||||
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
|
||||
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
|
||||
|
||||
//UINTN
|
||||
//ArmPlatformIsPrimaryCore (
|
||||
|
@ -28,4 +29,7 @@ ASM_PFX(ArmPlatformIsPrimaryCore):
|
|||
mov r0, #1
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmPlatformPeiBootAction):
|
||||
bx lr
|
||||
|
||||
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// Copyright (c) 2012, ARM Limited. All rights reserved.
|
||||
// Copyright (c) 2012-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
|
||||
|
@ -18,6 +18,7 @@
|
|||
|
||||
INCLUDE AsmMacroIoLib.inc
|
||||
|
||||
EXPORT ArmPlatformPeiBootAction
|
||||
EXPORT ArmPlatformIsPrimaryCore
|
||||
|
||||
AREA BeagleBoardHelper, CODE, READONLY
|
||||
|
@ -32,5 +33,8 @@ ArmPlatformIsPrimaryCore FUNCTION
|
|||
bx lr
|
||||
ENDFUNC
|
||||
|
||||
END
|
||||
ArmPlatformPeiBootAction FUNCTION
|
||||
bx lr
|
||||
ENDFUNC
|
||||
|
||||
END
|
||||
|
|
|
@ -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
|
||||
|
@ -31,10 +31,11 @@
|
|||
[LibraryClasses]
|
||||
IoLib
|
||||
ArmLib
|
||||
# OmapLib
|
||||
MemoryAllocationLib
|
||||
|
||||
[Sources.common]
|
||||
BeagleBoardHelper.asm | RVCT
|
||||
BeagleBoardHelper.S | GCC
|
||||
BeagleBoard.c
|
||||
BeagleBoardMem.c
|
||||
PadConfiguration.c
|
||||
|
@ -42,8 +43,6 @@
|
|||
BeagleBoardHelper.S | GCC
|
||||
BeagleBoardHelper.asm | RVCT
|
||||
|
||||
[Protocols]
|
||||
|
||||
[FeaturePcd]
|
||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
||||
|
||||
|
|
Loading…
Reference in New Issue