Transform 'u8' to 'uint8_t' in src/target
[openocd.git] / src / target / xscale.c
index a18fe9af8df11bf49d6036ab256bc0d291a34b13..ab345335b94bec0fae98be66e873ff6d91b216aa 100644 (file)
 #include "config.h"
 #endif
 
-#include "replacements.h"
-
 #include "xscale.h"
-
+#include "target_type.h"
 #include "arm7_9_common.h"
-#include "register.h"
-#include "target.h"
-#include "armv4_5.h"
 #include "arm_simulator.h"
 #include "arm_disassembler.h"
-#include "log.h"
-#include "jtag.h"
-#include "binarybuffer.h"
 #include "time_support.h"
-#include "breakpoints.h"
-#include "fileio.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <unistd.h>
-#include <errno.h>
-
+#include "image.h"
 
 /* cli handling */
 int xscale_register_commands(struct command_context_s *cmd_ctx);
@@ -73,9 +57,9 @@ int xscale_set_reg_u32(reg_t *reg, u32 value);
 int xscale_read_core_reg(struct target_s *target, int num, enum armv4_5_mode mode);
 int xscale_write_core_reg(struct target_s *target, int num, enum armv4_5_mode mode, u32 value);
 
-int xscale_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
-int xscale_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
-int xscale_bulk_write_memory(target_t *target, u32 address, u32 count, u8 *buffer);
+int xscale_read_memory(struct target_s *target, u32 address, u32 size, u32 count, uint8_t *buffer);
+int xscale_write_memory(struct target_s *target, u32 address, u32 size, u32 count, uint8_t *buffer);
+int xscale_bulk_write_memory(target_t *target, u32 address, u32 count, uint8_t *buffer);
 
 int xscale_add_breakpoint(struct target_s *target, breakpoint_t *breakpoint);
 int xscale_remove_breakpoint(struct target_s *target, breakpoint_t *breakpoint);
@@ -186,7 +170,7 @@ xscale_reg_t xscale_reg_arch_info[] =
 int xscale_reg_arch_type = -1;
 
 int xscale_get_reg(reg_t *reg);
-int xscale_set_reg(reg_t *reg, u8 *buf);
+int xscale_set_reg(reg_t *reg, uint8_t *buf);
 
 int xscale_get_arch_pointers(target_t *target, armv4_5_common_t **armv4_5_p, xscale_common_t **xscale_p)
 {
@@ -225,11 +209,12 @@ int xscale_jtag_set_instr(jtag_tap_t *tap, u32 new_instr)
                field.out_value = calloc(CEIL(field.num_bits, 8), 1);
                buf_set_u32(field.out_value, 0, field.num_bits, new_instr);
 
-               u8 tmp[4];
+               uint8_t tmp[4];
                field.in_value = tmp;
 
-               jtag_add_ir_scan(1, &field, TAP_INVALID);
+               jtag_add_ir_scan(1, &field, jtag_get_end_state());
 
+               /* FIX!!!! isn't this check superfluous? verify_ircapture handles this? */
                jtag_check_value_mask(&field, tap->expected, tap->expected_mask);
 
                free(field.out_value);
@@ -246,14 +231,14 @@ int xscale_read_dcsr(target_t *target)
        int retval;
 
        scan_field_t fields[3];
-       u8 field0 = 0x0;
-       u8 field0_check_value = 0x2;
-       u8 field0_check_mask = 0x7;
-       u8 field2 = 0x0;
-       u8 field2_check_value = 0x0;
-       u8 field2_check_mask = 0x1;
-
-       jtag_add_end_state(TAP_DRPAUSE);
+       uint8_t field0 = 0x0;
+       uint8_t field0_check_value = 0x2;
+       uint8_t field0_check_mask = 0x7;
+       uint8_t field2 = 0x0;
+       uint8_t field2_check_value = 0x0;
+       uint8_t field2_check_mask = 0x1;
+
+       jtag_set_end_state(TAP_DRPAUSE);
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dcsr);
 
        buf_set_u32(&field0, 1, 1, xscale->hold_rst);
