@@ -310,18 +310,18 @@ static void riscv_sample_buf_maybe_add_timestamp(struct target *target, bool bef
310310
311311static int riscv_resume_go_all_harts (struct target * target );
312312
313- void select_dmi_via_bscan (struct target * target )
313+ void select_dmi_via_bscan (struct jtag_tap * tap )
314314{
315- jtag_add_ir_scan (target -> tap , & select_user4 , TAP_IDLE );
315+ jtag_add_ir_scan (tap , & select_user4 , TAP_IDLE );
316316 if (bscan_tunnel_type == BSCAN_TUNNEL_DATA_REGISTER )
317- jtag_add_dr_scan (target -> tap , bscan_tunnel_data_register_select_dmi_num_fields ,
317+ jtag_add_dr_scan (tap , bscan_tunnel_data_register_select_dmi_num_fields ,
318318 bscan_tunnel_data_register_select_dmi , TAP_IDLE );
319319 else /* BSCAN_TUNNEL_NESTED_TAP */
320- jtag_add_dr_scan (target -> tap , bscan_tunnel_nested_tap_select_dmi_num_fields ,
320+ jtag_add_dr_scan (tap , bscan_tunnel_nested_tap_select_dmi_num_fields ,
321321 bscan_tunnel_nested_tap_select_dmi , TAP_IDLE );
322322}
323323
324- int dtmcontrol_scan_via_bscan (struct target * target , uint32_t out , uint32_t * in_ptr )
324+ static int dtmcs_scan_via_bscan (struct jtag_tap * tap , uint32_t out , uint32_t * in_ptr )
325325{
326326 /* On BSCAN TAP: Select IR=USER4, issue tunneled IR scan via BSCAN TAP's DR */
327327 uint8_t tunneled_dr_width [4 ] = {32 };
@@ -386,10 +386,10 @@ int dtmcontrol_scan_via_bscan(struct target *target, uint32_t out, uint32_t *in_
386386 tunneled_dr [0 ].out_value = bscan_one ;
387387 tunneled_dr [0 ].in_value = NULL ;
388388 }
389- jtag_add_ir_scan (target -> tap , & select_user4 , TAP_IDLE );
390- jtag_add_dr_scan (target -> tap , ARRAY_SIZE (tunneled_ir ), tunneled_ir , TAP_IDLE );
391- jtag_add_dr_scan (target -> tap , ARRAY_SIZE (tunneled_dr ), tunneled_dr , TAP_IDLE );
392- select_dmi_via_bscan (target );
389+ jtag_add_ir_scan (tap , & select_user4 , TAP_IDLE );
390+ jtag_add_dr_scan (tap , ARRAY_SIZE (tunneled_ir ), tunneled_ir , TAP_IDLE );
391+ jtag_add_dr_scan (tap , ARRAY_SIZE (tunneled_dr ), tunneled_dr , TAP_IDLE );
392+ select_dmi_via_bscan (tap );
393393
394394 int retval = jtag_execute_queue ();
395395 if (retval != ERROR_OK ) {
@@ -407,40 +407,42 @@ int dtmcontrol_scan_via_bscan(struct target *target, uint32_t out, uint32_t *in_
407407}
408408
409409/* TODO: rename "dtmcontrol"-> "dtmcs" */
410- int dtmcontrol_scan (struct target * target , uint32_t out , uint32_t * in_ptr )
410+ int dtmcs_scan (struct jtag_tap * tap , uint32_t out , uint32_t * in_ptr )
411411{
412412 uint8_t value [4 ];
413413
414414 if (bscan_tunnel_ir_width != 0 )
415- return dtmcontrol_scan_via_bscan ( target , out , in_ptr );
415+ return dtmcs_scan_via_bscan ( tap , out , in_ptr );
416416
417417 buf_set_u32 (value , 0 , 32 , out );
418418
419- jtag_add_ir_scan (target -> tap , & select_dtmcontrol , TAP_IDLE );
419+ jtag_add_ir_scan (tap , & select_dtmcontrol , TAP_IDLE );
420420
421421 struct scan_field field = {
422422 .num_bits = 32 ,
423423 .out_value = value ,
424424 .in_value = in_ptr ? value : NULL
425425 };
426- jtag_add_dr_scan (target -> tap , 1 , & field , TAP_IDLE );
426+ jtag_add_dr_scan (tap , 1 , & field , TAP_IDLE );
427427
428428 /* Always return to dbus. */
429- jtag_add_ir_scan (target -> tap , & select_dbus , TAP_IDLE );
429+ jtag_add_ir_scan (tap , & select_dbus , TAP_IDLE );
430430
431431 int retval = jtag_execute_queue ();
432432 if (retval != ERROR_OK ) {
433- LOG_TARGET_ERROR (target , "dtmcs scan failed, error code = %d" , retval );
433+ LOG_ERROR ("'dtmcs' scan failed on TAP %s, error code = %d" ,
434+ jtag_tap_name (tap ), retval );
434435 return retval ;
435436 }
436437
437438 if (in_ptr ) {
438439 assert (field .in_value );
439440 uint32_t in = buf_get_u32 (field .in_value , 0 , 32 );
440- LOG_TARGET_DEBUG (target , "DTMCS: 0x%" PRIx32 " -> 0x%" PRIx32 , out , in );
441+ LOG_DEBUG ("TAP %s: DTMCS: 0x%" PRIx32 " -> 0x%" PRIx32 ,
442+ jtag_tap_name (tap ), out , in );
441443 * in_ptr = in ;
442444 } else {
443- LOG_TARGET_DEBUG ( target , " DTMCS: 0x%" PRIx32 " -> ?" , out );
445+ LOG_DEBUG ( "TAP %s: DTMCS: 0x%" PRIx32 " -> ?" , jtag_tap_name ( tap ) , out );
444446 }
445447 return ERROR_OK ;
446448}
@@ -2469,7 +2471,7 @@ static int riscv_examine(struct target *target)
24692471
24702472 RISCV_INFO (info );
24712473 uint32_t dtmcontrol ;
2472- if (dtmcontrol_scan (target , 0 , & dtmcontrol ) != ERROR_OK || dtmcontrol == 0 ) {
2474+ if (dtmcs_scan (target -> tap , 0 , & dtmcontrol ) != ERROR_OK || dtmcontrol == 0 ) {
24732475 LOG_TARGET_ERROR (target , "Could not read dtmcontrol. Check JTAG connectivity/board power." );
24742476 return ERROR_FAIL ;
24752477 }
@@ -6255,10 +6257,10 @@ int riscv_enumerate_triggers(struct target *target)
62556257 return ERROR_OK ;
62566258}
62576259
6258- void riscv_add_bscan_tunneled_scan (struct target * target , const struct scan_field * field ,
6260+ void riscv_add_bscan_tunneled_scan (struct jtag_tap * tap , const struct scan_field * field ,
62596261 riscv_bscan_tunneled_scan_context_t * ctxt )
62606262{
6261- jtag_add_ir_scan (target -> tap , & select_user4 , TAP_IDLE );
6263+ jtag_add_ir_scan (tap , & select_user4 , TAP_IDLE );
62626264
62636265 memset (ctxt -> tunneled_dr , 0 , sizeof (ctxt -> tunneled_dr ));
62646266 if (bscan_tunnel_type == BSCAN_TUNNEL_DATA_REGISTER ) {
@@ -6291,5 +6293,5 @@ void riscv_add_bscan_tunneled_scan(struct target *target, const struct scan_fiel
62916293 ctxt -> tunneled_dr [3 ].num_bits = 3 ;
62926294 ctxt -> tunneled_dr [3 ].out_value = bscan_zero ;
62936295 }
6294- jtag_add_dr_scan (target -> tap , ARRAY_SIZE (ctxt -> tunneled_dr ), ctxt -> tunneled_dr , TAP_IDLE );
6296+ jtag_add_dr_scan (tap , ARRAY_SIZE (ctxt -> tunneled_dr ), ctxt -> tunneled_dr , TAP_IDLE );
62956297}
0 commit comments