Annotation of sys/arch/solbourne/include/idt.h, Revision 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