From: Jamin Lin <[email protected]> The SBC controller register space is 0x1000. Increase ASPEED_SBC_NR_REGS accordingly to cover the full register space.
This changes the size of the VMState register array and therefore breaks migration compatibility with older QEMU versions. Simply bump the VMState version to 2, as Aspeed machines are not intended for virtualization use cases. Signed-off-by: Jamin Lin <[email protected]> Reviewed-by: Cédric Le Goater <[email protected]> Link: https://lore.kernel.org/qemu-devel/[email protected] Signed-off-by: Cédric Le Goater <[email protected]> --- include/hw/misc/aspeed_sbc.h | 2 +- hw/misc/aspeed_sbc.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/hw/misc/aspeed_sbc.h b/include/hw/misc/aspeed_sbc.h index 07c7c22a86ab..eea6e2b27fbf 100644 --- a/include/hw/misc/aspeed_sbc.h +++ b/include/hw/misc/aspeed_sbc.h @@ -17,7 +17,7 @@ #define TYPE_ASPEED_AST10X0_SBC TYPE_ASPEED_SBC "-ast10x0" OBJECT_DECLARE_TYPE(AspeedSBCState, AspeedSBCClass, ASPEED_SBC) -#define ASPEED_SBC_NR_REGS (0x93c >> 2) +#define ASPEED_SBC_NR_REGS (0x1000 >> 2) #define QSR_AES BIT(27) #define QSR_RSA1024 (0x0 << 12) diff --git a/hw/misc/aspeed_sbc.c b/hw/misc/aspeed_sbc.c index 1dfcf14e5ba6..7397d9bbf066 100644 --- a/hw/misc/aspeed_sbc.c +++ b/hw/misc/aspeed_sbc.c @@ -307,15 +307,15 @@ static void aspeed_sbc_realize(DeviceState *dev, Error **errp) } memory_region_init_io(&s->iomem, OBJECT(s), &aspeed_sbc_ops, s, - TYPE_ASPEED_SBC, 0x1000); + TYPE_ASPEED_SBC, ASPEED_SBC_NR_REGS << 2); sysbus_init_mmio(sbd, &s->iomem); } static const VMStateDescription vmstate_aspeed_sbc = { .name = TYPE_ASPEED_SBC, - .version_id = 1, - .minimum_version_id = 1, + .version_id = 2, + .minimum_version_id = 2, .fields = (const VMStateField[]) { VMSTATE_UINT32_ARRAY(regs, AspeedSBCState, ASPEED_SBC_NR_REGS), VMSTATE_END_OF_LIST(), -- 2.55.0
