impactsr-bsd.h Source File

Back to the index.

impactsr-bsd.h
Go to the documentation of this file.
1 #ifndef IMPACTSR_H
2 #define IMPACTSR_H
3 
4 /*
5  * Copyright (C) 2004 by Stanislaw Skowronek. All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  */
28 
29 /* Convenient access macros */
30 #define IMPACTSR_REG64(vma,off) (*(volatile unsigned long *)((vma)+(off)))
31 #define IMPACTSR_REG32(vma,off) (*(volatile unsigned int *)((vma)+(off)))
32 #define IMPACTSR_REG16(vma,off) (*(volatile unsigned short *)((vma)+(off)))
33 #define IMPACTSR_REG8(vma,off) (*(volatile unsigned char *)((vma)+(off)))
34 
35 /* ImpactSR (HQ4) register offsets */
36 #define IMPACTSR_CFIFO(vma) IMPACTSR_REG64(vma,0x20400)
37 #define IMPACTSR_CFIFOW(vma) IMPACTSR_REG32(vma,0x20400)
38 #define IMPACTSR_CFIFOP(vma) IMPACTSR_REG64(vma,0x130400)
39 #define IMPACTSR_CFIFOPW(vma) IMPACTSR_REG32(vma,0x130400)
40 
41 #define IMPACTSR_STATUS(vma) IMPACTSR_REG32(vma,0x20000)
42 #define IMPACTSR_FIFOSTATUS(vma) IMPACTSR_REG32(vma,0x20008)
43 #define IMPACTSR_GIOSTATUS(vma) IMPACTSR_REG32(vma,0x20100)
44 #define IMPACTSR_DMABUSY(vma) IMPACTSR_REG32(vma,0x20200)
45 
46 #define IMPACTSR_RESTATUS(vma) IMPACTSR_REG32(vma,0x2c578)
47 
48 #define IMPACTSR_CFIFO_HW(vma) IMPACTSR_REG32(vma,0x40000)
49 #define IMPACTSR_CFIFO_LW(vma) IMPACTSR_REG32(vma,0x40008)
50 #define IMPACTSR_CFIFO_DELAY(vma) IMPACTSR_REG32(vma,0x40010)
51 #define IMPACTSR_DFIFO_HW(vma) IMPACTSR_REG32(vma,0x40020)
52 #define IMPACTSR_DFIFO_LW(vma) IMPACTSR_REG32(vma,0x40028)
53 #define IMPACTSR_DFIFO_DELAY(vma) IMPACTSR_REG32(vma,0x40030)
54 
55 #define IMPACTSR_XMAP_PP1SELECT(vma) IMPACTSR_REG8(vma,0x71c08)
56 #define IMPACTSR_XMAP_INDEX(vma) IMPACTSR_REG8(vma,0x71c88)
57 #define IMPACTSR_XMAP_CONFIG(vma) IMPACTSR_REG32(vma,0x71d00)
58 #define IMPACTSR_XMAP_CONFIGB(vma) IMPACTSR_REG8(vma,0x71d08)
59 #define IMPACTSR_XMAP_BUF_SELECT(vma) IMPACTSR_REG32(vma,0x71d80)
60 #define IMPACTSR_XMAP_MAIN_MODE(vma) IMPACTSR_REG32(vma,0x71e00)
61 #define IMPACTSR_XMAP_OVERLAY_MODE(vma) IMPACTSR_REG32(vma,0x71e80)
62 #define IMPACTSR_XMAP_DIB(vma) IMPACTSR_REG32(vma,0x71f00)
63 #define IMPACTSR_XMAP_DIB_DW(vma) IMPACTSR_REG32(vma,0x71f40)
64 #define IMPACTSR_XMAP_RE_RAC(vma) IMPACTSR_REG32(vma,0x71f80)
65 
66 #define IMPACTSR_VC3_INDEX(vma) IMPACTSR_REG8(vma,0x72008)
67 #define IMPACTSR_VC3_INDEXDATA(vma) IMPACTSR_REG32(vma,0x72038)
68 #define IMPACTSR_VC3_DATA(vma) IMPACTSR_REG16(vma,0x720b0)
69 #define IMPACTSR_VC3_RAM(vma) IMPACTSR_REG16(vma,0x72190)
70 
71 /* FIFO status */
72 #define IMPACTSR_CFIFO_MAX 128
73 #define IMPACTSR_BFIFO_MAX 16
74 
75 /* Commands for CFIFO */
76 #define IMPACTSR_CMD_WRITERSS(reg,val) (((0x00180004L|((reg)<<8))<<32)|((unsigned)(val)&0xffffffff))
77 #define IMPACTSR_CMD_EXECRSS(reg,val) (((0x001c0004L|((reg)<<8))<<32)|((unsigned)(val)&0xffffffff))
78 
79 #define IMPACTSR_CMD_GLINE_XSTARTF(v) IMPACTSR_CMD_WRITERSS(0x00c,v)
80 #define IMPACTSR_CMD_IR_ALIAS(v) IMPACTSR_CMD_EXECRSS(0x045,v)
81 #define IMPACTSR_CMD_BLOCKXYSTARTI(x,y) IMPACTSR_CMD_WRITERSS(0x046,((x)<<16)|(y))
82 #define IMPACTSR_CMD_BLOCKXYENDI(x,y) IMPACTSR_CMD_WRITERSS(0x047,((x)<<16)|(y))
83 #define IMPACTSR_CMD_PACKEDCOLOR(v) IMPACTSR_CMD_WRITERSS(0x05b,v)
84 #define IMPACTSR_CMD_RED(v) IMPACTSR_CMD_WRITERSS(0x05c,v)
85 #define IMPACTSR_CMD_ALPHA(v) IMPACTSR_CMD_WRITERSS(0x05f,v)
86 #define IMPACTSR_CMD_CHAR(v) IMPACTSR_CMD_EXECRSS(0x070,v)
87 #define IMPACTSR_CMD_CHAR_H(v) IMPACTSR_CMD_WRITERSS(0x070,v)
88 #define IMPACTSR_CMD_CHAR_L(v) IMPACTSR_CMD_EXECRSS(0x071,v)
89 #define IMPACTSR_CMD_XFRCONTROL(v) IMPACTSR_CMD_WRITERSS(0x102,v)
90 #define IMPACTSR_CMD_FILLMODE(v) IMPACTSR_CMD_WRITERSS(0x110,v)
91 #define IMPACTSR_CMD_CONFIG(v) IMPACTSR_CMD_WRITERSS(0x112,v)
92 #define IMPACTSR_CMD_XYWIN(x,y) IMPACTSR_CMD_WRITERSS(0x115,((y)<<16)|(x))
93 #define IMPACTSR_CMD_BKGRD_RG(v) IMPACTSR_CMD_WRITERSS(0x140,((v)<<8))
94 #define IMPACTSR_CMD_BKGRD_BA(v) IMPACTSR_CMD_WRITERSS(0x141,((v)<<8))
95 #define IMPACTSR_CMD_WINMODE(v) IMPACTSR_CMD_WRITERSS(0x14f,v)
96 #define IMPACTSR_CMD_XFRSIZE(x,y) IMPACTSR_CMD_WRITERSS(0x153,((y)<<16)|(x))
97 #define IMPACTSR_CMD_XFRMASKLO(v) IMPACTSR_CMD_WRITERSS(0x156,v)
98 #define IMPACTSR_CMD_XFRMASKHI(v) IMPACTSR_CMD_WRITERSS(0x157,v)
99 #define IMPACTSR_CMD_XFRCOUNTERS(x,y) IMPACTSR_CMD_WRITERSS(0x158,((y)<<16)|(x))
100 #define IMPACTSR_CMD_XFRMODE(v) IMPACTSR_CMD_WRITERSS(0x159,v)
101 #define IMPACTSR_CMD_RE_TOGGLECNTX(v) IMPACTSR_CMD_WRITERSS(0x15f,v)
102 #define IMPACTSR_CMD_PIXCMD(v) IMPACTSR_CMD_WRITERSS(0x160,v)
103 #define IMPACTSR_CMD_PP1FILLMODE(m,o) IMPACTSR_CMD_WRITERSS(0x161,(m)|(o<<26))
104 #define IMPACTSR_CMD_COLORMASKMSBS(v) IMPACTSR_CMD_WRITERSS(0x162,v)
105 #define IMPACTSR_CMD_COLORMASKLSBSA(v) IMPACTSR_CMD_WRITERSS(0x163,v)
106 #define IMPACTSR_CMD_COLORMASKLSBSB(v) IMPACTSR_CMD_WRITERSS(0x164,v)
107 #define IMPACTSR_CMD_DRBPOINTERS(v) IMPACTSR_CMD_WRITERSS(0x16d,v)
108 
109 #define IMPACTSR_CMD_HQ_PIXELFORMAT(v) (0x000c000400000000L|((unsigned)(v)&0xffffffff))
110 #define IMPACTSR_CMD_HQ_SCANWIDTH(v) (0x000a020400000000L|((unsigned)(v)&0xffffffff))
111 #define IMPACTSR_CMD_HQ_DMATYPE(v) (0x000a060400000000L|((unsigned)(v)&0xffffffff))
112 #define IMPACTSR_CMD_HQ_PG_LIST_0(v) (0x0008000400000000L|((unsigned)(v)&0xffffffff))
113 #define IMPACTSR_CMD_HQ_PG_WIDTH(v) (0x0008040400000000L|((unsigned)(v)&0xffffffff))
114 #define IMPACTSR_CMD_HQ_PG_OFFSET(v) (0x0008050400000000L|((unsigned)(v)&0xffffffff))
115 #define IMPACTSR_CMD_HQ_PG_STARTADDR(v) (0x0008060400000000L|((unsigned)(v)&0xffffffff))
116 #define IMPACTSR_CMD_HQ_PG_LINECNT(v) (0x0008070400000000L|((unsigned)(v)&0xffffffff))
117 #define IMPACTSR_CMD_HQ_PG_WIDTHA(v) (0x0008080400000000L|((unsigned)(v)&0xffffffff))
118 #define IMPACTSR_CMD_HQ_TXBASE(p) (0x00482008|((p)<<9))
119 #define IMPACTSR_CMD_HQ_TXMAX(p,v) (0x0048300400000000L|((unsigned)(v)&0xffffffff)|((unsigned long)(p)<<40))
120 #define IMPACTSR_CMD_HQ_PGBITS(p,v) (0x00482b0400000000L|((unsigned)(v)&0xffffffff)|((unsigned long)(p)<<40))
121 #define IMPACTSR_CMD_HQ_PGSIZE(v) (0x00482a0400000000L|((unsigned)(v)&0xffffffff))
122 #define IMPACTSR_CMD_HQ_STACKPTR(v) (0x00483a0400000000L|((unsigned)(v)&0xffffffff))
123 
124 /* Logic operations for the PP1 (SI=source invert, DI=dest invert, RI=result invert) */
125 #define IMPACTSR_LO_COPY 0
126 #define IMPACTSR_LO_DIAND 1
127 #define IMPACTSR_LO_AND 2
128 #define IMPACTSR_LO_CLEAR 3
129 #define IMPACTSR_LO_OR 4
130 #define IMPACTSR_LO_XOR 5
131 #define IMPACTSR_LO_NOP 6
132 #define IMPACTSR_LO_SIAND 7
133 #define IMPACTSR_LO_DIOR 8
134 #define IMPACTSR_LO_RINOP 9
135 #define IMPACTSR_LO_RIXOR 10
136 #define IMPACTSR_LO_RIOR 11
137 #define IMPACTSR_LO_SET 12
138 #define IMPACTSR_LO_RIAND 13
139 #define IMPACTSR_LO_SIOR 14
140 #define IMPACTSR_LO_RICOPY 15
141 
142 #endif /* IMPACTSR_H */

Generated on Tue Mar 24 2020 14:04:48 for GXemul by doxygen 1.8.17