Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/powerpc Cleanup hatch names.



details:   https://anonhg.NetBSD.org/src/rev/5f5e94d54444
branches:  trunk
changeset: 766647:5f5e94d54444
user:      matt <matt%NetBSD.org@localhost>
date:      Wed Jun 29 06:00:17 2011 +0000

description:
Cleanup hatch names.
Add cpuset_info.

diffstat:

 sys/arch/powerpc/include/cpu.h             |  38 ++++++++++----
 sys/arch/powerpc/oea/cpu_subr.c            |  76 +++++++++++++++---------------
 sys/arch/powerpc/powerpc/powerpc_machdep.c |   9 ++-
 3 files changed, 72 insertions(+), 51 deletions(-)

diffs (249 lines):

diff -r 0def0172230e -r 5f5e94d54444 sys/arch/powerpc/include/cpu.h
--- a/sys/arch/powerpc/include/cpu.h    Wed Jun 29 05:57:30 2011 +0000
+++ b/sys/arch/powerpc/include/cpu.h    Wed Jun 29 06:00:17 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpu.h,v 1.86 2011/06/21 06:32:36 matt Exp $    */
+/*     $NetBSD: cpu.h,v 1.87 2011/06/29 06:00:17 matt Exp $    */
 
 /*
  * Copyright (C) 1999 Wolfgang Solfrank.
@@ -154,17 +154,33 @@
 
 #if defined(MULTIPROCESSOR) && !defined(_MODULE)
 struct cpu_hatch_data {
-       device_t self;
-       struct cpu_info *ci;
-       int running;
-       int pir;
-       int asr;
-       int hid0;
-       int sdr1;
-       int sr[16];
-       int batu[4], batl[4];
-       int tbu, tbl;
+       int hatch_running;
+       device_t hatch_self;
+       struct cpu_info *hatch_ci;
+       uint32_t hatch_tbu;
+       uint32_t hatch_tbl;
+       uint32_t hatch_hid0;
+       uint32_t hatch_pir;
+#if defined(PPC_OEA) || defined(PPC_OEA64_BRIDGE)
+       uintptr_t hatch_asr;
+       uintptr_t hatch_sdr1;
+       uint32_t hatch_sr[16];
+       uintptr_t hatch_batu[8], hatch_batl[8];
+#endif
+#if defined(PPC_BOOKE)
+       vaddr_t hatch_sp;
+#endif
 };
+
+struct cpuset_info {
+       __cpuset_t cpus_running;
+       __cpuset_t cpus_hatched;
+       __cpuset_t cpus_paused;
+       __cpuset_t cpus_resumed;
+       __cpuset_t cpus_halted;
+};
+
+extern volatile struct cpuset_info cpuset_info;
 #endif /* MULTIPROCESSOR && !_MODULE */
 
 #if defined(MULTIPROCESSOR) || defined(_MODULE)
diff -r 0def0172230e -r 5f5e94d54444 sys/arch/powerpc/oea/cpu_subr.c
--- a/sys/arch/powerpc/oea/cpu_subr.c   Wed Jun 29 05:57:30 2011 +0000
+++ b/sys/arch/powerpc/oea/cpu_subr.c   Wed Jun 29 06:00:17 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpu_subr.c,v 1.69 2011/06/21 04:21:17 matt Exp $       */
+/*     $NetBSD: cpu_subr.c,v 1.70 2011/06/29 06:00:17 matt Exp $       */
 
 /*-
  * Copyright (c) 2001 Matt Thomas.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu_subr.c,v 1.69 2011/06/21 04:21:17 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu_subr.c,v 1.70 2011/06/29 06:00:17 matt Exp $");
 
 #include "opt_ppcparam.h"
 #include "opt_multiprocessor.h"
@@ -1213,37 +1213,37 @@
        ci->ci_curpm = ci->ci_curpcb->pcb_pm;
 
        cpu_hatch_data = h;
-       h->running = 0;
-       h->self = self;
-       h->ci = ci;
-       h->pir = ci->ci_cpuid;
+       h->hatch_running = 0;
+       h->hatch_self = self;
+       h->hatch_ci = ci;
+       h->hatch_pir = ci->ci_cpuid;
 
        cpu_hatch_stack = (uint32_t)hp;
        ci->ci_lasttb = cpu_info[0].ci_lasttb;
 
        /* copy special registers */
 
