[BACK]Return to idt.h CVS log [TXT][DIR] Up to [local] / sys / arch / solbourne / include

Annotation of sys/arch/solbourne/include/idt.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: idt.h,v 1.1 2005/04/19 21:30:17 miod Exp $    */
                      2: /*
                      3:  * Copyright (c) 2005, Miodrag Vallat
                      4:  *
                      5:  * Redistribution and use in source and binary forms, with or without
                      6:  * modification, are permitted provided that the following conditions
                      7:  * are met:
                      8:  * 1. Redistributions of source code must retain the above copyright
                      9:  *    notice, this list of conditions and the following disclaimer.
                     10:  * 2. Redistributions in binary form must reproduce the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer in the
                     12:  *    documentation and/or other materials provided with the distribution.
                     13:  *
                     14:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     15:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
                     16:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
                     17:  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
                     18:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
                     19:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
                     20:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     21:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
                     22:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
                     23:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     24:  * POSSIBILITY OF SUCH DAMAGE.
                     25:  */
                     26:
                     27: #ifndef        _SOLBOURNE_IDT_H_
                     28: #define        _SOLBOURNE_IDT_H_
                     29:
                     30: /*
                     31:  * Definitions for the core chips found on the IDT motherboard.
                     32:  *
                     33:  * All addresses are physical.
                     34:  */
                     35:
                     36: /*
                     37:  * iGLU: GLUE Logic
                     38:  */
                     39:
                     40: #define        GLU_BASE        0x60000000
                     41:
                     42: /* profiling timer (level 14) */
                     43: #define        GLU_L14_DIVISOR 0x60000000
                     44: #define        GLU_L14_RESOLUTION      (256 / 5)       /* in microseconds */
                     45: #define        GLU_L14_ENABLE  0x60000008
                     46: #define        GLU_L14_IACK    0x6000000c
                     47:
                     48: /* scheduling timer (level 10) */
                     49: #define        GLU_L10_IACK    0x60000800
                     50:
                     51: /* board status register */
                     52: #define        GLU_BSR         0x60001800
                     53: #define        GBSR_LED_MASK           0x07
                     54: #define        GBSR_LED_OFF            00
                     55: #define        GBSR_LED_AMBER          02
                     56: #define        GBSR_LED_AMBER_BLINK    03
                     57: #define        GBSR_LED_GREEN          04
                     58: #define        GBSR_LED_GREEN_BLINK    05
                     59: #define        GBSR_LED_BOTH_BLINK     07
                     60: #define        GBSR_DIAG               0x08
                     61: #define        GBSR_WARM               0x10
                     62: #define        GBSR_NMI                0x20
                     63:
                     64: /* board diagnostic register */
                     65: #define        GLU_DIAG        0x60001808
                     66: #define        GD_EXTRA_MEMORY         0x10
                     67: #define        GD_36MHZ                0x20
                     68: #define        GD_L2_CACHE             0x40
                     69:
                     70: /* interrupt control register */
                     71: #define        GLU_ICR         0x60002000
                     72: #define        GICR_DISPATCH_MASK      0x0000000f      /* post a software interrupt */
                     73: #define        GICR_DISABLE_ALL        0x00000010
                     74:
                     75: /* programmable interrupt levels for sbus and onboard audio */
                     76: #define        GLU_SBUS1       0x60002008
                     77: #define        GLU_SBUS2       0x60002010
                     78: #define        GLU_SBUS3       0x60002018
                     79: #define        GLU_SBUS4       0x60002020
                     80: #define        GLU_SBUS5       0x60002028
                     81: #define        GLU_SBUS6       0x60002030
                     82: #define        GLU_SBUS7       0x60002038
                     83: #define        GLU_AUDIO       0x60002040
                     84:
                     85: /* reset register */
                     86: #define        GLU_RESET       0x60002800
                     87:
                     88: /* programmable base for on-board i/o devices */
                     89: #define        GLU_IOBASE      0x60003800
                     90:
                     91: /*
                     92:  * iMC: Memory Controller
                     93:  */
                     94:
                     95: #define        MC_BASE         0x70000000
                     96:
                     97: #define        MC0_MCR         0x70000001
                     98: #define        MC1_MCR         0x71000001      /* may be missing */
                     99: #define        MCR_BANK1_AVAIL         0x08
                    100: #define        MCR_BANK0_AVAIL         0x04
                    101: #define        MCR_BANK1_32M           0x02
                    102: #define        MCR_BANK0_32M           0x01
                    103:
                    104: /*
                    105:  * iCU: DMA and Interrupt Controller
                    106:  */
                    107:
                    108: #define        ICU_BASE        0x50000000
                    109:
                    110: /* interrupt status register */
                    111: #define        ICU_ISR         0x50000000
                    112: #define        ISR_S0_DMA_SECC         0x00000001
                    113: #define        ISR_S0_DMA_MECC         0x00000002
                    114: #define        ISR_S0_DMA_SERR         0x00000004
                    115: #define        ISR_S1_DMA_SECC         0x00000008
                    116: #define        ISR_S1_DMA_MECC         0x00000010
                    117: #define        ISR_S1_DMA_SERR         0x00000020
                    118: #define        ISR_S2_DMA_SECC         0x00000040
                    119: #define        ISR_S2_DMA_MECC         0x00000080
                    120: #define        ISR_S2_DMA_SERR         0x00000100
                    121: #define        ISR_EN_DMA_SECC         0x00000200
                    122: #define        ISR_EN_DMA_MECC         0x00000400
                    123: #define        ISR_EN_DMA_SERR         0x00000800
                    124: #define        ISR_SCSI_DMA_SECC       0x00001000
                    125: #define        ISR_SCSI_DMA_MECC       0x00002000
                    126: #define        ISR_SCSI_DMA_SERR       0x00004000
                    127: #define        ISR_RIO_NMI_ENABLE      0x00008000
                    128: #define        ISR_DMA_NMI_ENABLE      0x00010000
                    129: #define        ISR_ICU_INT_ENABLE      0x00020000
                    130: #define        ISR_SECC_COUNT          0x003c0000
                    131: #define        ISR_SECC_OVERFLOW       0x00400000
                    132: #define        ISR_MEMDEC_MISS         0x00800000
                    133: #define        ISR_XLAT_INVALID        0x01000000
                    134: #define        ISR_WIN_MISS            0x02000000
                    135: #define        ISR_FAULT               0x04000000
                    136: #define        ISR_S0_RIO_ERR          0x08000000
                    137: #define        ISR_S1_RIO_ERR          0x10000000
                    138: #define        ISR_S2_RIO_ERR          0x20000000
                    139: #define        ISR_EN_RIO_ERR          0x40000000
                    140: #define        ISR_RIO_RETRY_TMO       0x80000000
                    141:
                    142: #define        ISR_BITS        "\020" \
                    143:        "\01S0_SECC\02S0_MECC\03S0_SERR\04S1_SECC\05S1_MECC\06S1_SERR" \
                    144:        "\07S2_SECC\10S2_MECC\11S2_SERR\12EN_SECC\13EN_MECC\14EN_SERR" \
                    145:        "\15SCSI_SECC\16SCSSI_MECC\17SCSI_SERR\20RIO_NMIE\21DMA_NMIE\22ICU_IE" \
                    146:        "\27SECC_OVERFLOW\30MEMDEC_MISS\31XLAT_INVALID\32WIN_MISS\33FAULT" \
                    147:        "\34S0_RIO\35S1_RIO\36S2_RIO\37RIO_TMO"
                    148:
                    149: #define        ICU_TIR         0x50000008
                    150:
                    151: #define        ICU_TER         0x5000000c
                    152: #define        TER_S0                  0x00000002
                    153: #define        TER_S1                  0x00000004
                    154: #define        TER_S2                  0x00000008
                    155: #define        TER_ETHERNET            0x00000010
                    156: #define        TER_SCSI                0x00000020
                    157: #define        TER_IO_DISABLE          0x00000040
                    158: #define        TER_W_COMP_DIS          0x00000080
                    159:
                    160: #define        ICU_TWR         0x50000010
                    161:
                    162: #define        ICU_TRR         0x50000014
                    163:
                    164: #define        ICU_CONF        0x50000018
                    165: #define        CONF_ECC_ENABLE         0x00000004
                    166: #define        CONF_NO_EXTRA_MEMORY    0x00000008
                    167: #define        CONF_SBUS_25MHZ         0x00000020
                    168: #define        CONF_SLOW_DMA_WRITE     0x00000080
                    169: #define        CONF_SLOW_DMA_READ      0x00000100
                    170: #define        CONF_ICACHE_DISABLE     0x00000400
                    171:
                    172: /*
                    173:  * Onboard devices
                    174:  */
                    175:
                    176: #define        SE_BASE         0x40000000      /* scsi and ethernet */
                    177: #define        NVRAM_BASE      0x80000000
                    178: #define        ZS1_BASE        0x80004000
                    179: #define        ZS0_BASE        0x80008000
                    180: #define        FDC_BASE        0x8000c000
                    181: #define        AUDIO_BASE      0x80010000
                    182: #define        TODCLOCK_BASE   0x80014000
                    183:
                    184: /* we map the following range 1:1 in kernel space */
                    185: #define        OBIO_PA_START   0x80000000
                    186: #define        OBIO_PA_END     0x80018000
                    187:
                    188: #endif /* _SOLBOURNE_IDT_H_ */

CVSweb