Subversion Repositories Kolibri OS

Rev

Rev 5271 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5271 Rev 6104
Line 145... Line 145...
145
#define CIK_LB_DATA_FORMAT                        0x6b00
145
#define CIK_LB_DATA_FORMAT                        0x6b00
146
#       define CIK_INTERLEAVE_EN                  (1 << 3)
146
#       define CIK_INTERLEAVE_EN                  (1 << 3)
Line 147... Line 147...
147
 
147
 
Line -... Line 148...
-
 
148
#define CIK_LB_DESKTOP_HEIGHT                     0x6b0c
-
 
149
 
-
 
150
#define KFD_CIK_SDMA_QUEUE_OFFSET		0x200
-
 
151
 
-
 
152
#define SQ_IND_INDEX					0x8DE0
-
 
153
#define SQ_CMD						0x8DEC
-
 
154
#define SQ_IND_DATA					0x8DE4
-
 
155
 
-
 
156
/*
-
 
157
 * The TCP_WATCHx_xxxx addresses that are shown here are in dwords,
-
 
158
 * and that's why they are multiplied by 4
-
 
159
 */
-
 
160
#define TCP_WATCH0_ADDR_H				(0x32A0*4)
-
 
161
#define TCP_WATCH1_ADDR_H				(0x32A3*4)
-
 
162
#define TCP_WATCH2_ADDR_H				(0x32A6*4)
-
 
163
#define TCP_WATCH3_ADDR_H				(0x32A9*4)
-
 
164
#define TCP_WATCH0_ADDR_L				(0x32A1*4)
-
 
165
#define TCP_WATCH1_ADDR_L				(0x32A4*4)
-
 
166
#define TCP_WATCH2_ADDR_L				(0x32A7*4)
-
 
167
#define TCP_WATCH3_ADDR_L				(0x32AA*4)
-
 
168
#define TCP_WATCH0_CNTL					(0x32A2*4)
-
 
169
#define TCP_WATCH1_CNTL					(0x32A5*4)
-
 
170
#define TCP_WATCH2_CNTL					(0x32A8*4)
-
 
171
#define TCP_WATCH3_CNTL					(0x32AB*4)
-
 
172
 
148
#define CIK_LB_DESKTOP_HEIGHT                     0x6b0c
173
#define CPC_INT_CNTL					0xC2D0
-
 
174
 
-
 
175
#define CP_HQD_IQ_RPTR					0xC970u
-
 
176
#define SDMA0_RLC0_RB_CNTL				0xD400u
-
 
177
#define	SDMA_RB_VMID(x)					(x << 24)
-
 
178
#define	SDMA0_RLC0_RB_BASE				0xD404u
-
 
179
#define	SDMA0_RLC0_RB_BASE_HI				0xD408u
-
 
180
#define	SDMA0_RLC0_RB_RPTR				0xD40Cu
-
 
181
#define	SDMA0_RLC0_RB_WPTR				0xD410u
-
 
182
#define	SDMA0_RLC0_RB_WPTR_POLL_CNTL			0xD414u
-
 
183
#define	SDMA0_RLC0_RB_WPTR_POLL_ADDR_HI			0xD418u
-
 
184
#define	SDMA0_RLC0_RB_WPTR_POLL_ADDR_LO			0xD41Cu
-
 
185
#define	SDMA0_RLC0_RB_RPTR_ADDR_HI			0xD420u
-
 
186
#define	SDMA0_RLC0_RB_RPTR_ADDR_LO			0xD424u
-
 
187
#define	SDMA0_RLC0_IB_CNTL				0xD428u
-
 
188
#define	SDMA0_RLC0_IB_RPTR				0xD42Cu
-
 
189
#define	SDMA0_RLC0_IB_OFFSET				0xD430u
-
 
190
#define	SDMA0_RLC0_IB_BASE_LO				0xD434u
-
 
191
#define	SDMA0_RLC0_IB_BASE_HI				0xD438u
-
 
192
#define	SDMA0_RLC0_IB_SIZE				0xD43Cu
-
 
193
#define	SDMA0_RLC0_SKIP_CNTL				0xD440u
-
 
194
#define	SDMA0_RLC0_CONTEXT_STATUS			0xD444u
-
 
195
#define	SDMA_RLC_IDLE					(1 << 2)
149
 
196
#define	SDMA0_RLC0_DOORBELL				0xD448u
-
 
197
#define	SDMA_OFFSET(x)					(x << 0)
-
 
198
#define	SDMA_DB_ENABLE					(1 << 28)
-
 
199
#define	SDMA0_RLC0_VIRTUAL_ADDR				0xD49Cu
-
 
200
#define	SDMA_ATC					(1 << 0)
-
 
201
#define	SDMA_VA_PTR32					(1 << 4)
-
 
202
#define	SDMA_VA_SHARED_BASE(x)				(x << 8)
-
 
203
#define	SDMA0_RLC0_APE1_CNTL				0xD4A0u
-
 
204
#define	SDMA0_RLC0_DOORBELL_LOG				0xD4A4u
-
 
