diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2013-08-20 14:54:31 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2013-08-20 14:54:31 +0100 |
commit | 55d284af8e31bbdf4d545cb2d6481cd0367680fb (patch) | |
tree | 954a9624cca40d7c9bbbd7604f45201472b6a50a /target-arm/cpu.c | |
parent | 2452731c883cb0acd4e47b23039c46cd880cf2c6 (diff) |
target-arm: Implement the generic timer
The ARMv7 architecture specifies a 'generic timer' which is implemented
via cp15 registers. Newer kernels will prefer to use this rather than
a devboard-level timer. Implement the generic timer for TCG; for KVM
we will already use the hardware's virtualized timer for this.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Message-id: 1376065080-26661-4-git-send-email-peter.maydell@linaro.org
Diffstat (limited to 'target-arm/cpu.c')
-rw-r--r-- | target-arm/cpu.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 6f56aa86db..f01ce03682 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -203,6 +203,13 @@ static void arm_cpu_initfn(Object *obj) } else { qdev_init_gpio_in(DEVICE(cpu), arm_cpu_set_irq, 2); } + + cpu->gt_timer[GTIMER_PHYS] = qemu_new_timer(vm_clock, GTIMER_SCALE, + arm_gt_ptimer_cb, cpu); + cpu->gt_timer[GTIMER_VIRT] = qemu_new_timer(vm_clock, GTIMER_SCALE, + arm_gt_vtimer_cb, cpu); + qdev_init_gpio_out(DEVICE(cpu), cpu->gt_timer_outputs, + ARRAY_SIZE(cpu->gt_timer_outputs)); #endif if (tcg_enabled() && !inited) { |