qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] fsl-imx: Add simple RTC emulation for i.MX6 and i.MX7 boards


From: Peter Maydell
Subject: Re: [PATCH] fsl-imx: Add simple RTC emulation for i.MX6 and i.MX7 boards
Date: Wed, 13 Dec 2023 17:20:21 +0000

On Wed, 13 Dec 2023 at 17:17, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Hi Peter,
>
> On 12/12/23 15:18, Peter Maydell wrote:
> > On Sun, 12 Nov 2023 at 09:22, Nikita Ostrenkov <n.ostrenkov@gmail.com> 
> > wrote:
> >
> > Hi; thanks for this patch, and sorry I haven't got round
> > to reviewing it earlier.
> >
> >> Signed-off-by: Nikita Ostrenkov <n.ostrenkov@gmail.com>
> >> ---
> >>   hw/misc/imx7_snvs.c         | 59 ++++++++++++++++++++++++++++++++-----
> >>   hw/misc/trace-events        |  4 +--
> >>   include/hw/misc/imx7_snvs.h | 14 ++++++++-
> >>   3 files changed, 67 insertions(+), 10 deletions(-)
>
>
> >> @@ -31,6 +33,16 @@ struct IMX7SNVSState {
> >>       SysBusDevice parent_obj;
> >>
> >>       MemoryRegion mmio;
> >> +
> >> +    /*
> >> +     * Needed to preserve the tick_count across migration, even if the
> >> +     * absolute value of the rtc_clock is different on the source and
> >> +     * destination.
> >> +     */
> >> +    int64_t tick_offset_vmstate;
> >
> > You don't need tick_offset_vmstate -- it is only in the p031
> > RTC device as a backwards-compatibility thing for older versions
> > of QEMU. Migrating tick_offset alone is sufficient in a new
> > device. (It seems to have been unfortunately copied-and-pasted
> > into the goldfish RTC device; we should probably fix that bug.)
> >
> >> +    int64_t tick_offset;
> >> +
> >> +    uint64_t lpcr;
> >
> > We've now added state to this device, which means that it needs
> > a VMState structure to handle migration, and it needs a reset
> > function.
>
> I just noticed your v1 review after reviewing v2. Indeed
> 'tick_offset' need to be migrated. Now about reset(), RTC
> are somehow different. When resetting a machine in the same
> QEMU process I'd expect the RTC offset to not be reset.
>
> Could this be clarified by adding a reset handler with no
> code but a comment /* RTC state is usually kept by CMOS
> battery and is not reset */ maybe?

The lpcr register state needs to be reset.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]