jtag_scan: Adjusted the parameter and result types for jtag_scan(), jtag_add_device(), and related functions

This commit is contained in:
dragonmux 2022-07-27 11:29:50 +01:00 committed by Piotr Esden-Tempski
parent 36db97a57c
commit 181e84cb0c
11 changed files with 22 additions and 21 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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,

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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)

View File

@ -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]);

View File

@ -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);

View File

@ -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");

View File

@ -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*/