Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/bebox Use BEBOX_REG for mapped to BAT instead of be...



details:   https://anonhg.NetBSD.org/src/rev/663a820d696f
branches:  trunk
changeset: 768071:663a820d696f
user:      kiyohara <kiyohara%NetBSD.org@localhost>
date:      Sun Aug 07 15:04:45 2011 +0000

description:
Use BEBOX_REG for mapped to BAT instead of bebox_mb_reg.

diffstat:

 sys/arch/bebox/bebox/machdep.c   |  11 +-----
 sys/arch/bebox/bebox/pic_bebox.c |  20 ++++-------
 sys/arch/bebox/include/bebox.h   |  66 ++++++++++++++++++++++++++++++++++++++++
 sys/arch/bebox/include/intr.h    |   6 +---
 4 files changed, 77 insertions(+), 26 deletions(-)

diffs (211 lines):

diff -r dac62f2fcc17 -r 663a820d696f sys/arch/bebox/bebox/machdep.c
--- a/sys/arch/bebox/bebox/machdep.c    Sun Aug 07 14:47:05 2011 +0000
+++ b/sys/arch/bebox/bebox/machdep.c    Sun Aug 07 15:04:45 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: machdep.c,v 1.101 2011/06/30 00:52:55 matt Exp $       */
+/*     $NetBSD: machdep.c,v 1.102 2011/08/07 15:04:46 kiyohara Exp $   */
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.101 2011/06/30 00:52:55 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.102 2011/08/07 15:04:46 kiyohara Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_ddb.h"
@@ -104,7 +104,6 @@
  * Global variables used here and there
  */
 char bootinfo[BOOTINFO_MAXSIZE];
-paddr_t bebox_mb_reg;          /* BeBox MotherBoard register */
 #define        OFMEMREGIONS    32
 struct mem_region physmemr[OFMEMREGIONS], availmemr[OFMEMREGIONS];
 char bootpath[256];
