ArmPkg/ArmLib: Added ArmReadMidr()

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15240 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Olivier Martin 2014-02-12 15:14:41 +00:00 committed by oliviermartin
parent 226d5572ad
commit 9401d6f4b9
5 changed files with 29 additions and 4 deletions

View File

@ -535,6 +535,12 @@ ArmReadMpidr (
VOID VOID
); );
UINTN
EFIAPI
ArmReadMidr (
VOID
);
UINT32 UINT32
EFIAPI EFIAPI
ArmReadCpacr ( ArmReadCpacr (

View File

@ -1,7 +1,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# #
# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> # Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
# Copyright (c) 2011 - 2013, ARM Limited. All rights reserved. # Copyright (c) 2011 - 2014, ARM Limited. All rights reserved.
# #
# This program and the accompanying materials # This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License # are licensed and made available under the terms and conditions of the BSD License
@ -50,6 +50,7 @@ GCC_ASM_EXPORT (ArmEnableVFP)
GCC_ASM_EXPORT (ArmCallWFI) GCC_ASM_EXPORT (ArmCallWFI)
GCC_ASM_EXPORT (ArmInvalidateInstructionAndDataTlb) GCC_ASM_EXPORT (ArmInvalidateInstructionAndDataTlb)
GCC_ASM_EXPORT (ArmReadMpidr) GCC_ASM_EXPORT (ArmReadMpidr)
GCC_ASM_EXPORT (ArmReadMidr)
GCC_ASM_EXPORT (ArmReadTpidrurw) GCC_ASM_EXPORT (ArmReadTpidrurw)
GCC_ASM_EXPORT (ArmWriteTpidrurw) GCC_ASM_EXPORT (ArmWriteTpidrurw)
GCC_ASM_EXPORT (ArmIsArchTimerImplemented) GCC_ASM_EXPORT (ArmIsArchTimerImplemented)
@ -457,6 +458,9 @@ ASM_PFX(ArmReadMpidr):
mrs x0, mpidr_el1 // read EL1 MPIDR mrs x0, mpidr_el1 // read EL1 MPIDR
ret ret
ASM_PFX(ArmReadMidr):
mrs x0, midr_el1 // Read Main ID Register
ret
// Keep old function names for C compatibilty for now. Change later? // Keep old function names for C compatibilty for now. Change later?
ASM_PFX(ArmReadTpidrurw): ASM_PFX(ArmReadTpidrurw):

View File

@ -43,6 +43,7 @@ GCC_ASM_EXPORT(ArmSetHighVectors)
GCC_ASM_EXPORT(ArmIsMpCore) GCC_ASM_EXPORT(ArmIsMpCore)
GCC_ASM_EXPORT(ArmCallWFI) GCC_ASM_EXPORT(ArmCallWFI)
GCC_ASM_EXPORT(ArmReadMpidr) GCC_ASM_EXPORT(ArmReadMpidr)
GCC_ASM_EXPORT(ArmReadMidr)
GCC_ASM_EXPORT(ArmUpdateTranslationTableEntry) GCC_ASM_EXPORT(ArmUpdateTranslationTableEntry)
GCC_ASM_EXPORT(ArmEnableFiq) GCC_ASM_EXPORT(ArmEnableFiq)
GCC_ASM_EXPORT(ArmDisableFiq) GCC_ASM_EXPORT(ArmDisableFiq)
@ -216,6 +217,10 @@ ASM_PFX(ArmReadMpidr):
mrc p15, 0, r0, c0, c0, 5 @ read MPIDR mrc p15, 0, r0, c0, c0, 5 @ read MPIDR
bx lr bx lr
ASM_PFX(ArmReadMpidr):
mrc p15, 0, r0, c0, c0, 0 @ Read Main ID Register
bx lr
ASM_PFX(ArmEnableFiq): ASM_PFX(ArmEnableFiq):
mrs R0,CPSR mrs R0,CPSR
bic R0,R0,#0x40 @Enable FIQ interrupts bic R0,R0,#0x40 @Enable FIQ interrupts

View File

@ -1,7 +1,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# #
# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> # Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
# Copyright (c) 2011, ARM Limited. All rights reserved. # Copyright (c) 2011 - 2014, ARM Limited. All rights reserved.
# #
# This program and the accompanying materials # This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License # are licensed and made available under the terms and conditions of the BSD License
@ -49,6 +49,7 @@ GCC_ASM_EXPORT (ArmCallWFI)
GCC_ASM_EXPORT (ArmReadCbar) GCC_ASM_EXPORT (ArmReadCbar)
GCC_ASM_EXPORT (ArmInvalidateInstructionAndDataTlb) GCC_ASM_EXPORT (ArmInvalidateInstructionAndDataTlb)
GCC_ASM_EXPORT (ArmReadMpidr) GCC_ASM_EXPORT (ArmReadMpidr)
GCC_ASM_EXPORT (ArmReadMidr)
GCC_ASM_EXPORT (ArmReadTpidrurw) GCC_ASM_EXPORT (ArmReadTpidrurw)
GCC_ASM_EXPORT (ArmWriteTpidrurw) GCC_ASM_EXPORT (ArmWriteTpidrurw)
GCC_ASM_EXPORT (ArmIsArchTimerImplemented) GCC_ASM_EXPORT (ArmIsArchTimerImplemented)
@ -377,6 +378,10 @@ ASM_PFX(ArmReadMpidr):
mrc p15, 0, r0, c0, c0, 5 @ read MPIDR mrc p15, 0, r0, c0, c0, 5 @ read MPIDR
bx lr bx lr
ASM_PFX(ArmReadMidr):
mrc p15, 0, r0, c0, c0, 0 @ Read Main ID Register
bx lr
ASM_PFX(ArmReadTpidrurw): ASM_PFX(ArmReadTpidrurw):
mrc p15, 0, r0, c13, c0, 2 @ read TPIDRURW mrc p15, 0, r0, c13, c0, 2 @ read TPIDRURW
bx lr bx lr

View File

@ -1,7 +1,7 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// //
// Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> // Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
// Copyright (c) 2011, ARM Limited. All rights reserved. // Copyright (c) 2011 - 2014, ARM Limited. All rights reserved.
// //
// This program and the accompanying materials // This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License // are licensed and made available under the terms and conditions of the BSD License
@ -46,6 +46,7 @@
EXPORT ArmReadCbar EXPORT ArmReadCbar
EXPORT ArmInvalidateInstructionAndDataTlb EXPORT ArmInvalidateInstructionAndDataTlb
EXPORT ArmReadMpidr EXPORT ArmReadMpidr
EXPORT ArmReadMidr
EXPORT ArmReadTpidrurw EXPORT ArmReadTpidrurw
EXPORT ArmWriteTpidrurw EXPORT ArmWriteTpidrurw
EXPORT ArmIsArchTimerImplemented EXPORT ArmIsArchTimerImplemented
@ -371,6 +372,10 @@ ArmReadMpidr
mrc p15, 0, r0, c0, c0, 5 ; read MPIDR mrc p15, 0, r0, c0, c0, 5 ; read MPIDR
bx lr bx lr
ArmReadMidr
mrc p15, 0, r0, c0, c0, 0 ; Read Main ID Register
bx lr
ArmReadTpidrurw ArmReadTpidrurw
mrc p15, 0, r0, c13, c0, 2 ; read TPIDRURW mrc p15, 0, r0, c13, c0, 2 ; read TPIDRURW
bx lr bx lr