From 61672009c41f4f72deb399512774acf2105cf1b6 Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Fri, 4 May 2012 14:31:25 +0100 Subject: stlink: add stlink_api cmd This enables the manual selection of the stlink api version. Change-Id: I0ec8c5b0a101b6456f426d2fec65971da56db4e7 Signed-off-by: Spencer Oliver Reviewed-on: http://openocd.zylin.com/617 Tested-by: jenkins Reviewed-by: Freddie Chopin Reviewed-by: Xiaofan --- src/jtag/stlink/stlink_interface.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/jtag/stlink/stlink_interface.c') diff --git a/src/jtag/stlink/stlink_interface.c b/src/jtag/stlink/stlink_interface.c index 389ab3ff..379e68d4 100644 --- a/src/jtag/stlink/stlink_interface.c +++ b/src/jtag/stlink/stlink_interface.c @@ -34,7 +34,7 @@ #include -static struct stlink_interface_s stlink_if = { {0, 0, 0, 0, 0}, 0, 0 }; +static struct stlink_interface_s stlink_if = { {0, 0, 0, 0, 0, 0}, 0, 0 }; int stlink_interface_open(enum stlink_transports tr) { @@ -200,6 +200,21 @@ COMMAND_HANDLER(stlink_interface_handle_vid_pid_command) return ERROR_OK; } +COMMAND_HANDLER(stlink_interface_handle_api_command) +{ + if (CMD_ARGC != 1) + return ERROR_COMMAND_SYNTAX_ERROR; + + unsigned new_api; + COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], new_api); + if ((new_api == 0) || (new_api > 2)) + return ERROR_COMMAND_SYNTAX_ERROR; + + stlink_if.param.api = new_api; + + return ERROR_OK; +} + static const struct command_registration stlink_interface_command_handlers[] = { { .name = "stlink_device_desc", @@ -229,6 +244,13 @@ static const struct command_registration stlink_interface_command_handlers[] = { .help = "the vendor and product ID of the STLINK device", .usage = "(vid pid)* ", }, + { + .name = "stlink_api", + .handler = &stlink_interface_handle_api_command, + .mode = COMMAND_CONFIG, + .help = "set the desired stlink api level", + .usage = "api version 1 or 2", + }, COMMAND_REGISTRATION_DONE }; -- cgit v1.2.3-18-g5258