openrisc/tap_vjtag: fix IR setting 94/1694/3
authorFranck Jullien <franck.jullien@gmail.com>
Sun, 13 Oct 2013 06:23:01 +0000 (08:23 +0200)
committerSpencer Oliver <spen@spen-soft.co.uk>
Tue, 15 Oct 2013 20:40:45 +0000 (20:40 +0000)
Change-Id: I2b1f057dc9777ff263d6cefa4ff5958e85607a22
Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
Reviewed-on: http://openocd.zylin.com/1694
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/target/openrisc/or1k_tap_vjtag.c

index ae729a0..7d26272 100644 (file)
@@ -275,21 +275,22 @@ static int or1k_tap_vjtag_init(struct or1k_jtag *jtag_info)
        }
 
        /* Select VIR */
-       t[0] = ALTERA_CYCLONE_CMD_USER1;
+       buf_set_u32(t, 0, tap->ir_length, ALTERA_CYCLONE_CMD_USER1);
        field.num_bits = tap->ir_length;
        field.out_value = t;
        field.in_value = NULL;
        jtag_add_ir_scan(tap, &field, TAP_IDLE);
 
        /* Send the DEBUG command to the VJTAG IR */
-       buf_set_u32(t, 0, field.num_bits, (vjtag_node_address << m_width) | ALT_VJTAG_CMD_DEBUG);
-       field.num_bits = guess_addr_width(nb_nodes) + m_width;
+       int dr_length = guess_addr_width(nb_nodes) + m_width;
+       buf_set_u32(t, 0, dr_length, (vjtag_node_address << m_width) | ALT_VJTAG_CMD_DEBUG);
+       field.num_bits = dr_length;
        field.out_value = t;
        field.in_value = NULL;
        jtag_add_dr_scan(tap, 1, &field, TAP_IDLE);
 
        /* Select the VJTAG DR */
-       t[0] = ALTERA_CYCLONE_CMD_USER0;
+       buf_set_u32(t, 0, tap->ir_length, ALTERA_CYCLONE_CMD_USER0);
        field.num_bits = tap->ir_length;
        field.out_value = t;
        field.in_value = NULL;