summaryrefslogtreecommitdiff
path: root/sys/arch/sandpoint/include
diff options
context:
space:
mode:
authorbriggs <briggs@NetBSD.org>2001-08-30 02:08:42 +0000
committerbriggs <briggs@NetBSD.org>2001-08-30 02:08:42 +0000
commitf05abdee3c6c7fa05ba3db25f24418ae5e936cb0 (patch)
treef6b76a007e70012d9239de585a38d2c64faee959 /sys/arch/sandpoint/include
parent33ebc9435e259c9112c8819af139cf1295f099d5 (diff)
- Change default time frequency to 100MHz from 66MHz.
- Support the serial mode interrupts (with a kernel configuration option) on the Sandpoint X3. - Initialize cpu_timebase. - Enable tulip driver.
Diffstat (limited to 'sys/arch/sandpoint/include')
-rw-r--r--sys/arch/sandpoint/include/intr.h26
-rw-r--r--sys/arch/sandpoint/include/openpicreg.h70
2 files changed, 68 insertions, 28 deletions
diff --git a/sys/arch/sandpoint/include/intr.h b/sys/arch/sandpoint/include/intr.h
index 820d6ec1a5d..d78f2ff3a19 100644
--- a/sys/arch/sandpoint/include/intr.h
+++ b/sys/arch/sandpoint/include/intr.h
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.2 2001/04/13 23:30:04 thorpej Exp $ */
+/* $NetBSD: intr.h,v 1.3 2001/08/30 02:08:43 briggs Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -188,27 +188,9 @@ set_sint(pending)
/*
* Motorola SandPoint PPC eval board interrupt list
*/
-#define SANDPOINT_INTR_PCI0 0
-#define SANDPOINT_INTR_IDE0 SANDPOINT_INTR_PCI0
-#define SANDPOINT_INTR_PCI1 1
-#define SANDPOINT_INTR_IDE1 SANDPOINT_INTR_PCI1
-#define SANDPOINT_INTR_ISA SANDPOINT_INTR_PCI1
-#define SANDPOINT_INTR_PCI2 2
-#define SANDPOINT_INTR_PCI3 3
-#define SANDPOINT_INTR_SERCON 4 /* Not used on Unity X4 */
-#define SANDPOINT_INTR_I2C 5
-#define SANDPOINT_INTR_DMA0 6
-#define SANDPOINT_INTR_DMA1 7
-#define SANDPOINT_INTR_I2O 8
-#define SANDPOINT_INTR_TIMER0 9
-#define SANDPOINT_INTR_TIMER1 10
-#define SANDPOINT_INTR_TIMER2 11
-#define SANDPOINT_INTR_TIMER3 12
-
-#define OPENPIC_MAX_EXTERNAL_INT 4
-
-#define ICU_LEN 13
-#define ICU_MASK 0x00001fff
+#define ICU_LEN 25
+#define ICU_MASK 0x01ffffff
+
#define LEGAL_IRQ(x) ((x) >= 0 && (x) < ICU_LEN)
#define SINT_ISA 0x10000000
diff --git a/sys/arch/sandpoint/include/openpicreg.h b/sys/arch/sandpoint/include/openpicreg.h
index 6309623e01b..5c9e5cdd289 100644
--- a/sys/arch/sandpoint/include/openpicreg.h
+++ b/sys/arch/sandpoint/include/openpicreg.h
@@ -1,4 +1,4 @@
-/* $NetBSD: openpicreg.h,v 1.2 2001/02/05 19:22:24 briggs Exp $ */
+/* $NetBSD: openpicreg.h,v 1.3 2001/08/30 02:08:43 briggs Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@@ -45,16 +45,74 @@
* * The last interrupts are at 0x01120 + (irq - 9) * 0x20
*/
+#include "opt_openpic.h"
+
+#if defined(OPENPIC_SERIAL_MODE)
+#define SANDPOINT_INTR_SIOINT 0
+#define SANDPOINT_INTR_ISA SANDPOINT_INTR_SIOINT
+#define SANDPOINT_INTR_SIOINT2 1 /* unknown... */
+#define SANDPOINT_INTR_PCI0 2
+#define SANDPOINT_INTR_PCI1 3
+#define SANDPOINT_INTR_PCI2 4
+#define SANDPOINT_INTR_PCI3 5
+#define SANDPOINT_INTR_WINBOND_A 6
+#define SANDPOINT_INTR_WINBOND_B 7
+#define SANDPOINT_INTR_WINBOND_C 8
+#define SANDPOINT_INTR_IDE0 SANDPOINT_INTR_WINBOND_C
+#define SANDPOINT_INTR_WINBOND_D 9
+#define SANDPOINT_INTR_IDE1 SANDPOINT_INTR_WINBOND_D
+#define SANDPOINT_INTR_RESERVED_10 10
+#define SANDPOINT_INTR_RESERVED_11 11
+#define SANDPOINT_INTR_RESERVED_12 12
+#define SANDPOINT_INTR_RESERVED_13 13
+#define SANDPOINT_INTR_RESERVED_14 14
+#define SANDPOINT_INTR_RESERVED_15 15
+#define SANDPOINT_INTR_SERCON 16 /* Not often used */
+#define SANDPOINT_INTR_I2C 17
+#define SANDPOINT_INTR_DMA0 18
+#define SANDPOINT_INTR_DMA1 19
+#define SANDPOINT_INTR_I2O 20
+#define SANDPOINT_INTR_TIMER0 21
+#define SANDPOINT_INTR_TIMER1 22
+#define SANDPOINT_INTR_TIMER2 23
+#define SANDPOINT_INTR_TIMER3 24
+
+#define OPENPIC_MAX_EXTERNAL_INT 15
+
+#else
+
+#define SANDPOINT_INTR_PCI0 0
+#define SANDPOINT_INTR_IDE0 SANDPOINT_INTR_PCI0
+#define SANDPOINT_INTR_PCI1 1
+#define SANDPOINT_INTR_IDE1 SANDPOINT_INTR_PCI1
+#define SANDPOINT_INTR_ISA SANDPOINT_INTR_PCI1
+#define SANDPOINT_INTR_PCI2 2
+#define SANDPOINT_INTR_PCI3 3
+#define SANDPOINT_INTR_SERCON 4 /* Not often used */
+#define SANDPOINT_INTR_I2C 5
+#define SANDPOINT_INTR_DMA0 6
+#define SANDPOINT_INTR_DMA1 7
+#define SANDPOINT_INTR_I2O 8
+#define SANDPOINT_INTR_TIMER0 9
+#define SANDPOINT_INTR_TIMER1 10
+#define SANDPOINT_INTR_TIMER2 11
+#define SANDPOINT_INTR_TIMER3 12
+
+#define OPENPIC_MAX_EXTERNAL_INT 4
+#endif
+
/* interrupt vector/priority reg */
#define OPENPIC_SRC_VECTOR(irq) \
- ((irq <= 4) ? (0x10200 + (irq) * 0x20) \
- : ((irq <= 7) ? (0x11000 + ((irq) - 4) * 0x20) \
- : ((irq == 8) ? 0x110C0 \
- : (0x01120 + ((irq) - 9) * 0x40))))
+ ((irq <= OPENPIC_MAX_EXTERNAL_INT) ? (0x10200 + (irq) * 0x20) \
+ : ((irq <= OPENPIC_MAX_EXTERNAL_INT + 3) ? \
+ (0x11000 + ((irq) - OPENPIC_MAX_EXTERNAL_INT) * 0x20) \
+ : ((irq == OPENPIC_MAX_EXTERNAL_INT + 4) ? 0x110C0 \
+ : (0x01120 + \
+ ((irq) - (OPENPIC_MAX_EXTERNAL_INT + 5)) * 0x40))))
#define OPENPIC_INIT_SRC(irq) \
(((OPENPIC_IMASK | (8 << OPENPIC_PRIORITY_SHIFT)) | \
- (((irq) <= 4) ? \
+ (((irq) <= OPENPIC_MAX_EXTERNAL_INT) ? \
(OPENPIC_POLARITY_NEGATIVE | OPENPIC_SENSE_LEVEL) : 0)) \
| (irq))