@@ -167,12 +166,6 @@
 void
 cpu_startup(void)
 {
-       /*
-        * BeBox Mother Board's Register Mapping
-        */
-       bebox_mb_reg = (vaddr_t) mapiodev(BEBOX_INTR_REG, PAGE_SIZE, false);
-       if (!bebox_mb_reg)
-               panic("cpu_startup: no room for interrupt register");
 
        /*
         * Do common VM initialization
diff -r dac62f2fcc17 -r 663a820d696f sys/arch/bebox/bebox/pic_bebox.c
--- a/sys/arch/bebox/bebox/pic_bebox.c  Sun Aug 07 14:47:05 2011 +0000
+++ b/sys/arch/bebox/bebox/pic_bebox.c  Sun Aug 07 15:04:45 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pic_bebox.c,v 1.7 2011/06/05 16:52:23 matt Exp $ */
+/* $NetBSD: pic_bebox.c,v 1.8 2011/08/07 15:13:07 kiyohara Exp $ */
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pic_bebox.c,v 1.7 2011/06/05 16:52:23 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pic_bebox.c,v 1.8 2011/08/07 15:13:07 kiyohara Exp $");
 
 #include <sys/param.h>
 #include <sys/malloc.h>
@@ -38,18 +38,14 @@
 
 #include <uvm/uvm_extern.h>
 
+#include <machine/bebox.h>
 #include <machine/pio.h>
 
 #include <arch/powerpc/pic/picvar.h>
 
-extern paddr_t bebox_mb_reg;
-
 #define BEBOX_INTR_MASK                0x0ffffffc
 #define BEBOX_SET_MASK         0x80000000
 #define BEBOX_INTR(x)          (0x80000000 >> x)
-#define CPU0_INT_MASK          0x0f0
-#define CPU1_INT_MASK          0x1f0
-#define INT_STATE_REG          0x2f0
 
 static void bebox_enable_irq(struct pic_ops *, int, int);
 static void bebox_disable_irq(struct pic_ops *, int);
@@ -66,7 +62,7 @@
        KASSERT(pic != NULL);
 
        pic->pic_numintrs = 32;
-       pic->pic_cookie = (void *)bebox_mb_reg;
+       pic->pic_cookie = (void *)BEBOX_REG;
        pic->pic_enable_irq = bebox_enable_irq;
        pic->pic_reenable_irq = bebox_enable_irq;
        pic->pic_disable_irq = bebox_disable_irq;
@@ -82,7 +78,7 @@
 bebox_enable_irq(struct pic_ops *pic, int irq, int type)
 {
 
-       *(volatile unsigned int *)(bebox_mb_reg + CPU0_INT_MASK) =
+       *(volatile unsigned int *)(BEBOX_REG + CPU0_INT_MASK) =
            BEBOX_SET_MASK | (1 << (31 - irq));
 }
 
@@ -90,7 +86,7 @@
 bebox_disable_irq(struct pic_ops *pic, int irq)
 {
 
-       *(volatile unsigned int *)(bebox_mb_reg + CPU0_INT_MASK) =
+       *(volatile unsigned int *)(BEBOX_REG + CPU0_INT_MASK) =
            (1 << (31 - irq));
 }
 
@@ -99,9 +95,9 @@
 {
        unsigned int state;
 
-       state = *(volatile unsigned int *)(bebox_mb_reg + INT_STATE_REG);
+       state = *(volatile unsigned int *)(BEBOX_REG + INT_SOURCE);
        state &= BEBOX_INTR_MASK;
-       state &= *(volatile unsigned int *)(bebox_mb_reg + CPU0_INT_MASK);
+       state &= *(volatile unsigned int *)(BEBOX_REG + CPU0_INT_MASK);
        if (state == 0)
                return 255;
        return __builtin_clz(state);
diff -r dac62f2fcc17 -r 663a820d696f sys/arch/bebox/include/bebox.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/bebox/include/bebox.h    Sun Aug 07 15:04:45 2011 +0000
@@ -0,0 +1,66 @@
+/*     $NetBSD: bebox.h,v 1.1 2011/08/07 15:04:45 kiyohara Exp $       */
+/*
+ * Copyright (c) 2011 KIYOHARA Takashi
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _BEBOX_H
+#define _BEBOX_H
+
+/*
+ * BeBox mainboard's Register
+ */
+#define BEBOX_REG              0x7ffff000
+
+#define BEBOX_SET_MASK         0x80000000
+#define BEBOX_CLEAR_MASK       0x00000000
+
+#define READ_BEBOX_REG(reg)    *(uint32_t *)(BEBOX_REG + (reg))
+#define SET_BEBOX_REG(reg, v)  \
+               *(uint32_t *)(BEBOX_REG + (reg)) = ((v) | BEBOX_SET_MASK)
+#define CLEAR_BEBOX_REG(reg, v)        \
+               *(uint32_t *)(BEBOX_REG + (reg)) = ((v) | BEBOX_CLEAR_MASK)
+
+#define CPU0_INT_MASK       0x0f0      /* Interrupt Mask for CPU0 */
+#define CPU1_INT_MASK       0x1f0      /* Interrupt Mask for CPU1 */
+#define INT_SOURCE          0x2f0      /* Interrupt Source */
+#define CPU_CONTROL         0x3f0      /* Inter-CPU Interrupt */
+#define CPU_RESET           0x4f0      /* Reset Control */
+#define INTR_VECTOR_REG             0xff0
+
+/* Control */
+#define CPU0_SMI       (1 << 30)       /* SMI to CPU0 */
+#define CPU1_SMI       (1 << 29)       /* SMI to CPU1 */
+#define CPU1_INT       (1 << 28)       /* Interrupt to CPU1 (rev.1 only) */
+#define CPU0_TLBISYNC  (1 << 27)       /* tlbsync to CPU0 */
+#define CPU1_TLBISYNC  (1 << 26)       /* tlbsync to CPU1 */
+#define WHO_AM_I       (1 << 25)
+
+#define TLBISYNC_FROM(n)       (1 << (CPU1_TLBISYNC + (n)))
+
+/* Reset */
+#define CPU1_SRESET    (1 << 30)       /* Software Reset to CPU1 */
+#define CPU1_HRESET    (1 << 29)       /* Hardware Reset to CPU1 */
+
+#endif /* _BEBOX_H */
diff -r dac62f2fcc17 -r 663a820d696f sys/arch/bebox/include/intr.h
--- a/sys/arch/bebox/include/intr.h     Sun Aug 07 14:47:05 2011 +0000
+++ b/sys/arch/bebox/include/intr.h     Sun Aug 07 15:04:45 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: intr.h,v 1.30 2011/06/17 23:36:17 matt Exp $   */
+/*     $NetBSD: intr.h,v 1.31 2011/08/07 15:13:07 kiyohara Exp $       */
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -40,15 +40,11 @@
 void enable_intr(void);
 void disable_intr(void);
 
-extern paddr_t bebox_mb_reg;
 
 #define ICU_LEN                        32
 #define IRQ_SLAVE              2
 #define LEGAL_HWIRQ_P(x)       ((u_int)(x) < ICU_LEN && (x) != IRQ_SLAVE)
 
-#define BEBOX_INTR_REG         0x7ffff000
-#define INTR_VECTOR_REG                0xff0
-
 #endif /* !_LOCORE */
 
 #endif /* !_BEBOX_INTR_H_ */



Home | Main Index | Thread Index | Old Index