]> git.sur5r.net Git - openocd/blobdiff - src/pld/virtex2.c
NOR/CFI: use bus_width for memory access in cfi_write()
[openocd] / src / pld / virtex2.c
index 93509dec1cd8ec06eb3a8fd4cac132409d8dab7c..19637366adb44c70f08f49279d3143e7b15a625f 100644 (file)
@@ -36,13 +36,14 @@ static int virtex2_set_instr(struct jtag_tap *tap, uint32_t new_instr)
                struct scan_field field;
 
                field.num_bits = tap->ir_length;
-               field.out_value = calloc(DIV_ROUND_UP(field.num_bits, 8), 1);
-               buf_set_u32(field.out_value, 0, field.num_bits, new_instr);
+               void * t = calloc(DIV_ROUND_UP(field.num_bits, 8), 1);
+               field.out_value = t;
+               buf_set_u32(t, 0, field.num_bits, new_instr);
                field.in_value = NULL;
 
                jtag_add_ir_scan(tap, &field, TAP_IDLE);
 
-               free(field.out_value);
+               free(t);
        }
 
        return ERROR_OK;
@@ -141,7 +142,6 @@ static int virtex2_load(struct pld_device *pld_device, const char *filename)
        if ((retval = xilinx_read_bit_file(&bit_file, filename)) != ERROR_OK)
                return retval;
 
-       jtag_set_end_state(TAP_IDLE);
        virtex2_set_instr(virtex2_info->tap, 0xb); /* JPROG_B */
        jtag_execute_queue();
        jtag_add_sleep(1000);
@@ -160,7 +160,6 @@ static int virtex2_load(struct pld_device *pld_device, const char *filename)
 
        jtag_add_tlr();
 
-       jtag_set_end_state(TAP_IDLE);
        virtex2_set_instr(virtex2_info->tap, 0xc); /* JSTART */
        jtag_add_runtest(13, TAP_IDLE);
        virtex2_set_instr(virtex2_info->tap, 0x3f); /* BYPASS */