midr = Param.UInt32(0x410fc0f0, "MIDR value")
- # See section B4.1.93 - B4.1.94 of the ARM ARM
- #
- # !ThumbEE | !Jazelle | Thumb | ARM
- # Note: ThumbEE is disabled for now since we don't support CP14
- # config registers and jumping to ThumbEE vectors
- id_pfr0 = Param.UInt32(0x00000031, "Processor Feature Register 0")
- # !Timer | Virti | !M Profile | TrustZone | ARMv4
- id_pfr1 = Param.UInt32(0x00001011, "Processor Feature Register 1")
-
# See section B4.1.89 - B4.1.92 of the ARM ARM
# VMSAv7 support
id_mmfr0 = Param.UInt32(0x10201103, "Memory Model Feature Register 0")
miscRegs[MISCREG_CPACR] = 0;
-
- miscRegs[MISCREG_ID_PFR0] = p->id_pfr0;
- miscRegs[MISCREG_ID_PFR1] = p->id_pfr1;
-
miscRegs[MISCREG_ID_MMFR0] = p->id_mmfr0;
miscRegs[MISCREG_ID_MMFR1] = p->id_mmfr1;
miscRegs[MISCREG_ID_MMFR2] = p->id_mmfr2;
case MISCREG_HSCTLR:
return (readMiscRegNoEffect(misc_reg) & 0x32CD183F) | 0x30C50830;
+ case MISCREG_ID_PFR0:
+ // !ThumbEE | !Jazelle | Thumb | ARM
+ return 0x00000031;
+ case MISCREG_ID_PFR1:
+ // !Timer | Virti | !M Profile | TrustZone | ARMv4
+ return 0x00000001
+ | (haveSecurity ? 0x00000010 : 0x0)
+ | (haveVirtualization ? 0x00001000 : 0x0);
+
// Generic Timer registers
case MISCREG_CNTFRQ ... MISCREG_CNTHP_CTL:
case MISCREG_CNTPCT ... MISCREG_CNTHP_CVAL: