From de77d14a0a04312d95b691261eccae0933d628fb Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Tue, 25 Mar 2014 16:21:29 +0000 Subject: [PATCH 03/14] ArmPkg: Added new ARM Processor Feature Register definitions Change-Id: Ib350b5b33e9c2fd7a2619b36b976073e7d14f5b0 --- ArmPkg/Include/Chipset/AArch64.h | 1 + ArmPkg/Include/Chipset/ArmV7.h | 5 +++++ ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ArmPkg/Include/Chipset/AArch64.h b/ArmPkg/Include/Chipset/AArch64.h index 3e5b55b..72bde15 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 345554e..839a192 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 4373e8c..2e88f1b 100644 --- a/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c +++ b/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c @@ -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 -- 1.8.5