jlink: add jlink_pid to specify the pid to use
this will allow us to use multiple jlink at the same time as when the USB-Address is specified the PID change from 0x0101 to (0x101 + usb_adress) Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
This commit is contained in:
parent
b992dd58f1
commit
0eed61b7c4
|
@ -2323,6 +2323,8 @@ Segger jlink USB adapter
|
|||
@c dumps status
|
||||
@c command: jlink hw_jtag (2|3)
|
||||
@c sets version 2 or 3
|
||||
@c command: jlink pid
|
||||
@c set the pid of the interface we want to use
|
||||
@end deffn
|
||||
|
||||
@deffn {Interface Driver} {parport}
|
||||
|
|
|
@ -136,6 +136,10 @@ static enum tap_state jlink_last_state = TAP_RESET;
|
|||
|
||||
static struct jlink* jlink_handle;
|
||||
|
||||
/* pid could be specified at runtime */
|
||||
static uint16_t vids[] = { VID, 0 };
|
||||
static uint16_t pids[] = { PID, 0 };
|
||||
|
||||
/***************************************************************************/
|
||||
/* External interface implementation */
|
||||
|
||||
|
@ -621,6 +625,21 @@ static int jlink_get_version_info(void)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
COMMAND_HANDLER(jlink_pid_command)
|
||||
{
|
||||
if (CMD_ARGC != 1)
|
||||
{
|
||||
LOG_ERROR("Need exactly one argument to jlink_pid");
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
pids[0] = strtoul(CMD_ARGV[0], NULL, 16);
|
||||
pids[1] = 0;
|
||||
vids[1] = 0;
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
COMMAND_HANDLER(jlink_handle_jlink_info_command)
|
||||
{
|
||||
if (jlink_get_version_info() == ERROR_OK)
|
||||
|
@ -670,6 +689,12 @@ static const struct command_registration jlink_subcommand_handlers[] = {
|
|||
.help = "access J-Link HW JTAG command version",
|
||||
.usage = "[2|3]",
|
||||
},
|
||||
{
|
||||
.name = "pid",
|
||||
.handler = &jlink_pid_command,
|
||||
.mode = COMMAND_CONFIG,
|
||||
.help = "set the pid of the interface we want to use",
|
||||
},
|
||||
COMMAND_REGISTRATION_DONE
|
||||
};
|
||||
|
||||
|
@ -871,8 +896,6 @@ static struct jlink* jlink_usb_open()
|
|||
{
|
||||
usb_init();
|
||||
|
||||
const uint16_t vids[] = { VID, 0 };
|
||||
const uint16_t pids[] = { PID, 0 };
|
||||
struct usb_dev_handle *dev;
|
||||
if (jtag_usb_open(vids, pids, &dev) != ERROR_OK)
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue