Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/alpha/tlsb Add some defines for TLSB interrupt mask...



details:   https://anonhg.NetBSD.org/src/rev/f1be5996da1e
branches:  trunk
changeset: 481384:f1be5996da1e
user:      mjacob <mjacob%NetBSD.org@localhost>
date:      Thu Jan 27 22:27:50 2000 +0000

description:
Add some defines for TLSB interrupt mask and summary registers. Update
copyright.

diffstat:

 sys/arch/alpha/tlsb/tlsbreg.h |  48 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 4 deletions(-)

diffs (78 lines):

diff -r f4ed3750b595 -r f1be5996da1e sys/arch/alpha/tlsb/tlsbreg.h
--- a/sys/arch/alpha/tlsb/tlsbreg.h     Thu Jan 27 19:52:43 2000 +0000
+++ b/sys/arch/alpha/tlsb/tlsbreg.h     Thu Jan 27 22:27:50 2000 +0000
@@ -1,7 +1,7 @@
-/* $NetBSD: tlsbreg.h,v 1.4 1998/07/08 00:45:52 mjacob Exp $ */
+/* $NetBSD: tlsbreg.h,v 1.5 2000/01/27 22:27:50 mjacob Exp $ */
 
 /*
- * Copyright (c) 1997 by Matthew Jacob
+ * Copyright (c) 1997, 2000 by Matthew Jacob
  * NASA AMES Research Center.
  * All rights reserved.
  *
@@ -17,8 +17,6 @@
  * 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.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -134,6 +132,10 @@
 #define TLILID3                0x0ac0          /* I: Int. Level 3 IDENT Register */
 #define TLCPUMASK      0x0b00          /* I: CPU Interrupt Mask Register */
 #define TLMBPTR                0x0c00          /* I: Mailbox Pointer Register */
+#define        TLINTRMASK0     0x1100          /* C: Interrupt Mask Register CPU 0 */
+#define        TLINTRMASK1     0x1140          /* C: Interrupt Mask Register CPU 1 */
+#define        TLINTRSUM0      0x1180          /* C: Interrupt Sum Register CPU 0 */
+#define        TLINTRSUM1      0x11C0          /* C: Interrupt Sum Register CPU 1 */
 #define        TLEPAERR        0x1500          /* C: ADG error register */
 #define        TLEPDERR        0x1540          /* C: DIGA error register */
 #define        TLEPMERR        0x1580          /* C: MMG error register */
@@ -322,6 +324,44 @@
  */
 
 
+/*
+ * CPU Interrupt Mask Register
+ *
+ * The PAL code reads this register for each CPU on a TLSB CPU board
+ * to see what is or isn't enabled.
+ */
+#define        TLINTRMASK_CONHALT      0x100   /* Enable ^P Halt */
+#define        TLINTRMASK_HALT         0x080   /* Enable Halt */
+#define        TLINTRMASK_CLOCK        0x040   /* Enable Clock Interrupts */
+#define        TLINTRMASK_XCALL        0x020   /* Enable Interprocessor Interrupts */
+#define        TLINTRMASK_IPL17        0x010   /* Enable IPL 17 Interrupts */
+#define        TLINTRMASK_IPL16        0x008   /* Enable IPL 16 Interrupts */
+#define        TLINTRMASK_IPL15        0x004   /* Enable IPL 15 Interrupts */
+#define        TLINTRMASK_IPL14        0x002   /* Enable IPL 14 Interrupts */
+#define        TLINTRMASK_DUART        0x001   /* Enable GBUS Duart0 Interrupts */
+
+/*
+ * CPU Interrupt Summary Register
+ *
+ * The PAL code reads this register at interrupt time to figure out
+ * which interrupt line to assert to the CPU. Note that when the
+ * interrupt is actually vectored through the PAL code, it arrives
+ * here already presorted as to type (clock, halt, iointr).
+ */
+#define        TLINTRSUM_HALT          (1 << 28)       /* Halted via TLCNR register */
+#define        TLINTRSUM_CONHALT       (1 << 27)       /* Halted via ^P (W1C) */
+#define        TLINTRSUM_CLOCK         (1 << 6)        /* Clock Interrupt (W1C) */
+#define        TLINTRSUM_XCALL         (1 << 5)        /* Interprocessor Int (W1C) */
+#define        TLINTRSUM_IPL17         (1 << 4)        /* IPL 17 Interrupt Summary */
+#define        TLINTRSUM_IPL16         (1 << 3)        /* IPL 16 Interrupt Summary */
+#define        TLINTRSUM_IPL15         (1 << 2)        /* IPL 15 Interrupt Summary */
+#define        TLINTRSUM_IPL14         (1 << 1)        /* IPL 14 Interrupt Summary */
+#define        TLINTRSUM_DUART         (1 << 0)        /* Duart Int (W1C) */
+/* after checking the summaries, you can get the source node for each level */
+#define        TLINTRSUM_IPL17_SOURCE(x)       ((x >> 22) & 0x1f)
+#define        TLINTRSUM_IPL16_SOURCE(x)       ((x >> 17) & 0x1f)
+#define        TLINTRSUM_IPL15_SOURCE(x)       ((x >> 12) & 0x1f)
+#define        TLINTRSUM_IPL14_SOURCE(x)       ((x >> 7) & 0x1f)
 
 /*
  * (some of) TurboLaser CPU ADG error register defines.



Home | Main Index | Thread Index | Old Index