qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 00/11] hw/arm/aspeed: Split AspeedSoCState per 2400/2600/10x0


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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]