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

Annotation of sys/arch/mvme88k/dev/pcctworeg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: pcctworeg.h,v 1.8 2006/04/27 20:19:28 miod Exp $ */
                      2:
                      3: /*
                      4:  * Memory map for PCC2 chip found in MVME1x7 boards.
                      5:  *
                      6:  * PCCchip2 control and status register can be accessed as bytes (8 bits),
                      7:  * two-bytes (16 bits), or four-bytes (32 bits).
                      8:  */
                      9:
                     10: #define        PCC2_BASE               0xfff42000
                     11: #define PCC2_SIZE              0x0040
                     12:
                     13: #define        PCCTWO_CHIPID           0x0000
                     14: #define        PCCTWO_CHIPREV          0x0001
                     15: #define        PCCTWO_GENCTL           0x0002
                     16: #define        PCCTWO_VECBASE          0x0003
                     17: #define        PCCTWO_T1CMP            0x0004
                     18: #define        PCCTWO_T1COUNT          0x0008
                     19: #define        PCCTWO_T2CMP            0x000c
                     20: #define        PCCTWO_T2COUNT          0x0010
                     21: #define        PCCTWO_PSCALECNT        0x0014
                     22: #define        PCCTWO_PSCALEADJ        0x0015
                     23: #define        PCCTWO_T2CTL            0x0016
                     24: #define        PCCTWO_T1CTL            0x0017
                     25: #define        PCCTWO_GPIO_ICR         0x0018
                     26: #define        PCCTWO_GPIO_PCR         0x0019
                     27: #define        PCCTWO_T2ICR            0x001a
                     28: #define        PCCTWO_T1ICR            0x001b
                     29: #define        PCCTWO_SCCERR           0x001c
                     30: #define        PCCTWO_SCCICR           0x001d
                     31: #define        PCCTWO_SCCTX            0x001e
                     32: #define        PCCTWO_SCCRX            0x001f
                     33: #define        PCCTWO_SCCMOIACK        0x0023
                     34: #define        PCCTWO_SCCTXIACK        0x0025
                     35: #define        PCCTWO_SCCRXIACK        0x0027
                     36: #define        PCCTWO_IEERR            0x0028
                     37: #define        PCCTWO_IEICR            0x002a
                     38: #define        PCCTWO_IEBERR           0x002b
                     39: #define        PCCTWO_SCSIERR          0x002c
                     40: #define        PCCTWO_SCSIICR          0x002f
                     41: #define        PCCTWO_PRTICR           0x0030
                     42: #define        PCCTWO_PTRFICR          0x0031
                     43: #define        PCCTWO_PTRSICR          0x0032
                     44: #define        PCCTWO_PTRPICR          0x0033
                     45: #define        PCCTWO_PRTBICR          0x0034
                     46: #define        PCCTWO_PRTSTATUS        0x0036
                     47: #define        PCCTWO_PRTCTL           0x0037
                     48: #define        PCCTWO_SPEED            0x0038
                     49: #define        PCCTWO_PRTDATA          0x003a
                     50: /* The following registers are not valid on MVME197 */
                     51: #define        PCCTWO_IPL              0x003e
                     52: #define        PCCTWO_MASK             0x003f
                     53:
                     54: #define PCC2_ID                        0x20    /* value at CHIPID */
                     55:
                     56: /* General Control Register */
                     57: #define PCC2_DR0               0x80
                     58: #define PCC2_C040              0x04
                     59: #define PCC2_MIEN              0x02
                     60: #define PCC2_FAST              0x01
                     61:
                     62: /* Top 4 bits of the PCC2 VBR. Will be the top 4 bits of the vector */
                     63: #define        PCC2_VECT               0x50
                     64:
                     65: /* Bottom 4 bits of the vector returned during IACK cycle */
                     66: #define PCC2V_PPBUSY           0x00                            /* lowest */
                     67: #define PCC2V_PPPE             0x01
                     68: #define PCC2V_PPSELECT         0x02
                     69: #define PCC2V_PPFAULT          0x03
                     70: #define PCC2V_PPACK            0x04
                     71: #define PCC2V_SCSI             0x05
                     72: #define PCC2V_IEFAIL           0x06
                     73: #define PCC2V_IE               0x07
                     74: #define PCC2V_TIMER2           0x08
                     75: #define PCC2V_TIMER1           0x09
                     76: #define PCC2V_GPIO             0x0a
                     77: #define PCC2V_SCC_RXE          0x0c
                     78: #define PCC2V_SCC_M            (PCC2V_SCC_RXE + 1)
                     79: #define PCC2V_SCC_TX           (PCC2V_SCC_M + 1)
                     80: #define PCC2V_SCC_RX           (PCC2V_SCC_TX + 1)
                     81:
                     82: /*
                     83:  * Vaddrs for interrupt mask and pri registers
                     84:  */
                     85: extern u_int8_t *volatile pcc2intr_mask;
                     86: extern u_int8_t *volatile pcc2intr_ipl;
                     87:
                     88: /*
                     89:  * We lock off our interrupt vector at 0x50.
                     90:  */
                     91: #define PCC2_VECBASE           0x50
                     92: #define PCC2_NVEC              0x10
                     93:
                     94: #define PCC2_TCTL_CEN          0x01
                     95: #define PCC2_TCTL_COC          0x02
                     96: #define PCC2_TCTL_COVF         0x04
                     97: #define PCC2_TCTL_OVF          0xf0
                     98:
                     99: #define PCC2_GPIO_PLTY         0x80
                    100: #define PCC2_GPIO_EL           0x40
                    101:
                    102: #define PCC2_GPIOCR_OE         0x2
                    103: #define PCC2_GPIOCR_O          0x1
                    104:
                    105: #define PCC2_SCC_AVEC          0x08
                    106:
                    107: #define PCC2_SC_INHIBIT                (0 << 6)
                    108: #define PCC2_SC_SNOOP          (1 << 6)
                    109: #define PCC2_SC_INVAL          (2 << 6)
                    110: #define PCC2_SC_RESV           (3 << 6)
                    111:
                    112: #define pcc2_timer_us2lim(us)  (us)            /* timer increments in "us" */
                    113:
                    114: #define PCC2_IRQ_IPL           0x07
                    115: #define PCC2_IRQ_ICLR          0x08
                    116: #define PCC2_IRQ_IEN           0x10
                    117: #define PCC2_IRQ_INT           0x20
                    118:
                    119: /* Tick Timer Interrupt Control Register */
                    120: #define PCC2_TTIRQ_INT         0x20
                    121: #define PCC2_TTIRQ_IEN         0x10
                    122: #define PCC2_TTIRQ_ICLR                0x08
                    123: #define PCC2_TTIRQ_IL          0x07            /* mask for IL2-IL0 */
                    124:
                    125: #define PCC2_IEERR_SCLR                0x01
                    126:
                    127: #define PCC2_GENCTL_FAST       0x01
                    128: #define PCC2_GENCTL_IEN                0x02
                    129: #define PCC2_GENCTL_C040       0x03

CVSweb