summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsimon qian <simonqian.openocd@gmail.com>2010-01-17 23:37:15 -0800
committerDavid Brownell <dbrownell@users.sourceforge.net>2010-01-17 23:37:15 -0800
commit0b641dac717ffe1391cc53dc33ad78ba79a26d2c (patch)
treec721f664cb577fdb88c9a6073845ca4990dee2ff
parentdaa1ff3535c2dc1f6ae6da2b740cdf23f4f5f7a6 (diff)
downloadopenocd_libswd-0b641dac717ffe1391cc53dc33ad78ba79a26d2c.tar.gz
openocd_libswd-0b641dac717ffe1391cc53dc33ad78ba79a26d2c.tar.bz2
openocd_libswd-0b641dac717ffe1391cc53dc33ad78ba79a26d2c.tar.xz
openocd_libswd-0b641dac717ffe1391cc53dc33ad78ba79a26d2c.zip
read target voltage first in vsllink
The very first command after init command should be "read target voltage". This is a tweak for the Old Versaloon firmware. Without this, in most most cases, it works. Under Ubuntu9.04, there is a chance that the USB will fail. The problem disappears if I read target voltage first. For the lastest Versaloon firmware, it's OK. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
-rw-r--r--src/jtag/drivers/vsllink.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/jtag/drivers/vsllink.c b/src/jtag/drivers/vsllink.c
index d3012906..5c9a8db0 100644
--- a/src/jtag/drivers/vsllink.c
+++ b/src/jtag/drivers/vsllink.c
@@ -476,6 +476,14 @@ static int vsllink_init(void)
}
VSLLINK_USB_TIMEOUT = to_tmp;
+ vsllink_simple_command(0x01);
+ result = vsllink_usb_read(vsllink_handle);
+ if (result != 2)
+ LOG_WARNING("Fail to get target voltage");
+ else
+ LOG_INFO("Target runs at %d mV", vsllink_usb_in_buffer[0]
+ + (vsllink_usb_in_buffer[1] << 8));
+
// connect to vsllink
vsllink_connect();
// initialize function pointers