summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sim/clock_domain.cc7
-rw-r--r--src/sim/clock_domain.hh5
2 files changed, 11 insertions, 1 deletions
diff --git a/src/sim/clock_domain.cc b/src/sim/clock_domain.cc
index 60c688b1a..1ccee7f1d 100644
--- a/src/sim/clock_domain.cc
+++ b/src/sim/clock_domain.cc
@@ -147,6 +147,11 @@ SrcClockDomain::perfLevel(PerfLevel perf_level)
_perfLevel = perf_level;
+ signalPerfLevelUpdate();
+}
+
+void SrcClockDomain::signalPerfLevelUpdate()
+{
// Signal the voltage domain that we have changed our perf level so that the
// voltage domain can recompute its performance level
voltageDomain()->sanitiseVoltages();
@@ -174,7 +179,7 @@ SrcClockDomain::startup()
{
// Perform proper clock update when all related components have been
// created (i.e. after unserialization / object creation)
- perfLevel(_perfLevel);
+ signalPerfLevelUpdate();
}
SrcClockDomain *
diff --git a/src/sim/clock_domain.hh b/src/sim/clock_domain.hh
index 71627434a..6ba8b6396 100644
--- a/src/sim/clock_domain.hh
+++ b/src/sim/clock_domain.hh
@@ -244,6 +244,11 @@ class SrcClockDomain : public ClockDomain
private:
/**
+ * Inform other components about the changed performance level
+ */
+ void signalPerfLevelUpdate();
+
+ /**
* List of possible frequency operational points, should be in
* descending order
* An empty list corresponds to default frequency specified for its