@@ -262,22 +247,22 @@ int xscale_read_dcsr(target_t *target)
        fields[0].tap = xscale->jtag_info.tap;
        fields[0].num_bits = 3;
        fields[0].out_value = &field0;
-       u8 tmp;
+       uint8_t tmp;
        fields[0].in_value = &tmp;
 
        fields[1].tap = xscale->jtag_info.tap;
        fields[1].num_bits = 32;
        fields[1].out_value = NULL;
        fields[1].in_value = xscale->reg_cache->reg_list[XSCALE_DCSR].value;
-       
+
 
        fields[2].tap = xscale->jtag_info.tap;
        fields[2].num_bits = 1;
        fields[2].out_value = &field2;
-       u8 tmp2;
+       uint8_t tmp2;
        fields[2].in_value = &tmp2;
 
-       jtag_add_dr_scan(3, fields, TAP_INVALID);
+       jtag_add_dr_scan(3, fields, jtag_get_end_state());
 
        jtag_check_value_mask(fields+0, &field0_check_value, &field0_check_mask);
        jtag_check_value_mask(fields+2, &field2_check_value, &field2_check_mask);
@@ -298,15 +283,21 @@ int xscale_read_dcsr(target_t *target)
        fields[1].out_value = xscale->reg_cache->reg_list[XSCALE_DCSR].value;
        fields[1].in_value = NULL;
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
 
-       jtag_add_dr_scan(3, fields, TAP_INVALID);
+       jtag_add_dr_scan(3, fields, jtag_get_end_state());
 
        /* DANGER!!! this must be here. It will make sure that the arguments
         * to jtag_set_check_value() does not go out of scope! */
        return jtag_execute_queue();
 }
 
+
+static void xscale_getbuf(uint8_t *in)
+{
+       *((u32 *)in)=buf_get_u32(in, 0, 32);
+}
+
 int xscale_receive(target_t *target, u32 *buffer, int num_words)
 {
        if (num_words==0)
@@ -319,12 +310,12 @@ int xscale_receive(target_t *target, u32 *buffer, int num_words)
        tap_state_t path[3];
        scan_field_t fields[3];
 
-       u8 *field0 = malloc(num_words * 1);
-       u8 field0_check_value = 0x2;
-       u8 field0_check_mask = 0x6;
+       uint8_t *field0 = malloc(num_words * 1);
+       uint8_t field0_check_value = 0x2;
+       uint8_t field0_check_mask = 0x6;
        u32 *field1 = malloc(num_words * 4);
-       u8 field2_check_value = 0x0;
-       u8 field2_check_mask = 0x1;
+       uint8_t field2_check_value = 0x0;
+       uint8_t field2_check_mask = 0x1;
        int words_done = 0;
        int words_scheduled = 0;
 
@@ -337,25 +328,26 @@ int xscale_receive(target_t *target, u32 *buffer, int num_words)
        fields[0].tap = xscale->jtag_info.tap;
        fields[0].num_bits = 3;
        fields[0].out_value = NULL;
-       u8 tmp2;
-       fields[0].in_value = &tmp2;
+       fields[0].in_value = NULL;
+       fields[0].check_value = &field0_check_value;
+       fields[0].check_mask = &field0_check_mask;
 
        fields[1].tap = xscale->jtag_info.tap;
        fields[1].num_bits = 32;
        fields[1].out_value = NULL;
-       u8 tmp[4];
-       fields[1].in_value = tmp;
-       
+       fields[1].check_value = NULL;
+       fields[1].check_mask = NULL;
 
        fields[2].tap = xscale->jtag_info.tap;
        fields[2].num_bits = 1;
        fields[2].out_value = NULL;
-       u8 tmp3;
-       fields[2].in_value = &tmp3;
+       fields[2].in_value = NULL;
+       fields[2].check_value = &field2_check_value;
+       fields[2].check_mask = &field2_check_mask;
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dbgtx);
-       jtag_add_runtest(1, TAP_INVALID); /* ensures that we're in the TAP_IDLE state as the above could be a no-op */
+       jtag_add_runtest(1, jtag_get_end_state()); /* ensures that we're in the TAP_IDLE state as the above could be a no-op */
 
        /* repeat until all words have been collected */
        int attempts=0;
