On 12 September 2017 at 19:13, Peter Maydell <peter.mayd...@linaro.org> wrote: > For the v8M security extension, some exceptions must be banked > between security states. Add the new vecinfo array which holds > the state for the banked exceptions and migrate it if the > CPU the NVIC is attached to implements the security extension. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
> +static const VMStateDescription vmstate_nvic_security = { > + .name = "nvic/m-security", > + .version_id = 1, > + .minimum_version_id = 1, > + .needed = nvic_security_needed, > + .post_load = &nvic_security_post_load, > + .fields = (VMStateField[]) { > + VMSTATE_STRUCT_ARRAY(sec_vectors, NVICState, NVIC_INTERNAL_VECTORS, > 1, > + vmstate_VecInfo, VecInfo), > + VMSTATE_END_OF_LIST() > + } > +}; > + > static const VMStateDescription vmstate_nvic = { > .name = "armv7m_nvic", > .version_id = 4, This patch needs the following folded in, so that we actually include the new vmstate subsection in the top level's subsection list... diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c index 694b9e0..8793f75 100644 --- a/hw/intc/armv7m_nvic.c +++ b/hw/intc/armv7m_nvic.c @@ -1205,6 +1205,10 @@ static const VMStateDescription vmstate_nvic = { vmstate_VecInfo, VecInfo), VMSTATE_UINT32(prigroup, NVICState), VMSTATE_END_OF_LIST() + }, + .subsections = (const VMStateDescription*[]) { + &vmstate_nvic_security, + NULL } }; thanks -- PMM