aspeed/timer: use the APB frequency from the SCU
commit9b945a9ee36a34eaeca412ef9ef35fbfe33c2c85
authorCédric Le Goater <clg@kaod.org>
Tue, 26 Jun 2018 16:50:42 +0000 (26 17:50 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 26 Jun 2018 16:50:42 +0000 (26 17:50 +0100)
treedb56bdce61f7586686696786b0ac4180c2388715
parente2a11ca859af1ffb4eb18abd9f3a73391008e2e4
aspeed/timer: use the APB frequency from the SCU

The timer controller can be driven by either an external 1MHz clock or
by the APB clock. Today, the model makes the assumption that the APB
frequency is always set to 24MHz but this is incorrect.

The AST2400 SoC on the palmetto machines uses a 48MHz input clock
source and the APB can be set to 48MHz. The consequence is a general
system slowdown. The QEMU machines using the AST2500 SoC do not seem
impacted today because the APB frequency is still set to 24MHz.

We fix the timer frequency for all SoCs by linking the Timer model to
the SCU model. The APB frequency driving the timers is now the one
configured for the SoC.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
Message-id: 20180622075700.5923-4-clg@kaod.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/aspeed_soc.c
hw/timer/aspeed_timer.c
include/hw/timer/aspeed_timer.h