Hi ARM expert,
In ARM V7 RM, I saw "This chapter describes the implementation of the ARM Generic Timer as an OPTIONAL extension to an ARMv7-A or ARMv7-R processor implementation.". So, I think it means that a SoC implementation can choice to involve the system timer or not.
My question is how software can get the information about if the system timer is implemented or not at run time?
The architecture provides a number of feature registers, which software can use to determine which extensions are implemented. For the Generic Timer, the feature register is ID_PFR1, bits 19:16. You find the register description in section B4.1.94 of the ARMv7-A/R Architecture Reference Manual (Rev C.c).
Hi Martin,
Thanks a lot, as you mentioned, i find the ID_PFR1 in ARMV7 RM.
One more question, due to ARMV8 RM, the ID_PFR1_EL1 is only for AARCH32, Is there a register can be used to check if generic timer is implemented on ARMV8 AARCH64?
The Generic Timer is no longer optional in ARMv8-A.
The AArch32 register still has the field for backwards compatibility, but if you look at the ARMv8-A description it says that 0001 (Generic Timer implemented) is the the only permitted value.
As AArch64 was only introduced in ARMv8, and in ARMv8 it's mandatory, there isn't need for an AArch64 feature register.
Thanks Martin, I saw that!!
View all questions in Cortex-A / A-Profile forum