On 16.12.14 01:43, David Gibson wrote: > On x86, the guest's RTC can be read with QMP via the "rtc-time" property > on the /machine object. This is due to an explicit QOM alias being set up > by the mc146818rtc driver, and doesn't work on other targets. > > This extends the pseries RTAS RTC to populate that property, for improved > management compatibility with x86 guests. > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au>
Yeah, this really should happen inside an rtc device. > --- > hw/ppc/spapr_rtc.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 49 insertions(+) > > diff --git a/hw/ppc/spapr_rtc.c b/hw/ppc/spapr_rtc.c > index fac0017..13e74f1 100644 > --- a/hw/ppc/spapr_rtc.c > +++ b/hw/ppc/spapr_rtc.c > @@ -28,6 +28,7 @@ > #include "cpu.h" > #include "hw/ppc/spapr.h" > #include "qapi-event.h" > +#include "qapi/visitor.h" > > void spapr_rtc_read(sPAPREnvironment *spapr, struct tm *tm, uint32_t *ns) > { > @@ -87,10 +88,58 @@ static void rtas_set_time_of_day(PowerPCCPU *cpu, > sPAPREnvironment *spapr, > rtas_st(rets, 0, RTAS_OUT_SUCCESS); > } > > +static void spapr_qom_rtc_time(Object *obj, Visitor *v, void *opaque, > + const char *name, Error **errp) Also this function is mostly copy&paste from the mc14foo driver. Do you think you can share this somehow? I also think the alias should get created by the machine, not the device itself. Alex