• Home
  • Raw
  • Download

Lines Matching refs:ib

57    uint32_t *ib;  member
68 static void ac_do_parse_ib(FILE *f, struct ac_ib_parser *ib);
195 static uint32_t ac_ib_get(struct ac_ib_parser *ib) in ac_ib_get() argument
199 if (ib->cur_dw < ib->num_dw) { in ac_ib_get()
200 v = ib->ib[ib->cur_dw]; in ac_ib_get()
210 fprintf(ib->f, COLOR_RED "Valgrind: The next DWORD is garbage" COLOR_RESET "\n"); in ac_ib_get()
212 fprintf(ib->f, "\n\035#%08x ", v); in ac_ib_get()
214 fprintf(ib->f, "\n\035#???????? "); in ac_ib_get()
217 ib->cur_dw++; in ac_ib_get()
222 struct ac_ib_parser *ib) in ac_parse_set_reg_packet() argument
224 unsigned reg_dw = ac_ib_get(ib); in ac_parse_set_reg_packet()
235 ac_dump_reg(f, ib->chip_class, reg + i * 4, ac_ib_get(ib), ~0); in ac_parse_set_reg_packet()
238 static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib, in ac_parse_packet3() argument
241 unsigned first_dw = ib->cur_dw; in ac_parse_packet3()
266 ac_parse_set_reg_packet(f, count, SI_CONTEXT_REG_OFFSET, ib); in ac_parse_packet3()
269 ac_parse_set_reg_packet(f, count, SI_CONFIG_REG_OFFSET, ib); in ac_parse_packet3()
273 ac_parse_set_reg_packet(f, count, CIK_UCONFIG_REG_OFFSET, ib); in ac_parse_packet3()
276 ac_parse_set_reg_packet(f, count, SI_SH_REG_OFFSET, ib); in ac_parse_packet3()
279 ac_dump_reg(f, ib->chip_class, R_0301F0_CP_COHER_CNTL, ac_ib_get(ib), ~0); in ac_parse_packet3()
280 ac_dump_reg(f, ib->chip_class, R_0301F4_CP_COHER_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
281 ac_dump_reg(f, ib->chip_class, R_030230_CP_COHER_SIZE_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
282 ac_dump_reg(f, ib->chip_class, R_0301F8_CP_COHER_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
283 ac_dump_reg(f, ib->chip_class, R_0301E4_CP_COHER_BASE_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
284 print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16); in ac_parse_packet3()
285 if (ib->chip_class >= GFX10) in ac_parse_packet3()
286 ac_dump_reg(f, ib->chip_class, R_586_GCR_CNTL, ac_ib_get(ib), ~0); in ac_parse_packet3()
289 if (ib->chip_class >= GFX7) { in ac_parse_packet3()
290 ac_dump_reg(f, ib->chip_class, R_0301F0_CP_COHER_CNTL, ac_ib_get(ib), ~0); in ac_parse_packet3()
291 ac_dump_reg(f, ib->chip_class, R_0301F4_CP_COHER_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
292 ac_dump_reg(f, ib->chip_class, R_0301F8_CP_COHER_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
294 ac_dump_reg(f, ib->chip_class, R_0085F0_CP_COHER_CNTL, ac_ib_get(ib), ~0); in ac_parse_packet3()
295 ac_dump_reg(f, ib->chip_class, R_0085F4_CP_COHER_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
296 ac_dump_reg(f, ib->chip_class, R_0085F8_CP_COHER_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
298 print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16); in ac_parse_packet3()
301 uint32_t event_dw = ac_ib_get(ib); in ac_parse_packet3()
302 ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw, in ac_parse_packet3()
307 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
308 print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 16); in ac_parse_packet3()
313 uint32_t event_dw = ac_ib_get(ib); in ac_parse_packet3()
314 ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw, in ac_parse_packet3()
322 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
323 uint32_t addr_hi_dw = ac_ib_get(ib); in ac_parse_packet3()
328 print_named_value(f, "DATA_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
329 print_named_value(f, "DATA_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
333 uint32_t event_dw = ac_ib_get(ib); in ac_parse_packet3()
334 if (ib->chip_class >= GFX10) { in ac_parse_packet3()
335 ac_dump_reg(f, ib->chip_class, R_490_RELEASE_MEM_OP, event_dw, ~0u); in ac_parse_packet3()
337 ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw, in ac_parse_packet3()
349 uint32_t sel_dw = ac_ib_get(ib); in ac_parse_packet3()
353 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
354 print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
355 print_named_value(f, "DATA_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
356 print_named_value(f, "DATA_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
357 print_named_value(f, "CTXID", ac_ib_get(ib), 32); in ac_parse_packet3()
361 print_named_value(f, "OP", ac_ib_get(ib), 32); in ac_parse_packet3()
362 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
363 print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
364 print_named_value(f, "REF", ac_ib_get(ib), 32); in ac_parse_packet3()
365 print_named_value(f, "MASK", ac_ib_get(ib), 32); in ac_parse_packet3()
366 print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16); in ac_parse_packet3()
369 ac_dump_reg(f, ib->chip_class, R_030930_VGT_NUM_INDICES, ac_ib_get(ib), ~0); in ac_parse_packet3()
370 ac_dump_reg(f, ib->chip_class, R_0287F0_VGT_DRAW_INITIATOR, ac_ib_get(ib), ~0); in ac_parse_packet3()
373 ac_dump_reg(f, ib->chip_class, R_028A78_VGT_DMA_MAX_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
374 ac_dump_reg(f, ib->chip_class, R_0287E8_VGT_DMA_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
375 ac_dump_reg(f, ib->chip_class, R_0287E4_VGT_DMA_BASE_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
376 ac_dump_reg(f, ib->chip_class, R_030930_VGT_NUM_INDICES, ac_ib_get(ib), ~0); in ac_parse_packet3()
377 ac_dump_reg(f, ib->chip_class, R_0287F0_VGT_DRAW_INITIATOR, ac_ib_get(ib), ~0); in ac_parse_packet3()
380 ac_dump_reg(f, ib->chip_class, R_028A7C_VGT_DMA_INDEX_TYPE, ac_ib_get(ib), ~0); in ac_parse_packet3()
383 ac_dump_reg(f, ib->chip_class, R_030934_VGT_NUM_INSTANCES, ac_ib_get(ib), ~0); in ac_parse_packet3()
386 ac_dump_reg(f, ib->chip_class, R_370_CONTROL, ac_ib_get(ib), ~0); in ac_parse_packet3()
387 ac_dump_reg(f, ib->chip_class, R_371_DST_ADDR_LO, ac_ib_get(ib), ~0); in ac_parse_packet3()
388 ac_dump_reg(f, ib->chip_class, R_372_DST_ADDR_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
392 ac_dump_reg(f, ib->chip_class, R_410_CP_DMA_WORD0, ac_ib_get(ib), ~0); in ac_parse_packet3()
393 ac_dump_reg(f, ib->chip_class, R_411_CP_DMA_WORD1, ac_ib_get(ib), ~0); in ac_parse_packet3()
394 ac_dump_reg(f, ib->chip_class, R_412_CP_DMA_WORD2, ac_ib_get(ib), ~0); in ac_parse_packet3()
395 ac_dump_reg(f, ib->chip_class, R_413_CP_DMA_WORD3, ac_ib_get(ib), ~0); in ac_parse_packet3()
396 ac_dump_reg(f, ib->chip_class, R_414_COMMAND, ac_ib_get(ib), ~0); in ac_parse_packet3()
399 ac_dump_reg(f, ib->chip_class, R_500_DMA_DATA_WORD0, ac_ib_get(ib), ~0); in ac_parse_packet3()
400 ac_dump_reg(f, ib->chip_class, R_501_SRC_ADDR_LO, ac_ib_get(ib), ~0); in ac_parse_packet3()
401 ac_dump_reg(f, ib->chip_class, R_502_SRC_ADDR_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
402 ac_dump_reg(f, ib->chip_class, R_503_DST_ADDR_LO, ac_ib_get(ib), ~0); in ac_parse_packet3()
403 ac_dump_reg(f, ib->chip_class, R_504_DST_ADDR_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
404 ac_dump_reg(f, ib->chip_class, R_414_COMMAND, ac_ib_get(ib), ~0); in ac_parse_packet3()
409 uint32_t base_lo_dw = ac_ib_get(ib); in ac_parse_packet3()
410 ac_dump_reg(f, ib->chip_class, R_3F0_IB_BASE_LO, base_lo_dw, ~0); in ac_parse_packet3()
411 uint32_t base_hi_dw = ac_ib_get(ib); in ac_parse_packet3()
412 ac_dump_reg(f, ib->chip_class, R_3F1_IB_BASE_HI, base_hi_dw, ~0); in ac_parse_packet3()
413 uint32_t control_dw = ac_ib_get(ib); in ac_parse_packet3()
414 ac_dump_reg(f, ib->chip_class, R_3F2_IB_CONTROL, control_dw, ~0); in ac_parse_packet3()
416 if (!ib->addr_callback) in ac_parse_packet3()
420 void *data = ib->addr_callback(ib->addr_callback_data, addr); in ac_parse_packet3()
425 ib->ib = data; in ac_parse_packet3()
426 ib->num_dw = G_3F2_IB_SIZE(control_dw); in ac_parse_packet3()
427 ib->cur_dw = 0; in ac_parse_packet3()
432 memcpy(&ib_recurse, ib, sizeof(ib_recurse)); in ac_parse_packet3()
433 ib_recurse.ib = data; in ac_parse_packet3()
437 if (*current_trace_id == *ib->trace_ids) { in ac_parse_packet3()
457 } else if (count == 0 && ib->cur_dw < ib->num_dw && AC_IS_TRACE_POINT(ib->ib[ib->cur_dw])) { in ac_parse_packet3()
458 unsigned packet_id = AC_GET_TRACE_POINT_ID(ib->ib[ib->cur_dw]); in ac_parse_packet3()
463 if (!ib->trace_id_count) in ac_parse_packet3()
469 if (packet_id < *ib->trace_ids) in ac_parse_packet3()
471 else if (packet_id == *ib->trace_ids) in ac_parse_packet3()
474 else if (packet_id + 1 == *ib->trace_ids) in ac_parse_packet3()
486 while (ib->cur_dw <= first_dw + count) in ac_parse_packet3()
487 ac_ib_get(ib); in ac_parse_packet3()
489 if (ib->cur_dw > first_dw + count + 1) in ac_parse_packet3()
496 static void ac_do_parse_ib(FILE *f, struct ac_ib_parser *ib) in ac_do_parse_ib() argument
500 while (ib->cur_dw < ib->num_dw) { in ac_do_parse_ib()
501 uint32_t header = ac_ib_get(ib); in ac_do_parse_ib()
506 ac_parse_packet3(f, header, ib, &current_trace_id); in ac_do_parse_ib()
577 struct ac_ib_parser ib = {0}; in ac_parse_ib_chunk() local
578 ib.ib = ib_ptr; in ac_parse_ib_chunk()
579 ib.num_dw = num_dw; in ac_parse_ib_chunk()
580 ib.trace_ids = trace_ids; in ac_parse_ib_chunk()
581 ib.trace_id_count = trace_id_count; in ac_parse_ib_chunk()
582 ib.chip_class = chip_class; in ac_parse_ib_chunk()
583 ib.addr_callback = addr_callback; in ac_parse_ib_chunk()
584 ib.addr_callback_data = addr_callback_data; in ac_parse_ib_chunk()
591 ib.f = memf; in ac_parse_ib_chunk()
592 ac_do_parse_ib(memf, &ib); in ac_parse_ib_chunk()
600 if (ib.cur_dw > ib.num_dw) { in ac_parse_ib_chunk()
620 void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, const int *trace_ids, unsigned trace_id_count, in ac_parse_ib() argument
626 ac_parse_ib_chunk(f, ib, num_dw, trace_ids, trace_id_count, chip_class, addr_callback, in ac_parse_ib()