JLink support for non-7-cycle state moves by Dick Hollenbeck <dick@softplc.com>
authorkc8apf <kc8apf@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Mon, 18 May 2009 17:42:36 +0000 (17:42 +0000)
committerkc8apf <kc8apf@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Mon, 18 May 2009 17:42:36 +0000 (17:42 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@1826 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/jlink.c

index 90fb42c4cfc7ca53e84bfc17ef8ceefcfed00e70..10563a0d9063defd7835a17fe3e4dad2b9ea4ee6 100644 (file)
 #define JLINK_USB_TIMEOUT              1000
 
 // See Section 1.3.2 of the Segger JLink USB protocol manual
+/* 2048 is the max value we can use here */
+//#define JLINK_TAP_BUFFER_SIZE 2048
+#define JLINK_TAP_BUFFER_SIZE 256
+//#define JLINK_TAP_BUFFER_SIZE 384
+
 #define JLINK_IN_BUFFER_SIZE                   2048
 #define JLINK_OUT_BUFFER_SIZE                  2*2048+4
 #define JLINK_EMU_RESULT_BUFFER_SIZE   64
@@ -412,6 +417,8 @@ static void jlink_runtest(int num_cycles)
 
        tap_state_t saved_end_state = tap_get_end_state();
 
+       jlink_tap_ensure_space(1,num_cycles + 16);
+
        /* only do a state_move when we're not already in IDLE */
        if (tap_get_state() != TAP_IDLE)
        {
@@ -438,7 +445,7 @@ static void jlink_scan(bool ir_scan, enum scan_type type, u8 *buffer, int scan_s
 {
        tap_state_t saved_end_state;
 
-       jlink_tap_ensure_space(1, scan_size + 8);
+       jlink_tap_ensure_space(1, scan_size + 16);
 
        saved_end_state = tap_get_end_state();
 
@@ -604,8 +611,6 @@ static int jlink_handle_jlink_info_command(struct command_context_s *cmd_ctx, ch
 /***************************************************************************/
 /* J-Link tap functions */
 
-/* 2048 is the max value we can use here */
-#define JLINK_TAP_BUFFER_SIZE 1024
 
 static unsigned tap_length=0;
 static u8 tms_buffer[JLINK_TAP_BUFFER_SIZE];
@@ -634,7 +639,7 @@ static void jlink_tap_init(void)
 static void jlink_tap_ensure_space(int scans, int bits)
 {
        int available_scans = MAX_PENDING_SCAN_RESULTS - pending_scan_results_length;
-       int available_bits = JLINK_TAP_BUFFER_SIZE * 8 - tap_length - 64;
+       int available_bits = JLINK_TAP_BUFFER_SIZE * 8 - tap_length - 32;
 
        if (scans > available_scans || bits > available_bits)
        {
@@ -649,6 +654,7 @@ static void jlink_tap_append_step(int tms, int tdi)
        if (index >= JLINK_TAP_BUFFER_SIZE)
        {
                LOG_ERROR("jlink_tap_append_step: overflow");
+               *(u32 *)0xFFFFFFFF = 0;
                exit(-1);
        }
 

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)