At the moment, the PAPR RTC implementation (actually a paravirt firmware interface, rather than a normal device) works directly off host time, and so doesn't respect the options such as clock=vm which can be specified in the -rtc command line option. This series addresses those defects.
The above makes it clearer that the spapr RTC should probably be its own separate qdev, so this series also implements that. Finally it moves the code from mc146818rtc for publishing the RTC time via QOM into generic QOM helpers, and extends the PAPR RTC driver to export in a similar way. Changes since v2: * We still need the rtc_offset field in sPAPREnvironment to handle incoming migrations from older versions, but we no longer send it for outgoing migrations. Changes since v1: * Actually create a qdev device for the PAPR RTC * Instead of duplicating the QOM publishing code from mc146818, move it into a generic helper *** BLURB HERE *** David Gibson (9): Generalize QOM publishing of date and time from mc146818rtc.c Add more VMSTATE_*_TEST variants for integers pseries: Move sPAPR RTC code into its own file pseries: Add more parameter validation in RTAS time of day functions pseries: Add spapr_rtc_read() helper function pseries: Make RTAS time of day functions respect -rtc options pseries: Make the PAPR RTC a qdev device pseries: Move rtc_offset into RTC device's state structure pseries: Export RTC time via QOM hw/ppc/Makefile.objs | 2 +- hw/ppc/spapr.c | 44 ++++++++- hw/ppc/spapr_events.c | 2 +- hw/ppc/spapr_rtas.c | 49 ---------- hw/ppc/spapr_rtc.c | 212 ++++++++++++++++++++++++++++++++++++++++++++ hw/timer/mc146818rtc.c | 44 +-------- include/hw/ppc/spapr.h | 8 +- include/migration/vmstate.h | 15 ++++ include/qom/object.h | 14 +++ qom/object.c | 79 +++++++++++++++++ 10 files changed, 373 insertions(+), 96 deletions(-) create mode 100644 hw/ppc/spapr_rtc.c -- 2.1.0