diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py index 30e498ce1..8b9b4c20d 100644 --- a/src/dev/arm/RealView.py +++ b/src/dev/arm/RealView.py @@ -231,7 +231,7 @@ class CpuLocalTimer(BasicPioDevice): class GenericTimer(SimObject): type = 'GenericTimer' cxx_header = "dev/arm/generic_timer.hh" - system = Param.System(Parent.any, "system") + system = Param.ArmSystem(Parent.any, "system") gic = Param.BaseGic(Parent.any, "GIC to use for interrupting") # @todo: for now only two timers per CPU is supported, which is the # normal behaviour when security extensions are disabled. diff --git a/src/dev/arm/generic_timer.cc b/src/dev/arm/generic_timer.cc index 173855b88..1b8d917e9 100644 --- a/src/dev/arm/generic_timer.cc +++ b/src/dev/arm/generic_timer.cc @@ -234,7 +234,8 @@ GenericTimer::GenericTimer(GenericTimerParams *p) irqPhys(p->int_phys), irqVirt(p->int_virt) { - dynamic_cast(*p->system).setGenericTimer(this); + fatal_if(!p->system, "No system specified, can't instantiate timer.\n"); + p->system->setGenericTimer(this); } void