mirror of https://github.com/acidanthera/audk.git
ArmPlatformPkg: remove all ArmPlatformGlobalVariableLib implementations
This removes the SEC, PEI and DXE variants of ArmPlatformGlobalVariableLib, which is no longer used, and should not be used since it violates the PI spec. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18990 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
ac0a171a74
commit
1856157a55
|
@ -1,38 +0,0 @@
|
||||||
/** @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 __ARM_PLATFORM_GLOBAL_VARIABLE_LIB_H_
|
|
||||||
#define __ARM_PLATFORM_GLOBAL_VARIABLE_LIB_H_
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformGetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformSetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID*
|
|
||||||
ArmPlatformGetGlobalVariableAddress (
|
|
||||||
IN UINTN VariableOffset
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
/** @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.
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
|
||||||
#include <Library/ArmPlatformGlobalVariableLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/HobLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
|
|
||||||
#include <Guid/ArmGlobalVariableHob.h>
|
|
||||||
|
|
||||||
UINTN mGlobalVariableBase = 0;
|
|
||||||
|
|
||||||
RETURN_STATUS
|
|
||||||
EFIAPI
|
|
||||||
ArmPlatformGlobalVariableConstructor (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
ARM_HOB_GLOBAL_VARIABLE *Hob;
|
|
||||||
|
|
||||||
Hob = GetFirstGuidHob (&gArmGlobalVariableGuid);
|
|
||||||
ASSERT (Hob != NULL);
|
|
||||||
|
|
||||||
mGlobalVariableBase = Hob->GlobalVariableBase;
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformGetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (mGlobalVariableBase == 0) {
|
|
||||||
ArmPlatformGlobalVariableConstructor ();
|
|
||||||
}
|
|
||||||
|
|
||||||
CopyMem (Variable, (VOID*)(mGlobalVariableBase + VariableOffset), VariableSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformSetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (mGlobalVariableBase == 0) {
|
|
||||||
ArmPlatformGlobalVariableConstructor ();
|
|
||||||
}
|
|
||||||
|
|
||||||
CopyMem ((VOID*)(mGlobalVariableBase + VariableOffset), Variable, VariableSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID*
|
|
||||||
ArmPlatformGetGlobalVariableAddress (
|
|
||||||
IN UINTN VariableOffset
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return (VOID*)(mGlobalVariableBase + VariableOffset);
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
#/** @file
|
|
||||||
# Timer library implementation
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
#**/
|
|
||||||
|
|
||||||
[Defines]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = DxeArmPlatformGlobalVariableLib
|
|
||||||
FILE_GUID = 53fa3cc3-23b7-4ec2-9bfa-30257d7e1135
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = ArmPlatformGlobalVariableLib
|
|
||||||
|
|
||||||
CONSTRUCTOR = ArmPlatformGlobalVariableConstructor
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
DxeArmPlatformGlobalVariableLib.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
DebugLib
|
|
||||||
HobLib
|
|
||||||
|
|
||||||
[Guids]
|
|
||||||
gArmGlobalVariableGuid
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize
|
|
||||||
|
|
|
@ -1,84 +0,0 @@
|
||||||
/** @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.
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <Uefi.h>
|
|
||||||
#include <Library/ArmPlatformGlobalVariableLib.h>
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
|
|
||||||
// Declared by ArmPlatformPkg/PrePi Module
|
|
||||||
extern UINTN mGlobalVariableBase;
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformGetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
|
|
||||||
|
|
||||||
GlobalVariableBase = PcdGet64 (PcdCPUCoresStackBase) + PcdGet32 (PcdCPUCorePrimaryStackSize) - PcdGet32 (PcdPeiGlobalVariableSize);
|
|
||||||
|
|
||||||
if (VariableSize == 4) {
|
|
||||||
*(UINT32*)Variable = ReadUnaligned32 ((CONST UINT32*)(GlobalVariableBase + VariableOffset));
|
|
||||||
} else if (VariableSize == 8) {
|
|
||||||
*(UINT64*)Variable = ReadUnaligned64 ((CONST UINT64*)(GlobalVariableBase + VariableOffset));
|
|
||||||
} else {
|
|
||||||
CopyMem (Variable, (VOID*)(GlobalVariableBase + VariableOffset), VariableSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformSetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
|
|
||||||
|
|
||||||
GlobalVariableBase = PcdGet64 (PcdCPUCoresStackBase) + PcdGet32 (PcdCPUCorePrimaryStackSize) - PcdGet32 (PcdPeiGlobalVariableSize);
|
|
||||||
|
|
||||||
if (VariableSize == 4) {
|
|
||||||
WriteUnaligned32 ((UINT32*)(GlobalVariableBase + VariableOffset), *(UINT32*)Variable);
|
|
||||||
} else if (VariableSize == 8) {
|
|
||||||
WriteUnaligned64 ((UINT64*)(GlobalVariableBase + VariableOffset), *(UINT64*)Variable);
|
|
||||||
} else {
|
|
||||||
CopyMem ((VOID*)(GlobalVariableBase + VariableOffset), Variable, VariableSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID*
|
|
||||||
ArmPlatformGetGlobalVariableAddress (
|
|
||||||
IN UINTN VariableOffset
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
|
|
||||||
|
|
||||||
GlobalVariableBase = PcdGet64 (PcdCPUCoresStackBase) + PcdGet32 (PcdCPUCorePrimaryStackSize) - PcdGet32 (PcdPeiGlobalVariableSize);
|
|
||||||
|
|
||||||
return (VOID*)(GlobalVariableBase + VariableOffset);
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
#/** @file
|
|
||||||
# ArmPlatformGlobalVariableLib library implementation
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
#**/
|
|
||||||
|
|
||||||
[Defines]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = PeiArmPlatformGlobalVariableLib
|
|
||||||
FILE_GUID = 3e03daf2-b7b4-45f7-80b2-12aba043391f
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = ArmPlatformGlobalVariableLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
PeiArmPlatformGlobalVariableLib.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
DebugLib
|
|
||||||
PcdLib
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize
|
|
||||||
|
|
|
@ -1,107 +0,0 @@
|
||||||
/** @file
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011-2015, 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 <Uefi.h>
|
|
||||||
#include <Library/ArmPlatformGlobalVariableLib.h>
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
|
|
||||||
extern UINT64 mSystemMemoryEnd;
|
|
||||||
|
|
||||||
#define IS_XIP() (((UINT32)PcdGet64 (PcdFdBaseAddress) > (UINT32)(mSystemMemoryEnd)) || \
|
|
||||||
((PcdGet64 (PcdFdBaseAddress) + PcdGet32 (PcdFdSize)) < PcdGet64 (PcdSystemMemoryBase)))
|
|
||||||
|
|
||||||
// Declared by ArmPlatformPkg/PrePi Module
|
|
||||||
extern UINTN mGlobalVariableBase;
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformGetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
|
|
||||||
|
|
||||||
if (IS_XIP()) {
|
|
||||||
// In Case of XIP, we expect the Primary Stack at the top of the System Memory
|
|
||||||
// The size must be 64bit aligned to allow 64bit variable to be aligned
|
|
||||||
GlobalVariableBase = mSystemMemoryEnd + 1 - ALIGN_VALUE (PcdGet32 (PcdPeiGlobalVariableSize), 0x8);
|
|
||||||
} else {
|
|
||||||
GlobalVariableBase = mGlobalVariableBase;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (VariableSize == 4) {
|
|
||||||
*(UINT32*)Variable = ReadUnaligned32 ((CONST UINT32*)(GlobalVariableBase + VariableOffset));
|
|
||||||
} else if (VariableSize == 8) {
|
|
||||||
*(UINT64*)Variable = ReadUnaligned64 ((CONST UINT64*)(GlobalVariableBase + VariableOffset));
|
|
||||||
} else {
|
|
||||||
CopyMem (Variable, (VOID*)(GlobalVariableBase + VariableOffset), VariableSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformSetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
|
|
||||||
|
|
||||||
if (IS_XIP()) {
|
|
||||||
// In Case of XIP, we expect the Primary Stack at the top of the System Memory
|
|
||||||
// The size must be 64bit aligned to allow 64bit variable to be aligned
|
|
||||||
GlobalVariableBase = mSystemMemoryEnd + 1 - ALIGN_VALUE (PcdGet32 (PcdPeiGlobalVariableSize), 0x8);
|
|
||||||
} else {
|
|
||||||
GlobalVariableBase = mGlobalVariableBase;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (VariableSize == 4) {
|
|
||||||
WriteUnaligned32 ((UINT32*)(GlobalVariableBase + VariableOffset), *(UINT32*)Variable);
|
|
||||||
} else if (VariableSize == 8) {
|
|
||||||
WriteUnaligned64 ((UINT64*)(GlobalVariableBase + VariableOffset), *(UINT64*)Variable);
|
|
||||||
} else {
|
|
||||||
CopyMem ((VOID*)(GlobalVariableBase + VariableOffset), Variable, VariableSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID*
|
|
||||||
ArmPlatformGetGlobalVariableAddress (
|
|
||||||
IN UINTN VariableOffset
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
|
|
||||||
|
|
||||||
if (IS_XIP()) {
|
|
||||||
// In Case of XIP, we expect the Primary Stack at the top of the System Memory
|
|
||||||
// The size must be 64bit aligned to allow 64bit variable to be aligned
|
|
||||||
GlobalVariableBase = mSystemMemoryEnd + 1 - ALIGN_VALUE (PcdGet32 (PcdPeiGlobalVariableSize), 0x8);
|
|
||||||
} else {
|
|
||||||
GlobalVariableBase = mGlobalVariableBase;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (VOID*)(GlobalVariableBase + VariableOffset);
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
#/** @file
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Ltd. All rights reserved.<BR>
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
#**/
|
|
||||||
|
|
||||||
[Defines]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = PrePiArmPlatformGlobalVariableLib
|
|
||||||
FILE_GUID = 44d59470-e5e6-4811-af00-33bb573a804b
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = ArmPlatformGlobalVariableLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
PrePiArmPlatformGlobalVariableLib.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
ArmPkg/ArmPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
DebugLib
|
|
||||||
PcdLib
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmTokenSpaceGuid.PcdFdSize
|
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize
|
|
||||||
|
|
||||||
[Pcd]
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase
|
|
||||||
gArmTokenSpaceGuid.PcdFdBaseAddress
|
|
|
@ -1,81 +0,0 @@
|
||||||
/** @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.
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <Uefi.h>
|
|
||||||
#include <Library/ArmPlatformGlobalVariableLib.h>
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformGetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdSecGlobalVariableSize));
|
|
||||||
|
|
||||||
GlobalVariableBase = PcdGet32 (PcdCPUCoresSecStackBase) + PcdGet32 (PcdCPUCoreSecPrimaryStackSize) - PcdGet32 (PcdSecGlobalVariableSize);
|
|
||||||
|
|
||||||
if (VariableSize == 4) {
|
|
||||||
*(UINT32*)Variable = ReadUnaligned32 ((CONST UINT32*)(GlobalVariableBase + VariableOffset));
|
|
||||||
} else if (VariableSize == 8) {
|
|
||||||
*(UINT64*)Variable = ReadUnaligned64 ((CONST UINT64*)(GlobalVariableBase + VariableOffset));
|
|
||||||
} else {
|
|
||||||
CopyMem (Variable, (VOID*)(GlobalVariableBase + VariableOffset), VariableSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformSetGlobalVariable (
|
|
||||||
IN UINTN VariableOffset,
|
|
||||||
IN UINTN VariableSize,
|
|
||||||
OUT VOID* Variable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdSecGlobalVariableSize));
|
|
||||||
|
|
||||||
GlobalVariableBase = PcdGet32 (PcdCPUCoresSecStackBase) + PcdGet32 (PcdCPUCoreSecPrimaryStackSize) - PcdGet32 (PcdSecGlobalVariableSize);
|
|
||||||
|
|
||||||
if (VariableSize == 4) {
|
|
||||||
WriteUnaligned32 ((UINT32*)(GlobalVariableBase + VariableOffset), *(UINT32*)Variable);
|
|
||||||
} else if (VariableSize == 8) {
|
|
||||||
WriteUnaligned64 ((UINT64*)(GlobalVariableBase + VariableOffset), *(UINT64*)Variable);
|
|
||||||
} else {
|
|
||||||
CopyMem ((VOID*)(GlobalVariableBase + VariableOffset), Variable, VariableSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID*
|
|
||||||
ArmPlatformGetGlobalVariableAddress (
|
|
||||||
IN UINTN VariableOffset
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN GlobalVariableBase;
|
|
||||||
|
|
||||||
// Ensure the Global Variable Size have been initialized
|
|
||||||
ASSERT (VariableOffset < PcdGet32 (PcdSecGlobalVariableSize));
|
|
||||||
|
|
||||||
GlobalVariableBase = PcdGet32 (PcdCPUCoresSecStackBase) + PcdGet32 (PcdCPUCoreSecPrimaryStackSize) - PcdGet32 (PcdSecGlobalVariableSize);
|
|
||||||
|
|
||||||
return (VOID*)(GlobalVariableBase + VariableOffset);
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
#/** @file
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
#**/
|
|
||||||
|
|
||||||
[Defines]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = SecArmPlatformGlobalVariableLib
|
|
||||||
FILE_GUID = e01f4944-df86-488b-b89b-79e7a53a3a5d
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = ArmPlatformGlobalVariableLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
SecArmPlatformGlobalVariableLib.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
DebugLib
|
|
||||||
PcdLib
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSecGlobalVariableSize
|
|
||||||
|
|
Loading…
Reference in New Issue