From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Huacai Chen" <chenhuacai@kernel.org>,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>
Subject: [PATCH 02/11] hw/mips/loongson3_virt: Keep reference of vCPUs in machine_init()
Date: Sun, 12 Jan 2025 22:58:26 +0100 [thread overview]
Message-ID: <20250112215835.29320-3-philmd@linaro.org> (raw)
In-Reply-To: <20250112215835.29320-1-philmd@linaro.org>
Keep references of all vCPUs created. That allows
to directly access the first vCPU without using the
&first_cpu global.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/mips/loongson3_virt.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c
index 47d112981a2..4b19941c1dc 100644
--- a/hw/mips/loongson3_virt.c
+++ b/hw/mips/loongson3_virt.c
@@ -492,9 +492,8 @@ static void mips_loongson3_virt_init(MachineState *machine)
{
int i;
long bios_size;
- MIPSCPU *cpu;
+ g_autofree MIPSCPU **cpus = NULL;
Clock *cpuclk;
- CPUMIPSState *env;
DeviceState *liointc;
DeviceState *ipi = NULL;
char *filename;
@@ -569,13 +568,16 @@ static void mips_loongson3_virt_init(MachineState *machine)
cpuclk = clock_new(OBJECT(machine), "cpu-refclk");
clock_set_hz(cpuclk, DEF_LOONGSON3_FREQ);
+ cpus = g_new(MIPSCPU *, machine->smp.cpus);
for (i = 0; i < machine->smp.cpus; i++) {
+ MIPSCPU *cpu;
int node = i / LOONGSON3_CORE_PER_NODE;
int core = i % LOONGSON3_CORE_PER_NODE;
int ip;
/* init CPUs */
cpu = mips_cpu_create_with_clock(machine->cpu_type, cpuclk, false);
+ cpus[i] = cpu;
/* Init internal devices */
cpu_mips_irq_init_cpu(cpu);
@@ -609,7 +611,6 @@ static void mips_loongson3_virt_init(MachineState *machine)
pin, cpu->env.irq[ip + 2]);
}
}
- env = &MIPS_CPU(first_cpu)->env;
/* Allocate RAM/BIOS, 0x00000000~0x10000000 is alias of 0x80000000~0x90000000 */
memory_region_init_rom(bios, NULL, "loongson3.bios",
@@ -640,7 +641,7 @@ static void mips_loongson3_virt_init(MachineState *machine)
loaderparams.kernel_filename = kernel_filename;
loaderparams.kernel_cmdline = kernel_cmdline;
loaderparams.initrd_filename = initrd_filename;
- loaderparams.kernel_entry = load_kernel(env);
+ loaderparams.kernel_entry = load_kernel(&cpus[0]->env);
init_boot_rom();
init_boot_param();
--
2.47.1
next prev parent reply other threads:[~2025-01-12 22:00 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-12 21:58 [PATCH 00/11] hw/mips/loongson3: Remove uses of &first_cpu global Philippe Mathieu-Daudé
2025-01-12 21:58 ` [PATCH 01/11] hw/mips/loongson3_virt: Factor generic_cpu_reset() out Philippe Mathieu-Daudé
2025-01-15 5:02 ` Richard Henderson
2025-01-12 21:58 ` Philippe Mathieu-Daudé [this message]
2025-01-15 5:18 ` [PATCH 02/11] hw/mips/loongson3_virt: Keep reference of vCPUs in machine_init() Richard Henderson
2025-01-15 20:32 ` Philippe Mathieu-Daudé
2025-01-15 23:02 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 03/11] hw/mips/loongson3_virt: Have fw_conf_init() access local loaderparams Philippe Mathieu-Daudé
2025-01-15 5:09 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 04/11] hw/mips/loongson3_virt: Pass CPU argument to get_cpu_freq_hz() Philippe Mathieu-Daudé
2025-01-15 5:09 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 05/11] hw/mips/loongson3_bootp: Include missing headers Philippe Mathieu-Daudé
2025-01-15 5:10 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 06/11] hw/mips/loongson3: Propagate cpu_count to init_loongson_params() Philippe Mathieu-Daudé
2025-01-15 5:13 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 07/11] hw/mips/loongson3_virt: Propagate cpu_count to init_boot_param() Philippe Mathieu-Daudé
2025-01-15 5:13 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 08/11] hw/mips/loongson3_bootp: Propagate processor_id to init_cpu_info() Philippe Mathieu-Daudé
2025-01-15 5:15 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 09/11] hw/mips/loongson3_virt: Propagate processor_id to init_loongson_params() Philippe Mathieu-Daudé
2025-01-15 5:16 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 10/11] hw/mips/loongson3_virt: Propagate %processor_id to init_boot_param() Philippe Mathieu-Daudé
2025-01-15 5:17 ` Richard Henderson
2025-01-12 21:58 ` [PATCH 11/11] hw/mips/loongson3_bootp: Move to common_ss[] Philippe Mathieu-Daudé
2025-01-15 5:17 ` Richard Henderson
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=20250112215835.29320-3-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=chenhuacai@kernel.org \
--cc=jiaxun.yang@flygoat.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).