Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/sparc set machine_model[] earlier, so that bootstra...
details: https://anonhg.NetBSD.org/src/rev/256ecfc85eb7
branches: trunk
changeset: 958694:256ecfc85eb7
user: mrg <mrg%NetBSD.org@localhost>
date: Sun Jan 17 01:02:28 2021 +0000
description:
set machine_model[] earlier, so that bootstrap can use it.
also, avoid "extern <variable>" in .c files, and add
idempotency to autoconf.h.
diffstat:
sys/arch/sparc/include/autoconf.h | 10 ++++++++-
sys/arch/sparc/sparc/autoconf.c | 43 +++++++++++++++++++++++++++++---------
sys/arch/sparc/sparc/cpu.c | 5 +--
3 files changed, 44 insertions(+), 14 deletions(-)
diffs (132 lines):
diff -r f1a3f6c322d9 -r 256ecfc85eb7 sys/arch/sparc/include/autoconf.h
--- a/sys/arch/sparc/include/autoconf.h Sun Jan 17 00:35:46 2021 +0000
+++ b/sys/arch/sparc/include/autoconf.h Sun Jan 17 01:02:28 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: autoconf.h,v 1.48 2012/10/27 17:18:11 chs Exp $ */
+/* $NetBSD: autoconf.h,v 1.49 2021/01/17 01:02:28 mrg Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -69,6 +69,9 @@
* @(#)autoconf.h 8.2 (Berkeley) 9/30/93
*/
+#ifndef _MACHINE_AUTOCONF_H_
+#define _MACHINE_AUTOCONF_H_
+
/*
* Autoconfiguration information.
*/
@@ -173,3 +176,8 @@
void bootstrap(void);
int romgetcursoraddr(int **, int **);
+
+/* Exported from autoconf.c for other consumers. */
+extern char machine_model[100];
+
+#endif /* !_MACHINE_AUTOCONF_H_ */
diff -r f1a3f6c322d9 -r 256ecfc85eb7 sys/arch/sparc/sparc/autoconf.c
--- a/sys/arch/sparc/sparc/autoconf.c Sun Jan 17 00:35:46 2021 +0000
+++ b/sys/arch/sparc/sparc/autoconf.c Sun Jan 17 01:02:28 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: autoconf.c,v 1.261 2020/08/14 10:34:22 martin Exp $ */
+/* $NetBSD: autoconf.c,v 1.262 2021/01/17 01:02:28 mrg Exp $ */
/*
* Copyright (c) 1996
@@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.261 2020/08/14 10:34:22 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.262 2021/01/17 01:02:28 mrg Exp $");
#include "opt_ddb.h"
#include "opt_kgdb.h"
@@ -169,6 +169,33 @@
}
/*
+ * Set machine_model[] to something useful. If late is set, then
+ * have now probed the sun4 class and can finish it. Other systems
+ * are complete with the first call with late=false out of bootstrap.
+ */
+static void
+set_machine_model(bool late)
+{
+ char namebuf[32];
+
+ if (!CPU_ISSUN4) {
+ if (late) {
+ KASSERT(machine_model[0] != '\0');
+ } else {
+ snprintf(machine_model, sizeof machine_model, "%s",
+ prom_getpropstringA(findroot(), "name", namebuf,
+ sizeof(namebuf)));
+ }
+ return;
+ }
+ if (late)
+ snprintf(machine_model, sizeof machine_model, "SUN-4/%d series",
+ cpuinfo.classlvl);
+ else
+ snprintf(machine_model, sizeof machine_model, "SUN-4 series");
+}
+
+/*
* Get the number of CPUs in the system and the CPUs' SPARC architecture
* version. We need this information early in the boot process.
*/
@@ -188,6 +215,9 @@
*/
cpu_arch = 7;
+ /* Initialise machine_model, early phase. */
+ set_machine_model(false);
+
/* On sun4 and sun4c we support only one CPU */
if (!CPU_ISSUN4M && !CPU_ISSUN4D)
return (1);
@@ -1181,14 +1211,7 @@
#define openboot_special4d ((void *)0)
#endif
-
- if (CPU_ISSUN4)
- snprintf(machine_model, sizeof machine_model, "SUN-4/%d series",
- cpuinfo.classlvl);
- else
- snprintf(machine_model, sizeof machine_model, "%s",
- prom_getpropstringA(findroot(), "name", namebuf,
- sizeof(namebuf)));
+ set_machine_model(true);
prom_getidprom();
printf(": %s: hostid %lx\n", machine_model, hostid);
diff -r f1a3f6c322d9 -r 256ecfc85eb7 sys/arch/sparc/sparc/cpu.c
--- a/sys/arch/sparc/sparc/cpu.c Sun Jan 17 00:35:46 2021 +0000
+++ b/sys/arch/sparc/sparc/cpu.c Sun Jan 17 01:02:28 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.257 2020/12/05 08:04:51 mrg Exp $ */
+/* $NetBSD: cpu.c,v 1.258 2021/01/17 01:02:28 mrg Exp $ */
/*
* Copyright (c) 1996
@@ -52,7 +52,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.257 2020/12/05 08:04:51 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.258 2021/01/17 01:02:28 mrg Exp $");
#include "opt_multiprocessor.h"
#include "opt_lockdebug.h"
@@ -115,7 +115,6 @@
char machine[] = MACHINE; /* from <machine/param.h> */
char machine_arch[] = MACHINE_ARCH; /* from <machine/param.h> */
int cpu_arch; /* sparc architecture version */
-extern char machine_model[];
int sparc_ncpus; /* # of CPUs detected by PROM */
struct cpu_info *cpus[_MAXNCPU+1]; /* we only support 4 CPUs. */
Home |
Main Index |
Thread Index |
Old Index