arm: provide correct timer availability in ID_PFR1 register
authorCurtis Dunham <Curtis.Dunham@arm.com>
Mon, 19 Dec 2016 17:03:28 +0000 (11:03 -0600)
committerCurtis Dunham <Curtis.Dunham@arm.com>
Mon, 19 Dec 2016 17:03:28 +0000 (11:03 -0600)
Change-Id: Id4cd839c12b70616017a5830e3f9bbb59b0f97ba
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
src/arch/arm/isa.cc

index 74ea91a8d0dbe9f77457ac0c5b6fa162af620b9b..4f099bf90cc3f1270a0803775c2ceee3b0a48592 100644 (file)
@@ -770,10 +770,13 @@ ISA::readMiscReg(int misc_reg, ThreadContext *tc)
         // !ThumbEE | !Jazelle | Thumb | ARM
         return 0x00000031;
       case MISCREG_ID_PFR1:
-        // !Timer | Virti | !M Profile | TrustZone | ARMv4
-        return 0x00000001
-             | (haveSecurity       ? 0x00000010 : 0x0)
-             | (haveVirtualization ? 0x00001000 : 0x0);
+        {   // Timer | Virti | !M Profile | TrustZone | ARMv4
+            bool haveTimer = (system->getGenericTimer() != NULL);
+            return 0x00000001
+                 | (haveSecurity       ? 0x00000010 : 0x0)
+                 | (haveVirtualization ? 0x00001000 : 0x0)
+                 | (haveTimer          ? 0x00010000 : 0x0);
+        }
       case MISCREG_ID_AA64PFR0_EL1:
         return 0x0000000000000002   // AArch{64,32} supported at EL0
              | 0x0000000000000020                             // EL1