@@ -368,12 +360,12 @@ int xscale_receive(target_t *target, u32 *buffer, int num_words)
                        fields[0].in_value = &field0[i];
 
                        jtag_add_pathmove(3, path);
-                       jtag_add_dr_scan_now(3, fields, TAP_IDLE);
 
-                       jtag_check_value_mask(fields+0, &field0_check_value, &field0_check_mask);
-                       jtag_check_value_mask(fields+2, &field2_check_value, &field2_check_mask);
+                       fields[1].in_value = (uint8_t *)(field1+i);
+
+                       jtag_add_dr_scan_check(3, fields, jtag_set_end_state(TAP_IDLE));
 
-                       field1[i]=buf_get_u32(tmp, 0, 32);
+                       jtag_add_callback(xscale_getbuf, (uint8_t *)(field1+i));
 
                        words_scheduled++;
                }
@@ -413,7 +405,7 @@ int xscale_receive(target_t *target, u32 *buffer, int num_words)
        }
 
        for (i = 0; i < num_words; i++)
-               *(buffer++) = buf_get_u32((u8*)&field1[i], 0, 32);
+               *(buffer++) = buf_get_u32((uint8_t*)&field1[i], 0, 32);
 
        free(field1);
 
@@ -431,13 +423,13 @@ int xscale_read_tx(target_t *target, int consume)
        struct timeval timeout, now;
 
        scan_field_t fields[3];
-       u8 field0_in = 0x0;
-       u8 field0_check_value = 0x2;
-       u8 field0_check_mask = 0x6;
-       u8 field2_check_value = 0x0;
-       u8 field2_check_mask = 0x1;
+       uint8_t field0_in = 0x0;
+       uint8_t field0_check_value = 0x2;
+       uint8_t field0_check_mask = 0x6;
+       uint8_t field2_check_value = 0x0;
+       uint8_t field2_check_mask = 0x1;
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
 
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dbgtx);
 
@@ -461,12 +453,12 @@ int xscale_read_tx(target_t *target, int consume)
        fields[1].num_bits = 32;
        fields[1].out_value = NULL;
        fields[1].in_value = xscale->reg_cache->reg_list[XSCALE_TX].value;
-       
+
 
        fields[2].tap = xscale->jtag_info.tap;
        fields[2].num_bits = 1;
        fields[2].out_value = NULL;
-       u8 tmp;
+       uint8_t tmp;
        fields[2].in_value = &tmp;
 
        gettimeofday(&timeout, NULL);
@@ -485,7 +477,7 @@ int xscale_read_tx(target_t *target, int consume)
                        jtag_add_pathmove(sizeof(noconsume_path)/sizeof(*noconsume_path), noconsume_path);
                }
 
-               jtag_add_dr_scan(3, fields, TAP_IDLE);
+               jtag_add_dr_scan(3, fields, jtag_set_end_state(TAP_IDLE));
 
                jtag_check_value_mask(fields+0, &field0_check_value, &field0_check_mask);
                jtag_check_value_mask(fields+2, &field2_check_value, &field2_check_mask);
@@ -532,15 +524,15 @@ int xscale_write_rx(target_t *target)
        struct timeval timeout, now;
 
        scan_field_t fields[3];
-       u8 field0_out = 0x0;
-       u8 field0_in = 0x0;
-       u8 field0_check_value = 0x2;
-       u8 field0_check_mask = 0x6;
-       u8 field2 = 0x0;
-       u8 field2_check_value = 0x0;
-       u8 field2_check_mask = 0x1;
+       uint8_t field0_out = 0x0;
+       uint8_t field0_in = 0x0;
+       uint8_t field0_check_value = 0x2;
+       uint8_t field0_check_mask = 0x6;
+       uint8_t field2 = 0x0;
+       uint8_t field2_check_value = 0x0;
+       uint8_t field2_check_mask = 0x1;
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
 
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dbgrx);
 
