changeset 5e9530779f60 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=5e9530779f60
description:
ARM: Add two unimplemented miscellaneous registers.
Adds MISCREG_ID_MMFR2 and removes break on access to MISCREG_CLIDR. Both
registers now return values that are consistent with current ARM
implementations.
diffstat:
src/arch/arm/isa.cc | 11 ++++++++---
src/arch/arm/miscregs.hh | 6 +++---
2 files changed, 11 insertions(+), 6 deletions(-)
diffs (70 lines):
diff -r 82ff928182c5 -r 5e9530779f60 src/arch/arm/isa.cc
--- a/src/arch/arm/isa.cc Mon Jul 11 19:57:10 2011 -0500
+++ b/src/arch/arm/isa.cc Fri Jul 15 11:53:34 2011 -0500
@@ -186,12 +186,19 @@
case MISCREG_MPIDR:
return tc->cpuId();
break;
+ case MISCREG_ID_MMFR0:
+ return 0x03; // VMSAv7 support
+ case MISCREG_ID_MMFR2:
+ return 0x01230000; // no HW access | WFI stalling | ISB and DSB
+ // | all TLB maintenance | no Harvard
case MISCREG_ID_MMFR3:
return 0xF0102211; // SuperSec | Coherent TLB | Bcast Maint |
// BP Maint | Cache Maint Set/way | Cache Maint MVA
case MISCREG_CLIDR:
warn_once("The clidr register always reports 0 caches.\n");
- break;
+ warn_once("clidr LoUIS field of 0b001 to match current "
+ "ARM implementations.\n");
+ return 0x00200000;
case MISCREG_CCSIDR:
warn_once("The ccsidr register isn't implemented and "
"always reads as 0.\n");
@@ -203,8 +210,6 @@
case MISCREG_ID_PFR1:
warn("reading unimplmented register ID_PFR1");
return 0;
- case MISCREG_ID_MMFR0:
- return 0x03; //VMSAz7
case MISCREG_CTR:
return 0x86468006; // V7, 64 byte cache line, load/exclusive is exact
case MISCREG_ACTLR:
diff -r 82ff928182c5 -r 5e9530779f60 src/arch/arm/miscregs.hh
--- a/src/arch/arm/miscregs.hh Mon Jul 11 19:57:10 2011 -0500
+++ b/src/arch/arm/miscregs.hh Fri Jul 15 11:53:34 2011 -0500
@@ -150,6 +150,7 @@
MISCREG_V2POWUR,
MISCREG_V2POWUW,
MISCREG_ID_MMFR0,
+ MISCREG_ID_MMFR2,
MISCREG_ID_MMFR3,
MISCREG_ACTLR,
MISCREG_PMCR,
@@ -181,7 +182,6 @@
MISCREG_ID_DFR0,
MISCREG_ID_AFR0,
MISCREG_ID_MMFR1,
- MISCREG_ID_MMFR2,
MISCREG_AIDR,
MISCREG_ADFSR,
MISCREG_AIFSR,
@@ -231,7 +231,7 @@
"scr", "sder", "par",
"v2pcwpr", "v2pcwpw", "v2pcwur", "v2pcwuw",
"v2powpr", "v2powpw", "v2powur", "v2powuw",
- "id_mmfr0", "id_mmfr3", "actlr", "pmcr", "pmccntr",
+ "id_mmfr0", "id_mmfr2", "id_mmfr3", "actlr", "pmcr", "pmccntr",
"pmcntenset", "pmcntenclr", "pmovsr",
"pmswinc", "pmselr", "pmceid0",
"pmceid1", "pmc_other", "pmxevcntr",
@@ -241,7 +241,7 @@
// Unimplemented below
"tcmtr",
"id_dfr0", "id_afr0",
- "id_mmfr1", "id_mmfr2",
+ "id_mmfr1",
"aidr", "adfsr", "aifsr",
"dcimvac", "dcisw", "mccsw",
"dccmvau",
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev