read target voltage first in vsllink
authorsimon qian <simonqian.openocd@gmail.com>
Mon, 18 Jan 2010 07:37:15 +0000 (23:37 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Mon, 18 Jan 2010 07:37:15 +0000 (23:37 -0800)
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>
src/jtag/drivers/vsllink.c

index d3012906b291c85a605bfd4ac1225a5d453e0299..5c9a8db0cabfc2a95c8839859474bf2a51c988ca 100644 (file)
@@ -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