|
From: | Philippe Mathieu-Daudé |
Subject: | Re: [PATCH 00/11] hw/arm/aspeed: Split AspeedSoCState per 2400/2600/10x0 |
Date: | Wed, 25 Oct 2023 11:17:28 +0200 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 |
On 24/10/23 18:24, Philippe Mathieu-Daudé wrote:
Hi, This series is extracted for a bigger work. Cortex-A MP clusters (TYPE_A15MPCORE_PRIV) should create the ARM cores in its own state. Unfortunately we don't do it that way, and this model calls qemu_get_cpu(). In order to remove the qemu_get_cpu() call there, we first need to rework some SoC users. This series rework the Aspeed SoC state, so it is clear what fields are really used by a SoC type (2400 / 2600 / 10x0). It will then be easier to have the MP cluster create the core instances.
Being a bit more verbose, as I was trying to explain to Cédric on IRC. The fby35 machine creates 2 SoCs: static void fby35_init(MachineState *machine) { Fby35State *s = FBY35(machine); fby35_bmc_init(s); fby35_bic_init(s); } - bmc is Aspeed2600 (A7 MPCORE) - bic is Aspeed10x0 (M7) If we were to create the bic before the bmc, as: static void fby35_init(MachineState *machine) { Fby35State *s = FBY35(machine); fby35_bic_init(s); fby35_bmc_init(s); } then the MPCORE misbehave as it calls qemu_get_cpu(0) which returns the M7 from the bic.
[Prev in Thread] | Current Thread | [Next in Thread] |