0001 #ifndef CMDSTREAM_XML
0002 #define CMDSTREAM_XML
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042 #define FE_OPCODE_LOAD_STATE 0x00000001
0043 #define FE_OPCODE_END 0x00000002
0044 #define FE_OPCODE_NOP 0x00000003
0045 #define FE_OPCODE_DRAW_2D 0x00000004
0046 #define FE_OPCODE_DRAW_PRIMITIVES 0x00000005
0047 #define FE_OPCODE_DRAW_INDEXED_PRIMITIVES 0x00000006
0048 #define FE_OPCODE_WAIT 0x00000007
0049 #define FE_OPCODE_LINK 0x00000008
0050 #define FE_OPCODE_STALL 0x00000009
0051 #define FE_OPCODE_CALL 0x0000000a
0052 #define FE_OPCODE_RETURN 0x0000000b
0053 #define FE_OPCODE_DRAW_INSTANCED 0x0000000c
0054 #define FE_OPCODE_CHIP_SELECT 0x0000000d
0055 #define PRIMITIVE_TYPE_POINTS 0x00000001
0056 #define PRIMITIVE_TYPE_LINES 0x00000002
0057 #define PRIMITIVE_TYPE_LINE_STRIP 0x00000003
0058 #define PRIMITIVE_TYPE_TRIANGLES 0x00000004
0059 #define PRIMITIVE_TYPE_TRIANGLE_STRIP 0x00000005
0060 #define PRIMITIVE_TYPE_TRIANGLE_FAN 0x00000006
0061 #define PRIMITIVE_TYPE_LINE_LOOP 0x00000007
0062 #define PRIMITIVE_TYPE_QUADS 0x00000008
0063 #define VIV_FE_LOAD_STATE 0x00000000
0064
0065 #define VIV_FE_LOAD_STATE_HEADER 0x00000000
0066 #define VIV_FE_LOAD_STATE_HEADER_OP__MASK 0xf8000000
0067 #define VIV_FE_LOAD_STATE_HEADER_OP__SHIFT 27
0068 #define VIV_FE_LOAD_STATE_HEADER_OP_LOAD_STATE 0x08000000
0069 #define VIV_FE_LOAD_STATE_HEADER_FIXP 0x04000000
0070 #define VIV_FE_LOAD_STATE_HEADER_COUNT__MASK 0x03ff0000
0071 #define VIV_FE_LOAD_STATE_HEADER_COUNT__SHIFT 16
0072 #define VIV_FE_LOAD_STATE_HEADER_COUNT(x) (((x) << VIV_FE_LOAD_STATE_HEADER_COUNT__SHIFT) & VIV_FE_LOAD_STATE_HEADER_COUNT__MASK)
0073 #define VIV_FE_LOAD_STATE_HEADER_OFFSET__MASK 0x0000ffff
0074 #define VIV_FE_LOAD_STATE_HEADER_OFFSET__SHIFT 0
0075 #define VIV_FE_LOAD_STATE_HEADER_OFFSET(x) (((x) << VIV_FE_LOAD_STATE_HEADER_OFFSET__SHIFT) & VIV_FE_LOAD_STATE_HEADER_OFFSET__MASK)
0076 #define VIV_FE_LOAD_STATE_HEADER_OFFSET__SHR 2
0077
0078 #define VIV_FE_END 0x00000000
0079
0080 #define VIV_FE_END_HEADER 0x00000000
0081 #define VIV_FE_END_HEADER_EVENT_ID__MASK 0x0000001f
0082 #define VIV_FE_END_HEADER_EVENT_ID__SHIFT 0
0083 #define VIV_FE_END_HEADER_EVENT_ID(x) (((x) << VIV_FE_END_HEADER_EVENT_ID__SHIFT) & VIV_FE_END_HEADER_EVENT_ID__MASK)
0084 #define VIV_FE_END_HEADER_EVENT_ENABLE 0x00000100
0085 #define VIV_FE_END_HEADER_OP__MASK 0xf8000000
0086 #define VIV_FE_END_HEADER_OP__SHIFT 27
0087 #define VIV_FE_END_HEADER_OP_END 0x10000000
0088
0089 #define VIV_FE_NOP 0x00000000
0090
0091 #define VIV_FE_NOP_HEADER 0x00000000
0092 #define VIV_FE_NOP_HEADER_OP__MASK 0xf8000000
0093 #define VIV_FE_NOP_HEADER_OP__SHIFT 27
0094 #define VIV_FE_NOP_HEADER_OP_NOP 0x18000000
0095
0096 #define VIV_FE_DRAW_2D 0x00000000
0097
0098 #define VIV_FE_DRAW_2D_HEADER 0x00000000
0099 #define VIV_FE_DRAW_2D_HEADER_COUNT__MASK 0x0000ff00
0100 #define VIV_FE_DRAW_2D_HEADER_COUNT__SHIFT 8
0101 #define VIV_FE_DRAW_2D_HEADER_COUNT(x) (((x) << VIV_FE_DRAW_2D_HEADER_COUNT__SHIFT) & VIV_FE_DRAW_2D_HEADER_COUNT__MASK)
0102 #define VIV_FE_DRAW_2D_HEADER_DATA_COUNT__MASK 0x07ff0000
0103 #define VIV_FE_DRAW_2D_HEADER_DATA_COUNT__SHIFT 16
0104 #define VIV_FE_DRAW_2D_HEADER_DATA_COUNT(x) (((x) << VIV_FE_DRAW_2D_HEADER_DATA_COUNT__SHIFT) & VIV_FE_DRAW_2D_HEADER_DATA_COUNT__MASK)
0105 #define VIV_FE_DRAW_2D_HEADER_OP__MASK 0xf8000000
0106 #define VIV_FE_DRAW_2D_HEADER_OP__SHIFT 27
0107 #define VIV_FE_DRAW_2D_HEADER_OP_DRAW_2D 0x20000000
0108
0109 #define VIV_FE_DRAW_2D_TOP_LEFT 0x00000008
0110 #define VIV_FE_DRAW_2D_TOP_LEFT_X__MASK 0x0000ffff
0111 #define VIV_FE_DRAW_2D_TOP_LEFT_X__SHIFT 0
0112 #define VIV_FE_DRAW_2D_TOP_LEFT_X(x) (((x) << VIV_FE_DRAW_2D_TOP_LEFT_X__SHIFT) & VIV_FE_DRAW_2D_TOP_LEFT_X__MASK)
0113 #define VIV_FE_DRAW_2D_TOP_LEFT_Y__MASK 0xffff0000
0114 #define VIV_FE_DRAW_2D_TOP_LEFT_Y__SHIFT 16
0115 #define VIV_FE_DRAW_2D_TOP_LEFT_Y(x) (((x) << VIV_FE_DRAW_2D_TOP_LEFT_Y__SHIFT) & VIV_FE_DRAW_2D_TOP_LEFT_Y__MASK)
0116
0117 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT 0x0000000c
0118 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__MASK 0x0000ffff
0119 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__SHIFT 0
0120 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X(x) (((x) << VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__SHIFT) & VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__MASK)
0121 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__MASK 0xffff0000
0122 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__SHIFT 16
0123 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y(x) (((x) << VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__SHIFT) & VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__MASK)
0124
0125 #define VIV_FE_DRAW_PRIMITIVES 0x00000000
0126
0127 #define VIV_FE_DRAW_PRIMITIVES_HEADER 0x00000000
0128 #define VIV_FE_DRAW_PRIMITIVES_HEADER_OP__MASK 0xf8000000
0129 #define VIV_FE_DRAW_PRIMITIVES_HEADER_OP__SHIFT 27
0130 #define VIV_FE_DRAW_PRIMITIVES_HEADER_OP_DRAW_PRIMITIVES 0x28000000
0131
0132 #define VIV_FE_DRAW_PRIMITIVES_COMMAND 0x00000004
0133 #define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__MASK 0x000000ff
0134 #define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__SHIFT 0
0135 #define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE(x) (((x) << VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__SHIFT) & VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__MASK)
0136
0137 #define VIV_FE_DRAW_PRIMITIVES_START 0x00000008
0138
0139 #define VIV_FE_DRAW_PRIMITIVES_COUNT 0x0000000c
0140
0141 #define VIV_FE_DRAW_INDEXED_PRIMITIVES 0x00000000
0142
0143 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER 0x00000000
0144 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP__MASK 0xf8000000
0145 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP__SHIFT 27
0146 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP_DRAW_INDEXED_PRIMITIVES 0x30000000
0147
0148 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND 0x00000004
0149 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__MASK 0x000000ff
0150 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__SHIFT 0
0151 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE(x) (((x) << VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__SHIFT) & VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__MASK)
0152
0153 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_START 0x00000008
0154
0155 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COUNT 0x0000000c
0156
0157 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_OFFSET 0x00000010
0158
0159 #define VIV_FE_WAIT 0x00000000
0160
0161 #define VIV_FE_WAIT_HEADER 0x00000000
0162 #define VIV_FE_WAIT_HEADER_DELAY__MASK 0x0000ffff
0163 #define VIV_FE_WAIT_HEADER_DELAY__SHIFT 0
0164 #define VIV_FE_WAIT_HEADER_DELAY(x) (((x) << VIV_FE_WAIT_HEADER_DELAY__SHIFT) & VIV_FE_WAIT_HEADER_DELAY__MASK)
0165 #define VIV_FE_WAIT_HEADER_OP__MASK 0xf8000000
0166 #define VIV_FE_WAIT_HEADER_OP__SHIFT 27
0167 #define VIV_FE_WAIT_HEADER_OP_WAIT 0x38000000
0168
0169 #define VIV_FE_LINK 0x00000000
0170
0171 #define VIV_FE_LINK_HEADER 0x00000000
0172 #define VIV_FE_LINK_HEADER_PREFETCH__MASK 0x0000ffff
0173 #define VIV_FE_LINK_HEADER_PREFETCH__SHIFT 0
0174 #define VIV_FE_LINK_HEADER_PREFETCH(x) (((x) << VIV_FE_LINK_HEADER_PREFETCH__SHIFT) & VIV_FE_LINK_HEADER_PREFETCH__MASK)
0175 #define VIV_FE_LINK_HEADER_OP__MASK 0xf8000000
0176 #define VIV_FE_LINK_HEADER_OP__SHIFT 27
0177 #define VIV_FE_LINK_HEADER_OP_LINK 0x40000000
0178
0179 #define VIV_FE_LINK_ADDRESS 0x00000004
0180
0181 #define VIV_FE_STALL 0x00000000
0182
0183 #define VIV_FE_STALL_HEADER 0x00000000
0184 #define VIV_FE_STALL_HEADER_OP__MASK 0xf8000000
0185 #define VIV_FE_STALL_HEADER_OP__SHIFT 27
0186 #define VIV_FE_STALL_HEADER_OP_STALL 0x48000000
0187
0188 #define VIV_FE_STALL_TOKEN 0x00000004
0189 #define VIV_FE_STALL_TOKEN_FROM__MASK 0x0000001f
0190 #define VIV_FE_STALL_TOKEN_FROM__SHIFT 0
0191 #define VIV_FE_STALL_TOKEN_FROM(x) (((x) << VIV_FE_STALL_TOKEN_FROM__SHIFT) & VIV_FE_STALL_TOKEN_FROM__MASK)
0192 #define VIV_FE_STALL_TOKEN_TO__MASK 0x00001f00
0193 #define VIV_FE_STALL_TOKEN_TO__SHIFT 8
0194 #define VIV_FE_STALL_TOKEN_TO(x) (((x) << VIV_FE_STALL_TOKEN_TO__SHIFT) & VIV_FE_STALL_TOKEN_TO__MASK)
0195
0196 #define VIV_FE_CALL 0x00000000
0197
0198 #define VIV_FE_CALL_HEADER 0x00000000
0199 #define VIV_FE_CALL_HEADER_PREFETCH__MASK 0x0000ffff
0200 #define VIV_FE_CALL_HEADER_PREFETCH__SHIFT 0
0201 #define VIV_FE_CALL_HEADER_PREFETCH(x) (((x) << VIV_FE_CALL_HEADER_PREFETCH__SHIFT) & VIV_FE_CALL_HEADER_PREFETCH__MASK)
0202 #define VIV_FE_CALL_HEADER_OP__MASK 0xf8000000
0203 #define VIV_FE_CALL_HEADER_OP__SHIFT 27
0204 #define VIV_FE_CALL_HEADER_OP_CALL 0x50000000
0205
0206 #define VIV_FE_CALL_ADDRESS 0x00000004
0207
0208 #define VIV_FE_CALL_RETURN_PREFETCH 0x00000008
0209
0210 #define VIV_FE_CALL_RETURN_ADDRESS 0x0000000c
0211
0212 #define VIV_FE_RETURN 0x00000000
0213
0214 #define VIV_FE_RETURN_HEADER 0x00000000
0215 #define VIV_FE_RETURN_HEADER_OP__MASK 0xf8000000
0216 #define VIV_FE_RETURN_HEADER_OP__SHIFT 27
0217 #define VIV_FE_RETURN_HEADER_OP_RETURN 0x58000000
0218
0219 #define VIV_FE_CHIP_SELECT 0x00000000
0220
0221 #define VIV_FE_CHIP_SELECT_HEADER 0x00000000
0222 #define VIV_FE_CHIP_SELECT_HEADER_OP__MASK 0xf8000000
0223 #define VIV_FE_CHIP_SELECT_HEADER_OP__SHIFT 27
0224 #define VIV_FE_CHIP_SELECT_HEADER_OP_CHIP_SELECT 0x68000000
0225 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP15 0x00008000
0226 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP14 0x00004000
0227 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP13 0x00002000
0228 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP12 0x00001000
0229 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP11 0x00000800
0230 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP10 0x00000400
0231 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP9 0x00000200
0232 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP8 0x00000100
0233 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP7 0x00000080
0234 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP6 0x00000040
0235 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP5 0x00000020
0236 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP4 0x00000010
0237 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP3 0x00000008
0238 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP2 0x00000004
0239 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP1 0x00000002
0240 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP0 0x00000001
0241
0242 #define VIV_FE_DRAW_INSTANCED 0x00000000
0243
0244 #define VIV_FE_DRAW_INSTANCED_HEADER 0x00000000
0245 #define VIV_FE_DRAW_INSTANCED_HEADER_OP__MASK 0xf8000000
0246 #define VIV_FE_DRAW_INSTANCED_HEADER_OP__SHIFT 27
0247 #define VIV_FE_DRAW_INSTANCED_HEADER_OP_DRAW_INSTANCED 0x60000000
0248 #define VIV_FE_DRAW_INSTANCED_HEADER_INDEXED 0x00100000
0249 #define VIV_FE_DRAW_INSTANCED_HEADER_TYPE__MASK 0x000f0000
0250 #define VIV_FE_DRAW_INSTANCED_HEADER_TYPE__SHIFT 16
0251 #define VIV_FE_DRAW_INSTANCED_HEADER_TYPE(x) (((x) << VIV_FE_DRAW_INSTANCED_HEADER_TYPE__SHIFT) & VIV_FE_DRAW_INSTANCED_HEADER_TYPE__MASK)
0252 #define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__MASK 0x0000ffff
0253 #define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__SHIFT 0
0254 #define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO(x) (((x) << VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__SHIFT) & VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__MASK)
0255
0256 #define VIV_FE_DRAW_INSTANCED_COUNT 0x00000004
0257 #define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__MASK 0xff000000
0258 #define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__SHIFT 24
0259 #define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI(x) (((x) << VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__SHIFT) & VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__MASK)
0260 #define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__MASK 0x00ffffff
0261 #define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__SHIFT 0
0262 #define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT(x) (((x) << VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__SHIFT) & VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__MASK)
0263
0264 #define VIV_FE_DRAW_INSTANCED_START 0x00000008
0265 #define VIV_FE_DRAW_INSTANCED_START_INDEX__MASK 0xffffffff
0266 #define VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT 0
0267 #define VIV_FE_DRAW_INSTANCED_START_INDEX(x) (((x) << VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT) & VIV_FE_DRAW_INSTANCED_START_INDEX__MASK)
0268
0269
0270 #endif