Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch Move ofppc-specific CPU spinup code to ofppc/machdep.c



details:   https://anonhg.NetBSD.org/src/rev/53094b01874b
branches:  trunk
changeset: 960001:53094b01874b
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Fri Mar 05 01:33:33 2021 +0000

description:
Move ofppc-specific CPU spinup code to ofppc/machdep.c

diffstat:

 sys/arch/ofppc/ofppc/machdep.c        |  28 ++++++++++++++++++++-
 sys/arch/powerpc/oea/ofwoea_machdep.c |  44 +++++++---------------------------
 2 files changed, 36 insertions(+), 36 deletions(-)

diffs (128 lines):

diff -r a55ba1822d1c -r 53094b01874b sys/arch/ofppc/ofppc/machdep.c
--- a/sys/arch/ofppc/ofppc/machdep.c    Fri Mar 05 01:31:43 2021 +0000
+++ b/sys/arch/ofppc/ofppc/machdep.c    Fri Mar 05 01:33:33 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: machdep.c,v 1.118 2021/02/27 02:52:49 thorpej Exp $    */
+/*     $NetBSD: machdep.c,v 1.119 2021/03/05 01:33:33 thorpej Exp $    */
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.118 2021/02/27 02:52:49 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.119 2021/03/05 01:33:33 thorpej Exp $");
 
 #include "opt_ofwoea.h"
 
@@ -159,6 +159,30 @@
                }
        }
 
+#if defined(MULTIPROCESSOR)
+       int l;
+       char cpupath[32];
+
+       extern void cpu_spinstart(u_int);
+       extern volatile u_int cpu_spinstart_ack;
+
+       for (i = 1; i < CPU_MAXNUM; i++) {
+               snprintf(cpupath, sizeof(cpupath), "/cpus/@%x", i);
+               node = OF_finddevice(cpupath);
+               if (node <= 0)
+                       continue;
+               aprint_verbose("Starting up CPU %d %s\n", i, cpupath);
+               OF_start_cpu(node, (u_int)cpu_spinstart, i);
+               for (l = 0; l < 100000000; l++) {
+                       if (cpu_spinstart_ack == i) {
+                               aprint_verbose("CPU %d spun up.\n", i);
+                               break;
+                       }
+                       __asm volatile ("sync");
+               }
+       }
+#endif /* MULTIPROCESSOR */
+
        ofwoea_initppc(startkernel, endkernel, args);
 }
 
diff -r a55ba1822d1c -r 53094b01874b sys/arch/powerpc/oea/ofwoea_machdep.c
--- a/sys/arch/powerpc/oea/ofwoea_machdep.c     Fri Mar 05 01:31:43 2021 +0000
+++ b/sys/arch/powerpc/oea/ofwoea_machdep.c     Fri Mar 05 01:33:33 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ofwoea_machdep.c,v 1.56 2021/02/27 02:52:48 thorpej Exp $ */
+/* $NetBSD: ofwoea_machdep.c,v 1.57 2021/03/05 01:33:33 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ofwoea_machdep.c,v 1.56 2021/02/27 02:52:48 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ofwoea_machdep.c,v 1.57 2021/03/05 01:33:33 thorpej Exp $");
 
 #include "ksyms.h"
 #include "wsdisplay.h"
@@ -139,9 +139,6 @@
 static void restore_ofmap(void);
 static void set_timebase(void);
 
-extern void cpu_spinstart(u_int);
-extern volatile u_int cpu_spinstart_ack;
-
 void
 ofwoea_initppc(u_int startkernel, u_int endkernel, char *args)
 {
@@ -156,35 +153,6 @@
            startsym = endsym = NULL;
 #endif
 
-       /* Initialize bus_space */
-       ofwoea_bus_space_init();
-
-       ofwoea_consinit();
-
-       if (ofw_quiesce)
-               OF_quiesce();
-
-#if defined(MULTIPROCESSOR) && defined(ofppc)
-       char cpupath[32];
-       int i, l, node;
-
-       for (i = 1; i < CPU_MAXNUM; i++) {
-               snprintf(cpupath, sizeof(cpupath), "/cpus/@%x", i);
-               node = OF_finddevice(cpupath);
-               if (node <= 0)
-                       continue;
-               aprint_verbose("Starting up CPU %d %s\n", i, cpupath);
-               OF_start_cpu(node, (u_int)cpu_spinstart, i);
-               for (l = 0; l < 100000000; l++) {
-                       if (cpu_spinstart_ack == i) {
-                               aprint_verbose("CPU %d spun up.\n", i);
-                               break;
-                       }
-                       __asm volatile ("sync");
-               }
-       }
-#endif
-
        /* Parse the args string */
        if (args) {
                strcpy(bootpath, args);
@@ -204,6 +172,14 @@
                        bootpath[len] = 0;
        }
 
+       /* Initialize bus_space */
+       ofwoea_bus_space_init();
+
+       ofwoea_consinit();
+
+       if (ofw_quiesce)
+               OF_quiesce();
+
        oea_init(pic_ext_intr);
 
        /*



Home | Main Index | Thread Index | Old Index