Annotation of GNUtools/cctools/include/architecture/m98k/m98601_regs.h, revision 1.1

1.1     ! root        1: /* Copyright (c) 1992 NeXT Computer, Inc.  All rights reserved.
        !             2:  *
        !             3:  *     File:   architecture/m98k/m98601_regs.h
        !             4:  *     Author: Ben Fathi, NeXT Computer, Inc.
        !             5:  *
        !             6:  *     M98601-specific registers
        !             7:  *
        !             8:  * HISTORY
        !             9:  * 08-Dec-92  Ben Fathi ([email protected])
        !            10:  *     Added interrpt status registers.
        !            11:  *
        !            12:  * 18-Nov-92  Ben Fathi ([email protected])
        !            13:  *     Created.
        !            14:  */
        !            15: 
        !            16: #ifndef _ARCH_M98K_M98601_REGS_H_
        !            17: #define _ARCH_M98K_M98601_REGS_H_
        !            18: 
        !            19: /*
        !            20:  * Software definitions for m98601-specific registers
        !            21:  */
        !            22: #define SR_M98601_MCHECK       hid0    // machine check status
        !            23: #define SR_M98601_RMI_MODES    hid1    // run and fetch modes
        !            24: #define SR_M98601_RMI_ADDR     hid2    // run mode compare address
        !            25: #define SR_M98601_RMI_DABR     hid5    // data address breakpoint
        !            26: #define SR_M98601_PID          pid     // processor ID
        !            27: #define SR_M98601_MQ           mq      // multiply quotient
        !            28: 
        !            29: /*
        !            30:  * Data Breakpoints
        !            31:  */
        !            32: 
        !            33: #define        M98601_N_DATA_BP        1               // 98601 supports 1 data bp
        !            34: 
        !            35: /*
        !            36:  * Data Breakpoint Address Specification (register HID5 aka DABR)
        !            37:  */
        !            38: typedef        struct {
        !            39:        unsigned        addr:BITS_WIDTH(31,3);  // double-word address
        !            40:        unsigned        rsvd:BIT_WIDTH(2);
        !            41:        unsigned        w:BIT_WIDTH(1);         // 1 => compare on store
        !            42:        unsigned        r:BIT_WIDTH(0);         // 1 => compare on load
        !            43: } m98601_data_bp_addr_t;
        !            44: 
        !            45: /*
        !            46:  * Valid values for "run" bits in m98601_data_bp_mode_t
        !            47:  */
        !            48: #define        M98601_RUN_NORMAL               0
        !            49: #define M98601_RUN_LIMITED_ADDR_CMP    2
        !            50: #define M98601_RUN_SINGLE_INSTR_STEP   4
        !            51: #define M98601_RUN_FULL_ADDR_CMP       6
        !            52: #define M98601_RUN_FULL_BRANCH_TARG_CMP        7
        !            53: 
        !            54: /*
        !            55:  * Valid values for "resp" bits in m98601_data_bp_mode_t
        !            56:  */
        !            57: #define        M98601_RESP_HARD_STOP           0
        !            58: #define        M98601_RESP_SOFT_STOP           1
        !            59: #define        M98601_RESP_TRAP                2
        !            60: 
        !            61: /*
        !            62:  * Data Breakpoint Mode Specification (register HID1)
        !            63:  */
        !            64: typedef        struct {
        !            65:        unsigned        :BIT_WIDTH(31);
        !            66:        unsigned        run:BITS_WIDTH(30,28);          // see above
        !            67:        unsigned        :BITS_WIDTH(27,24);
        !            68:        unsigned        resp:BITS_WIDTH(23,22);         // see above
        !            69:        unsigned        scan:BIT_WIDTH(21);             // not for sw use
        !            70:        unsigned        :BITS_WIDTH(20,15);
        !            71:        unsigned        no_brd_tlbi:BIT_WIDTH(14);      // if high, don't
        !            72:                                                        // broadcast tlbie
        !            73:        unsigned        :BITS_WIDTH(13,0);
        !            74: } m98601_data_bp_mode_t;
        !            75: 
        !            76: /*
        !            77:  * M98601-specific:
        !            78:  * Run Mode Interrupt Status Register (really SRR1)
        !            79:  */
        !            80: typedef struct {
        !            81:        unsigned        :BITS_WIDTH(31,18);
        !            82:        unsigned        trace:BIT_WIDTH(17);    // 1 => interrupt caused by
        !            83:                                                // MSR(SE) trace mode
        !            84:        unsigned        :BIT_WIDTH(16);
        !            85:        MSR_BITS;
        !            86: } rmisr_t;
        !            87: 
        !            88: /*
        !            89:  * M98601-specific:
        !            90:  * Machine Check Interrupt Status Register (HID0)
        !            91:  */
        !            92: typedef struct {
        !            93:        unsigned        e:BIT_WIDTH(31);        // master checkstop enable
        !            94:        unsigned        s:BIT_WIDTH(30);        // micro-code self-test latch
        !            95:        unsigned        m:BIT_WIDTH(29);        // checkstop with MSR(me)=0
        !            96:        unsigned        td:BIT_WIDTH(28);       // multi-side hit in tlb
        !            97:        unsigned        cd:BIT_WIDTH(27);       // multi-side hit in cache dir
        !            98:        unsigned        sh:BIT_WIDTH(26);       // sequencer hang
        !            99:        unsigned        dt:BIT_WIDTH(25);       // dispatch timeout
        !           100:        unsigned        ba:BIT_WIDTH(24);       // bus address parity error
        !           101:        unsigned        bd:BIT_WIDTH(23);       // bus data parity error
        !           102:        unsigned        cp:BIT_WIDTH(22);       // cache parity error
        !           103:        unsigned        iu:BIT_WIDTH(21);       // invalid micro-code instr
        !           104:        unsigned        pp:BIT_WIDTH(20);       // pio bus protocol error
        !           105:        unsigned        :BITS_WIDTH(19,17);     // reserved
        !           106:        unsigned        es:BIT_WIDTH(16);       // enable ucode selftest ckstop
        !           107:        unsigned        em:BIT_WIDTH(15);       // enable machine check ckstop
        !           108:        unsigned        etd:BIT_WIDTH(14);      // enable tlb ckstop
        !           109:        unsigned        ecd:BIT_WIDTH(13);      // enable cache dir ckstop
        !           110:        unsigned        esh:BIT_WIDTH(12);      // enable sequencer hang ckstop
        !           111:        unsigned        edt:BIT_WIDTH(11);      // enable disp timeout ckstop
        !           112:        unsigned        eba:BIT_WIDTH(10);      // enable bus addr parity ckstop
        !           113:        unsigned        ebd:BIT_WIDTH(9);       // enable bus data parity ckstop
        !           114:        unsigned        ecp:BIT_WIDTH(8);       // enable cache parity ckstop
        !           115:        unsigned        eiu:BIT_WIDTH(7);       // enable inval ucode ins ckstop
        !           116:        unsigned        epp:BIT_WIDTH(6);       // enable pio bus prot ckstop
        !           117:        unsigned        ddrip:BIT_WIDTH(5);     // disable dynamic reload of
        !           118:                                                // alternate sector for instr
        !           119:                                                // prefecth (>= DD2.0)
        !           120:        unsigned        ddrls:BIT_WIDTH(4);     // disable dynamic reload of
        !           121:                                                // alternate sector for
        !           122:                                                // load/store ops (>= DD2.0)
        !           123:        unsigned        :BIT_WIDTH(3);          // reserved
        !           124:        unsigned        dpc:BIT_WIDTH(2);       // disable precharge for ARTRY
        !           125:                                                // and SHARED signals (>= DD2.0)
        !           126:        unsigned        emc:BIT_WIDTH(1);       // error in main cache
        !           127:        unsigned        ehp:BIT_WIDTH(0);       // enable high pri write queue
        !           128:                                                // for push data (>= DD2.0)
        !           129: } mcisr_t;
        !           130: 
        !           131: #endif _ARCH_M98K_M98601_REGS_H_

unix.superglobalmegacorp.com

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