All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, "Cédric Le Goater" <clg@kaod.org>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Jamin Lin" <jamin_lin@aspeedtech.com>,
	"Kane Chen" <kane_chen@aspeedtech.com>,
	qemu-arm@nongnu.org, "Philippe Mathieu-Daudé" <philmd@mailo.com>
Subject: Re: qemu-system-arm dies on introspection of ast2700-a1 and ast2700-a2
Date: Wed, 21 Oct 2026 16:01:48 +0100	[thread overview]
Message-ID: <87se1zyu5f.fsf@draig.linaro.org> (raw)
In-Reply-To: <87qzhjmft8.fsf@pond.sub.org> (Markus Armbruster's message of "Wed, 21 Oct 2026 13:52:19 +0200")

Markus Armbruster <armbru@redhat.com> writes:

> Watch this:
>
>     $ qemu-system-arm -S -nodefaults -display none -M none -qmp stdio
>     {"QMP": {"version": {"qemu": {"micro": 50, "minor": 1, "major": 11}, "package": "v11.1.0-2545-g2d150b99ce"}, "capabilities": ["oob"]}}
>     {"execute": "qmp_capabilities", "arguments": {"enable": ["oob"]}}
>     {"return": {}}
>     {"execute": "qom-list-properties", "arguments": {"typename": "ast2700-a1"}}
>     qemu-system-arm: unknown type 'cortex-a35-arm-cpu'
>     [Exit 1 ]
>
> Same for ast2700-a2.
>
> I found the folllowing in their .instance_init() method
> aspeed_soc_ast2700_init():
>
>     for (i = 0; i < sc->num_cpus; i++) {
>         if (qtest_enabled() && !target_aarch64()) {
>             /*
>              * Introspection qtest just want to create this object
>              * without realizing it. ARM_CPU_TYPE_NAME("cortex-a35")
>              * is not available on 32-bit binary: skip it since we
>              * won't even realize it.
>              */
>             continue;
>         }
>         object_initialize_child(obj, "cpu[*]", &a->cpu[i],
>                                 aspeed_soc_cpu_type(sc->valid_cpu_types));
>     }
>
> This seems to paper over the bug so make the tests pass.  That's wrong.
>
> .instance_init() must not fail and must not exit(), regardless of
> context.
>
> object_initialize_child() exit()s when the type doesn't exist, because
> &error_fatal gets passed to in type_get_or_load_by_name() in
> object_initialize_child().
>
> The narrow fix is to make type "cortex-a35-arm-cpu" exist, or to make
> the two bad types "ast2700-a1" and "ast2700-a2" not exist.

Is the problem here that DEFINE_TYPES(aspeed_soc_ast27x0_types) doesn't
allow for conditional realisation of the SoCs? Oh but it does:

        .is_available   = target_aarch64,


-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


      parent reply	other threads:[~2026-10-21 15:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-21 11:52 qemu-system-arm dies on introspection of ast2700-a1 and ast2700-a2 Markus Armbruster
2026-10-21 13:16 ` Philippe Mathieu-Daudé
2026-10-21 15:01 ` Alex Bennée [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87se1zyu5f.fsf@draig.linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=clg@kaod.org \
    --cc=jamin_lin@aspeedtech.com \
    --cc=kane_chen@aspeedtech.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@mailo.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.