[BACK]Return to frodoreg.h CVS log [TXT][DIR] Up to [local] / sys / arch / hp300 / dev

Annotation of sys/arch/hp300/dev/frodoreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: frodoreg.h,v 1.2 2007/01/06 20:17:43 miod Exp $       */
        !             2: /*     $NetBSD: frodoreg.h,v 1.1 1997/05/12 08:03:49 thorpej Exp $     */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1997 Michael Smith.  All rights reserved.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer.
        !            12:  * 2. Redistributions in binary form must reproduce the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer in the
        !            14:  *    documentation and/or other materials provided with the distribution.
        !            15:  *
        !            16:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
        !            17:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            18:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            19:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
        !            20:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            21:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            22:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            23:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            24:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            25:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            26:  * SUCH DAMAGE.
        !            27:  */
        !            28:
        !            29: /* Base address of the Frodo part */
        !            30: #define        FRODO_BASE              (INTIOBASE + 0x1c000)
        !            31:
        !            32: /*
        !            33:  * Where we find the 8250-like APCI ports, and how far apart they are.
        !            34:  */
        !            35: #define        FRODO_APCIBASE          0x0
        !            36: #define        FRODO_APCISPACE         0x20
        !            37: #define        FRODO_APCI_OFFSET(x)    (FRODO_APCIBASE + ((x) * FRODO_APCISPACE))
        !            38:
        !            39: /*
        !            40:  * Other items in the Frodo part
        !            41:  */
        !            42:
        !            43: /* An mc146818-like calendar, but no battery... lame */
        !            44: #define        FRODO_CALENDAR          0x80
        !            45:
        !            46: #define        FRODO_TIMER             0xa0    /* 8254-like timer */
        !            47: #define        FRODO_T1_CTR            0xa0    /* counter 1 */
        !            48: #define        FRODO_T2_CTR            0xa4    /* counter 2 */
        !            49: #define        FRODO_T3_CTR            0xa8    /* counter 3 */
        !            50: #define        FRODO_T_CTRL            0xac    /* control register */
        !            51: #define        FRODO_T_PSCALE          0xb0    /* prescaler */
        !            52: #define        FRODO_T_PCOUNT          0xb4    /* precounter ? */
        !            53: #define        FRODO_T_OVCOUNT         0xb8    /* overflow counter (0, 1, 2) */
        !            54:
        !            55: #define        FRODO_PIO               0xc0    /* programmable i/o registers start
        !            56:                                           here */
        !            57: #define        FRODO_IISR              0xc0    /* ISA Interrupt Status Register
        !            58:                                           (also PIR) */
        !            59: #define        FRODO_IISR_SERVICE      (1<<0)  /* service switch "on" if 0 */
        !            60: #define        FRODO_IISR_ILOW         (1<<1)  /* IRQ 3,4,5 or 6 on ISA if 0 */
        !            61: #define        FRODO_IISR_IMID         (1<<2)  /* IRQ 7,9,10 or 11 on ISA if 0 */
        !            62: #define        FRODO_IISR_IHI          (1<<3)  /* IRQ 12,13,14 or 15 on ISA if 0 */
        !            63:                /* bits 4 and 5 are DN2500 SCSI interrupts */
        !            64:                /* bit 6 is unused */
        !            65: #define        FRODO_IISR_IOCHK        (1<<7)  /* ISA board asserted IOCHK if low */
        !            66:
        !            67: #define        FRODO_PIO_IPR           0xc4    /* input polarity register
        !            68:                                           (ints 7->0) */
        !            69:
        !            70: #define        FRODO_PIO_IELR          0xc8    /* input edge/level register */
        !            71: #define        FRODO_PIO_ISA_CONTROL   0xcc    /* ISA interrupts masking */
        !            72:
        !            73: /* This is probably not used on the 4xx */
        !            74: #define        FRODO_DIAGCTL           0xd0    /* Diagnostic Control Register */
        !            75:
        !            76: #define        FRODO_PIC_MU            0xe0    /* upper Interrupt Mask register */
        !            77: #define        FRODO_PIC_ML            0xe4    /* lower Interrupt Mask register */
        !            78: #define        FRODO_PIC_PU            0xe8    /* upper Interrupt Pending register */
        !            79: #define        FRODO_PIC_PL            0xec    /* lower Interrupt Pending register */
        !            80: #define        FRODO_PIC_IVR           0xf8    /* Interrupt Vector register */
        !            81: #define        FRODO_PIC_ACK           0xf8    /* Interrupt Acknowledge */
        !            82:
        !            83: /* Shorthand for register access. */
        !            84: #define        FRODO_READ(sc, reg)             ((sc)->sc_regs[(reg)])
        !            85: #define        FRODO_WRITE(sc, reg, val)       (sc)->sc_regs[(reg)] = (val)
        !            86:
        !            87: /* manipulate interrupt registers */
        !            88: #define        FRODO_GETMASK(sc)                                               \
        !            89:        ((FRODO_READ((sc), FRODO_PIC_MU) << 8) |                        \
        !            90:            FRODO_READ((sc), FRODO_PIC_ML))
        !            91: #define        FRODO_SETMASK(sc, val) do {                                     \
        !            92:        FRODO_WRITE((sc), FRODO_PIC_MU, ((val) >> 8) & 0xff);           \
        !            93:        FRODO_WRITE((sc), FRODO_PIC_ML, (val) & 0xff); } while (0)
        !            94:
        !            95: #define        FRODO_GETPEND(sc)                                               \
        !            96:        ((FRODO_READ((sc), FRODO_PIC_PU) << 8) |                        \
        !            97:            FRODO_READ((sc), FRODO_PIC_PL))
        !            98:
        !            99: /*
        !           100:  * Interrupt lines.  Use FRODO_INTR_BIT() below to get a bit
        !           101:  * suitable for one of the interrupt mask registers.  Yes, line
        !           102:  * 0 is unused.
        !           103:  */
        !           104: #define        FRODO_INTR_ILOW         1
        !           105: #define        FRODO_INTR_IMID         2
        !           106: #define        FRODO_INTR_IHI          3
        !           107: #define        FRODO_INTR_SCSIDMA      4       /* DN2500 only */
        !           108: #define        FRODO_INTR_SCSI         5       /* DN2500 only */
        !           109: #define        FRODO_INTR_HORIZ        6
        !           110: #define        FRODO_INTR_IOCHK        7
        !           111: #define        FRODO_INTR_CALENDAR     8
        !           112: #define        FRODO_INTR_TIMER0       9
        !           113: #define        FRODO_INTR_TIMER1       10
        !           114: #define        FRODO_INTR_TIMER2       11
        !           115: #define        FRODO_INTR_APCI0        12
        !           116: #define        FRODO_INTR_APCI1        13
        !           117: #define        FRODO_INTR_APCI2        14
        !           118: #define        FRODO_INTR_APCI3        15
        !           119:
        !           120: #define        FRODO_NINTR             16
        !           121:
        !           122: #define        FRODO_INTR_ISA(l)       ((l) != 0 && (l) <= FRODO_INTR_IHI)
        !           123: #define        FRODO_INTR_BIT(line)    (1 << (line))

CVSweb