From: Helge Deller Date: Tue, 16 Jun 2026 21:03:17 +0000 (+0200) Subject: linux-user: Implement /proc/cpuinfo for m68k CPU X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b0ef9060caf6972cbefeb42dbc729e2ce04673f;p=thirdparty%2Fqemu.git linux-user: Implement /proc/cpuinfo for m68k CPU Mimic the entries for /proc/cpuinfo to what can be seen on the debian porterbox mitchy.debian.org. Cc: Thomas Huth Cc: Laurent Vivier Signed-off-by: Helge Deller --- diff --git a/linux-user/m68k/target_proc.h b/linux-user/m68k/target_proc.h index 3df8f28e228..dca77d84833 100644 --- a/linux-user/m68k/target_proc.h +++ b/linux-user/m68k/target_proc.h @@ -1,6 +1,8 @@ /* * M68K specific proc functions for linux-user * + * Copyright (c) 2026 Helge Deller + * * SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef M68K_TARGET_PROC_H @@ -13,4 +15,48 @@ static int open_hardware(CPUArchState *cpu_env, int fd) } #define HAVE_ARCH_PROC_HARDWARE + +static int open_cpuinfo(CPUArchState *cpu_env, int fd) +{ + const char *cpu, *fpu; + struct timespec res; + double freq_mhz; + + if (clock_getres(CLOCK_REALTIME, &res) == -1) { + res.tv_nsec = 1; + } + freq_mhz = 1000.0 / res.tv_nsec; + + if (m68k_feature(cpu_env, M68K_FEATURE_M68010)) { + cpu = "68010"; + } else if (m68k_feature(cpu_env, M68K_FEATURE_M68020)) { + cpu = "68020"; + } else if (m68k_feature(cpu_env, M68K_FEATURE_M68030)) { + cpu = "68030"; + } else if (m68k_feature(cpu_env, M68K_FEATURE_M68040)) { + cpu = "68040"; + } else if (m68k_feature(cpu_env, M68K_FEATURE_M68060)) { + cpu = "68060"; + } else { + cpu = "680x0"; + } + + if (m68k_feature(cpu_env, M68K_FEATURE_FPU)) { + fpu = cpu; + } else { + fpu = "none(soft float)"; + } + + dprintf(fd, "CPU:\t\t%s\n" + "MMU:\t\t%s\n" + "FPU:\t\t%s\n" + "Clocking:\t%.1fMHz\n" + "Model:\t\tQEMU user v" QEMU_VERSION "\n", + cpu, cpu, fpu, freq_mhz); + /* dropped BogoMips and Calibration for now */ + + return 0; +} +#define HAVE_ARCH_PROC_CPUINFO + #endif /* M68K_TARGET_PROC_H */