Commit 807420f0 authored by Peter Maydell's avatar Peter Maydell
Browse files

arm: Move system_clock_scale to armv7m_systick.h



The system_clock_scale global is used only by the armv7m systick
device; move the extern declaration to the armv7m_systick.h header,
and expand the comment to explain what it is and that it should
ideally be replaced with a different approach.

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190516163857.6430-2-peter.maydell@linaro.org
parent 2f143d3a
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -167,8 +167,4 @@ void arm_write_secure_board_setup_dummy_smc(ARMCPU *cpu,
                                            const struct arm_boot_info *info,
                                            hwaddr mvbar_addr);

/* Multiplication factor to convert from system clock ticks to qemu timer
   ticks.  */
extern int system_clock_scale;

#endif /* HW_ARM_H */
+22 −0
Original line number Diff line number Diff line
@@ -31,4 +31,26 @@ typedef struct SysTickState {
    qemu_irq irq;
} SysTickState;

/*
 * Multiplication factor to convert from system clock ticks to qemu timer
 * ticks. This should be set (by board code, usually) to a value
 * equal to NANOSECONDS_PER_SECOND / frq, where frq is the clock frequency
 * in Hz of the CPU.
 *
 * This value is used by the systick device when it is running in
 * its "use the CPU clock" mode (ie when SYST_CSR.CLKSOURCE == 1) to
 * set how fast the timer should tick.
 *
 * TODO: we should refactor this so that rather than using a global
 * we use a device property or something similar. This is complicated
 * because (a) the property would need to be plumbed through from the
 * board code down through various layers to the systick device
 * and (b) the property needs to be modifiable after realize, because
 * the stellaris board uses this to implement the behaviour where the
 * guest can reprogram the PLL registers to downclock the CPU, and the
 * systick device needs to react accordingly. Possibly this should
 * be deferred until we have a good API for modelling clock trees.
 */
extern int system_clock_scale;

#endif