From 27331bff97f4fb36bee3aad8e010576ca641304e Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Tue, 3 Jun 2014 16:39:23 +0000 Subject: [PATCH] ArmPkg: Added new ARM Processor Feature Register definitions Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15552 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPkg/Include/Chipset/AArch64.h | 1 + ArmPkg/Include/Chipset/ArmV7.h | 5 +++++ ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c | 6 +++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ArmPkg/Include/Chipset/AArch64.h b/ArmPkg/Include/Chipset/AArch64.h index 3e5b55bfd7..72bde15afe 100644 --- a/ArmPkg/Include/Chipset/AArch64.h +++ b/ArmPkg/Include/Chipset/AArch64.h @@ -33,6 +33,7 @@ // ID_AA64PFR0 - AArch64 Processor Feature Register 0 definitions #define AARCH64_PFR0_FP (0xF << 16) +#define AARCH64_PFR0_GIC (0xF << 24) // SCR - Secure Configuration Register definitions #define SCR_NS (1 << 0) diff --git a/ArmPkg/Include/Chipset/ArmV7.h b/ArmPkg/Include/Chipset/ArmV7.h index 345554eb28..839a192516 100644 --- a/ArmPkg/Include/Chipset/ArmV7.h +++ b/ArmPkg/Include/Chipset/ArmV7.h @@ -22,6 +22,11 @@ // ARM Interrupt ID in Exception Table #define ARM_ARCH_EXCEPTION_IRQ EXCEPT_ARM_IRQ +// ID_PFR1 - ARM Processor Feature Register 1 definitions +#define ARM_PFR1_SEC (0xFUL << 4) +#define ARM_PFR1_TIMER (0xFUL << 16) +#define ARM_PFR1_GIC (0xFUL << 28) + // Domain Access Control Register #define DOMAIN_ACCESS_CONTROL_MASK(a) (3UL << (2 * (a))) #define DOMAIN_ACCESS_CONTROL_NONE(a) (0UL << (2 * (a))) diff --git a/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c b/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c index 4373e8c2e7..d1cd0c8e6e 100644 --- a/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c +++ b/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c @@ -1,8 +1,8 @@ /** @file Generic ARM implementation of TimerLib.h - 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 which accompanies this distribution. The full text of the license may be found at @@ -46,7 +46,7 @@ TimerConstructor ( #ifdef MDE_CPU_ARM // Only set the frequency for ARMv7. We expect the secure firmware to have already do it // If the security extensions are not implemented set Timer Frequency - if ((ArmReadIdPfr1 () & 0xF0) == 0x0) { + if ((ArmReadIdPfr1 () & ARM_PFR1_SEC) == 0x0) { ArmArchTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz)); } #endif -- 2.39.5