@@ -553,12 +545,12 @@ int xscale_write_rx(target_t *target)
        fields[1].num_bits = 32;
        fields[1].out_value = xscale->reg_cache->reg_list[XSCALE_RX].value;
        fields[1].in_value = NULL;
-       
+
 
        fields[2].tap = xscale->jtag_info.tap;
        fields[2].num_bits = 1;
        fields[2].out_value = &field2;
-       u8 tmp;
+       uint8_t tmp;
        fields[2].in_value = &tmp;
 
        gettimeofday(&timeout, NULL);
@@ -568,7 +560,7 @@ int xscale_write_rx(target_t *target)
        LOG_DEBUG("polling RX");
        for (;;)
        {
-               jtag_add_dr_scan(3, fields, TAP_IDLE);
+               jtag_add_dr_scan(3, fields, jtag_set_end_state(TAP_IDLE));
 
                jtag_check_value_mask(fields+0, &field0_check_value, &field0_check_mask);
                jtag_check_value_mask(fields+2, &field2_check_value, &field2_check_mask);
@@ -600,7 +592,7 @@ int xscale_write_rx(target_t *target)
 
        /* set rx_valid */
        field2 = 0x1;
-       jtag_add_dr_scan(3, fields, TAP_IDLE);
+       jtag_add_dr_scan(3, fields, jtag_set_end_state(TAP_IDLE));
 
        if ((retval = jtag_execute_queue()) != ERROR_OK)
        {
@@ -612,7 +604,7 @@ int xscale_write_rx(target_t *target)
 }
 
 /* send count elements of size byte to the debug handler */
-int xscale_send(target_t *target, u8 *buffer, int count, int size)
+int xscale_send(target_t *target, uint8_t *buffer, int count, int size)
 {
        armv4_5_common_t *armv4_5 = target->arch_info;
        xscale_common_t *xscale = armv4_5->arch_info;
@@ -623,7 +615,7 @@ int xscale_send(target_t *target, u8 *buffer, int count, int size)
 
        int done_count = 0;
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
 
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dbgrx);
 
@@ -666,7 +658,7 @@ int xscale_send(target_t *target, u8 *buffer, int count, int size)
                                3,
                                bits,
                                t,
-                               TAP_IDLE);
+                               jtag_set_end_state(TAP_IDLE));
                buffer += size;
        }
 
@@ -696,12 +688,12 @@ int xscale_write_dcsr(target_t *target, int hold_rst, int ext_dbg_brk)
        int retval;
 
        scan_field_t fields[3];
-       u8 field0 = 0x0;
-       u8 field0_check_value = 0x2;
-       u8 field0_check_mask = 0x7;
-       u8 field2 = 0x0;
-       u8 field2_check_value = 0x0;
-       u8 field2_check_mask = 0x1;
+       uint8_t field0 = 0x0;
+       uint8_t field0_check_value = 0x2;
+       uint8_t field0_check_mask = 0x7;
+       uint8_t field2 = 0x0;
+       uint8_t field2_check_value = 0x0;
+       uint8_t field2_check_mask = 0x1;
 
        if (hold_rst != -1)
                xscale->hold_rst = hold_rst;
@@ -709,7 +701,7 @@ int xscale_write_dcsr(target_t *target, int hold_rst, int ext_dbg_brk)
        if (ext_dbg_brk != -1)
                xscale->external_debug_break = ext_dbg_brk;
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dcsr);
 
        buf_set_u32(&field0, 1, 1, xscale->hold_rst);
@@ -718,22 +710,22 @@ int xscale_write_dcsr(target_t *target, int hold_rst, int ext_dbg_brk)
        fields[0].tap = xscale->jtag_info.tap;
        fields[0].num_bits = 3;
        fields[0].out_value = &field0;
