summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCurtis Dunham <Curtis.Dunham@arm.com>2016-12-19 11:03:27 -0600
committerCurtis Dunham <Curtis.Dunham@arm.com>2016-12-19 11:03:27 -0600
commita73937b60c0057d006938bca7ec69a8b48450f2c (patch)
tree5d6a51c05403196104f17617f6e8ae725a19c2bb
parent282cf5807d827d5583e5cd5bffae75c4e5efb116 (diff)
downloadgem5-a73937b60c0057d006938bca7ec69a8b48450f2c.tar.xz
arm: compute ID_PFR{0,1} registers
Compute the proper values of the aforementioned registers from the system configuration rather than configuring the values themselves. Change-Id: Ie7685b5d8b5f2dd9d6380b4af74f16d596b2bfd1 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
-rw-r--r--src/arch/arm/ArmISA.py9
-rw-r--r--src/arch/arm/isa.cc13
2 files changed, 9 insertions, 13 deletions
diff --git a/src/arch/arm/ArmISA.py b/src/arch/arm/ArmISA.py
index 146ca6494..fbefe3daf 100644
--- a/src/arch/arm/ArmISA.py
+++ b/src/arch/arm/ArmISA.py
@@ -57,15 +57,6 @@ class ArmISA(SimObject):
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")
diff --git a/src/arch/arm/isa.cc b/src/arch/arm/isa.cc
index c093ceda9..90325346c 100644
--- a/src/arch/arm/isa.cc
+++ b/src/arch/arm/isa.cc
@@ -358,10 +358,6 @@ ISA::clear()
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;
@@ -772,6 +768,15 @@ ISA::readMiscReg(int misc_reg, ThreadContext *tc)
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: