Annotation of 43BSDReno/sys/vax/nexus.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1982, 1986 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  *
        !             6:  *     @(#)nexus.h     7.2 (Berkeley) 8/9/86
        !             7:  */
        !             8: 
        !             9: /*
        !            10:  * Information about nexus's.
        !            11:  *
        !            12:  * Each machine has an address of backplane slots (nexi).
        !            13:  * Each nexus is some type of adapter, whose code is the low
        !            14:  * byte of the first word of the adapter address space.
        !            15:  * At boot time the system looks through the array of available
        !            16:  * slots and finds the interconnects for the machine.
        !            17:  */
        !            18: #define        NNEXSBI         16
        !            19: #if VAX8600
        !            20: #define        NNEX8600        NNEXSBI
        !            21: #define        NEXA8600        ((struct nexus *)(0x20000000))
        !            22: #define        NEXB8600        ((struct nexus *)(0x22000000))
        !            23: #endif
        !            24: #if VAX780
        !            25: #define        NNEX780 NNEXSBI
        !            26: #define        NEX780  ((struct nexus *)0x20000000)
        !            27: #endif
        !            28: #if VAX750
        !            29: #define        NNEX750 NNEXSBI
        !            30: #define        NEX750  ((struct nexus *)0xf20000)
        !            31: #endif
        !            32: #if VAX730
        !            33: #define        NNEX730 NNEXSBI
        !            34: #define        NEX730  ((struct nexus *)0xf20000)
        !            35: #endif
        !            36: #define        NEXSIZE 0x2000
        !            37: 
        !            38: #if VAX8600
        !            39: #define        MAXNNEXUS (2 * NNEXSBI)
        !            40: #else 
        !            41: #define        MAXNNEXUS NNEXSBI
        !            42: #endif
        !            43: 
        !            44: #ifndef LOCORE
        !            45: struct nexus {
        !            46:        union nexcsr {
        !            47:                long    nex_csr;
        !            48:                u_char  nex_type;
        !            49:        } nexcsr;
        !            50:        long    nex_pad[NEXSIZE / sizeof (long) - 1];
        !            51: };
        !            52: #ifdef KERNEL
        !            53: struct nexus nexus[MAXNNEXUS];
        !            54: #endif
        !            55: #endif
        !            56: 
        !            57: /*
        !            58:  * Bits in high word of nexus's.
        !            59:  */
        !            60: #define        SBI_PARFLT      (1<<31)         /* sbi parity fault */
        !            61: #define        SBI_WSQFLT      (1<<30)         /* write sequence fault */
        !            62: #define        SBI_URDFLT      (1<<29)         /* unexpected read data fault */
        !            63: #define        SBI_ISQFLT      (1<<28)         /* interlock sequence fault */
        !            64: #define        SBI_MXTFLT      (1<<27)         /* multiple transmitter fault */
        !            65: #define        SBI_XMTFLT      (1<<26)         /* transmit fault */
        !            66: 
        !            67: #define        NEX_CFGFLT      (0xfc000000)
        !            68: 
        !            69: #ifndef LOCORE
        !            70: #if defined(VAX780) || defined(VAX8600)
        !            71: #define        NEXFLT_BITS \
        !            72: "\20\40PARFLT\37WSQFLT\36URDFLT\35ISQFLT\34MXTFLT\33XMTFLT"
        !            73: #endif
        !            74: #endif
        !            75: 
        !            76: #define        NEX_APD         (1<<23)         /* adaptor power down */
        !            77: #define        NEX_APU         (1<<22)         /* adaptor power up */
        !            78: 
        !            79: #define        MBA_OT          (1<<21)         /* overtemperature */
        !            80: 
        !            81: #define        UBA_UBINIT      (1<<18)         /* unibus init */
        !            82: #define        UBA_UBPDN       (1<<17)         /* unibus power down */
        !            83: #define        UBA_UBIC        (1<<16)         /* unibus initialization complete */
        !            84: 
        !            85: /*
        !            86:  * Types for nex_type.
        !            87:  */
        !            88: #define        NEX_ANY         0               /* pseudo for handling 11/750 */
        !            89: #define        NEX_MEM4        0x08            /* 4K chips, non-interleaved mem */
        !            90: #define        NEX_MEM4I       0x09            /* 4K chips, interleaved mem */
        !            91: #define        NEX_MEM16       0x10            /* 16K chips, non-interleaved mem */
        !            92: #define        NEX_MEM16I      0x11            /* 16K chips, interleaved mem */
        !            93: #define        NEX_MBA         0x20            /* Massbus adaptor */
        !            94: #define        NEX_UBA0        0x28            /* Unibus adaptor */
        !            95: #define        NEX_UBA1        0x29            /* 4 flavours for 4 addr spaces */
        !            96: #define        NEX_UBA2        0x2a
        !            97: #define        NEX_UBA3        0x2b
        !            98: #define        NEX_DR32        0x30            /* DR32 user i'face to SBI */
        !            99: #define        NEX_CI          0x38            /* CI adaptor */
        !           100: #define        NEX_MPM0        0x40            /* Multi-port mem */
        !           101: #define        NEX_MPM1        0x41            /* Who knows why 4 different ones ? */
        !           102: #define        NEX_MPM2        0x42
        !           103: #define        NEX_MPM3        0x43
        !           104: #define        NEX_MEM64L      0x68            /* 64K chips, non-interleaved, lower */
        !           105: #define        NEX_MEM64LI     0x69            /* 64K chips, ext-interleaved, lower */
        !           106: #define        NEX_MEM64U      0x6a            /* 64K chips, non-interleaved, upper */
        !           107: #define        NEX_MEM64UI     0x6b            /* 64K chips, ext-interleaved, upper */
        !           108: #define        NEX_MEM64I      0x6c            /* 64K chips, interleaved */
        !           109: #define        NEX_MEM256L     0x70            /* 256K chips, non-interleaved, lower */
        !           110: #define        NEX_MEM256LI    0x71            /* 256K chips, ext-interleaved, lower */
        !           111: #define        NEX_MEM256U     0x72            /* 256K chips, non-interleaved, upper */
        !           112: #define        NEX_MEM256UI    0x73            /* 256K chips, ext-interleaved, upper */
        !           113: #define        NEX_MEM256I     0x74            /* 256K chips, interleaved */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.