-       u8 tmp;
+       uint8_t tmp;
        fields[0].in_value = &tmp;
 
        fields[1].tap = xscale->jtag_info.tap;
        fields[1].num_bits = 32;
        fields[1].out_value = xscale->reg_cache->reg_list[XSCALE_DCSR].value;
        fields[1].in_value = NULL;
-       
+
 
        fields[2].tap = xscale->jtag_info.tap;
        fields[2].num_bits = 1;
        fields[2].out_value = &field2;
-       u8 tmp2;
+       uint8_t tmp2;
        fields[2].in_value = &tmp2;
 
-       jtag_add_dr_scan(3, fields, TAP_INVALID);
+       jtag_add_dr_scan(3, fields, jtag_get_end_state());
 
        jtag_check_value_mask(fields+0, &field0_check_value, &field0_check_mask);
        jtag_check_value_mask(fields+2, &field2_check_value, &field2_check_mask);
@@ -766,15 +758,15 @@ int xscale_load_ic(target_t *target, int mini, u32 va, u32 buffer[8])
 {
        armv4_5_common_t *armv4_5 = target->arch_info;
        xscale_common_t *xscale = armv4_5->arch_info;
-       u8 packet[4];
-       u8 cmd;
+       uint8_t packet[4];
+       uint8_t cmd;
        int word;
 
        scan_field_t fields[2];
 
        LOG_DEBUG("loading miniIC at 0x%8.8x", va);
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.ldic); /* LDIC */
 
        /* CMD is b010 for Main IC and b011 for Mini IC */
@@ -795,7 +787,7 @@ int xscale_load_ic(target_t *target, int mini, u32 va, u32 buffer[8])
        fields[0].in_value = NULL;
 
 
-       
+
 
 
        fields[1].tap = xscale->jtag_info.tap;
@@ -805,10 +797,10 @@ int xscale_load_ic(target_t *target, int mini, u32 va, u32 buffer[8])
        fields[1].in_value = NULL;
 
 
-       
 
 
-       jtag_add_dr_scan(2, fields, TAP_INVALID);
+
+       jtag_add_dr_scan(2, fields, jtag_get_end_state());
 
        fields[0].num_bits = 32;
        fields[0].out_value = packet;
@@ -824,7 +816,7 @@ int xscale_load_ic(target_t *target, int mini, u32 va, u32 buffer[8])
                memcpy(&value, packet, sizeof(u32));
                cmd = parity(value);
 
-               jtag_add_dr_scan(2, fields, TAP_INVALID);
+               jtag_add_dr_scan(2, fields, jtag_get_end_state());
        }
 
        jtag_execute_queue();
@@ -836,12 +828,12 @@ int xscale_invalidate_ic_line(target_t *target, u32 va)
 {
        armv4_5_common_t *armv4_5 = target->arch_info;
        xscale_common_t *xscale = armv4_5->arch_info;
-       u8 packet[4];
-       u8 cmd;
+       uint8_t packet[4];
+       uint8_t cmd;
 
        scan_field_t fields[2];
 
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.ldic); /* LDIC */
 
        /* CMD for invalidate IC line b000, bits [6:4] b000 */
@@ -857,7 +849,7 @@ int xscale_invalidate_ic_line(target_t *target, u32 va)
        fields[0].in_value = NULL;
 
 
-       
+
 
 
        fields[1].tap = xscale->jtag_info.tap;
@@ -867,10 +859,10 @@ int xscale_invalidate_ic_line(target_t *target, u32 va)
        fields[1].in_value = NULL;
 
 
-       
 
 
-       jtag_add_dr_scan(2, fields, TAP_INVALID);
+
+       jtag_add_dr_scan(2, fields, jtag_get_end_state());
 
        return ERROR_OK;
 }
@@ -1580,7 +1572,7 @@ int xscale_assert_reset(target_t *target)
        /* select DCSR instruction (set endstate to R-T-I to ensure we don't
         * end up in T-L-R, which would reset JTAG
         */
