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


Reply via email to