diff --git a/src/command.c b/src/command.c index 2ff8398..4d205bb 100644 --- a/src/command.c +++ b/src/command.c @@ -219,7 +219,7 @@ static bool cmd_jtag_scan(target *t, int argc, const char **argv) break; } - if (devs <= 0) { + if (devs == 0) { platform_nrst_set_val(false); gdb_out("JTAG device scan failed!\n"); return false; diff --git a/src/include/target.h b/src/include/target.h index 7695fb9..4ec49d7 100644 --- a/src/include/target.h +++ b/src/include/target.h @@ -39,7 +39,7 @@ int platform_adiv5_swdp_scan(uint32_t targetid); int platform_jtag_scan(const uint8_t *lrlens); #endif int adiv5_swdp_scan(uint32_t targetid); -int jtag_scan(const uint8_t *lrlens); +uint32_t jtag_scan(const uint8_t *lrlens); int target_foreach(void (*cb)(int i, target *t, void *context), void *context); void target_list_free(void); diff --git a/src/platforms/hosted/bmp_remote.c b/src/platforms/hosted/bmp_remote.c index 11b8ae6..430bdda 100644 --- a/src/platforms/hosted/bmp_remote.c +++ b/src/platforms/hosted/bmp_remote.c @@ -384,7 +384,7 @@ void remote_adiv5_dp_defaults(ADIv5_DP_t *dp) dp->mem_write_sized = remote_ap_mem_write_sized; } -void remote_add_jtag_dev(int i, const jtag_dev_t *jtag_dev) +void remote_add_jtag_dev(uint32_t i, const jtag_dev_t *jtag_dev) { uint8_t construct[REMOTE_MAX_MSG_SIZE]; int s = snprintf((char *)construct, REMOTE_MAX_MSG_SIZE, diff --git a/src/platforms/hosted/bmp_remote.h b/src/platforms/hosted/bmp_remote.h index bcf4cbc..7c09bbc 100644 --- a/src/platforms/hosted/bmp_remote.h +++ b/src/platforms/hosted/bmp_remote.h @@ -40,6 +40,6 @@ void remote_max_frequency_set(uint32_t freq); uint32_t remote_max_frequency_get(void); const char *platform_target_voltage(void); void remote_adiv5_dp_defaults(ADIv5_DP_t *dp); -void remote_add_jtag_dev(int i, const jtag_dev_t *jtag_dev); +void remote_add_jtag_dev(uint32_t i, const jtag_dev_t *jtag_dev); #define __BMP_REMOTE_H_ #endif diff --git a/src/platforms/hosted/dap.c b/src/platforms/hosted/dap.c index 196b63b..6edf8a0 100644 --- a/src/platforms/hosted/dap.c +++ b/src/platforms/hosted/dap.c @@ -748,7 +748,7 @@ void dap_jtagtap_tdi_tdo_seq( int dap_jtag_configure(void) { uint8_t buf[64], *p = &buf[2]; - int i = 0; + uint32_t i = 0; for (; i < jtag_dev_count; i++) { struct jtag_dev_s *jtag_dev = &jtag_devs[i]; *p++ = jtag_dev->ir_len; diff --git a/src/platforms/hosted/platform.c b/src/platforms/hosted/platform.c index b77c617..18538e0 100644 --- a/src/platforms/hosted/platform.c +++ b/src/platforms/hosted/platform.c @@ -172,7 +172,7 @@ int swdptap_init(ADIv5_DP_t *dp) return -1; } -void platform_add_jtag_dev(int i, const jtag_dev_t *jtag_dev) +void platform_add_jtag_dev(uint32_t i, const jtag_dev_t *jtag_dev) { if (info.bmp_type == BMP_TYPE_BMP) remote_add_jtag_dev(i, jtag_dev); diff --git a/src/platforms/hosted/stlinkv2.c b/src/platforms/hosted/stlinkv2.c index ca2f843..e5b8202 100644 --- a/src/platforms/hosted/stlinkv2.c +++ b/src/platforms/hosted/stlinkv2.c @@ -1029,10 +1029,10 @@ int jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens) return 0; jtag_dev_count = stlink_read_idcodes(info, idcodes); /* Check for known devices and handle accordingly */ - for(int i = 0; i < jtag_dev_count; i++) + for(uint32_t i = 0; i < jtag_dev_count; i++) jtag_devs[i].jd_idcode = idcodes[i]; - for(int i = 0; i < jtag_dev_count; i++) - for(int j = 0; dev_descr[j].idcode; j++) + for(uint32_t i = 0; i < jtag_dev_count; i++) + for(size_t j = 0; dev_descr[j].idcode; j++) if((jtag_devs[i].jd_idcode & dev_descr[j].idmask) == dev_descr[j].idcode) { if(dev_descr[j].handler) diff --git a/src/remote.c b/src/remote.c index 3a80cbe..a38015e 100644 --- a/src/remote.c +++ b/src/remote.c @@ -254,7 +254,7 @@ static void remotePacketProcessJTAG(unsigned i, char *packet) remote_respond(REMOTE_RESP_ERR,REMOTE_ERROR_WRONGLEN); } else { memset(&jtag_dev, 0, sizeof(jtag_dev)); - uint8_t index = remotehston(2, &packet[ 2]); + const uint32_t index = remotehston(2, &packet[ 2]); jtag_dev.dr_prescan = remotehston(2, &packet[ 4]); jtag_dev.dr_postscan = remotehston(2, &packet[ 6]); jtag_dev.ir_len = remotehston(2, &packet[ 8]); diff --git a/src/target/adiv5.h b/src/target/adiv5.h index 7e162db..6d6a3af 100644 --- a/src/target/adiv5.h +++ b/src/target/adiv5.h @@ -318,7 +318,7 @@ ADIv5_AP_t *adiv5_new_ap(ADIv5_DP_t *dp, uint8_t apsel); void remote_jtag_dev(const jtag_dev_t *jtag_dev); void adiv5_ap_ref(ADIv5_AP_t *ap); void adiv5_ap_unref(ADIv5_AP_t *ap); -void platform_add_jtag_dev(const int dev_index, const jtag_dev_t *jtag_dev); +void platform_add_jtag_dev(uint32_t dev_index, const jtag_dev_t *jtag_dev); void adiv5_jtag_dp_handler(uint8_t jd_index); int platform_jtag_dp_init(ADIv5_DP_t *dp); diff --git a/src/target/jtag_scan.c b/src/target/jtag_scan.c index 0c51ec2..3412f7d 100644 --- a/src/target/jtag_scan.c +++ b/src/target/jtag_scan.c @@ -38,7 +38,7 @@ uint32_t jtag_dev_count = 0; static const uint8_t ones[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; #if PC_HOSTED == 0 -void jtag_add_device(const int dev_index, const jtag_dev_t *jtag_dev) +void jtag_add_device(const uint32_t dev_index, const jtag_dev_t *jtag_dev) { if (dev_index == 0) memset(&jtag_devs, 0, sizeof(jtag_devs)); @@ -64,7 +64,7 @@ void jtag_add_device(const int dev_index, const jtag_dev_t *jtag_dev) * continue to next device. If this is one shift out the remaining 31 bits * of the IDCODE register. */ -int jtag_scan(const uint8_t *irlens) +uint32_t jtag_scan(const uint8_t *irlens) { target_list_free(); @@ -140,14 +140,14 @@ int jtag_scan(const uint8_t *irlens) if (jtag_dev_count > JTAG_MAX_DEVS) { DEBUG_WARN("jtag_scan: Maximum device count exceeded\n"); - jtag_dev_count = -1; - return -1; + jtag_dev_count = 0; + return 0; } if (jtag_devs[jtag_dev_count].ir_len > JTAG_MAX_IR_LEN) { DEBUG_WARN("jtag_scan: Maximum IR length exceeded\n"); - jtag_dev_count = -1; - return -1; + jtag_dev_count = 0; + return 0; } } @@ -166,8 +166,8 @@ int jtag_scan(const uint8_t *irlens) if (device != jtag_dev_count) { DEBUG_WARN("jtag_scan: Sanity check failed: BYPASS dev count doesn't match IR scan\n"); - jtag_dev_count = -1; - return -1; + jtag_dev_count = 0; + return 0; } DEBUG_INFO("Return to Run-Test/Idle\n"); diff --git a/src/target/jtag_scan.h b/src/target/jtag_scan.h index 8a38bea..d820036 100644 --- a/src/target/jtag_scan.h +++ b/src/target/jtag_scan.h @@ -46,5 +46,6 @@ extern uint32_t jtag_dev_count; void jtag_dev_write_ir(jtag_proc_t *jp, uint8_t jd_index, uint32_t ir); void jtag_dev_shift_dr(jtag_proc_t *jp, uint8_t jd_index, uint8_t *dout, const uint8_t *din, int ticks); -void jtag_add_device(const int dev_index, const jtag_dev_t *jtag_dev); -#endif +void jtag_add_device(uint32_t dev_index, const jtag_dev_t *jtag_dev); + +#endif /*__JTAG_SCAN_H*/