Annotation of researchv10dc/lsys/sys/qbio.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * I/O space registers for MicroVAXes
        !             3:  *
        !             4:  * a chunk of virtual address space containing
        !             5:  * - a page of CPU regs
        !             6:  * - a page of watch chip or NVRAM
        !             7:  * - maybe another page of cache-related regs
        !             8:  * - 8192*4 bytes of Q-bus IO map
        !             9:  * - 8192 bytes of Q-bus IO registers
        !            10:  *
        !            11:  * someday, if MicroVAXes get more complicated,
        !            12:  * this will have to be several files
        !            13:  */
        !            14: 
        !            15: /*
        !            16:  * cpu registers: physical 0x20080000
        !            17:  */
        !            18: struct cpuregs {
        !            19:        long junk0;             /* bdr or scr -- we don't use it */
        !            20:        long mser;              /* II: memory system errors */
        !            21:        long cear;              /* II: addr of cpu mem err */
        !            22:        long dear;              /* addr of dma mem err */
        !            23:        long qbm;               /* III: q-bus map base */
        !            24:        long junk1[75];
        !            25:        long memcsr16;          /* III: mem error flags */
        !            26:        long memcsr17;          /* III: mem error controls */
        !            27:        long junk2[46];
        !            28: };
        !            29: 
        !            30: #define        dser    mser            /* III: dma system error */
        !            31: #define        qbear   cear            /* III: Q-bus err addr */
        !            32: 
        !            33: /*
        !            34:  * second-level cache register: physical 0x20084000
        !            35:  * second-level cache image, for flushing: physical 
        !            36:  * MicroVAX III only
        !            37:  */
        !            38: 
        !            39: #define        CACHESIZE       (64*1024/4)
        !            40: struct cacheregs {
        !            41:        long cacr;              /* second-level cache control */
        !            42:        long junk[127];
        !            43:        long cd[CACHESIZE];     /* the cache itself */
        !            44: };
        !            45: 
        !            46: /*
        !            47:  * watch chip registers: physical 0x200b8000
        !            48:  * MicroVAX II only
        !            49:  * some belong to the clock,
        !            50:  * some are just handy NVRAM
        !            51:  * only the low 8 bits of each short is valid
        !            52:  */
        !            53: struct watchregs {
        !            54:        short sec;              /* seconds */
        !            55:        short junk0;            /* seconds alarm */
        !            56:        short min;              /* minutes */
        !            57:        short junk1;            /* minutes alarm */
        !            58:        short hr;               /* hours */
        !            59:        short junk2;            /* hours alarm */
        !            60:        short junk3;            /* day of week */
        !            61:        short day;              /* day of month */
        !            62:        short mon;              /* month */
        !            63:        short yr;               /* year */
        !            64:        short csra;
        !            65:        short csrb;
        !            66:        short csrc;
        !            67:        short csrd;
        !            68:        short cpmbx;            /* console mailbox */
        !            69:        short ram[49];          /* miscellaneous ram */
        !            70:        long junk[96];
        !            71: };
        !            72: 
        !            73: /*
        !            74:  * plain old NVRAM: physical 0x20140400
        !            75:  * MicroVAX III only
        !            76:  * really two pages, but we only bother with one
        !            77:  */
        !            78: 
        !            79: struct nvram {
        !            80:        short cpmbx;            /* console mailbox */
        !            81:        short m[255];           /* miscellaneous ram */
        !            82: };
        !            83: 
        !            84: #define        NQMREG  8192
        !            85: struct ubadev {                        /* `ubadev' sic */
        !            86:        long mreg[NQMREG];      /* map regs */
        !            87:        char ioreg[8192];       /* Q-bus io space */
        !            88: };
        !            89: 
        !            90: struct iomflow {
        !            91:        struct cpuregs c;
        !            92:        struct watchregs w;
        !            93:        struct ubadev u[1];
        !            94: };
        !            95: 
        !            96: struct iomfair {
        !            97:        struct cpuregs c;
        !            98:        struct nvram w;
        !            99:        struct cacheregs d;
        !           100:        struct ubadev u[1];
        !           101: };

unix.superglobalmegacorp.com

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