[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for 7.1 2/2] aspeed/fby35: Fix owner of the BMC RAM memory re
From: |
Peter Delevoryas |
Subject: |
Re: [PATCH for 7.1 2/2] aspeed/fby35: Fix owner of the BMC RAM memory region |
Date: |
Wed, 27 Jul 2022 11:11:43 -0700 |
On Wed, Jul 27, 2022 at 12:27:14PM +0200, Cédric Le Goater wrote:
> A MachineState object is used as a owner of the RAM region and this
> asserts in memory_region_init_ram() when QEMU is built with
> CONFIG_QOM_CAST_DEBUG :
>
> /* This will assert if owner is neither NULL nor a DeviceState.
> * We only want the owner here for the purposes of defining a
> * unique name for migration. TODO: Ideally we should implement
> * a naming scheme for Objects which are not DeviceStates, in
> * which case we can relax this restriction.
> */
> owner_dev = DEVICE(owner);
>
> Use the BMC and BIC objects as the owners of their memory regions.
>
> Cc: Peter Delevoryas <peter@pjd.dev>
> Fixes: 778e14cc5cd5 ("aspeed: Add AST2600 (BMC) to fby35")
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> ---
Looks good to me, thanks for fixing this Cedric!
Peter
Reviewed-by: Peter Delevoryas <peter@pjd.dev>
> hw/arm/fby35.c | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/hw/arm/fby35.c b/hw/arm/fby35.c
> index 79605f306462..90c04bbc3389 100644
> --- a/hw/arm/fby35.c
> +++ b/hw/arm/fby35.c
> @@ -72,11 +72,13 @@ static void fby35_bmc_init(Fby35State *s)
> {
> DriveInfo *drive0 = drive_get(IF_MTD, 0, 0);
>
> - memory_region_init(&s->bmc_memory, OBJECT(s), "bmc-memory", UINT64_MAX);
> - memory_region_init_ram(&s->bmc_dram, OBJECT(s), "bmc-dram",
> + object_initialize_child(OBJECT(s), "bmc", &s->bmc, "ast2600-a3");
> +
> + memory_region_init(&s->bmc_memory, OBJECT(&s->bmc), "bmc-memory",
> + UINT64_MAX);
> + memory_region_init_ram(&s->bmc_dram, OBJECT(&s->bmc), "bmc-dram",
> FBY35_BMC_RAM_SIZE, &error_abort);
>
> - object_initialize_child(OBJECT(s), "bmc", &s->bmc, "ast2600-a3");
> object_property_set_int(OBJECT(&s->bmc), "ram-size", FBY35_BMC_RAM_SIZE,
> &error_abort);
> object_property_set_link(OBJECT(&s->bmc), "memory",
> OBJECT(&s->bmc_memory),
> @@ -120,9 +122,11 @@ static void fby35_bic_init(Fby35State *s)
> s->bic_sysclk = clock_new(OBJECT(s), "SYSCLK");
> clock_set_hz(s->bic_sysclk, 200000000ULL);
>
> - memory_region_init(&s->bic_memory, OBJECT(s), "bic-memory", UINT64_MAX);
> -
> object_initialize_child(OBJECT(s), "bic", &s->bic, "ast1030-a1");
> +
> + memory_region_init(&s->bic_memory, OBJECT(&s->bic), "bic-memory",
> + UINT64_MAX);
> +
> qdev_connect_clock_in(DEVICE(&s->bic), "sysclk", s->bic_sysclk);
> object_property_set_link(OBJECT(&s->bic), "memory",
> OBJECT(&s->bic_memory),
> &error_abort);
> --
> 2.37.1
>