> Am 16.12.2014 um 03:18 schrieb David Gibson <da...@gibson.dropbear.id.au>:
>
>> On Tue, Dec 16, 2014 at 02:04:49AM +0100, Alexander Graf wrote:
>>
>>
>>> 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 guess I can make a helper function.
>
>> I also think the alias should get created by the machine, not the device
>> itself.
>
> Again, I'm copying what mc146818rtc does.
Yup, but unfortunately layering violations that made it upstream are still
violating our layering ;)
Alex
>
> --
> David Gibson | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
> | _way_ _around_!
> http://www.ozlabs.org/~dgibson