Module Name: src Committed By: snj Date: Thu Jan 9 17:16:47 UTC 2020
Modified Files: src/sys/arch/aarch64/aarch64 [netbsd-9]: cpu.c src/sys/arch/arm/arm32 [netbsd-9]: cpu.c src/sys/dev/fdt [netbsd-9]: fdtbus.c Log Message: Pull up following revision(s) (requested by martin in ticket #614): sys/arch/aarch64/aarch64/cpu.c: 1.32 sys/arch/arm/arm32/cpu.c: 1.138 sys/dev/fdt/fdtbus.c: 1.31 When attaching the first fdtbus, use the root "comptabile" (or failing that: "model") property to set the cpu model (in userland aka sysctl hw.model). When attaching the first cpu, do not overwrite a cpu model if it already had been set. To generate a diff of this commit: cvs rdiff -u -r1.20.2.2 -r1.20.2.3 src/sys/arch/aarch64/aarch64/cpu.c cvs rdiff -u -r1.129.4.1 -r1.129.4.2 src/sys/arch/arm/arm32/cpu.c cvs rdiff -u -r1.29.2.1 -r1.29.2.2 src/sys/dev/fdt/fdtbus.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/aarch64/aarch64/cpu.c diff -u src/sys/arch/aarch64/aarch64/cpu.c:1.20.2.2 src/sys/arch/aarch64/aarch64/cpu.c:1.20.2.3 --- src/sys/arch/aarch64/aarch64/cpu.c:1.20.2.2 Sun Dec 29 09:40:59 2019 +++ src/sys/arch/aarch64/aarch64/cpu.c Thu Jan 9 17:16:47 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.20.2.2 2019/12/29 09:40:59 martin Exp $ */ +/* $NetBSD: cpu.c,v 1.20.2.3 2020/01/09 17:16:47 snj Exp $ */ /* * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.20.2.2 2019/12/29 09:40:59 martin Exp $"); +__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.20.2.3 2020/01/09 17:16:47 snj Exp $"); #include "locators.h" #include "opt_arm_debug.h" @@ -231,10 +231,14 @@ static void cpu_identify(device_t self, struct cpu_info *ci) { char model[128]; + const char *m; identify_aarch64_model(ci->ci_id.ac_midr, model, sizeof(model)); - if (ci->ci_index == 0) - cpu_setmodel("%s", model); + if (ci->ci_index == 0) { + m = cpu_getmodel(); + if (m == NULL || *m == 0) + cpu_setmodel("%s", model); + } aprint_naive("\n"); aprint_normal(": %s\n", model); Index: src/sys/arch/arm/arm32/cpu.c diff -u src/sys/arch/arm/arm32/cpu.c:1.129.4.1 src/sys/arch/arm/arm32/cpu.c:1.129.4.2 --- src/sys/arch/arm/arm32/cpu.c:1.129.4.1 Wed Oct 23 19:14:19 2019 +++ src/sys/arch/arm/arm32/cpu.c Thu Jan 9 17:16:47 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.129.4.1 2019/10/23 19:14:19 martin Exp $ */ +/* $NetBSD: cpu.c,v 1.129.4.2 2020/01/09 17:16:47 snj Exp $ */ /* * Copyright (c) 1995 Mark Brinicombe. @@ -46,7 +46,7 @@ #include "opt_multiprocessor.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.129.4.1 2019/10/23 19:14:19 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.129.4.2 2020/01/09 17:16:47 snj Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -672,6 +672,7 @@ identify_arm_cpu(device_t dv, struct cpu const uint32_t arm_cpuid = ci->ci_arm_cpuid; const char * const xname = device_xname(dv); char model[128]; + const char *m; if (arm_cpuid == 0) { aprint_error("Processor failed probe - no CPU ID\n"); @@ -681,7 +682,9 @@ identify_arm_cpu(device_t dv, struct cpu const enum cpu_class cpu_class = identify_arm_model(arm_cpuid, model, sizeof(model)); if (ci->ci_cpuid == 0) { - cpu_setmodel("%s", model); + m = cpu_getmodel(); + if (m == NULL || *m == 0) + cpu_setmodel("%s", model); } if (ci->ci_data.cpu_cc_freq != 0) { Index: src/sys/dev/fdt/fdtbus.c diff -u src/sys/dev/fdt/fdtbus.c:1.29.2.1 src/sys/dev/fdt/fdtbus.c:1.29.2.2 --- src/sys/dev/fdt/fdtbus.c:1.29.2.1 Thu Oct 3 17:23:11 2019 +++ src/sys/dev/fdt/fdtbus.c Thu Jan 9 17:16:47 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: fdtbus.c,v 1.29.2.1 2019/10/03 17:23:11 martin Exp $ */ +/* $NetBSD: fdtbus.c,v 1.29.2.2 2020/01/09 17:16:47 snj Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,12 +27,13 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: fdtbus.c,v 1.29.2.1 2019/10/03 17:23:11 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fdtbus.c,v 1.29.2.2 2020/01/09 17:16:47 snj Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> #include <sys/kmem.h> +#include <sys/cpu.h> #include <sys/bus.h> @@ -120,7 +121,7 @@ fdt_attach(device_t parent, device_t sel struct fdt_softc *sc = device_private(self); const struct fdt_attach_args *faa = aux; const int phandle = faa->faa_phandle; - const char *descr; + const char *descr, *model; sc->sc_dev = self; sc->sc_phandle = phandle; @@ -141,6 +142,13 @@ fdt_attach(device_t parent, device_t sel if (OF_finddevice("/") != faa->faa_phandle) return; + /* Set hw.model if available */ + model = fdtbus_get_string(phandle, "compatible"); + if (model) + cpu_setmodel(model); + else if (descr) + cpu_setmodel(descr); + /* Scan devices */ fdt_rescan(self, NULL, NULL); }