|
From: | Laurent Vivier |
Subject: | Re: [PATCH] hw/timer/etraxfs_timer: Add vmstate for ETRAX timers |
Date: | Wed, 12 Jan 2022 15:29:54 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 |
Le 18/12/2021 à 03:28, Richard Henderson a écrit :
On 12/17/21 3:37 PM, Philippe Mathieu-Daudé wrote:ping? On 11/6/21 11:56, Philippe Mathieu-Daudé wrote:Add the vmstate for the ETRAX timers. This is in theory a migration compatibility break for the 'AXIS devboard 88' CRIS machine. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- hw/timer/etraxfs_timer.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-)In that it matches another similar timer device: Reviewed-by: Richard Henderson <richard.henderson@linaro.org>+static const VMStateDescription vmstate_etraxfs = { + .name = "etraxfs", + .version_id = 0, + .minimum_version_id = 0, + .fields = (VMStateField[]) { + VMSTATE_PTIMER(ptimer_t0, ETRAXTimerState), + VMSTATE_PTIMER(ptimer_t1, ETRAXTimerState), + VMSTATE_PTIMER(ptimer_wd, ETRAXTimerState), + + VMSTATE_UINT32(wd_hits, ETRAXTimerState), + + VMSTATE_UINT32(rw_tmr0_div, ETRAXTimerState), + VMSTATE_UINT32(r_tmr0_data, ETRAXTimerState), + VMSTATE_UINT32(rw_tmr0_ctrl, ETRAXTimerState), + + VMSTATE_UINT32(rw_tmr1_div, ETRAXTimerState), + VMSTATE_UINT32(r_tmr1_data, ETRAXTimerState), + VMSTATE_UINT32(rw_tmr1_ctrl, ETRAXTimerState), + + VMSTATE_UINT32(rw_wd_ctrl, ETRAXTimerState), + + VMSTATE_UINT32(rw_intr_mask, ETRAXTimerState), + VMSTATE_UINT32(rw_ack_intr, ETRAXTimerState), + VMSTATE_UINT32(r_intr, ETRAXTimerState), + VMSTATE_UINT32(r_masked_intr, ETRAXTimerState), + + VMSTATE_END_OF_LIST() + } +};What I don't understand is how these controls get applied to qemu_irq after vmload, here or in any other device. It seems like we should have some post_load hook that calls timer_update_irq, etc.
FWIW, in VMSTATE_PTIMER(), we use a vmstate_ptimer struct that registers a vmstate_info_timer with VMSTATE_TIMER_PTR(). vmstate_info_timer uses timer_get() to update or delete the timer when it is loaded.
Applied to my trivial-patches branch. Thanks, Laurent
[Prev in Thread] | Current Thread | [Next in Thread] |