sim, arm: add checkpoint upgrader for d02b45a5
The insertion of CONTEXTIDR_EL2 in the ARM miscellaneous registers obsoletes old checkpoints.
This commit is contained in:
parent
7c4eb3b4d8
commit
31825bd988
2 changed files with 14 additions and 1 deletions
|
@ -59,7 +59,7 @@ class EventQueue;
|
||||||
* SimObject shouldn't cause the version number to increase, only changes to
|
* SimObject shouldn't cause the version number to increase, only changes to
|
||||||
* existing objects such as serializing/unserializing more state, changing sizes
|
* existing objects such as serializing/unserializing more state, changing sizes
|
||||||
* of serialized arrays, etc. */
|
* of serialized arrays, etc. */
|
||||||
static const uint64_t gem5CheckpointVersion = 0x000000000000000d;
|
static const uint64_t gem5CheckpointVersion = 0x000000000000000e;
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void paramOut(std::ostream &os, const std::string &name, const T ¶m);
|
void paramOut(std::ostream &os, const std::string &name, const T ¶m);
|
||||||
|
|
|
@ -602,6 +602,18 @@ def from_C(cpt):
|
||||||
cpt.set(sec, 'intRegs', ' '.join(intRegs))
|
cpt.set(sec, 'intRegs', ' '.join(intRegs))
|
||||||
cpt.set(sec, 'ccRegs', ' '.join(ccRegs))
|
cpt.set(sec, 'ccRegs', ' '.join(ccRegs))
|
||||||
|
|
||||||
|
# Checkpoint version E adds the ARM CONTEXTIDR_EL2 miscreg.
|
||||||
|
def from_D(cpt):
|
||||||
|
if cpt.get('root','isa') == 'arm':
|
||||||
|
for sec in cpt.sections():
|
||||||
|
import re
|
||||||
|
# Search for all ISA sections
|
||||||
|
if re.search('.*sys.*\.cpu.*\.isa$', sec):
|
||||||
|
miscRegs = cpt.get(sec, 'miscRegs').split()
|
||||||
|
# CONTEXTIDR_EL2 defaults to 0b11111100000000000001
|
||||||
|
miscRegs[599:599] = [0xFC001]
|
||||||
|
cpt.set(sec, 'miscRegs', ' '.join(str(x) for x in miscRegs))
|
||||||
|
|
||||||
migrations = []
|
migrations = []
|
||||||
migrations.append(from_0)
|
migrations.append(from_0)
|
||||||
migrations.append(from_1)
|
migrations.append(from_1)
|
||||||
|
@ -616,6 +628,7 @@ migrations.append(from_9)
|
||||||
migrations.append(from_A)
|
migrations.append(from_A)
|
||||||
migrations.append(from_B)
|
migrations.append(from_B)
|
||||||
migrations.append(from_C)
|
migrations.append(from_C)
|
||||||
|
migrations.append(from_D)
|
||||||
|
|
||||||
verbose_print = False
|
verbose_print = False
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue