IN UINT32 Bits
);
+VOID
+EFIAPI
+ArmUnsetAuxCrBit (
+ IN UINT32 Bits
+ );
+
VOID
EFIAPI
ArmCallSEV (
VOID
);
+VOID
+EFIAPI
ArmCallWFI (
VOID
);
VOID
);
+UINT32
+EFIAPI
+ArmReadCpacr (
+ VOID
+ );
+
VOID
EFIAPI
-ArmWriteCPACR (
+ArmWriteCpacr (
IN UINT32 Access
);
VOID
);
+UINT32
+EFIAPI
+ArmReadNsacr (
+ VOID
+ );
+
VOID
EFIAPI
ArmWriteNsacr (
IN UINT32 SetWayFormat
);
+UINT32
+EFIAPI
+ArmReadScr (
+ VOID
+ );
+
VOID
EFIAPI
ArmWriteScr (
IN UINT32 SetWayFormat
);
+UINT32
+EFIAPI
+ArmReadMVBar (
+ VOID
+ );
+
VOID
EFIAPI
-ArmWriteVMBar (
+ArmWriteMVBar (
IN UINT32 VectorMonitorBase
);
+UINT32
+EFIAPI
+ArmReadSctlr (
+ VOID
+ );
+
#endif // __ARM_LIB__
GCC_ASM_EXPORT (ArmDataMemoryBarrier)\r
GCC_ASM_EXPORT (ArmDataSyncronizationBarrier)\r
GCC_ASM_EXPORT (ArmInstructionSynchronizationBarrier)\r
+GCC_ASM_EXPORT (ArmReadVBar)\r
GCC_ASM_EXPORT (ArmWriteVBar)\r
GCC_ASM_EXPORT (ArmEnableVFP)\r
GCC_ASM_EXPORT (ArmCallWFI)\r
isb\r
bx LR\r
\r
+ASM_PFX(ArmReadVBar):\r
+ # Set the Address of the Vector Table in the VBAR register\r
+ mrc p15, 0, r0, c12, c0, 0\r
+ bx lr\r
+\r
ASM_PFX(ArmWriteVBar):\r
# Set the Address of the Vector Table in the VBAR register\r
mcr p15, 0, r0, c12, c0, 0 \r
EXPORT ArmDataMemoryBarrier\r
EXPORT ArmDataSyncronizationBarrier\r
EXPORT ArmInstructionSynchronizationBarrier\r
+ EXPORT ArmReadVBar\r
EXPORT ArmWriteVBar\r
EXPORT ArmEnableVFP\r
EXPORT ArmCallWFI\r
isb\r
bx LR\r
\r
+ArmReadVBar\r
+ // Set the Address of the Vector Table in the VBAR register\r
+ mrc p15, 0, r0, c12, c0, 0\r
+ bx lr\r
+\r
ArmWriteVBar\r
// Set the Address of the Vector Table in the VBAR register\r
mcr p15, 0, r0, c12, c0, 0 \r
/** @file\r
\r
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+ Copyright (c) 2011 - 2012, ARM Ltd. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
ArmWriteAuxCr(val);\r
}\r
\r
+VOID\r
+EFIAPI\r
+ArmUnsetAuxCrBit (\r
+ IN UINT32 Bits\r
+ )\r
+{\r
+ UINT32 val = ArmReadAuxCr();\r
+ val &= ~Bits;\r
+ ArmWriteAuxCr(val);\r
+}\r
GCC_ASM_EXPORT(ArmSetDomainAccessControl)\r
GCC_ASM_EXPORT(CPSRMaskInsert)\r
GCC_ASM_EXPORT(CPSRRead)\r
-GCC_ASM_EXPORT(ArmWriteCPACR)\r
+GCC_ASM_EXPORT(ArmReadCpacr)\r
+GCC_ASM_EXPORT(ArmWriteCpacr)\r
GCC_ASM_EXPORT(ArmWriteAuxCr)\r
GCC_ASM_EXPORT(ArmReadAuxCr)\r
GCC_ASM_EXPORT(ArmInvalidateTlb)\r
GCC_ASM_EXPORT(ArmUpdateTranslationTableEntry)\r
+GCC_ASM_EXPORT(ArmReadNsacr)\r
GCC_ASM_EXPORT(ArmWriteNsacr)\r
+GCC_ASM_EXPORT(ArmReadScr)\r
GCC_ASM_EXPORT(ArmWriteScr)\r
-GCC_ASM_EXPORT(ArmWriteVMBar)\r
+GCC_ASM_EXPORT(ArmReadMVBar)\r
+GCC_ASM_EXPORT(ArmWriteMVBar)\r
GCC_ASM_EXPORT(ArmCallWFE)\r
GCC_ASM_EXPORT(ArmCallSEV)\r
+GCC_ASM_EXPORT(ArmReadSctlr)\r
\r
#------------------------------------------------------------------------------\r
\r
mrs r0, cpsr\r
bx lr\r
\r
-ASM_PFX(ArmWriteCPACR):\r
+ASM_PFX(ArmReadCpacr):\r
+ mrc p15, 0, r0, c1, c0, 2\r
+ bx lr\r
+\r
+ASM_PFX(ArmWriteCpacr):\r
mcr p15, 0, r0, c1, c0, 2\r
isb\r
bx lr\r
isb\r
bx lr\r
\r
+ASM_PFX(ArmReadNsacr):\r
+ mrc p15, 0, r0, c1, c1, 2\r
+ bx lr\r
+\r
ASM_PFX(ArmWriteNsacr):\r
mcr p15, 0, r0, c1, c1, 2\r
bx lr\r
\r
+ASM_PFX(ArmReadScr):\r
+ mrc p15, 0, r0, c1, c1, 0\r
+ bx lr\r
+\r
ASM_PFX(ArmWriteScr):\r
mcr p15, 0, r0, c1, c1, 0\r
bx lr\r
\r
-ASM_PFX(ArmWriteVMBar):\r
+ASM_PFX(ArmReadMVBar):\r
+ mrc p15, 0, r0, c12, c0, 1\r
+ bx lr\r
+\r
+ASM_PFX(ArmWriteMVBar):\r
mcr p15, 0, r0, c12, c0, 1\r
bx lr\r
\r
sev\r
bx lr\r
\r
+ASM_PFX(ArmReadSctlr):\r
+ mrc p15, 0, R0, c1, c0, 0 @ Read SCTLR into R0 (Read control register configuration data)\r
+ bx lr\r
+\r
ASM_FUNCTION_REMOVE_IF_UNREFERENCED\r
//------------------------------------------------------------------------------ \r
//\r
// Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
-// Copyright (c) 2011, ARM Limited. All rights reserved.\r
+// Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
//\r
// This program and the accompanying materials\r
// are licensed and made available under the terms and conditions of the BSD License\r
EXPORT ArmSetDomainAccessControl\r
EXPORT CPSRMaskInsert\r
EXPORT CPSRRead\r
- EXPORT ArmWriteCPACR\r
+ EXPORT ArmReadCpacr\r
+ EXPORT ArmWriteCpacr\r
EXPORT ArmWriteAuxCr\r
EXPORT ArmReadAuxCr\r
EXPORT ArmInvalidateTlb\r
EXPORT ArmUpdateTranslationTableEntry\r
+ EXPORT ArmReadNsacr\r
EXPORT ArmWriteNsacr\r
+ EXPORT ArmReadScr\r
EXPORT ArmWriteScr\r
- EXPORT ArmWriteVMBar\r
+ EXPORT ArmReadMVBar\r
+ EXPORT ArmWriteMVBar\r
EXPORT ArmCallWFE\r
EXPORT ArmCallSEV\r
+ EXPORT ArmReadSctlr\r
\r
AREA ArmLibSupport, CODE, READONLY\r
\r
mrs r0, cpsr\r
bx lr\r
\r
-ArmWriteCPACR\r
+ArmReadCpacr\r
+ mrc p15, 0, r0, c1, c0, 2\r
+ bx lr\r
+\r
+ArmWriteCpacr\r
mcr p15, 0, r0, c1, c0, 2\r
isb\r
bx lr\r
isb\r
bx lr\r
\r
+ArmReadNsacr\r
+ mrc p15, 0, r0, c1, c1, 2\r
+ bx lr\r
+\r
ArmWriteNsacr\r
mcr p15, 0, r0, c1, c1, 2\r
bx lr\r
\r
+ArmReadScr\r
+ mrc p15, 0, r0, c1, c1, 0\r
+ bx lr\r
+\r
ArmWriteScr\r
mcr p15, 0, r0, c1, c1, 0\r
bx lr\r
\r
-ArmWriteVMBar\r
+ArmReadMVBar\r
+ mrc p15, 0, r0, c12, c0, 1\r
+ bx lr\r
+\r
+ArmWriteMVBar\r
mcr p15, 0, r0, c12, c0, 1\r
bx lr\r
\r
sev\r
blx lr\r
\r
+ArmReadSctlr\r
+ mrc p15, 0, R0, c1, c0, 0 // Read SCTLR into R0 (Read control register configuration data)\r
+ bx lr\r
+\r
END\r
/** @file\r
* Main file supporting the Monitor World on ARM PLatforms\r
*\r
-* Copyright (c) 2011, ARM Limited. All rights reserved.\r
+* Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
*\r
* This program and the accompanying materials\r
* are licensed and made available under the terms and conditions of the BSD License\r
ASSERT (IS_ALIGNED(MonitorVectorTable, BIT5));\r
\r
// Write the Monitor Mode Vector Table Address\r
- ArmWriteVMBar ((UINT32) &MonitorVectorTable);\r
+ ArmWriteMVBar ((UINT32) &MonitorVectorTable);\r
}\r
}
// Enable Full Access to CoProcessors
- ArmWriteCPACR (CPACR_CP_FULL_ACCESS);
+ ArmWriteCpacr (CPACR_CP_FULL_ACCESS);
if (IS_PRIMARY_CORE(MpId)) {
// Initialize peripherals that must be done at the early stage