aboutsummaryrefslogtreecommitdiff
path: root/hw/m68k
diff options
context:
space:
mode:
authorLaurent Vivier <laurent@vivier.eu>2024-02-23 16:57:42 +0100
committerLaurent Vivier <laurent@vivier.eu>2024-03-11 09:38:08 +0100
commite39a0809b99bbbe5f0ec432fdd9e8c943ba24936 (patch)
tree3fcbcc502db51460084482dd8624ce238150119c /hw/m68k
parent7489f7f3f81dcb776df8c1b9a9db281fc21bf05f (diff)
virt: set the CPU type in BOOTINFO
BI_CPUTYPE/BI_MMUTYPE/BI_FPUTYPE were statically assigned to the 68040 information. This patch changes the code to set in bootinfo the information provided by the command line '-cpu' parameter. Bug: https://gitlab.com/qemu-project/qemu/-/issues/2091 Reported-by: Daniel Palmer <daniel@0x0f.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-ID: <20240223155742.2790252-1-laurent@vivier.eu>
Diffstat (limited to 'hw/m68k')
-rw-r--r--hw/m68k/virt.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
index e2792ef46d..b8e5e102e6 100644
--- a/hw/m68k/virt.c
+++ b/hw/m68k/virt.c
@@ -239,9 +239,20 @@ static void virt_init(MachineState *machine)
param_ptr = param_blob;
BOOTINFO1(param_ptr, BI_MACHTYPE, MACH_VIRT);
- BOOTINFO1(param_ptr, BI_FPUTYPE, FPU_68040);
- BOOTINFO1(param_ptr, BI_MMUTYPE, MMU_68040);
- BOOTINFO1(param_ptr, BI_CPUTYPE, CPU_68040);
+ if (m68k_feature(&cpu->env, M68K_FEATURE_M68020)) {
+ BOOTINFO1(param_ptr, BI_CPUTYPE, CPU_68020);
+ } else if (m68k_feature(&cpu->env, M68K_FEATURE_M68030)) {
+ BOOTINFO1(param_ptr, BI_MMUTYPE, MMU_68030);
+ BOOTINFO1(param_ptr, BI_CPUTYPE, CPU_68030);
+ } else if (m68k_feature(&cpu->env, M68K_FEATURE_M68040)) {
+ BOOTINFO1(param_ptr, BI_FPUTYPE, FPU_68040);
+ BOOTINFO1(param_ptr, BI_MMUTYPE, MMU_68040);
+ BOOTINFO1(param_ptr, BI_CPUTYPE, CPU_68040);
+ } else if (m68k_feature(&cpu->env, M68K_FEATURE_M68060)) {
+ BOOTINFO1(param_ptr, BI_FPUTYPE, FPU_68060);
+ BOOTINFO1(param_ptr, BI_MMUTYPE, MMU_68060);
+ BOOTINFO1(param_ptr, BI_CPUTYPE, CPU_68060);
+ }
BOOTINFO2(param_ptr, BI_MEMCHUNK, 0, ram_size);
BOOTINFO1(param_ptr, BI_VIRT_QEMU_VERSION,