205
#define	SDMA0_RLC0_WATERMARK				0xD4A8u
Line -... Line 206...
-
 
206
#define	SDMA0_CNTL					0xD010
-
 
207
#define	SDMA1_CNTL					0xD810
150
#define CP_HQD_IQ_RPTR					0xC970u
208
 
-
 
209
enum {
-
 
210
	MAX_TRAPID = 8,		/* 3 bits in the bitfield.  */
-
 
211
	MAX_WATCH_ADDRESSES = 4
-
 
212
};
-
 
213
 
-
 
214
enum {
-
 
215
	ADDRESS_WATCH_REG_ADDR_HI = 0,
-
 
216
	ADDRESS_WATCH_REG_ADDR_LO,
-
 
217
	ADDRESS_WATCH_REG_CNTL,
-
 
218
	ADDRESS_WATCH_REG_MAX
-
 
219
};
-
 
220
 
-
 
221
enum {				/*  not defined in the CI/KV reg file  */
-
 
222
	ADDRESS_WATCH_REG_CNTL_ATC_BIT = 0x10000000UL,
-
 
223
	ADDRESS_WATCH_REG_CNTL_DEFAULT_MASK = 0x00FFFFFF,
-
 
224
	ADDRESS_WATCH_REG_ADDLOW_MASK_EXTENSION = 0x03000000,
-
 
225
	/* extend the mask to 26 bits in order to match the low address field */
Line 151... Line 226...
151
#define AQL_ENABLE					(1U << 0)
226
	ADDRESS_WATCH_REG_ADDLOW_SHIFT = 6,
152
 
227
	ADDRESS_WATCH_REG_ADDHIGH_MASK = 0xFFFF
153
#define IDLE					(1 << 2)
-
 
154
 
-
 
155
struct cik_mqd {
-
 
156
	uint32_t header;
228
};
157
	uint32_t compute_dispatch_initiator;
-
 
158
	uint32_t compute_dim_x;
-
 
159
	uint32_t compute_dim_y;
-
 
160
	uint32_t compute_dim_z;
-
 
161
	uint32_t compute_start_x;
-
 
162
	uint32_t compute_start_y;
-
 
163
	uint32_t compute_start_z;
-
 
164
	uint32_t compute_num_thread_x;
-
 
165
	uint32_t compute_num_thread_y;
-
 
166
	uint32_t compute_num_thread_z;
-
 
167
	uint32_t compute_pipelinestat_enable;
-
 
168
	uint32_t compute_perfcount_enable;
-
 
169
	uint32_t compute_pgm_lo;
-
 
170
	uint32_t compute_pgm_hi;
-
 
171
	uint32_t compute_tba_lo;
-
 
172
	uint32_t compute_tba_hi;
-
 
173
	uint32_t compute_tma_lo;
229
 
174
	uint32_t compute_tma_hi;
-
 
175
	uint32_t compute_pgm_rsrc1;
-
 
176
	uint32_t compute_pgm_rsrc2;
-
 
177
	uint32_t compute_vmid;
-
 
178
	uint32_t compute_resource_limits;
-
 
179
	uint32_t compute_static_thread_mgmt_se0;
-
 
180
	uint32_t compute_static_thread_mgmt_se1;
-
 
181
	uint32_t compute_tmpring_size;
-
 
182
	uint32_t compute_static_thread_mgmt_se2;
-
 
183
	uint32_t compute_static_thread_mgmt_se3;
-
 
184
	uint32_t compute_restart_x;
-
 
185
	uint32_t compute_restart_y;
-
 
186
	uint32_t compute_restart_z;
-
 
187
	uint32_t compute_thread_trace_enable;
-
 
188
	uint32_t compute_misc_reserved;
-
 
189
	uint32_t compute_user_data_0;
-
 
190
	uint32_t compute_user_data_1;
-
 
191
	uint32_t compute_user_data_2;
-
 
192
	uint32_t compute_user_data_3;
-
 
193
	uint32_t compute_user_data_4;
-
 
194
	uint32_t compute_user_data_5;
-
 
195
	uint32_t compute_user_data_6;
-
 
196
	uint32_t compute_user_data_7;
-
 
197
	uint32_t compute_user_data_8;
-
 
198
	uint32_t compute_user_data_9;
-
 
199
	uint32_t compute_user_data_10;
-
 
200
	uint32_t compute_user_data_11;
-
 
201
	uint32_t compute_user_data_12;
-
 
202
	uint32_t compute_user_data_13;
-
 
203
	uint32_t compute_user_data_14;
-
 
204
	uint32_t compute_user_data_15;
-
 
205
	uint32_t cp_compute_csinvoc_count_lo;
230
union TCP_WATCH_CNTL_BITS {
206
	uint32_t cp_compute_csinvoc_count_hi;
231
	struct {
207
	uint32_t cp_mqd_base_addr_lo;
-
 
208
	uint32_t cp_mqd_base_addr_hi;
-
 
209
	uint32_t cp_hqd_active;
-
 
210
	uint32_t cp_hqd_vmid;
-
 
211
	uint32_t cp_hqd_persistent_state;
-
 
212
	uint32_t cp_hqd_pipe_priority;
-
 
213
	uint32_t cp_hqd_queue_priority;
-
 
214
	uint32_t cp_hqd_quantum;
-
 
215
	uint32_t cp_hqd_pq_base_lo;
-
 
216
	uint32_t cp_hqd_pq_base_hi;
-
 
217
	uint32_t cp_hqd_pq_rptr;
-
 
218
	uint32_t cp_hqd_pq_rptr_report_addr_lo;
-
 
219
	uint32_t cp_hqd_pq_rptr_report_addr_hi;
-
 
220
	uint32_t cp_hqd_pq_wptr_poll_addr_lo;
-
 
221
	uint32_t cp_hqd_pq_wptr_poll_addr_hi;
-
 
222
	uint32_t cp_hqd_pq_doorbell_control;
-
 
223
	uint32_t cp_hqd_pq_wptr;
-
 
224
	uint32_t cp_hqd_pq_control;
-
 
225
	uint32_t cp_hqd_ib_base_addr_lo;
-
 
226
	uint32_t cp_hqd_ib_base_addr_hi;
-
 
227
	uint32_t cp_hqd_ib_rptr;
-
 
228
	uint32_t cp_hqd_ib_control;
-
 
229
	uint32_t cp_hqd_iq_timer;
-
 
230
	uint32_t cp_hqd_iq_rptr;
-
 
231
	uint32_t cp_hqd_dequeue_request;
-
 
232
	uint32_t cp_hqd_dma_offload;
-
 
233
	uint32_t cp_hqd_sema_cmd;
-
 
234
	uint32_t cp_hqd_msg_type;
-
 
235
	uint32_t cp_hqd_atomic0_preop_lo;
-
 
236
	uint32_t cp_hqd_atomic0_preop_hi;
-
 
237
	uint32_t cp_hqd_atomic1_preop_lo;
-
 
238
	uint32_t cp_hqd_atomic1_preop_hi;
-
 
239
	uint32_t cp_hqd_hq_status0;
-
 
240
	uint32_t cp_hqd_hq_control0;
-
 
241
	uint32_t cp_mqd_control;
-
 
242
	uint32_t cp_mqd_query_time_lo;
-
 
243
	uint32_t cp_mqd_query_time_hi;
-
 
244
	uint32_t cp_mqd_connect_start_time_lo;
-
 
245
	uint32_t cp_mqd_connect_start_time_hi;
-
 
246
	uint32_t cp_mqd_connect_end_time_lo;
-
 
247
	uint32_t cp_mqd_connect_end_time_hi;
-
 
248
	uint32_t cp_mqd_connect_end_wf_count;
232
		uint32_t mask:24;
249
	uint32_t cp_mqd_connect_end_pq_rptr;
233
		uint32_t vmid:4;
250
	uint32_t cp_mqd_connect_end_pq_wptr;
234
		uint32_t atc:1;
251
	uint32_t cp_mqd_connect_end_ib_rptr;
235
		uint32_t mode:2;
252
	uint32_t reserved_96;
-
 
253
	uint32_t reserved_97;
-
 
254
	uint32_t reserved_98;
-
 
255
	uint32_t reserved_99;
-
 
256
	uint32_t iqtimer_pkt_header;
-
 
257
	uint32_t iqtimer_pkt_dw0;
-
 
258
	uint32_t iqtimer_pkt_dw1;
-
 
259
	uint32_t iqtimer_pkt_dw2;
-
 
260
	uint32_t iqtimer_pkt_dw3;
-
 
261
	uint32_t iqtimer_pkt_dw4;
-
 
262
	uint32_t iqtimer_pkt_dw5;
-
 
263
	uint32_t iqtimer_pkt_dw6;
236
		uint32_t valid:1;
264
	uint32_t reserved_108;
-
 
265
	uint32_t reserved_109;
-
 
266
	uint32_t reserved_110;
-
 
267
	uint32_t reserved_111;
-
 
268
	uint32_t queue_doorbell_id0;
-
 
269
	uint32_t queue_doorbell_id1;
-
 
270
	uint32_t queue_doorbell_id2;
-
 
271
	uint32_t queue_doorbell_id3;
-
 
272
	uint32_t queue_doorbell_id4;
-
 
273
	uint32_t queue_doorbell_id5;
-
 
274
	uint32_t queue_doorbell_id6;
-
 
275
	uint32_t queue_doorbell_id7;
-
 
276
	uint32_t queue_doorbell_id8;
-
 
277
	uint32_t queue_doorbell_id9;
-
 
278
	uint32_t queue_doorbell_id10;
-
 
279
	uint32_t queue_doorbell_id11;
-
 
280
	uint32_t queue_doorbell_id12;
237
	} bitfields, bits;
Line 281... Line 238...
281
	uint32_t queue_doorbell_id13;
238
	uint32_t u32All;