ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
vif_registers.h
Go to the documentation of this file.
1 
6 #ifndef __VIF_REGISTERS_H__
7 #define __VIF_REGISTERS_H__
8 
9 #include <tamtypes.h>
10 
11 #define VU0_MEM0_START 0x11000000
12 #define VU0_MICROMEM0_START 0x11004000
13 
14 #define VU1_MEM1_START 0x11008000
15 #define VU1_MICROMEM1_START 0x1100C000
16 
17 #define VIF0_FIFO 0x10004000
18 #define VIF1_FIFO 0x10005000
19 
20 #define VIF0_STAT *(volatile u32 *)0x10003800
21 #define VIF0_FBRST *(volatile u32 *)0x10003810
22 #define VIF0_ERR *(volatile u32 *)0x10003820
23 #define VIF0_MARK *(volatile u32 *)0x10003830
24 #define VIF0_CYCLE *(volatile u32 *)0x10003840
25 #define VIF0_MODE *(volatile u32 *)0x10003850
26 #define VIF0_NUM *(volatile u32 *)0x10003860
27 #define VIF0_MASK *(volatile u32 *)0x10003870
28 #define VIF0_CODE *(volatile u32 *)0x10003880
29 #define VIF0_ITOPS *(volatile u32 *)0x10003890
30 #define VIF0_ITOP *(volatile u32 *)0x100038d0
31 #define VIF0_TOP *(volatile u32 *)0x100038e0
32 #define VIF0_R0 *(volatile u32 *)0x10003900
33 #define VIF0_R1 *(volatile u32 *)0x10003910
34 #define VIF0_R2 *(volatile u32 *)0x10003920
35 #define VIF0_R3 *(volatile u32 *)0x10003930
36 #define VIF0_C0 *(volatile u32 *)0x10003940
37 #define VIF0_C1 *(volatile u32 *)0x10003950
38 #define VIF0_C2 *(volatile u32 *)0x10003960
39 #define VIF0_C3 *(volatile u32 *)0x10003970
40 
41 #define VIF1_STAT *(volatile u32 *)0x10003c00
42 #define VIF1_FBRST *(volatile u32 *)0x10003c10
43 #define VIF1_ERR *(volatile u32 *)0x10003c20
44 #define VIF1_MARK *(volatile u32 *)0x10003c30
45 #define VIF1_CYCLE *(volatile u32 *)0x10003c40
46 #define VIF1_MODE *(volatile u32 *)0x10003c50
47 #define VIF1_NUM *(volatile u32 *)0x10003c60
48 #define VIF1_MASK *(volatile u32 *)0x10003c70
49 #define VIF1_CODE *(volatile u32 *)0x10003c80
50 #define VIF1_ITOPS *(volatile u32 *)0x10003c90
51 #define VIF1_BASE *(volatile u32 *)0x10003ca0
52 #define VIF1_OFST *(volatile u32 *)0x10003cb0
53 #define VIF1_TOPS *(volatile u32 *)0x10003cc0
54 #define VIF1_ITOP *(volatile u32 *)0x10003cd0
55 #define VIF1_TOP *(volatile u32 *)0x10003ce0
56 #define VIF1_R0 *(volatile u32 *)0x10003d00
57 #define VIF1_R1 *(volatile u32 *)0x10003d10
58 #define VIF1_R2 *(volatile u32 *)0x10003d20
59 #define VIF1_R3 *(volatile u32 *)0x10003d30
60 #define VIF1_C0 *(volatile u32 *)0x10003d40
61 #define VIF1_C1 *(volatile u32 *)0x10003d50
62 #define VIF1_C2 *(volatile u32 *)0x10003d60
63 #define VIF1_C3 *(volatile u32 *)0x10003d70
64 
65 #define VIF_SET_FBRST(RST,FBK,STP,STC) \
66  (u32)((RST) & 0x00000001) << 0 | (u32)((FBK) & 0x00000001) << 1 | \
67  (u32)((STP) & 0x00000001) << 2 | (u32)((STC) & 0x00000001) << 3
68 
69 #define VIF_SET_ERR(MII,ME0,ME1) \
70  (u32)((MII) & 0x00000001) << 0 | (u32)((ME0) & 0x00000001) << 1 | \
71  (u32)((ME1) & 0x00000001) << 2
72 
73 #define VIF_SET_MARK(MARK) \
74  (u32)((MARK) & 0x0000FFFF) << 0
75 
76 typedef struct {
77  u32 vps:2;
78  u32 vew:1;
79  u32 vgw:1; //vif1
80  u32 pad0:2;
81  u32 mrk:1;
82  u32 dbf:1; //vif1
83  u32 vss:1;
84  u32 vfs:1;
85  u32 vis:1;
86  u32 irq:1;
87  u32 er0:1;
88  u32 er1:1;
89  u32 pad1:9;
90  u32 fdr:1; //vif1
91  u32 fqc:5;
92  u32 pad2:3;
93 } __attribute__((packed)) VIFSTAT;
94 
95 typedef struct {
96  u32 cl:8;
97  u32 wl:8;
98  u32 pad0:16;
99 } __attribute__((packed)) VIFCYCLE;
100 
101 typedef struct {
103  u32 pad0:30;
104 } __attribute__((packed)) VIFMODE;
105 
106 typedef struct {
107  u32 m0:2;
108  u32 m1:2;
109  u32 m2:2;
110  u32 m3:2;
111  u32 m4:2;
112  u32 m5:2;
113  u32 m6:2;
114  u32 m7:2;
115  u32 m8:2;
116  u32 m9:2;
117  u32 m10:2;
118  u32 m11:2;
119  u32 m12:2;
120  u32 m13:2;
121  u32 m14:2;
122  u32 m15:2;
123 } __attribute__((packed)) VIFMASK;
124 
125 typedef struct {
126  u32 imdt:16;
127  u32 num:8;
128  u32 cmd:8;
129 } __attribute__((packed)) VIFCODE;
130 
131 typedef struct {
132  u32 itops:10;
133  u32 pad0:22;
134 } __attribute__((packed)) VIFITOPS;
135 
136 typedef struct {
137  u32 base:10;
138  u32 pad0:22;
139 } __attribute__((packed)) VIF1BASE; //vif1
140 
141 typedef struct {
143  u32 pad0:22;
144 } __attribute__((packed)) VIF1OFST; //vif1
145 
146 typedef struct {
147  u32 tops:10;
148  u32 pad0:22;
149 } __attribute__((packed)) VIF1TOPS; //vif1
150 
151 typedef struct {
152  u32 itop:10;
153  u32 pad0:22;
154 } __attribute__((packed)) VIFITOP;
155 
156 typedef struct {
157  u32 top:10;
158  u32 pad0:22;
159 } __attribute__((packed)) VIFTOP;
160 
161 typedef struct {
163 } VIFR;
164 
165 typedef struct {
167 } VIFC;
168 
169 #endif /* __VIF_REGISTERS_H__ */
u32 column
u32 row
unsigned int u32
Definition: tamtypes.h:30