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

Annotation of sys/arch/vax/include/ka43.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: ka43.h,v 1.5 2006/07/25 21:11:08 miod Exp $ */
                      2: /*     $NetBSD: ka43.h,v 1.2 1997/04/18 18:53:40 ragge Exp $ */
                      3: /*
                      4:  * Copyright (c) 1996 Ludd, University of Lule}, Sweden.
                      5:  * All rights reserved.
                      6:  *
                      7:  * This code is derived from software contributed to Ludd by Bertram Barth.
                      8:  *
                      9:  * Redistribution and use in source and binary forms, with or without
                     10:  * modification, are permitted provided that the following conditions
                     11:  * are met:
                     12:  * 1. Redistributions of source code must retain the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer.
                     14:  * 2. Redistributions in binary form must reproduce the above copyright
                     15:  *    notice, this list of conditions and the following disclaimer in the
                     16:  *    documentation and/or other materials provided with the distribution.
                     17:  * 3. All advertising materials mentioning features or use of this software
                     18:  *    must display the following acknowledgement:
                     19:  *      This product includes software developed at Ludd, University of
                     20:  *      Lule}, Sweden and its contributors.
                     21:  * 4. The name of the author may not be used to endorse or promote products
                     22:  *    derived from this software without specific prior written permission
                     23:  *
                     24:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     25:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     26:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     27:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     28:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     29:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     30:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     31:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     32:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     33:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     34:  */
                     35:
                     36: /*
                     37:  * Definitions for I/O addresses of
                     38:  *
                     39:  *     VAXstation 3100 model 76        (RigelMAX)
                     40:  */
                     41:
                     42: #define KA43_SIDEX     0x20040004      /* SID extension register */
                     43:
                     44: #define KA43_CFGTST    0x20020000      /* Configuration and Test register */
                     45: #define KA43_IORESET   0x20020000      /* I/O Reset register */
                     46:
                     47: #define KA43_ROMGETC   0x20040044
                     48: #define KA43_ROMPUTC   0x20040058
                     49: #define KA43_ROMPUTS   0x2004004C
                     50:
                     51: #define KA43_CH2_BASE  0x10000000      /* 2nd level cache data area */
                     52: #define KA43_CH2_END   0x1FFFFFFF
                     53: #define KA43_CH2_SIZE  0x10000000
                     54: #define KA43_CT2_BASE  0x21000000      /* 2nd level cache tag area */
                     55: #define KA43_CT2_END   0x2101FFFF
                     56: #define KA43_CT2_SIZE     0x20000
                     57: #define KA43_CH2_CREG  0x21100000      /* 2nd level cache control register */
                     58:
                     59: #define KA43_ROM_BASE  0x20040000      /* System module ROM */
                     60: #define KA43_ROM_END   0x2007FFFF
                     61: #define KA43_ROM_SIZE     0x40000      /* ??? */
                     62:
                     63: #define KA43_IVN_BASE  0x20040020      /* Interrupt Vector Numbers */
                     64: #define KA43_IVN_END   0x2004003F
                     65: #define KA43_IVN_SIZE        0x20
                     66:
                     67: #define KA43_HLTCOD    0x20080000      /* Halt Code Register */
                     68: /* #define KA43_MSER   0x20080004 */   /* Memory System Error register */
                     69: /* #define KA43_MEAR   0x20080008 */   /* Memory Error Address register */
                     70: #define KA43_INTMSK    0x2008000C      /* Interrupt Mask register */
                     71: #define KA43_VDCORG    0x2008000D      /* Video Controller Origin Register */
                     72: #define KA43_VDCSEL    0x2008000E      /* Video Controller Select Register */
                     73: #define KA43_INTREQ    0x2008000F      /* Interrupt Request register */
                     74: #define KA43_INTCLR    0x2008000F      /* Interrupt Request clear register */
                     75: #define KA43_DIAGDSP   0x20080010      /* Diagnostic display register */
                     76: #define KA43_PARCTL    0x20080014      /* Parity Control Register */
                     77: #define KA43_DIAGTME   0x2008001E      /* diagnostic time register */
                     78:
                     79: #define KA43_PCTL_DPEN 0x00000001      /* DMA parity enable (bit 0) */
                     80: #define KA43_PCTL_CPEN 0x00000002      /* CPU Parity enable (bit 1) */
                     81: #define KA43_PCTL_DMA  0x01000000      /* LANCE DMA control (bit 24) */
                     82:
                     83: /*
                     84:  * "CH2" and "SESR" are two common names related to Secondary Cache
                     85:  */
                     86: #define KA43_SESR      0x21100000      /* same as KA43_CH2_CREG */
                     87:
                     88: #define KA43_SESR_CENB 0x00000001      /* Cache Enable */
                     89: #define KA43_SESR_SERR  0x00000002
                     90: #define KA43_SESR_LERR 0x00000004
                     91: #define KA43_SESR_CERR 0x00000008
                     92: #define KA43_SESR_DIRTY        0x00000010
                     93: #define KA43_SESR_MISS 0x00000020
                     94: #define KA43_SESR_DPE  0x00000040      /* Dal Parity Error */
                     95: #define KA43_SESR_TPE  0x00000080      /* Tag Parity Error */
                     96: #define KA43_SESR_WSB  0x00010000
                     97: #define KA43_SESR_CIEA 0x7FFC0000
                     98:
                     99: #define KA43_SESR_BITS \
                    100:        "\020\010TPE\007DPE\006MISS\005DIRTY\004CERR\003LERR\002SERR\001ENABLE"
                    101:
                    102: /*
                    103:  * The following values refer to bits/bitfields within the 4 internal
                    104:  * registers controlling primary cache:
                    105:  * PR_PCTAG(124, tag-register)         PR_PCIDX(125, index-register)
                    106:  * PR_PCERR(126, error-register)       PR_PCSTS(127, status-register)
                    107:  */
                    108: #define KA43_PCTAG_TAG         0x1FFFF800      /* bits 11-29 */
                    109: #define KA43_PCTAG_PARITY      0x40000000
                    110: #define KA43_PCTAG_VALID       0x80000000
                    111:
                    112: #define KA43_PCIDX_INDEX       0x000007F8      /* 0x100 Q-word entries */
                    113:
                    114: #define KA43_PCERR_ADDR                0x3FFFFFFF
                    115:
                    116: #define KA43_PCS_FORCEHIT      0x00000001      /* Force hit */
                    117: #define KA43_PCS_ENABLE                0x00000002      /* Enable primary cache */
                    118: #define KA43_PCS_FLUSH         0x00000004      /* Flush cache */
                    119: #define KA43_PCS_REFRESH       0x00000008      /* Enable refresh */
                    120: #define KA43_PCS_HIT           0x00000010      /* Cache hit */
                    121: #define KA43_PCS_INTERRUPT     0x00000020      /* Interrupt pending */
                    122: #define KA43_PCS_TRAP2         0x00000040      /* Trap while trap */
                    123: #define KA43_PCS_TRAP1         0x00000080      /* Micro trap/machine check */
                    124: #define KA43_PCS_TPERR         0x00000100      /* Tag parity error */
                    125: #define KA43_PCS_DPERR         0x00000200      /* Dal data parity error */
                    126: #define KA43_PCS_PPERR         0x00000400      /* P data parity error */
                    127: #define KA43_PCS_BUSERR                0x00000800      /* Bus error */
                    128: #define KA43_PCS_BCHIT         0x00001000      /* B cache hit */
                    129:
                    130: #define KA43_PCSTS_BITS \
                    131:        "\020\015BCHIT\014BUSERR\013PPERR\012DPERR\011TPERR\010TRAP1" \
                    132:        "\007TRAP2\006INTR\005HIT\004REFRESH\003FLUSH\002ENABLE\001FORCEHIT"
                    133:
                    134: /*
                    135:  * Bits in PR_ACCS (Floating Point Accelerator Register)
                    136:  */
                    137: #define KA43_ACCS_VECTOR       (1<<0)  /* Vector Unit Present */
                    138: #define KA43_ACCS_FCHIP                (1<<1)  /* FPU chip present */
                    139: #define KA43_ACCS_WEP          (1<<31) /* Write Even Parity */
                    140:
                    141: /*
                    142:  * Other fixed addresses which should be mapped
                    143:  */
                    144: #define KA43_CPU_BASE  0x20080000      /* so called "CPU registers" */
                    145: #define KA43_CPU_END   0x200800FF
                    146: #define KA43_CPU_SIZE       0x100
                    147: #define KA43_NWA_BASE  0x20090000      /* Network Address ROM */
                    148: #define KA43_NWA_END   0x2009007F
                    149: #define KA43_NWA_SIZE        0x80
                    150: #define KA43_SER_BASE  0x200A0000      /* Serial line controller */
                    151: #define KA43_SER_END   0x200A000F
                    152: #define KA43_SER_SIZE         0x10
                    153: #define KA43_WAT_BASE  0x200B0000      /* TOY clock and NV-RAM */
                    154: #define KA43_WAT_END   0x200B00FF
                    155: #define KA43_WAT_SIZE       0x100
                    156: #define KA43_SC1_BASE  0x200C0080      /* 1st SCSI Controller Chip */
                    157: #define KA43_SC1_END   0x200C009F
                    158: #define KA43_SC1_SIZE        0x20
                    159: #define KA43_SC2_BASE  0x200C0180      /* 2nd SCSI Controller Chip */
                    160: #define KA43_SC2_END   0x200C019F
                    161: #define KA43_SC2_SIZE        0x20
                    162: #define KA43_SCS_BASE  0x200C0000      /* area occupied by SCSI 1+2 */
                    163: #define KA43_SCS_END   0x200C01FF
                    164: #define KA43_SCS_SIZE       0x200
                    165: #define KA43_LAN_BASE  0x200E0000      /* LANCE chip registers */
                    166: #define KA43_LAN_END   0x200E0007
                    167: #define KA43_LAN_SIZE        0x08
                    168: #define KA43_CUR_BASE  0x200F0000      /* Monochrome video cursor chip */
                    169: #define KA43_CUR_END   0x200F003C
                    170: #define KA43_CUR_SIZE        0x40
                    171: #define KA43_DMA_BASE  0x202D0000      /* 128KB Data Buffer */
                    172: #define KA43_DMA_END   0x202EFFFF
                    173: #define KA43_DMA_SIZE      0x20000
                    174: #define KA43_VME_BASE  0x30000000
                    175: #define KA43_VME_END   0x3003FFFF
                    176: #define KA43_VME_SIZE     0x40000
                    177:
                    178: #define KA43_DIAGMEM   0x28000000      /* start of diagnostic memory */
                    179:
                    180: #define KA43_SC1_DADR  0x200C00A0      /* (1st SCSI) DMA address register */
                    181: #define KA43_SC1_DCNT  0x200C00C0      /* (1st SCSI) DMA byte count reg. */
                    182: #define KA43_SC1_DDIR  0x200C00C4      /* (1st SCSI) DMA transfer direction */
                    183: #define KA43_SC2_DADR  0x200C01A0
                    184: #define KA43_SC2_DCNT  0x200C01C0
                    185: #define KA43_SC2_DDIR  0x200C01C4
                    186:
                    187: /*
                    188:  * Clock-Chip data in NVRAM
                    189:  */
                    190: #define KA43_CPMBX     0x200B0038      /* Console Mailbox (1 byte) */
                    191: #define KA43_CPFLG     0x200B003C      /* Console Program Flags (1 byte) */
                    192: #define KA43_LK201_ID  0x200B0040      /* Keyboard Variation (1 byte) */
                    193: #define KA43_CONS_ID   0x200B0044      /* Console Device Type (1 byte) */
                    194: #define KA43_SCR       0x200B0048      /* Console Scratch RAM */
                    195: #define KA43_TEMP      0x200B0058      /* Used by System Firmware */
                    196: #define KA43_BAT_CHK   0x200B0088      /* Battery Check Data */
                    197: #define KA43_PASSWD    0x200B0098      /* ??? */
                    198: #define KA43_BOOTFLG   0x200B00A8      /* Default Boot Flags (4 bytes) */
                    199: #define KA43_SCRLEN    0x200B00B8      /* Number of pages of SCR (1 byte) */
                    200: #define KA43_SCSIPORT  0x200B00BC      /* Tape Controller Port Data */
                    201: #define KA43_RESERVED  0x200B00C0      /* Reserved (16 bytes) */
                    202:
                    203: struct ka43_cpu {
                    204:        u_long  hltcod;         /* Halt Code Register */
                    205:        u_long  pad2;
                    206:        u_long  pad3;
                    207:        u_char  intreg[4];      /* Four 1-byte registers */
                    208:        u_short diagdsp;        /* Diagnostic display register */
                    209:        u_short pad4;
                    210:        u_long  parctl;         /* Parity Control Register */
                    211:        u_short pad5;
                    212:        u_short pad6;
                    213:        u_short pad7;
                    214:        u_short diagtme;        /* Diagnostic time register */
                    215: };
                    216:
                    217: struct ka43_clock {
                    218:        u_long  :2;     u_long  sec     :8;     u_long  :22;
                    219:        u_long  :2;     u_long  secalrm :8;     u_long  :22;
                    220:        u_long  :2;     u_long  min     :8;     u_long  :22;
                    221:        u_long  :2;     u_long  minalrm :8;     u_long  :22;
                    222:        u_long  :2;     u_long  hr      :8;     u_long  :22;
                    223:        u_long  :2;     u_long  hralrm  :8;     u_long  :22;
                    224:        u_long  :2;     u_long  dayofwk :8;     u_long  :22;
                    225:        u_long  :2;     u_long  day     :8;     u_long  :22;
                    226:        u_long  :2;     u_long  mon     :8;     u_long  :22;
                    227:        u_long  :2;     u_long  yr      :8;     u_long  :22;
                    228:        u_long  :2;     u_long  csr0    :8;     u_long  :22;
                    229:        u_long  :2;     u_long  csr1    :8;     u_long  :22;
                    230:        u_long  :2;     u_long  csr2    :8;     u_long  :22;
                    231:        u_long  :2;     u_long  csr3    :8;     u_long  :22;
                    232:        u_long  :2;     u_long  cpmbx   :8;     u_long  :22;
                    233: };

CVSweb