ArmPkg/ArmLib: Added new functions to access ARM coprocessors
Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13253 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
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
|
||||
@@ -70,3 +71,13 @@ ArmSetAuxCrBit (
|
||||
ArmWriteAuxCr(val);
|
||||
}
|
||||
|
||||
VOID
|
||||
EFIAPI
|
||||
ArmUnsetAuxCrBit (
|
||||
IN UINT32 Bits
|
||||
)
|
||||
{
|
||||
UINT32 val = ArmReadAuxCr();
|
||||
val &= ~Bits;
|
||||
ArmWriteAuxCr(val);
|
||||
}
|
||||
|
@@ -32,16 +32,21 @@ GCC_ASM_EXPORT(ArmSetTTBR0)
|
||||
GCC_ASM_EXPORT(ArmSetDomainAccessControl)
|
||||
GCC_ASM_EXPORT(CPSRMaskInsert)
|
||||
GCC_ASM_EXPORT(CPSRRead)
|
||||
GCC_ASM_EXPORT(ArmWriteCPACR)
|
||||
GCC_ASM_EXPORT(ArmReadCpacr)
|
||||
GCC_ASM_EXPORT(ArmWriteCpacr)
|
||||
GCC_ASM_EXPORT(ArmWriteAuxCr)
|
||||
GCC_ASM_EXPORT(ArmReadAuxCr)
|
||||
GCC_ASM_EXPORT(ArmInvalidateTlb)
|
||||
GCC_ASM_EXPORT(ArmUpdateTranslationTableEntry)
|
||||
GCC_ASM_EXPORT(ArmReadNsacr)
|
||||
GCC_ASM_EXPORT(ArmWriteNsacr)
|
||||
GCC_ASM_EXPORT(ArmReadScr)
|
||||
GCC_ASM_EXPORT(ArmWriteScr)
|
||||
GCC_ASM_EXPORT(ArmWriteVMBar)
|
||||
GCC_ASM_EXPORT(ArmReadMVBar)
|
||||
GCC_ASM_EXPORT(ArmWriteMVBar)
|
||||
GCC_ASM_EXPORT(ArmCallWFE)
|
||||
GCC_ASM_EXPORT(ArmCallSEV)
|
||||
GCC_ASM_EXPORT(ArmReadSctlr)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@@ -88,7 +93,11 @@ ASM_PFX(CPSRRead):
|
||||
mrs r0, cpsr
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmWriteCPACR):
|
||||
ASM_PFX(ArmReadCpacr):
|
||||
mrc p15, 0, r0, c1, c0, 2
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmWriteCpacr):
|
||||
mcr p15, 0, r0, c1, c0, 2
|
||||
isb
|
||||
bx lr
|
||||
@@ -136,15 +145,27 @@ ASM_PFX(ArmInvalidateTlb):
|
||||
isb
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmReadNsacr):
|
||||
mrc p15, 0, r0, c1, c1, 2
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmWriteNsacr):
|
||||
mcr p15, 0, r0, c1, c1, 2
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmReadScr):
|
||||
mrc p15, 0, r0, c1, c1, 0
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmWriteScr):
|
||||
mcr p15, 0, r0, c1, c1, 0
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmWriteVMBar):
|
||||
ASM_PFX(ArmReadMVBar):
|
||||
mrc p15, 0, r0, c12, c0, 1
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmWriteMVBar):
|
||||
mcr p15, 0, r0, c12, c0, 1
|
||||
bx lr
|
||||
|
||||
@@ -156,4 +177,8 @@ ASM_PFX(ArmCallSEV):
|
||||
sev
|
||||
bx lr
|
||||
|
||||
ASM_PFX(ArmReadSctlr):
|
||||
mrc p15, 0, R0, c1, c0, 0 @ Read SCTLR into R0 (Read control register configuration data)
|
||||
bx lr
|
||||
|
||||
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
|
||||
|
@@ -1,7 +1,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
// Copyright (c) 2011, ARM Limited. All rights reserved.
|
||||
// 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
|
||||
@@ -32,16 +32,21 @@
|
||||
EXPORT ArmSetDomainAccessControl
|
||||
EXPORT CPSRMaskInsert
|
||||
EXPORT CPSRRead
|
||||
EXPORT ArmWriteCPACR
|
||||
EXPORT ArmReadCpacr
|
||||
EXPORT ArmWriteCpacr
|
||||
EXPORT ArmWriteAuxCr
|
||||
EXPORT ArmReadAuxCr
|
||||
EXPORT ArmInvalidateTlb
|
||||
EXPORT ArmUpdateTranslationTableEntry
|
||||
EXPORT ArmReadNsacr
|
||||
EXPORT ArmWriteNsacr
|
||||
EXPORT ArmReadScr
|
||||
EXPORT ArmWriteScr
|
||||
EXPORT ArmWriteVMBar
|
||||
EXPORT ArmReadMVBar
|
||||
EXPORT ArmWriteMVBar
|
||||
EXPORT ArmCallWFE
|
||||
EXPORT ArmCallSEV
|
||||
EXPORT ArmReadSctlr
|
||||
|
||||
AREA ArmLibSupport, CODE, READONLY
|
||||
|
||||
@@ -88,7 +93,11 @@ CPSRRead
|
||||
mrs r0, cpsr
|
||||
bx lr
|
||||
|
||||
ArmWriteCPACR
|
||||
ArmReadCpacr
|
||||
mrc p15, 0, r0, c1, c0, 2
|
||||
bx lr
|
||||
|
||||
ArmWriteCpacr
|
||||
mcr p15, 0, r0, c1, c0, 2
|
||||
isb
|
||||
bx lr
|
||||
@@ -136,15 +145,27 @@ ArmInvalidateTlb
|
||||
isb
|
||||
bx lr
|
||||
|
||||
ArmReadNsacr
|
||||
mrc p15, 0, r0, c1, c1, 2
|
||||
bx lr
|
||||
|
||||
ArmWriteNsacr
|
||||
mcr p15, 0, r0, c1, c1, 2
|
||||
bx lr
|
||||
|
||||
ArmReadScr
|
||||
mrc p15, 0, r0, c1, c1, 0
|
||||
bx lr
|
||||
|
||||
ArmWriteScr
|
||||
mcr p15, 0, r0, c1, c1, 0
|
||||
bx lr
|
||||
|
||||
ArmWriteVMBar
|
||||
ArmReadMVBar
|
||||
mrc p15, 0, r0, c12, c0, 1
|
||||
bx lr
|
||||
|
||||
ArmWriteMVBar
|
||||
mcr p15, 0, r0, c12, c0, 1
|
||||
bx lr
|
||||
|
||||
@@ -156,4 +177,8 @@ ArmCallSEV
|
||||
sev
|
||||
blx lr
|
||||
|
||||
ArmReadSctlr
|
||||
mrc p15, 0, R0, c1, c0, 0 // Read SCTLR into R0 (Read control register configuration data)
|
||||
bx lr
|
||||
|
||||
END
|
||||
|
Reference in New Issue
Block a user