On 19:06 Thu 21 Jan , Peter Maydell wrote: > Create and connect the two clocks needed by the ARMSSE. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
Reviewed-by: Luc Michel <l...@lmichel.fr> > --- > hw/arm/mps2-tz.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c > index 6a9eed9022a..7acdf490f28 100644 > --- a/hw/arm/mps2-tz.c > +++ b/hw/arm/mps2-tz.c > @@ -62,6 +62,7 @@ > #include "hw/net/lan9118.h" > #include "net/net.h" > #include "hw/core/split-irq.h" > +#include "hw/qdev-clock.h" > #include "qom/object.h" > > #define MPS2TZ_NUMIRQ 92 > @@ -100,6 +101,8 @@ struct MPS2TZMachineState { > qemu_or_irq uart_irq_orgate; > DeviceState *lan9118; > SplitIRQ cpu_irq_splitter[MPS2TZ_NUMIRQ]; > + Clock *sysclk; > + Clock *s32kclk; > }; > > #define TYPE_MPS2TZ_MACHINE "mps2tz" > @@ -110,6 +113,8 @@ OBJECT_DECLARE_TYPE(MPS2TZMachineState, > MPS2TZMachineClass, MPS2TZ_MACHINE) > > /* Main SYSCLK frequency in Hz */ > #define SYSCLK_FRQ 20000000 > +/* Slow 32Khz S32KCLK frequency in Hz */ > +#define S32KCLK_FRQ (32 * 1000) > > /* Create an alias of an entire original MemoryRegion @orig > * located at @base in the memory map. > @@ -396,6 +401,12 @@ static void mps2tz_common_init(MachineState *machine) > exit(EXIT_FAILURE); > } > > + /* These clocks don't need migration because they are fixed-frequency */ > + mms->sysclk = clock_new(OBJECT(machine), "SYSCLK"); > + clock_set_hz(mms->sysclk, SYSCLK_FRQ); > + mms->s32kclk = clock_new(OBJECT(machine), "S32KCLK"); > + clock_set_hz(mms->s32kclk, S32KCLK_FRQ); > + > object_initialize_child(OBJECT(machine), TYPE_IOTKIT, &mms->iotkit, > mmc->armsse_type); > iotkitdev = DEVICE(&mms->iotkit); > @@ -403,6 +414,8 @@ static void mps2tz_common_init(MachineState *machine) > OBJECT(system_memory), &error_abort); > qdev_prop_set_uint32(iotkitdev, "EXP_NUMIRQ", MPS2TZ_NUMIRQ); > qdev_prop_set_uint32(iotkitdev, "MAINCLK_FRQ", SYSCLK_FRQ); > + qdev_connect_clock_in(iotkitdev, "MAINCLK", mms->sysclk); > + qdev_connect_clock_in(iotkitdev, "S32KCLK", mms->s32kclk); > sysbus_realize(SYS_BUS_DEVICE(&mms->iotkit), &error_fatal); > > /* > -- > 2.20.1 > --