mirror of https://github.com/acidanthera/audk.git
ArmPlatformPkg/ArmPlatformLib: Removed 'ArmPlatformIsMemoryInitialized' function
'ArmPlatformInitializeBootMemory' function can check if the memory has already been initialized. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12414 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
44e272fd6a
commit
f156d5b49d
|
@ -1,47 +0,0 @@
|
||||||
//
|
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Base.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/ArmPlatformLib.h>
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
#include <AutoGen.h>
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 3
|
|
||||||
|
|
||||||
GCC_ASM_EXPORT(ArmPlatformIsMemoryInitialized)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Called at the early stage of the Boot phase to know if the memory has already been initialized
|
|
||||||
|
|
||||||
Running the code from the reset vector does not mean we start from cold boot. In some case, we
|
|
||||||
can go through this code with the memory already initialized.
|
|
||||||
Because this function is called at the early stage, the implementation must not use the stack.
|
|
||||||
Its implementation must probably done in assembly to ensure this requirement.
|
|
||||||
|
|
||||||
@return Return the condition value into the 'Z' flag
|
|
||||||
|
|
||||||
**/
|
|
||||||
ASM_PFX(ArmPlatformIsMemoryInitialized):
|
|
||||||
// Check if the memory has been already mapped, if so skipped the memory initialization
|
|
||||||
LoadConstantToReg (ARM_EB_SYSCTRL, r0)
|
|
||||||
ldr r0, [r0, #0]
|
|
||||||
|
|
||||||
// 0x200 (BIT9): This read-only bit returns the remap status.
|
|
||||||
and r0, r0, #0x200
|
|
||||||
tst r0, #0x200
|
|
||||||
bx lr
|
|
||||||
|
|
||||||
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
|
|
|
@ -1,48 +0,0 @@
|
||||||
//
|
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Base.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/ArmPlatformLib.h>
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
#include <AutoGen.h>
|
|
||||||
|
|
||||||
INCLUDE AsmMacroIoLib.inc
|
|
||||||
|
|
||||||
EXPORT ArmPlatformIsMemoryInitialized
|
|
||||||
|
|
||||||
PRESERVE8
|
|
||||||
AREA ArmRealViewEbHelper, CODE, READONLY
|
|
||||||
|
|
||||||
/**
|
|
||||||
Called at the early stage of the Boot phase to know if the memory has already been initialized
|
|
||||||
|
|
||||||
Running the code from the reset vector does not mean we start from cold boot. In some case, we
|
|
||||||
can go through this code with the memory already initialized.
|
|
||||||
Because this function is called at the early stage, the implementation must not use the stack.
|
|
||||||
Its implementation must probably done in assembly to ensure this requirement.
|
|
||||||
|
|
||||||
@return Return the condition value into the 'Z' flag
|
|
||||||
|
|
||||||
**/
|
|
||||||
ArmPlatformIsMemoryInitialized
|
|
||||||
// Check if the memory has been already mapped, if so skipped the memory initialization
|
|
||||||
LoadConstantToReg (ARM_EB_SYSCTRL, r0)
|
|
||||||
ldr r0, [r0, #0]
|
|
||||||
|
|
||||||
// 0x200 (BIT9): This read-only bit returns the remap status.
|
|
||||||
and r0, r0, #0x200
|
|
||||||
tst r0, #0x200
|
|
||||||
bx lr
|
|
||||||
END
|
|
|
@ -34,8 +34,6 @@
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
ArmRealViewEb.c
|
ArmRealViewEb.c
|
||||||
ArmRealViewEbMem.c
|
ArmRealViewEbMem.c
|
||||||
ArmRealViewEbHelper.asm | RVCT
|
|
||||||
ArmRealViewEbHelper.S | GCC
|
|
||||||
|
|
||||||
[FeaturePcd]
|
[FeaturePcd]
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
ArmRealViewEb.c
|
ArmRealViewEb.c
|
||||||
ArmRealViewEbSec.c
|
ArmRealViewEbSec.c
|
||||||
ArmRealViewEbHelper.asm | RVCT
|
|
||||||
ArmRealViewEbHelper.S | GCC
|
|
||||||
ArmRealViewEbBoot.asm | RVCT
|
ArmRealViewEbBoot.asm | RVCT
|
||||||
ArmRealViewEbBoot.S | GCC
|
ArmRealViewEbBoot.S | GCC
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,6 @@
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
CTA9x4.c
|
CTA9x4.c
|
||||||
CTA9x4Mem.c
|
CTA9x4Mem.c
|
||||||
CTA9x4Helper.asm | RVCT
|
|
||||||
CTA9x4Helper.S | GCC
|
|
||||||
|
|
||||||
[FeaturePcd]
|
[FeaturePcd]
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
||||||
|
|
|
@ -41,8 +41,6 @@
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
CTA9x4Sec.c
|
CTA9x4Sec.c
|
||||||
CTA9x4.c
|
CTA9x4.c
|
||||||
CTA9x4Helper.asm | RVCT
|
|
||||||
CTA9x4Helper.S | GCC
|
|
||||||
CTA9x4Boot.asm | RVCT
|
CTA9x4Boot.asm | RVCT
|
||||||
CTA9x4Boot.S | GCC
|
CTA9x4Boot.S | GCC
|
||||||
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
//
|
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Base.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/ArmPlatformLib.h>
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
#include <AutoGen.h>
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 3
|
|
||||||
|
|
||||||
GCC_ASM_EXPORT(ArmPlatformIsMemoryInitialized)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Called at the early stage of the Boot phase to know if the memory has already been initialized
|
|
||||||
|
|
||||||
Running the code from the reset vector does not mean we start from cold boot. In some case, we
|
|
||||||
can go through this code with the memory already initialized.
|
|
||||||
Because this function is called at the early stage, the implementation must not use the stack.
|
|
||||||
Its implementation must probably done in assembly to ensure this requirement.
|
|
||||||
|
|
||||||
@return Return the condition value into the 'Z' flag
|
|
||||||
|
|
||||||
**/
|
|
||||||
ASM_PFX(ArmPlatformIsMemoryInitialized):
|
|
||||||
// Check if the memory has been already mapped, if so skipped the memory initialization
|
|
||||||
LoadConstantToReg (ARM_VE_SYS_CFGRW1_REG ,r0)
|
|
||||||
ldr r0, [r0, #0]
|
|
||||||
|
|
||||||
// 0x40000000 = Value of Physical Configuration Switch SW[0]
|
|
||||||
and r0, r0, #0x40000000
|
|
||||||
tst r0, #0x40000000
|
|
||||||
bx lr
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
//
|
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Base.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/ArmPlatformLib.h>
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
#include <AutoGen.h>
|
|
||||||
|
|
||||||
INCLUDE AsmMacroIoLib.inc
|
|
||||||
|
|
||||||
EXPORT ArmPlatformIsMemoryInitialized
|
|
||||||
|
|
||||||
PRESERVE8
|
|
||||||
AREA CTA9x4Helper, CODE, READONLY
|
|
||||||
|
|
||||||
/**
|
|
||||||
Called at the early stage of the Boot phase to know if the memory has already been initialized
|
|
||||||
|
|
||||||
Running the code from the reset vector does not mean we start from cold boot. In some case, we
|
|
||||||
can go through this code with the memory already initialized.
|
|
||||||
Because this function is called at the early stage, the implementation must not use the stack.
|
|
||||||
Its implementation must probably done in assembly to ensure this requirement.
|
|
||||||
|
|
||||||
@return Return the condition value into the 'Z' flag
|
|
||||||
|
|
||||||
**/
|
|
||||||
ArmPlatformIsMemoryInitialized
|
|
||||||
// Check if the memory has been already mapped, if so skipped the memory initialization
|
|
||||||
LoadConstantToReg (ARM_VE_SYS_CFGRW1_REG ,r0)
|
|
||||||
ldr r0, [r0, #0]
|
|
||||||
|
|
||||||
// 0x40000000 = Value of Physical Configuration Switch SW[0]
|
|
||||||
and r0, r0, #0x40000000
|
|
||||||
tst r0, #0x40000000
|
|
||||||
bx lr
|
|
||||||
|
|
|
@ -41,19 +41,6 @@ typedef struct {
|
||||||
UINT64 NumberOfBytes;
|
UINT64 NumberOfBytes;
|
||||||
} ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR;
|
} ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR;
|
||||||
|
|
||||||
/**
|
|
||||||
Called at the early stage of the Boot phase to know if the memory has already been initialized
|
|
||||||
|
|
||||||
Running the code from the reset vector does not mean we start from cold boot. In some case, we
|
|
||||||
can go through this code with the memory already initialized.
|
|
||||||
Because this function is called at the early stage, the implementation must not use the stack.
|
|
||||||
Its implementation must probably done in assembly to ensure this requirement.
|
|
||||||
|
|
||||||
@return Return the condition value into the 'Z' flag
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID ArmPlatformIsMemoryInitialized(VOID);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initialize the memory where the initial stacks will reside
|
Initialize the memory where the initial stacks will reside
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@ GCC_ASM_EXPORT(_ModuleEntryPoint)
|
||||||
#global functions referenced by this module
|
#global functions referenced by this module
|
||||||
GCC_ASM_IMPORT(CEntryPoint)
|
GCC_ASM_IMPORT(CEntryPoint)
|
||||||
GCC_ASM_IMPORT(ArmPlatformSecBootAction)
|
GCC_ASM_IMPORT(ArmPlatformSecBootAction)
|
||||||
GCC_ASM_IMPORT(ArmPlatformIsMemoryInitialized)
|
|
||||||
GCC_ASM_IMPORT(ArmPlatformInitializeBootMemory)
|
GCC_ASM_IMPORT(ArmPlatformInitializeBootMemory)
|
||||||
GCC_ASM_IMPORT(ArmDisableInterrupts)
|
GCC_ASM_IMPORT(ArmDisableInterrupts)
|
||||||
GCC_ASM_IMPORT(ArmDisableCachesAndMmu)
|
GCC_ASM_IMPORT(ArmDisableCachesAndMmu)
|
||||||
|
@ -83,10 +82,7 @@ _WaitForEnabledScu:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_InitMem:
|
_InitMem:
|
||||||
bl ASM_PFX(ArmPlatformIsMemoryInitialized)
|
// Initialize Init Boot Memory
|
||||||
bne _SetupStack
|
|
||||||
|
|
||||||
# Initialize Init Memory
|
|
||||||
bl ASM_PFX(ArmPlatformInitializeBootMemory)
|
bl ASM_PFX(ArmPlatformInitializeBootMemory)
|
||||||
|
|
||||||
# Only Primary CPU could run this line (the secondary cores have jumped from _IdentifyCpu to _SetupStack)
|
# Only Primary CPU could run this line (the secondary cores have jumped from _IdentifyCpu to _SetupStack)
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
IMPORT CEntryPoint
|
IMPORT CEntryPoint
|
||||||
IMPORT ArmPlatformSecBootAction
|
IMPORT ArmPlatformSecBootAction
|
||||||
IMPORT ArmPlatformIsMemoryInitialized
|
|
||||||
IMPORT ArmPlatformInitializeBootMemory
|
IMPORT ArmPlatformInitializeBootMemory
|
||||||
IMPORT ArmDisableInterrupts
|
IMPORT ArmDisableInterrupts
|
||||||
IMPORT ArmDisableCachesAndMmu
|
IMPORT ArmDisableCachesAndMmu
|
||||||
|
@ -76,10 +75,7 @@ _WaitForEnabledScu
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_InitMem
|
_InitMem
|
||||||
bl ArmPlatformIsMemoryInitialized
|
// Initialize Init Boot Memory
|
||||||
bne _SetupStack
|
|
||||||
|
|
||||||
// Initialize Init Memory
|
|
||||||
bl ArmPlatformInitializeBootMemory
|
bl ArmPlatformInitializeBootMemory
|
||||||
|
|
||||||
// Only Primary CPU could run this line (the secondary cores have jumped from _IdentifyCpu to _SetupStack)
|
// Only Primary CPU could run this line (the secondary cores have jumped from _IdentifyCpu to _SetupStack)
|
||||||
|
|
Loading…
Reference in New Issue