Hi, The Versatile Express emulation in QEMU currently does not have a model of the SP810 used in real hardware. The registers provided by this System Controller can be used to set the frequency of the SP804 timers. On newer releases of the board the SP804 is set to 32kHz by default and has to be increased by writing to the SCCTRL. See: http://lists.infradead.org/pipermail/linux-arm-kernel/2011-January/038696.html
Since QEMU sets the SP804 timers to 1MHz by default this should be reflected in the SCCTRL register. These two patches add a model of the SP804 to the vexpress-boards and sets the SCCTRL register so that software that queries this register behaves as expected. Feedback is greatly appreciated! Best, Fabian v2 -> v3: * removed duplicate comment * split SCCTRL property into 4 individual properties * moved initialisation back to vexpress.c v2: https://lists.nongnu.org/archive/html/qemu-devel/2014-08/msg00629.html v1 -> v2: * TIMERENXSEL prefixed with register name * removed casts * created header file v1: https://lists.nongnu.org/archive/html/qemu-devel/2014-07/msg02572.html Fabian Aggeler (2): hw/misc/arm_sp810: Create SP810 device hw/arm/vexpress: add SP810 to the vexpress default-configs/arm-softmmu.mak | 1 + hw/arm/vexpress.c | 13 ++++- hw/misc/Makefile.objs | 1 + hw/misc/arm_sp810.c | 109 ++++++++++++++++++++++++++++++++++++++++ include/hw/misc/arm_sp810.h | 80 +++++++++++++++++++++++++++++ 5 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 hw/misc/arm_sp810.c create mode 100644 include/hw/misc/arm_sp810.h -- 1.8.3.2