diff --git a/ArmPkg/Include/Library/ArmLib.h b/ArmPkg/Include/Library/ArmLib.h index b874b29c67..1726984f5b 100644 --- a/ArmPkg/Include/Library/ArmLib.h +++ b/ArmPkg/Include/Library/ArmLib.h @@ -535,6 +535,12 @@ ArmReadMpidr ( VOID ); +UINTN +EFIAPI +ArmReadMidr ( + VOID + ); + UINT32 EFIAPI ArmReadCpacr ( diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S index 29251c9961..5901ffacd4 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S @@ -1,7 +1,7 @@ #------------------------------------------------------------------------------ # # Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.
-# Copyright (c) 2011 - 2013, ARM Limited. All rights reserved. +# Copyright (c) 2011 - 2014, 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 @@ -50,6 +50,7 @@ GCC_ASM_EXPORT (ArmEnableVFP) GCC_ASM_EXPORT (ArmCallWFI) GCC_ASM_EXPORT (ArmInvalidateInstructionAndDataTlb) GCC_ASM_EXPORT (ArmReadMpidr) +GCC_ASM_EXPORT (ArmReadMidr) GCC_ASM_EXPORT (ArmReadTpidrurw) GCC_ASM_EXPORT (ArmWriteTpidrurw) GCC_ASM_EXPORT (ArmIsArchTimerImplemented) @@ -457,6 +458,9 @@ ASM_PFX(ArmReadMpidr): mrs x0, mpidr_el1 // read EL1 MPIDR ret +ASM_PFX(ArmReadMidr): + mrs x0, midr_el1 // Read Main ID Register + ret // Keep old function names for C compatibilty for now. Change later? ASM_PFX(ArmReadTpidrurw): diff --git a/ArmPkg/Library/ArmLib/Arm11/Arm11Support.S b/ArmPkg/Library/ArmLib/Arm11/Arm11Support.S index 2f4be7e93f..e18023e6ae 100644 --- a/ArmPkg/Library/ArmLib/Arm11/Arm11Support.S +++ b/ArmPkg/Library/ArmLib/Arm11/Arm11Support.S @@ -43,6 +43,7 @@ GCC_ASM_EXPORT(ArmSetHighVectors) GCC_ASM_EXPORT(ArmIsMpCore) GCC_ASM_EXPORT(ArmCallWFI) GCC_ASM_EXPORT(ArmReadMpidr) +GCC_ASM_EXPORT(ArmReadMidr) GCC_ASM_EXPORT(ArmUpdateTranslationTableEntry) GCC_ASM_EXPORT(ArmEnableFiq) GCC_ASM_EXPORT(ArmDisableFiq) @@ -216,6 +217,10 @@ ASM_PFX(ArmReadMpidr): mrc p15, 0, r0, c0, c0, 5 @ read MPIDR bx lr +ASM_PFX(ArmReadMpidr): + mrc p15, 0, r0, c0, c0, 0 @ Read Main ID Register + bx lr + ASM_PFX(ArmEnableFiq): mrs R0,CPSR bic R0,R0,#0x40 @Enable FIQ interrupts diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S index ee6eb41709..d402118ce2 100644 --- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S +++ b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S @@ -1,7 +1,7 @@ #------------------------------------------------------------------------------ # # Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.
-# Copyright (c) 2011, ARM Limited. All rights reserved. +# Copyright (c) 2011 - 2014, 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 @@ -49,6 +49,7 @@ GCC_ASM_EXPORT (ArmCallWFI) GCC_ASM_EXPORT (ArmReadCbar) GCC_ASM_EXPORT (ArmInvalidateInstructionAndDataTlb) GCC_ASM_EXPORT (ArmReadMpidr) +GCC_ASM_EXPORT (ArmReadMidr) GCC_ASM_EXPORT (ArmReadTpidrurw) GCC_ASM_EXPORT (ArmWriteTpidrurw) GCC_ASM_EXPORT (ArmIsArchTimerImplemented) @@ -376,7 +377,11 @@ ASM_PFX(ArmInvalidateInstructionAndDataTlb): ASM_PFX(ArmReadMpidr): mrc p15, 0, r0, c0, c0, 5 @ read MPIDR bx lr - + +ASM_PFX(ArmReadMidr): + mrc p15, 0, r0, c0, c0, 0 @ Read Main ID Register + bx lr + ASM_PFX(ArmReadTpidrurw): mrc p15, 0, r0, c13, c0, 2 @ read TPIDRURW bx lr diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm index e75438844d..8eee50dcfd 100644 --- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm +++ b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.
-// Copyright (c) 2011, ARM Limited. All rights reserved. +// Copyright (c) 2011 - 2014, 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 @@ -46,6 +46,7 @@ EXPORT ArmReadCbar EXPORT ArmInvalidateInstructionAndDataTlb EXPORT ArmReadMpidr + EXPORT ArmReadMidr EXPORT ArmReadTpidrurw EXPORT ArmWriteTpidrurw EXPORT ArmIsArchTimerImplemented @@ -371,6 +372,10 @@ ArmReadMpidr mrc p15, 0, r0, c0, c0, 5 ; read MPIDR bx lr +ArmReadMidr + mrc p15, 0, r0, c0, c0, 0 ; Read Main ID Register + bx lr + ArmReadTpidrurw mrc p15, 0, r0, c13, c0, 2 ; read TPIDRURW bx lr