-       h->hid0 = mfspr(SPR_HID0);
+       h->hatch_hid0 = mfspr(SPR_HID0);
        
-       __asm volatile ("mfsdr1 %0" : "=r"(h->sdr1));
+       __asm volatile ("mfsdr1 %0" : "=r"(h->hatch_sdr1));
        for (i = 0; i < 16; i++) {
-               __asm ("mfsrin %0,%1" : "=r"(h->sr[i]) :
+               __asm ("mfsrin %0,%1" : "=r"(h->hatch_sr[i]) :
                       "r"(i << ADDR_SR_SHFT));
        }
        if (oeacpufeat & OEACPU_64)
-               h->asr = mfspr(SPR_ASR);
+               h->hatch_asr = mfspr(SPR_ASR);
        else
-               h->asr = 0;
+               h->hatch_asr = 0;
 
        /* copy the bat regs */
-       __asm volatile ("mfibatu %0,0" : "=r"(h->batu[0]));
-       __asm volatile ("mfibatl %0,0" : "=r"(h->batl[0]));
-       __asm volatile ("mfibatu %0,1" : "=r"(h->batu[1]));
-       __asm volatile ("mfibatl %0,1" : "=r"(h->batl[1]));
-       __asm volatile ("mfibatu %0,2" : "=r"(h->batu[2]));
-       __asm volatile ("mfibatl %0,2" : "=r"(h->batl[2]));
-       __asm volatile ("mfibatu %0,3" : "=r"(h->batu[3]));
-       __asm volatile ("mfibatl %0,3" : "=r"(h->batl[3]));
+       __asm volatile ("mfibatu %0,0" : "=r"(h->hatch_batu[0]));
+       __asm volatile ("mfibatl %0,0" : "=r"(h->hatch_batl[0]));
+       __asm volatile ("mfibatu %0,1" : "=r"(h->hatch_batu[1]));
+       __asm volatile ("mfibatl %0,1" : "=r"(h->hatch_batl[1]));
+       __asm volatile ("mfibatu %0,2" : "=r"(h->hatch_batu[2]));
+       __asm volatile ("mfibatl %0,2" : "=r"(h->hatch_batl[2]));
+       __asm volatile ("mfibatu %0,3" : "=r"(h->hatch_batu[3]));
+       __asm volatile ("mfibatl %0,3" : "=r"(h->hatch_batl[3]));
        __asm volatile ("sync; isync");
 
        if (md_setup_trampoline(h, ci) == -1)
@@ -1255,7 +1255,7 @@
 
        delay(200000);
 
-       if (h->running < 1) {
+       if (h->hatch_running < 1) {
                aprint_error("%d:CPU %d didn't start %d\n", cpu_spinstart_ack,
                    ci->ci_cpuid, cpu_spinstart_ack);
                Debugger();
@@ -1276,7 +1276,7 @@
 cpu_hatch(void)
 {
        volatile struct cpu_hatch_data *h = cpu_hatch_data;
-       struct cpu_info * const ci = h->ci;
+       struct cpu_info * const ci = h->hatch_ci;
        struct pcb *pcb;
        u_int msr;
        int i;
@@ -1291,44 +1291,44 @@
         */
 
        msr = mfspr(SPR_PIR);
-       if (msr != h->pir)
-               mtspr(SPR_PIR, h->pir);
+       if (msr != h->hatch_pir)
+               mtspr(SPR_PIR, h->hatch_pir);
        
        __asm volatile ("mtsprg0 %0" :: "r"(ci));
        curlwp = ci->ci_curlwp;
        cpu_spinstart_ack = 0;
 
        /* Initialize MMU. */
-       __asm ("mtibatu 0,%0" :: "r"(h->batu[0]));
-       __asm ("mtibatl 0,%0" :: "r"(h->batl[0]));
-       __asm ("mtibatu 1,%0" :: "r"(h->batu[1]));
-       __asm ("mtibatl 1,%0" :: "r"(h->batl[1]));
-       __asm ("mtibatu 2,%0" :: "r"(h->batu[2]));
-       __asm ("mtibatl 2,%0" :: "r"(h->batl[2]));
-       __asm ("mtibatu 3,%0" :: "r"(h->batu[3]));
-       __asm ("mtibatl 3,%0" :: "r"(h->batl[3]));
+       __asm ("mtibatu 0,%0" :: "r"(h->hatch_batu[0]));
+       __asm ("mtibatl 0,%0" :: "r"(h->hatch_batl[0]));
+       __asm ("mtibatu 1,%0" :: "r"(h->hatch_batu[1]));
+       __asm ("mtibatl 1,%0" :: "r"(h->hatch_batl[1]));
+       __asm ("mtibatu 2,%0" :: "r"(h->hatch_batu[2]));
+       __asm ("mtibatl 2,%0" :: "r"(h->hatch_batl[2]));
+       __asm ("mtibatu 3,%0" :: "r"(h->hatch_batu[3]));
+       __asm ("mtibatl 3,%0" :: "r"(h->hatch_batl[3]));
 
-       mtspr(SPR_HID0, h->hid0);
+       mtspr(SPR_HID0, h->hatch_hid0);
 
        __asm ("mtibatl 0,%0; mtibatu 0,%1; mtdbatl 0,%0; mtdbatu 0,%1;"
            :: "r"(battable[0].batl), "r"(battable[0].batu));
 
        __asm volatile ("sync");
        for (i = 0; i < 16; i++)
-               __asm ("mtsrin %0,%1" :: "r"(h->sr[i]), "r"(i << ADDR_SR_SHFT));
+               __asm ("mtsrin %0,%1" :: "r"(h->hatch_sr[i]), "r"(i << ADDR_SR_SHFT));
        __asm volatile ("sync; isync");
 
        if (oeacpufeat & OEACPU_64)
-               mtspr(SPR_ASR, h->asr);
+               mtspr(SPR_ASR, h->hatch_asr);
 
        cpu_spinstart_ack = 1;
        __asm ("ptesync");
-       __asm ("mtsdr1 %0" :: "r"(h->sdr1));
+       __asm ("mtsdr1 %0" :: "r"(h->hatch_sdr1));
        __asm volatile ("sync; isync");
 
        cpu_spinstart_ack = 5;
        for (i = 0; i < 16; i++)
-               __asm ("mfsrin %0,%1" : "=r"(h->sr[i]) :
+               __asm ("mfsrin %0,%1" : "=r"(h->hatch_sr[i]) :
                       "r"(i << ADDR_SR_SHFT));
 
        /* Enable I/D address translations. */
@@ -1340,9 +1340,9 @@
 
        md_sync_timebase(h);
 
-       cpu_setup(h->self, ci);
+       cpu_setup(h->hatch_self, ci);
 
-       h->running = 1;
+       h->hatch_running = 1;
        __asm volatile ("sync; isync");
 
        while (start_secondary_cpu == 0)
diff -r 0def0172230e -r 5f5e94d54444 sys/arch/powerpc/powerpc/powerpc_machdep.c
--- a/sys/arch/powerpc/powerpc/powerpc_machdep.c        Wed Jun 29 05:57:30 2011 +0000
+++ b/sys/arch/powerpc/powerpc/powerpc_machdep.c        Wed Jun 29 06:00:17 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: powerpc_machdep.c,v 1.58 2011/06/24 22:19:45 matt Exp $        */
+/*     $NetBSD: powerpc_machdep.c,v 1.59 2011/06/29 06:00:17 matt Exp $        */
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,10 +32,11 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.58 2011/06/24 22:19:45 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.59 2011/06/29 06:00:17 matt Exp $");
 
 #include "opt_altivec.h"
 #include "opt_modular.h"
+#include "opt_multiprocessor.h"
 #include "opt_ppcarch.h"
 
 #include <sys/param.h>
@@ -90,6 +91,10 @@
 #endif
 };
 
+#ifdef MULTIPROCESSOR
+volatile struct cpuset_info cpuset_info;
+#endif
+
 /*
  * Set set up registers on exec.
  */



Home | Main Index | Thread Index | Old Index