Annotation of 43BSD/sys/vax/nexus.h, revision 1.1.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.1 (Berkeley) 6/5/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: #if VAX630
                     37: #define        NNEX630 1
                     38: #define        NEX630  ((struct nexus *)0x20088000)
                     39: #endif
                     40: #define        NEXSIZE 0x2000
                     41: 
                     42: #if VAX8600
                     43: #define        MAXNNEXUS (2 * NNEXSBI)
                     44: #else 
                     45: #define        MAXNNEXUS NNEXSBI
                     46: #endif
                     47: 
                     48: #ifndef LOCORE
                     49: struct nexus {
                     50:        union nexcsr {
                     51:                long    nex_csr;
                     52:                u_char  nex_type;
                     53:        } nexcsr;
                     54:        long    nex_pad[NEXSIZE / sizeof (long) - 1];
                     55: };
                     56: #ifdef KERNEL
                     57: struct nexus nexus[MAXNNEXUS];
                     58: #endif
                     59: #endif
                     60: 
                     61: /*
                     62:  * Bits in high word of nexus's.
                     63:  */
                     64: #define        SBI_PARFLT      (1<<31)         /* sbi parity fault */
                     65: #define        SBI_WSQFLT      (1<<30)         /* write sequence fault */
                     66: #define        SBI_URDFLT      (1<<29)         /* unexpected read data fault */
                     67: #define        SBI_ISQFLT      (1<<28)         /* interlock sequence fault */
                     68: #define        SBI_MXTFLT      (1<<27)         /* multiple transmitter fault */
                     69: #define        SBI_XMTFLT      (1<<26)         /* transmit fault */
                     70: 
                     71: #define        NEX_CFGFLT      (0xfc000000)
                     72: 
                     73: #ifndef LOCORE
                     74: #if defined(VAX780) || defined(VAX8600)
                     75: #define        NEXFLT_BITS \
                     76: "\20\40PARFLT\37WSQFLT\36URDFLT\35ISQFLT\34MXTFLT\33XMTFLT"
                     77: #endif
                     78: #endif
                     79: 
                     80: #define        NEX_APD         (1<<23)         /* adaptor power down */
                     81: #define        NEX_APU         (1<<22)         /* adaptor power up */
                     82: 
                     83: #define        MBA_OT          (1<<21)         /* overtemperature */
                     84: 
                     85: #define        UBA_UBINIT      (1<<18)         /* unibus init */
                     86: #define        UBA_UBPDN       (1<<17)         /* unibus power down */
                     87: #define        UBA_UBIC        (1<<16)         /* unibus initialization complete */
                     88: 
                     89: /*
                     90:  * Types for nex_type.
                     91:  */
                     92: #define        NEX_ANY         0               /* pseudo for handling 11/750 */
                     93: #define        NEX_MEM4        0x08            /* 4K chips, non-interleaved mem */
                     94: #define        NEX_MEM4I       0x09            /* 4K chips, interleaved mem */
                     95: #define        NEX_MEM16       0x10            /* 16K chips, non-interleaved mem */
                     96: #define        NEX_MEM16I      0x11            /* 16K chips, interleaved mem */
                     97: #define        NEX_MBA         0x20            /* Massbus adaptor */
                     98: #define        NEX_UBA0        0x28            /* Unibus adaptor */
                     99: #define        NEX_UBA1        0x29            /* 4 flavours for 4 addr spaces */
                    100: #define        NEX_UBA2        0x2a
                    101: #define        NEX_UBA3        0x2b
                    102: #define        NEX_DR32        0x30            /* DR32 user i'face to SBI */
                    103: #define        NEX_CI          0x38            /* CI adaptor */
                    104: #define        NEX_MPM0        0x40            /* Multi-port mem */
                    105: #define        NEX_MPM1        0x41            /* Who knows why 4 different ones ? */
                    106: #define        NEX_MPM2        0x42
                    107: #define        NEX_MPM3        0x43
                    108: #define        NEX_MEM64L      0x68            /* 64K chips, non-interleaved, lower */
                    109: #define        NEX_MEM64LI     0x69            /* 64K chips, ext-interleaved, lower */
                    110: #define        NEX_MEM64U      0x6a            /* 64K chips, non-interleaved, upper */
                    111: #define        NEX_MEM64UI     0x6b            /* 64K chips, ext-interleaved, upper */
                    112: #define        NEX_MEM64I      0x6c            /* 64K chips, interleaved */
                    113: #define        NEX_MEM256L     0x70            /* 256K chips, non-interleaved, lower */
                    114: #define        NEX_MEM256LI    0x71            /* 256K chips, ext-interleaved, lower */
                    115: #define        NEX_MEM256U     0x72            /* 256K chips, non-interleaved, upper */
                    116: #define        NEX_MEM256UI    0x73            /* 256K chips, ext-interleaved, upper */
                    117: #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.