Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/ic Update, based on i8259a manual.



details:   https://anonhg.NetBSD.org/src/rev/fe61850cbc3b
branches:  trunk
changeset: 511556:fe61850cbc3b
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Thu Jun 21 18:57:04 2001 +0000

description:
Update, based on i8259a manual.

diffstat:

 sys/dev/ic/i8259reg.h |  33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)

diffs (66 lines):

diff -r 965c28384924 -r fe61850cbc3b sys/dev/ic/i8259reg.h
--- a/sys/dev/ic/i8259reg.h     Thu Jun 21 18:46:22 2001 +0000
+++ b/sys/dev/ic/i8259reg.h     Thu Jun 21 18:57:04 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: i8259reg.h,v 1.1 2001/06/21 03:43:43 thorpej Exp $     */
+/*     $NetBSD: i8259reg.h,v 1.2 2001/06/21 18:57:04 thorpej Exp $     */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -55,16 +55,17 @@
 #define        PIC_ICW1        0x00    /* Initialization Command Word 1 (w) */
 #define        ICW1_IC4        (1U << 0)       /* ICW4 Write Required */
 #define        ICW1_SNGL       (1U << 1)       /* 1 == single, 0 == cascade */
-#define        ICW1_ADI        (1U << 2)       /* XXX */
+#define        ICW1_ADI        (1U << 2)       /* CALL address interval */
 #define        ICW1_LTIM       (1U << 3)       /* 1 == intrs are level trigger */
-#define        ICW_SELECT(x)   ((x) << 4)      /* select ICW */
+#define        ICW1_SELECT     (1U << 4)       /* select ICW1 */
+#define        ICW1_IVA(x)     ((x) << 5)      /* interrupt vector address (MCS-80) */
 
 #define        PIC_ICW2        0x01    /* Initialization Command Word 2 (w) */
 #define        ICW2_VECTOR(x)  ((x) & 0xf8)    /* vector base address */
 #define        ICW2_IRL(x)     ((x) << 0)      /* interrupt request level */
 
 #define        PIC_ICW3        0x01    /* Initialization Command Word 3 (w) */
-#define        ICW3_CASCADE    (1U << 2)       /* cascaded mode enable */
+#define        ICW3_CASCADE(x) (1U << (x))     /* cascaded mode enable */
 #define        ICW3_SIC(x)     ((x) << 0)      /* slave identifcation code */
 
 #define        PIC_ICW4        0x01    /* Initialization Command Word 4 (w) */
@@ -82,26 +83,20 @@
 
 #define        PIC_OCW2        0x00    /* Operational Control Word 2 (w) */
 #define        OCW2_SELECT     (0)             /* select OCW2 */
-#define        OCW2_OP(x)      ((x) << 5)      /* operation; see below */
+#define        OCW3_EOI        (1U << 5)       /* EOI */
+#define        OCW3_SL         (1U << 6)       /* specific */
+#define        OCW3_R          (1U << 7)       /* rotate */
 #define        OCW2_ILS(x)     ((x) << 0)      /* interrupt level select */
 
-#define        OCW2_OP_CLR_ROTATE_IN_AUTO_EOI_MODE     0
-#define        OCW2_OP_NON_SPECIFIC_EOI_CMD            1
-#define        OCW2_OP_NOOP                            2
-#define        OCW2_OP_SPECIFIC_EOI_CMD                3
-#define        OCW2_OP_SET_ROTATE_IN_AUTO_EOI_MODE     4
-#define        OCW2_OP_ROTATE_ON_NON_SPEC_EOI_CMD      5
-#define        OCW2_OP_SET_PRIORITY_CMD                6
-#define        OCW2_OP_ROTATE_ON_SPEC_EOI_CMD          7
-
 #define        PIC_OCW3        0x00    /* Operational Control Word 3 (r/w) */
-#define        OCW3_SMM        (1U << 6)       /* special mask mode */
-#define        OCW3_ESMM       (1U << 5)       /* enable special mask mode */
+#define        OCW3_SSMM       (1U << 6)       /* set special mask mode */
+#define        OCW3_SMM        (1U << 5)       /* 1 = enable smm, 0 = disable */
 #define        OCW3_SELECT     (1U << 3)       /* select OCW3 */
 #define        OCW3_POLL       (1U << 2)       /* poll mode command */
-#define        OCW3_RR_CMD(x)  ((x) << 0)      /* register read command */
+#define        OCW3_RR         (1U << 1)       /* register read */
+#define        OCW3_RIS        (1U << 0)       /* 1 = read IS, 0 = read IR */
 
-#define        OCW3_RR_CMD_READ_IRQ    2
-#define        OCW3_RR_CMD_READ_IS     3
+#define        OCW3_POLL_IRQ(x) ((x) & 0x7f)
+#define        OCW3_POLL_PENDING (1U << 7)
 
 #endif /* _DEV_IC_I8259REG_H_ */



Home | Main Index | Thread Index | Old Index