On 25 May 2015 at 16:53, Peter Maydell <peter.mayd...@linaro.org> wrote: > From: Juan Quintela <quint...@redhat.com> > > Update the CRIS CPU state save/load to use a VMStateDescription struct > rather than cpu_save/cpu_load functions. > > Have to define TLBSet struct. > Multidimensional arrays in C are a mess, just unroll them. > > Signed-off-by: Juan Quintela <quint...@redhat.com> > [PMM: > * expand commit message a little since it's no longer one patch in > a 35-patch series > * add header/copyright comment to machine.c; credited copyright is > Red Hat and author is Juan, since this commit gives the file all-new > contents; license is LGPL-2-or-later, to match other target-cris code > * remove hardcoded tab > * add fields for locked_irq, interrupt_vector, fault_vector, trap_vector > * drop minimum_version_id_old fields > * bump version_id to 2 as we are not compatible with old state format > * remove unnecessary hw/boards.h include] > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > This is a patch of Juan's from way back in 2012, which I am resurrecting > because we now have only two CPUs which still use old-style non-VMState > save/load (CRIS and SPARC). If we can update them both we can drop the > machinery in the common code which supports this. > > Notes: > * CPUCRISState indent style is somewhat mismatched (cf load_info); > I took the "minimal make checkpatch happy" approach, but am > happy to do something else with the line changed here > * I have added a copyright header to target-cris/machine.c, because it > did not have one at all, and this commit effectively gives the > file all-new contents. I have set it up as LGPLv2-or-later, > copyright Red Hat, author Juan. Please let me know if you would > prefer something else! > * I added vmstate entries for four fields which did not previously > get saved and restored, which is presumably a bug fix... > * vmsave/vmload on the axis-dev88 board does not currently seem to > work (among other obvious problems, there is no vmstate support > in the interrupt controller), so we're limited to "looks good > on code review" here.
Oops, this has a couple of issues I only noticed when I started looking at the SPARC vmstate: * forgot to register vmstate by setting cc->vmsd * vmstate should be of CRISCPU, not CPUCRISState This is why it's a shame the board doesn't have vmsave/load support for testing. Will send out a v2. -- PMM