-       jtag_add_end_state(TAP_IDLE);
+       jtag_set_end_state(TAP_IDLE);
        xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dcsr);
 
        /* set Hold reset, Halt mode and Trap Reset */
@@ -1654,7 +1646,7 @@ int xscale_deassert_reset(target_t *target)
                /* wait 300ms; 150 and 100ms were not enough */
                jtag_add_sleep(300*1000);
 
-               jtag_add_runtest(2030, TAP_IDLE);
+               jtag_add_runtest(2030, jtag_set_end_state(TAP_IDLE));
                jtag_execute_queue();
 
                /* set Hold reset, Halt mode and Trap Reset */
@@ -1686,7 +1678,7 @@ int xscale_deassert_reset(target_t *target)
                while (binary_size > 0)
                {
                        u32 cache_line[8];
-                       u8 buffer[32];
+                       uint8_t buffer[32];
 
                        if ((retval = fileio_read(&debug_handler, 32, buffer, &buf_cnt)) != ERROR_OK)
                        {
@@ -1717,7 +1709,7 @@ int xscale_deassert_reset(target_t *target)
                xscale_load_ic(target, 1, 0x0, xscale->low_vectors);
                xscale_load_ic(target, 1, 0xffff0000, xscale->high_vectors);
 
-               jtag_add_runtest(30, TAP_IDLE);
+               jtag_add_runtest(30, jtag_set_end_state(TAP_IDLE));
 
                jtag_add_sleep(100000);
 
@@ -1913,7 +1905,7 @@ int xscale_restore_context(target_t *target)
        return ERROR_OK;
 }
 
-int xscale_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer)
+int xscale_read_memory(struct target_s *target, u32 address, u32 size, u32 count, uint8_t *buffer)
 {
        armv4_5_common_t *armv4_5 = target->arch_info;
        xscale_common_t *xscale = armv4_5->arch_info;
@@ -1992,7 +1984,7 @@ int xscale_read_memory(struct target_s *target, u32 address, u32 size, u32 count
        return ERROR_OK;
 }
 
-int xscale_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer)
+int xscale_write_memory(struct target_s *target, u32 address, u32 size, u32 count, uint8_t *buffer)
 {
        armv4_5_common_t *armv4_5 = target->arch_info;
        xscale_common_t *xscale = armv4_5->arch_info;
@@ -2070,7 +2062,7 @@ int xscale_write_memory(struct target_s *target, u32 address, u32 size, u32 coun
        return ERROR_OK;
 }
 
-int xscale_bulk_write_memory(target_t *target, u32 address, u32 count, u8 *buffer)
+int xscale_bulk_write_memory(target_t *target, u32 address, u32 count, uint8_t *buffer)
 {
        return xscale_write_memory(target, address, 4, count, buffer);
 }
@@ -2196,7 +2188,7 @@ int xscale_set_breakpoint(struct target_s *target, breakpoint_t *breakpoint)
                if (breakpoint->length == 4)
                {
                        /* keep the original instruction in target endianness */
-                       if((retval = target->type->read_memory(target, breakpoint->address, 4, 1, breakpoint->orig_instr)) != ERROR_OK)
+                       if((retval = target_read_memory(target, breakpoint->address, 4, 1, breakpoint->orig_instr)) != ERROR_OK)
                        {
                                return retval;
                        }
@@ -2209,7 +2201,7 @@ int xscale_set_breakpoint(struct target_s *target, breakpoint_t *breakpoint)
                else
                {
                        /* keep the original instruction in target endianness */
-                       if((retval = target->type->read_memory(target, breakpoint->address, 2, 1, breakpoint->orig_instr)) != ERROR_OK)
+                       if((retval = target_read_memory(target, breakpoint->address, 2, 1, breakpoint->orig_instr)) != ERROR_OK)
                        {
                                return retval;
                        }
@@ -2293,14 +2285,14 @@ int xscale_unset_breakpoint(struct target_s *target, breakpoint_t *breakpoint)
                /* restore original instruction (kept in target endianness) */
                if (breakpoint->length == 4)
                {
-                       if((retval = target->type->write_memory(target, breakpoint->address, 4, 1, breakpoint->orig_instr)) != ERROR_OK)
+                       if((retval = target_write_memory(target, breakpoint->address, 4, 1, breakpoint->orig_instr)) != ERROR_OK)
                        {
                                return retval;
                        }
                }
                else
                {
-                       if((retval = target->type->write_memory(target, breakpoint->address, 2, 1, breakpoint->orig_instr)) != ERROR_OK)
+                       if((retval = target_write_memory(target, breakpoint->address, 2, 1, breakpoint->orig_instr)) != ERROR_OK)
                        {
                                return retval;
                        }
@@ -2337,7 +2329,7 @@ int xscale_set_watchpoint(struct target_s *target, watchpoint_t *watchpoint)
 {
        armv4_5_common_t *armv4_5 = target->arch_info;
        xscale_common_t *xscale = armv4_5->arch_info;
-       u8 enable=0;
+       uint8_t enable=0;
        reg_t *dbcon = &xscale->reg_cache->reg_list[XSCALE_DBCON];
        u32 dbcon_value = buf_get_u32(dbcon->value, 0, 32);
 
@@ -2543,7 +2535,7 @@ int xscale_get_reg(reg_t *reg)
        return ERROR_OK;
 }
 
-int xscale_set_reg(reg_t *reg, u8* buf)
+int xscale_set_reg(reg_t *reg, uint8_t* buf)
 {
        xscale_reg_t *arch_info = reg->arch_info;
        target_t *target = arch_info->target;
@@ -2591,7 +2583,7 @@ int xscale_set_reg(reg_t *reg, u8* buf)
 /* convenience wrapper to access XScale specific registers */
 int xscale_set_reg_u32(reg_t *reg, u32 value)
 {
-       u8 buf[4];
+       uint8_t buf[4];
 
        buf_set_u32(buf, 0, 32, value);
 
@@ -2731,7 +2723,7 @@ int xscale_read_instruction(target_t *target, arm_instruction_t *instruction)
 
        if (xscale->trace.core_state == ARMV4_5_STATE_ARM)
        {
-               u8 buf[4];
+               uint8_t buf[4];
                if ((retval = image_read_section(xscale->trace.image, section,
                        xscale->trace.current_pc - xscale->trace.image->sections[section].base_address,
                        4, buf, &size_read)) != ERROR_OK)
@@ -2744,7 +2736,7 @@ int xscale_read_instruction(target_t *target, arm_instruction_t *instruction)
        }
        else if (xscale->trace.core_state == ARMV4_5_STATE_THUMB)
        {
-               u8 buf[2];
+               uint8_t buf[2];
                if ((retval = image_read_section(xscale->trace.image, section,
                        xscale->trace.current_pc - xscale->trace.image->sections[section].base_address,
                        2, buf, &size_read)) != ERROR_OK)
@@ -3156,9 +3148,9 @@ int xscale_handle_debug_handler_command(struct command_context_s *cmd_ctx, char
                return ERROR_OK;
        }
 
-       if ((target = get_target_by_num(strtoul(args[0], NULL, 0))) == NULL)
+       if ((target = get_target(args[0])) == NULL)
        {
-               LOG_ERROR("no target '%s' configured", args[0]);
+               LOG_ERROR("target '%s' not defined", args[0]);
                return ERROR_FAIL;
        }
 
@@ -3196,9 +3188,10 @@ int xscale_handle_cache_clean_address_command(struct command_context_s *cmd_ctx,
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       if ((target = get_target_by_num(strtoul(args[0], NULL, 0))) == NULL)
+       target = get_target(args[0]);
+       if (target == NULL)
        {
-               LOG_ERROR("no target '%s' configured", args[0]);
+               LOG_ERROR("target '%s' not defined", args[0]);
                return ERROR_FAIL;
        }
 

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)