[BACK]Return to zxreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / sbus

Annotation of sys/dev/sbus/zxreg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: zxreg.h,v 1.1 2004/06/20 18:15:25 miod Exp $  */
                      2: /*     $NetBSD: zxreg.h,v 1.1 2002/09/13 14:03:53 ad Exp $     */
                      3:
                      4: /*
                      5:  *  Copyright (c) 2002 The NetBSD Foundation, Inc.
                      6:  *  All rights reserved.
                      7:  *
                      8:  *  This code is derived from software contributed to The NetBSD Foundation
                      9:  *  by Andrew Doran.
                     10:  *
                     11:  *  Redistribution and use in source and binary forms, with or without
                     12:  *  modification, are permitted provided that the following conditions
                     13:  *  are met:
                     14:  *  1. Redistributions of source code must retain the above copyright
                     15:  *     notice, this list of conditions and the following disclaimer.
                     16:  *  2. Redistributions in binary form must reproduce the above copyright
                     17:  *     notice, this list of conditions and the following disclaimer in the
                     18:  *     documentation and/or other materials provided with the distribution.
                     19:  *  3. All advertising materials mentioning features or use of this software
                     20:  *     must display the following acknowledgement:
                     21:  *         This product includes software developed by the NetBSD
                     22:  *         Foundation, Inc. and its contributors.
                     23:  *  4. Neither the name of The NetBSD Foundation nor the names of its
                     24:  *     contributors may be used to endorse or promote products derived
                     25:  *     from this software without specific prior written permission.
                     26:  *
                     27:  *  THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
                     28:  *  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
                     29:  *  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
                     30:  *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
                     31:  *  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
                     32:  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                     33:  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                     34:  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                     35:  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     36:  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     37:  *  POSSIBILITY OF SUCH DAMAGE.
                     38:  */
                     39:
                     40: /*
                     41:  * Copyright (C) 1999, 2000 Jakub Jelinek (jakub@redhat.com)
                     42:  *
                     43:  * Permission is hereby granted, free of charge, to any person obtaining a copy
                     44:  * of this software and associated documentation files (the "Software"), to deal
                     45:  * in the Software without restriction, including without limitation the rights
                     46:  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                     47:  * copies of the Software, and to permit persons to whom the Software is
                     48:  * furnished to do so, subject to the following conditions:
                     49:  *
                     50:  * The above copyright notice and this permission notice shall be included in
                     51:  * all copies or substantial portions of the Software.
                     52:  *
                     53:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                     54:  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                     55:  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
                     56:  * JAKUB JELINEK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
                     57:  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
                     58:  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
                     59:  *
                     60:  */
                     61:
                     62: #ifndef _DEV_SBUS_ZXREG_H_
                     63: #define _DEV_SBUS_ZXREG_H_
                     64:
                     65: /* Hardware offsets. */
                     66: #define ZX_OFF_UNK2            0x00000000
                     67: #define ZX_OFF_LC_SS0_KRN      0x00200000
                     68: #define ZX_OFF_LC_SS0_USR      0x00201000
                     69: #define ZX_OFF_LD_SS0          0x00400000
                     70: #define ZX_OFF_LD_GBL          0x00401000
                     71: #define ZX_OFF_LX_CROSS                0x00600000
                     72: #define ZX_OFF_LX_CURSOR       0x00601000
                     73: #define ZX_OFF_UNK             0x00602000
                     74: #define ZX_OFF_SS0             0x00800000
                     75: #define ZX_OFF_LC_SS1_KRN      0x01200000
                     76: #define ZX_OFF_LC_SS1_USR      0x01201000
                     77: #define ZX_OFF_LD_SS1          0x01400000
                     78: #define ZX_OFF_SS1             0x01800000
                     79:
                     80: /* ROP register */
                     81: #define ZX_ATTR_PICK_DISABLE   0x00000000
                     82: #define ZX_ATTR_PICK_2D                0x80000000
                     83: #define ZX_ATTR_PICK_3D                0xa0000000
                     84: #define ZX_ATTR_PICK_2D_REND   0xc0000000
                     85: #define ZX_ATTR_PICK_3D_REND   0xe0000000
                     86:
                     87: #define ZX_ATTR_DCE_DISABLE    0x00000000
                     88: #define ZX_ATTR_DCE_ENABLE     0x10000000
                     89:
                     90: #define ZX_ATTR_APE_DISABLE    0x00000000
                     91: #define ZX_ATTR_APE_ENABLE     0x08000000
                     92:
                     93: #define ZX_ATTR_COLOR_VAR      0x00000000
                     94: #define ZX_ATTR_COLOR_CONST    0x04000000
                     95:
                     96: #define ZX_ATTR_AA_DISABLE     0x02000000
                     97: #define ZX_ATTR_AA_ENABLE      0x01000000
                     98:
                     99: #define ZX_ATTR_ABE_BG         0x00000000      /* dst + alpha * (src - bg) */
                    100: #define ZX_ATTR_ABE_FB         0x00800000      /* dst + alpha * (src - dst) */
                    101:
                    102: #define ZX_ATTR_ABE_DISABLE    0x00000000
                    103: #define ZX_ATTR_ABE_ENABLE     0x00400000
                    104:
                    105: #define ZX_ATTR_BLTSRC_A       0x00000000
                    106: #define ZX_ATTR_BLTSRC_B       0x00200000
                    107:
                    108: #define ZX_ROP_ZERO            (0x0 << 18)
                    109: #define ZX_ROP_NEW_AND_OLD     (0x8 << 18)
                    110: #define ZX_ROP_NEW_AND_NOLD    (0x4 << 18)
                    111: #define ZX_ROP_NEW             (0xc << 18)
                    112: #define ZX_ROP_NNEW_AND_OLD    (0x2 << 18)
                    113: #define ZX_ROP_OLD             (0xa << 18)
                    114: #define ZX_ROP_NEW_XOR_OLD     (0x6 << 18)
                    115: #define ZX_ROP_NEW_OR_OLD      (0xe << 18)
                    116: #define ZX_ROP_NNEW_AND_NOLD   (0x1 << 18)
                    117: #define ZX_ROP_NNEW_XOR_NOLD   (0x9 << 18)
                    118: #define ZX_ROP_NOLD            (0x5 << 18)
                    119: #define ZX_ROP_NEW_OR_NOLD     (0xd << 18)
                    120: #define ZX_ROP_NNEW            (0x3 << 18)
                    121: #define ZX_ROP_NNEW_OR_OLD     (0xb << 18)
                    122: #define ZX_ROP_NNEW_OR_NOLD    (0x7 << 18)
                    123: #define ZX_ROP_ONES            (0xf << 18)
                    124:
                    125: #define ZX_ATTR_HSR_DISABLE    0x00000000
                    126: #define ZX_ATTR_HSR_ENABLE     0x00020000
                    127:
                    128: #define ZX_ATTR_WRITEZ_DISABLE 0x00000000
                    129: #define ZX_ATTR_WRITEZ_ENABLE  0x00010000
                    130:
                    131: #define ZX_ATTR_Z_VAR          0x00000000
                    132: #define ZX_ATTR_Z_CONST                0x00008000
                    133:
                    134: #define ZX_ATTR_WCLIP_DISABLE  0x00000000
                    135: #define ZX_ATTR_WCLIP_ENABLE   0x00004000
                    136:
                    137: #define ZX_ATTR_MONO           0x00000000
                    138: #define ZX_ATTR_STEREO_LEFT    0x00001000
                    139: #define ZX_ATTR_STEREO_RIGHT   0x00003000
                    140:
                    141: #define ZX_ATTR_WE_DISABLE     0x00000000
                    142: #define ZX_ATTR_WE_ENABLE      0x00000800
                    143:
                    144: #define ZX_ATTR_FCE_DISABLE    0x00000000
                    145: #define ZX_ATTR_FCE_ENABLE     0x00000400
                    146:
                    147: #define ZX_ATTR_RE_DISABLE     0x00000000
                    148: #define ZX_ATTR_RE_ENABLE      0x00000200
                    149:
                    150: #define ZX_ATTR_GE_DISABLE     0x00000000
                    151: #define ZX_ATTR_GE_ENABLE      0x00000100
                    152:
                    153: #define ZX_ATTR_BE_DISABLE     0x00000000
                    154: #define ZX_ATTR_BE_ENABLE      0x00000080
                    155:
                    156: #define ZX_ATTR_RGBE_DISABLE   0x00000000
                    157: #define ZX_ATTR_RGBE_ENABLE    0x00000380
                    158:
                    159: #define ZX_ATTR_OE_DISABLE     0x00000000
                    160: #define ZX_ATTR_OE_ENABLE      0x00000040
                    161:
                    162: #define ZX_ATTR_ZE_DISABLE     0x00000000
                    163: #define ZX_ATTR_ZE_ENABLE      0x00000020
                    164:
                    165: #define ZX_ATTR_FORCE_WID      0x00000010
                    166:
                    167: #define ZX_ATTR_FC_PLANE_MASK  0x0000000e
                    168:
                    169: #define ZX_ATTR_BUFFER_A       0x00000000
                    170: #define ZX_ATTR_BUFFER_B       0x00000001
                    171:
                    172: /* CSR */
                    173: #define ZX_CSR_BLT_BUSY                0x20000000
                    174:
                    175: struct zx_draw {
                    176:        u_int32_t       zd_pad0[896];
                    177:        u_int32_t       zd_csr;
                    178:        u_int32_t       zd_wid;
                    179:        u_int32_t       zd_wmask;
                    180:        u_int32_t       zd_widclip;
                    181:        u_int32_t       zd_vclipmin;
                    182:        u_int32_t       zd_vclipmax;
                    183:        u_int32_t       zd_pickmin;     /* SS1 only */
                    184:        u_int32_t       zd_pickmax;     /* SS1 only */
                    185:        u_int32_t       zd_fg;
                    186:        u_int32_t       zd_bg;
                    187:        u_int32_t       zd_src;         /* Copy/Scroll (SS0 only) */
                    188:        u_int32_t       zd_dst;         /* Copy/Scroll/Fill (SS0 only) */
                    189:        u_int32_t       zd_extent;      /* Copy/Scroll/Fill size (SS0 only) */
                    190:        u_int32_t       zd_pad1[3];
                    191:        u_int32_t       zd_setsem;      /* SS1 only */
                    192:        u_int32_t       zd_clrsem;      /* SS1 only */
                    193:        u_int32_t       zd_clrpick;     /* SS1 only */
                    194:        u_int32_t       zd_clrdat;      /* SS1 only */
                    195:        u_int32_t       zd_alpha;       /* SS1 only */
                    196:        u_int32_t       zd_pad2[11];
                    197:        u_int32_t       zd_winbg;
                    198:        u_int32_t       zd_planemask;
                    199:        u_int32_t       zd_rop;
                    200:        u_int32_t       zd_z;
                    201:        u_int32_t       zd_dczf;        /* SS1 only */
                    202:        u_int32_t       zd_dczb;        /* SS1 only */
                    203:        u_int32_t       zd_dcs;         /* SS1 only */
                    204:        u_int32_t       zd_dczs;        /* SS1 only */
                    205:        u_int32_t       zd_pickfb;      /* SS1 only */
                    206:        u_int32_t       zd_pickbb;      /* SS1 only */
                    207:        u_int32_t       zd_dcfc;        /* SS1 only */
                    208:        u_int32_t       zd_forcecol;    /* SS1 only */
                    209:        u_int32_t       zd_door[8];     /* SS1 only */
                    210:        u_int32_t       zd_pick[5];     /* SS1 only */
                    211: };
                    212:
                    213: /* EXTENT */
                    214: #define        ZX_EXTENT_DIR_FORWARDS  0x00000000
                    215: #define        ZX_EXTENT_DIR_BACKWARDS 0x80000000
                    216:
                    217: struct zx_draw_ss1 {
                    218:        u_int32_t       zd_pad0[957];
                    219:        u_int32_t       zd_misc;
                    220: };
                    221: #define        ZX_SS1_MISC_ENABLE      0x00000001
                    222: #define        ZX_SS1_MISC_STEREO      0x00000002
                    223:
                    224: #define ZX_ADDRSPC_OBGR                0x00
                    225: #define ZX_ADDRSPC_Z           0x01
                    226: #define ZX_ADDRSPC_W           0x02
                    227: #define ZX_ADDRSPC_FONT_OBGR   0x04
                    228: #define ZX_ADDRSPC_FONT_Z      0x05
                    229: #define ZX_ADDRSPC_FONT_W      0x06
                    230: #define ZX_ADDRSPC_O           0x08
                    231: #define ZX_ADDRSPC_B           0x09
                    232: #define ZX_ADDRSPC_G           0x0a
                    233: #define ZX_ADDRSPC_R           0x0b
                    234:
                    235: struct zx_command {
                    236:        u_int32_t       zc_csr;
                    237:        u_int32_t       zc_addrspace;
                    238:        u_int32_t       zc_fontmsk;
                    239:        u_int32_t       zc_fontt;
                    240:        u_int32_t       zc_extent;
                    241:        u_int32_t       zc_src;
                    242:        u_int32_t       zc_dst;
                    243:        u_int32_t       zc_copy;
                    244:        u_int32_t       zc_fill;
                    245: };
                    246:
                    247: #define ZX_CROSS_TYPE_CLUT0    0x00001000
                    248: #define ZX_CROSS_TYPE_CLUT1    0x00001001
                    249: #define ZX_CROSS_TYPE_CLUT2    0x00001002
                    250: #define ZX_CROSS_TYPE_WID      0x00001003
                    251: #define ZX_CROSS_TYPE_UNK      0x00001006
                    252: #define ZX_CROSS_TYPE_VIDEO    0x00002003
                    253: #define ZX_CROSS_TYPE_CLUTDATA 0x00004000
                    254:
                    255: #define ZX_CROSS_CSR_ENABLE    0x00000008
                    256: #define ZX_CROSS_CSR_PROGRESS  0x00000004
                    257: #define ZX_CROSS_CSR_UNK       0x00000002
                    258: #define ZX_CROSS_CSR_UNK2      0x00000001
                    259:
                    260: struct zx_cross {
                    261:        u_int32_t       zx_type;
                    262:        u_int32_t       zx_csr;
                    263:        u_int32_t       zx_value;
                    264: };
                    265:
                    266: struct zx_cursor {
                    267:        u_int32_t       zcu_pad0[4];
                    268:        u_int32_t       zcu_type;
                    269:        u_int32_t       zcu_misc;
                    270:        u_int32_t       zcu_sxy;
                    271:        u_int32_t       zcu_data;
                    272: };
                    273:
                    274: #endif /* !_DEV_SBUS_ZXREG_H_ */

CVSweb