Lines Matching refs:target

40 #define CHECK_HALT(target) if (target->state != TARGET_HALTED) HALT_FAIL  argument
41 #define check_halt_and_debug(target) { CHECK_HALT(target); CHECK_DBG; } argument
72 static int dsp5680xx_drscan(struct target *target, uint8_t *d_in, in dsp5680xx_drscan() argument
88 if (NULL == target->tap) { in dsp5680xx_drscan()
123 static int dsp5680xx_irscan(struct target *target, uint32_t *d_in, in dsp5680xx_irscan() argument
130 if (NULL == target->tap) { in dsp5680xx_irscan()
135 if (ir_len != target->tap->ir_length) { in dsp5680xx_irscan()
136 if (target->tap->enabled) { in dsp5680xx_irscan()
162 static int dsp5680xx_jtag_status(struct target *target, uint8_t *status) in dsp5680xx_jtag_status() argument
172 dsp5680xx_irscan(target, &instr, &read_from_ir, in dsp5680xx_jtag_status()
180 static int jtag_data_read(struct target *target, uint8_t *data_read, in jtag_data_read() argument
186 dsp5680xx_drscan(target, (uint8_t *) &bogus_instr, data_read, in jtag_data_read()
193 #define jtag_data_read8(target, data_read) jtag_data_read(target, data_read, 8) argument
194 #define jtag_data_read16(target, data_read) jtag_data_read(target, data_read, 16) argument
195 #define jtag_data_read32(target, data_read) jtag_data_read(target, data_read, 32) argument
199 static int jtag_data_write(struct target *target, uint32_t instr, int num_bits, in jtag_data_write() argument
205 dsp5680xx_drscan(target, (uint8_t *) &instr, in jtag_data_write()
213 #define jtag_data_write8(target, instr, data_read) jtag_data_write(target, instr, 8, data_read) argument
214 #define jtag_data_write16(target, instr, data_read) jtag_data_write(target, instr, 16, data_read) argument
215 #define jtag_data_write24(target, instr, data_read) jtag_data_write(target, instr, 24, data_read) argument
216 #define jtag_data_write32(target, instr, data_read) jtag_data_write(target, instr, 32, data_read) argument
230 static int eonce_instruction_exec_single(struct target *target, uint8_t instr, in eonce_instruction_exec_single() argument
240 retval = jtag_data_write(target, instr_with_flags, 8, &dr_out_tmp); in eonce_instruction_exec_single()
248 #define dsp5680xx_exe_1(target, oc1, oc2, oc3) dsp5680xx_exe1(target, oc1) argument
249 #define dsp5680xx_exe_2(target, oc1, oc2, oc3) dsp5680xx_exe2(target, oc1, oc2) argument
250 #define dsp5680xx_exe_3(target, oc1, oc2, oc3) dsp5680xx_exe3(target, oc1, oc2, oc3) argument
254 static int dsp5680xx_exe1(struct target *target, uint16_t opcode) in dsp5680xx_exe1() argument
258 retval = eonce_instruction_exec_single(target, 0x04, 0, 1, 0, NULL); in dsp5680xx_exe1()
260 retval = jtag_data_write16(target, opcode, NULL); in dsp5680xx_exe1()
266 static int dsp5680xx_exe2(struct target *target, uint16_t opcode1, in dsp5680xx_exe2() argument
271 retval = eonce_instruction_exec_single(target, 0x04, 0, 0, 0, NULL); in dsp5680xx_exe2()
273 retval = jtag_data_write16(target, opcode1, NULL); in dsp5680xx_exe2()
275 retval = eonce_instruction_exec_single(target, 0x04, 0, 1, 0, NULL); in dsp5680xx_exe2()
277 retval = jtag_data_write16(target, opcode2, NULL); in dsp5680xx_exe2()
283 static int dsp5680xx_exe3(struct target *target, uint16_t opcode1, in dsp5680xx_exe3() argument
288 retval = eonce_instruction_exec_single(target, 0x04, 0, 0, 0, NULL); in dsp5680xx_exe3()
290 retval = jtag_data_write16(target, opcode1, NULL); in dsp5680xx_exe3()
292 retval = eonce_instruction_exec_single(target, 0x04, 0, 0, 0, NULL); in dsp5680xx_exe3()
294 retval = jtag_data_write16(target, opcode2, NULL); in dsp5680xx_exe3()
296 retval = eonce_instruction_exec_single(target, 0x04, 0, 1, 0, NULL); in dsp5680xx_exe3()
298 retval = jtag_data_write16(target, opcode3, NULL); in dsp5680xx_exe3()
316 static int core_tx_upper_data(struct target *target, uint16_t data, in core_tx_upper_data() argument
322 eonce_instruction_exec_single(target, DSP5680XX_ONCE_ORX1, 0, 0, 0, in core_tx_upper_data()
325 retval = jtag_data_write16(target, data, eonce_status_low); in core_tx_upper_data()
331 #define CMD1 eonce_instruction_exec_single(target, DSP5680XX_ONCE_ORX, 0, 0, 0, NULL);
341 static int core_rx_upper_data(struct target *target, uint8_t *data_read) in core_rx_upper_data() argument
346 eonce_instruction_exec_single(target, DSP5680XX_ONCE_OTX1, 1, 0, 0, in core_rx_upper_data()
349 retval = jtag_data_read16(target, data_read); in core_rx_upper_data()
360 static int core_rx_lower_data(struct target *target, uint8_t *data_read) in core_rx_lower_data() argument
365 eonce_instruction_exec_single(target, DSP5680XX_ONCE_OTX, 1, 0, 0, in core_rx_lower_data()
368 retval = jtag_data_read16(target, data_read); in core_rx_lower_data()
382 #define core_move_long_to_r0(target, value) exe(target, 3, 0xe418, value&0xffff, value>>16) argument
385 #define core_move_long_to_n(target, value) exe(target, 3, 0xe41e, value&0xffff, value>>16) argument
388 #define core_move_at_r0_to_y0(target) exe(target, 1, 0xF514, 0, 0) argument
391 #define core_move_at_r0_to_y1(target) exe(target, 1, 0xF714, 0, 0) argument
394 #define core_move_long_at_r0_y(target) exe(target, 1, 0xF734, 0, 0) argument
397 #define core_move_y0_at_r0(target) exe(target, 1, 0xd514, 0, 0) argument
400 #define eonce_bfclr_at_r0(target, value) exe(target, 2, 0x8040, value, 0) argument
403 #define core_move_value_to_y0(target, value) exe(target, 2, 0x8745, value, 0) argument
406 #define core_move_y0_at_r0_inc(target) exe(target, 1, 0xd500, 0, 0) argument
409 #define core_move_y0_at_pr0_inc(target) exe(target, 1, 0x8560, 0, 0) argument
412 #define core_move_at_pr0_inc_to_y0(target) exe(target, 1, 0x8568, 0, 0) argument
415 #define core_move_at_pr0_inc_to_y1(target) exe(target, 1, 0x8768, 0, 0) argument
418 #define core_move_long_to_r2(target, value) exe(target, 3, 0xe41A, value&0xffff, value>>16) argument
421 #define core_move_y0_at_r2(target) exe(target, 1, 0xd516, 0, 0) argument
424 #define core_move_value_at_r2(target, value) exe(target, 2, 0x8642, value, 0) argument
427 #define core_move_value_at_r0(target, value) exe(target, 2, 0x8640, value, 0) argument
430 #define core_move_value_at_r2_disp(target, value, disp) exe(target, 3, 0x8646, value, disp) argument
433 #define core_move_at_r2_to_y0(target) exe(target, 1, 0xF516, 0, 0) argument
436 #define core_move_at_pr2_inc_to_y0(target) exe(target, 1, 0x856A, 0, 0) argument
439 #define core_move_long_to_r1(target, value) exe(target, 3, 0xE419, value&0xffff, value>>16) argument
442 #define core_move_long_to_r3(target, value) exe(target, 3, 0xE41B, value&0xffff, value>>16) argument
445 #define core_move_y0_at_pr3_inc(target) exe(target, 1, 0x8563, 0, 0) argument
448 #define core_move_y0_at_r3(target) exe(target, 1, 0xD503, 0, 0) argument
451 #define core_move_long_to_r4(target, value) exe(target, 3, 0xE41C, value&0xffff, value>>16) argument
454 #define core_move_pc_to_r4(target) exe(target, 1, 0xE716, 0, 0) argument
457 #define core_move_r4_to_y(target) exe(target, 1, 0xe764, 0, 0) argument
460 #define core_move_at_pr0_inc_to_y0(target) exe(target, 1, 0x8568, 0, 0) argument
463 #define core_move_at_r0_inc_to_y0(target) exe(target, 1, 0xf500, 0, 0) argument
466 #define core_move_at_r0_y0(target) exe(target, 1, 0xF514, 0, 0) argument
469 #define eonce_nop(target) exe(target, 1, 0xe700, 0, 0) argument
472 #define core_move_at_r2_disp_to_y0(target, disp) exe(target, 2, 0xF542, disp, 0) argument
475 #define core_move_y1_at_r2(target) exe(target, 1, 0xd716, 0, 0) argument
478 #define core_move_y1_at_r0(target) exe(target, 1, 0xd714, 0, 0) argument
481 #define core_move_byte_y0_at_r0(target) exe(target, 1, 0xd5a0, 0, 0) argument
484 #define core_move_y1_at_pr0_inc(target) exe(target, 1, 0x8760, 0, 0) argument
487 #define core_move_y1_at_r0_inc(target) exe(target, 1, 0xD700, 0, 0) argument
490 #define core_move_long_to_y(target, value) exe(target, 3, 0xe417, value&0xffff, value>>16) argument
492 static int core_move_value_to_pc(struct target *target, uint32_t value) in core_move_value_to_pc() argument
494 check_halt_and_debug(target); in core_move_value_to_pc()
498 dsp5680xx_exe_generic(target, 3, 0xE71E, value & 0xffff, in core_move_value_to_pc()
504 static int eonce_load_TX_RX_to_r0(struct target *target) in eonce_load_TX_RX_to_r0() argument
509 core_move_long_to_r0(target, in eonce_load_TX_RX_to_r0()
515 static int core_load_TX_RX_high_addr_to_r0(struct target *target) in core_load_TX_RX_high_addr_to_r0() argument
520 core_move_long_to_r0(target, in core_load_TX_RX_high_addr_to_r0()
526 static int dsp5680xx_read_core_reg(struct target *target, uint8_t reg_addr, in dsp5680xx_read_core_reg() argument
534 retval = eonce_instruction_exec_single(target, reg_addr, 1, 0, 0, NULL); in dsp5680xx_read_core_reg()
537 dsp5680xx_drscan(target, (uint8_t *) &dummy_data_to_shift_into_dr, in dsp5680xx_read_core_reg()
544 static int eonce_read_status_reg(struct target *target, uint16_t *data) in eonce_read_status_reg() argument
548 retval = dsp5680xx_read_core_reg(target, DSP5680XX_ONCE_OSR, data); in eonce_read_status_reg()
561 static int eonce_exit_debug_mode(struct target *target, uint8_t *eonce_status) in eonce_exit_debug_mode() argument
566 eonce_instruction_exec_single(target, 0x1F, 0, 0, 1, eonce_status); in eonce_exit_debug_mode()
571 static int switch_tap(struct target *target, struct jtag_tap *master_tap, in switch_tap() argument
608 dsp5680xx_irscan(target, &instr, &ir_out, in switch_tap()
613 dsp5680xx_drscan(target, (uint8_t *) &instr, in switch_tap()
621 dsp5680xx_irscan(target, &instr, &ir_out, in switch_tap()
626 dsp5680xx_drscan(target, (uint8_t *) &instr, in switch_tap()
649 static int eonce_enter_debug_mode_without_reset(struct target *target, in eonce_enter_debug_mode_without_reset() argument
660 dsp5680xx_irscan(target, &instr, &ir_out, in eonce_enter_debug_mode_without_reset()
668 dsp5680xx_irscan(target, &instr, &ir_out, in eonce_enter_debug_mode_without_reset()
672 dsp5680xx_irscan(target, &instr, &ir_out, in eonce_enter_debug_mode_without_reset()
676 target->state = TARGET_HALTED; in eonce_enter_debug_mode_without_reset()
684 retval = eonce_read_status_reg(target, &data_read_from_dr); in eonce_enter_debug_mode_without_reset()
711 static int eonce_enter_debug_mode(struct target *target, in eonce_enter_debug_mode() argument
725 retval = eonce_enter_debug_mode_without_reset(target, eonce_status); in eonce_enter_debug_mode()
751 dsp5680xx_irscan(target, &instr, &ir_out, in eonce_enter_debug_mode()
761 dsp5680xx_drscan(target, (uint8_t *) &instr, (uint8_t *) &ir_out, in eonce_enter_debug_mode()
768 retval = switch_tap(target, tap_chp, tap_cpu); in eonce_enter_debug_mode()
774 dsp5680xx_irscan(target, &instr, &ir_out, in eonce_enter_debug_mode()
779 dsp5680xx_irscan(target, &instr, &ir_out, in eonce_enter_debug_mode()
784 dsp5680xx_drscan(target, (uint8_t *) &instr_16, in eonce_enter_debug_mode()
789 dsp5680xx_drscan(target, (uint8_t *) &instr_16, in eonce_enter_debug_mode()
800 dsp5680xx_irscan(target, &instr, &ir_out, in eonce_enter_debug_mode()
805 target->state = TARGET_HALTED; in eonce_enter_debug_mode()
814 dsp5680xx_drscan(target, (uint8_t *) &instr_16, in eonce_enter_debug_mode()
817 dsp5680xx_drscan(target, (uint8_t *) &instr_16, in eonce_enter_debug_mode()
824 retval = eonce_read_status_reg(target, &data_read_from_dr); in eonce_enter_debug_mode()
848 static int eonce_pc_store(struct target *target) in eonce_pc_store() argument
854 retval = core_move_pc_to_r4(target); in eonce_pc_store()
856 retval = core_move_r4_to_y(target); in eonce_pc_store()
858 retval = eonce_load_TX_RX_to_r0(target); in eonce_pc_store()
860 retval = core_move_y0_at_r0(target); in eonce_pc_store()
862 retval = core_rx_lower_data(target, tmp); in eonce_pc_store()
869 static int dsp5680xx_target_create(struct target *target, Jim_Interp *interp) in dsp5680xx_target_create() argument
873 target->arch_info = dsp5680xx; in dsp5680xx_target_create()
878 struct target *target) in dsp5680xx_init_target() argument
889 static int dsp5680xx_arch_state(struct target *target) in dsp5680xx_arch_state() argument
895 static int dsp5680xx_assert_reset(struct target *target) in dsp5680xx_assert_reset() argument
897 target->state = TARGET_RESET; in dsp5680xx_assert_reset()
901 static int dsp5680xx_deassert_reset(struct target *target) in dsp5680xx_deassert_reset() argument
903 target->state = TARGET_RUNNING; in dsp5680xx_deassert_reset()
907 static int dsp5680xx_halt(struct target *target) in dsp5680xx_halt() argument
913 if ((target->state == TARGET_HALTED) in dsp5680xx_halt()
918 if (target->state == TARGET_HALTED) in dsp5680xx_halt()
922 retval = eonce_enter_debug_mode(target, &eonce_status); in dsp5680xx_halt()
924 retval = eonce_pc_store(target); in dsp5680xx_halt()
927 retval = eonce_pc_store(target); in dsp5680xx_halt()
933 static int dsp5680xx_poll(struct target *target) in dsp5680xx_poll() argument
943 retval = dsp5680xx_jtag_status(target, &jtag_status); in dsp5680xx_poll()
946 if (target->state != TARGET_HALTED) { in dsp5680xx_poll()
947 retval = eonce_enter_debug_mode(target, &read_tmp); in dsp5680xx_poll()
957 target->state = TARGET_HALTED; in dsp5680xx_poll()
962 if (target->state == TARGET_RESET) { in dsp5680xx_poll()
963 retval = dsp5680xx_halt(target); in dsp5680xx_poll()
965 retval = eonce_exit_debug_mode(target, &eonce_status); in dsp5680xx_poll()
974 target->state = TARGET_RUNNING; in dsp5680xx_poll()
978 if (target->state != TARGET_RUNNING) { in dsp5680xx_poll()
979 retval = eonce_read_status_reg(target, &read_tmp); in dsp5680xx_poll()
989 target->state = TARGET_RUNNING; in dsp5680xx_poll()
996 target->state = TARGET_UNKNOWN; in dsp5680xx_poll()
999 if (target->state == TARGET_UNKNOWN) { in dsp5680xx_poll()
1007 static int dsp5680xx_resume(struct target *target, int current, in dsp5680xx_resume() argument
1010 if (target->state == TARGET_RUNNING) { in dsp5680xx_resume()
1022 retval = core_move_value_to_pc(target, address); in dsp5680xx_resume()
1029 retval = eonce_exit_debug_mode(target, &eonce_status); in dsp5680xx_resume()
1039 target->state = TARGET_RUNNING; in dsp5680xx_resume()
1058 retval = dsp5680xx_jtag_status(target, &jtag_status); in dsp5680xx_resume()
1061 target->state = TARGET_RUNNING; in dsp5680xx_resume()
1097 static int dsp5680xx_read_16_single(struct target *t, uint32_t a, in dsp5680xx_read_16_single()
1100 struct target *target = t; in dsp5680xx_read_16_single() local
1106 retval = core_move_long_to_r0(target, address); in dsp5680xx_read_16_single()
1109 retval = core_move_at_pr0_inc_to_y0(target); in dsp5680xx_read_16_single()
1111 retval = core_move_at_r0_to_y0(target); in dsp5680xx_read_16_single()
1113 retval = eonce_load_TX_RX_to_r0(target); in dsp5680xx_read_16_single()
1115 retval = core_move_y0_at_r0(target); in dsp5680xx_read_16_single()
1118 retval = core_rx_lower_data(target, data_read); in dsp5680xx_read_16_single()
1125 static int dsp5680xx_read_32_single(struct target *t, uint32_t a, in dsp5680xx_read_32_single()
1128 struct target *target = t; in dsp5680xx_read_32_single() local
1136 retval = core_move_long_to_r0(target, address); in dsp5680xx_read_32_single()
1139 retval = core_move_at_pr0_inc_to_y0(target); in dsp5680xx_read_32_single()
1141 retval = core_move_at_pr0_inc_to_y1(target); in dsp5680xx_read_32_single()
1144 retval = core_move_at_r0_inc_to_y0(target); in dsp5680xx_read_32_single()
1146 retval = core_move_at_r0_to_y1(target); in dsp5680xx_read_32_single()
1150 retval = eonce_load_TX_RX_to_r0(target); in dsp5680xx_read_32_single()
1152 retval = core_move_y0_at_r0_inc(target); /* This also load TX/RX high to r0 */ in dsp5680xx_read_32_single()
1155 retval = core_move_y1_at_r0(target); in dsp5680xx_read_32_single()
1158 retval = core_rx_lower_data(target, data_read); in dsp5680xx_read_32_single()
1160 retval = core_rx_upper_data(target, data_read + 2); in dsp5680xx_read_32_single()
1165 static int dsp5680xx_read(struct target *t, target_addr_t a, uint32_t size, in dsp5680xx_read()
1168 struct target *target = t; in dsp5680xx_read() local
1174 check_halt_and_debug(target); in dsp5680xx_read()
1195 dsp5680xx_read_16_single(target, in dsp5680xx_read()
1201 dsp5680xx_read_16_single(target, address + i, in dsp5680xx_read()
1206 dsp5680xx_read_32_single(target, address + 2 * i, in dsp5680xx_read()
1224 static int dsp5680xx_write_16_single(struct target *t, uint32_t a, in dsp5680xx_write_16_single()
1227 struct target *target = t; in dsp5680xx_write_16_single() local
1233 retval = core_move_long_to_r0(target, address); in dsp5680xx_write_16_single()
1236 retval = core_move_value_to_y0(target, data); in dsp5680xx_write_16_single()
1238 retval = core_move_y0_at_pr0_inc(target); in dsp5680xx_write_16_single()
1241 retval = core_move_value_at_r0(target, data); in dsp5680xx_write_16_single()
1247 static int dsp5680xx_write_32_single(struct target *t, uint32_t a, in dsp5680xx_write_32_single()
1250 struct target *target = t; in dsp5680xx_write_32_single() local
1256 retval = core_move_long_to_r0(target, address); in dsp5680xx_write_32_single()
1258 retval = core_move_long_to_y(target, data); in dsp5680xx_write_32_single()
1261 retval = core_move_y0_at_pr0_inc(target); in dsp5680xx_write_32_single()
1263 retval = core_move_y0_at_r0_inc(target); in dsp5680xx_write_32_single()
1266 retval = core_move_y1_at_pr0_inc(target); in dsp5680xx_write_32_single()
1268 retval = core_move_y1_at_r0_inc(target); in dsp5680xx_write_32_single()
1273 static int dsp5680xx_write_8(struct target *t, uint32_t a, uint32_t c, in dsp5680xx_write_8()
1276 struct target *target = t; in dsp5680xx_write_8() local
1299 dsp5680xx_write_16_single(target, address + iter, data_16, in dsp5680xx_write_8()
1317 dsp5680xx_read(target, address + iter, 1, 1, in dsp5680xx_write_8()
1326 dsp5680xx_write_16_single(target, address + iter, data_old, in dsp5680xx_write_8()
1333 static int dsp5680xx_write_16(struct target *t, uint32_t a, uint32_t c, in dsp5680xx_write_16()
1336 struct target *target = t; in dsp5680xx_write_16() local
1356 dsp5680xx_write_16_single(target, address + iter, in dsp5680xx_write_16()
1370 static int dsp5680xx_write_32(struct target *t, uint32_t a, uint32_t c, in dsp5680xx_write_32()
1373 struct target *target = t; in dsp5680xx_write_32() local
1393 dsp5680xx_write_32_single(target, address + (iter << 1), in dsp5680xx_write_32()
1420 static int dsp5680xx_write(struct target *target, target_addr_t a, uint32_t size, uint32_t count, in dsp5680xx_write() argument
1428 check_halt_and_debug(target); in dsp5680xx_write()
1440 dsp5680xx_write_8(target, address, count, buffer, p_mem); in dsp5680xx_write()
1444 dsp5680xx_write_16(target, address, count, buffer, p_mem); in dsp5680xx_write()
1448 dsp5680xx_write_32(target, address, count, buffer, p_mem); in dsp5680xx_write()
1459 static int dsp5680xx_write_buffer(struct target *t, target_addr_t a, uint32_t size, in dsp5680xx_write_buffer()
1476 static int dsp5680xx_read_buffer(struct target *target, target_addr_t address, uint32_t size, in dsp5680xx_read_buffer() argument
1479 check_halt_and_debug(target); in dsp5680xx_read_buffer()
1481 return dsp5680xx_read(target, address, 2, size / 2, buffer); in dsp5680xx_read_buffer()
1496 static int dsp5680xx_checksum_memory(struct target *target, target_addr_t address, uint32_t size, in dsp5680xx_checksum_memory() argument
1546 static int dsp5680xx_f_SIM_reset(struct target *target) in dsp5680xx_f_SIM_reset() argument
1554 if (strcmp(target->tap->chip, "dsp568013") == 0) { in dsp5680xx_f_SIM_reset()
1557 dsp5680xx_write(target, sim_addr, 1, 2, in dsp5680xx_f_SIM_reset()
1571 static int dsp5680xx_soft_reset_halt(struct target *target) in dsp5680xx_soft_reset_halt() argument
1576 retval = dsp5680xx_halt(target); in dsp5680xx_soft_reset_halt()
1578 retval = dsp5680xx_f_SIM_reset(target); in dsp5680xx_soft_reset_halt()
1583 int dsp5680xx_f_protect_check(struct target *target, uint16_t *protected) in dsp5680xx_f_protect_check() argument
1587 check_halt_and_debug(target); in dsp5680xx_f_protect_check()
1595 dsp5680xx_read_16_single(target, HFM_BASE_ADDR | HFM_PROT, in dsp5680xx_f_protect_check()
1614 static int dsp5680xx_f_ex(struct target *target, uint16_t c, uint32_t address, uint32_t data, in dsp5680xx_f_ex() argument
1620 retval = core_load_TX_RX_high_addr_to_r0(target); in dsp5680xx_f_ex()
1622 retval = core_move_long_to_r2(target, HFM_BASE_ADDR); in dsp5680xx_f_ex()
1629 retval = core_move_at_r2_disp_to_y0(target, HFM_USTAT); /* read HMF_USTAT */ in dsp5680xx_f_ex()
1631 retval = core_move_y0_at_r0(target); in dsp5680xx_f_ex()
1633 retval = core_rx_upper_data(target, i); in dsp5680xx_f_ex()
1646 retval = core_move_value_at_r2_disp(target, 0x00, HFM_CNFG); in dsp5680xx_f_ex()
1649 retval = core_move_value_at_r2_disp(target, 0x04, HFM_USTAT); in dsp5680xx_f_ex()
1652 retval = core_move_value_at_r2_disp(target, 0x10, HFM_USTAT); in dsp5680xx_f_ex()
1654 retval = core_move_value_at_r2_disp(target, 0x20, HFM_USTAT); in dsp5680xx_f_ex()
1657 retval = core_move_value_at_r2_disp(target, 0x00, HFM_PROT); in dsp5680xx_f_ex()
1660 retval = core_move_value_at_r2_disp(target, 0x00, HFM_PROTB); in dsp5680xx_f_ex()
1662 retval = core_move_value_to_y0(target, data); in dsp5680xx_f_ex()
1665 retval = core_move_long_to_r3(target, address); in dsp5680xx_f_ex()
1668 retval = core_move_y0_at_pr3_inc(target); in dsp5680xx_f_ex()
1671 retval = core_move_y0_at_r3(target); in dsp5680xx_f_ex()
1675 retval = core_move_value_at_r2_disp(target, command, HFM_CMD); in dsp5680xx_f_ex()
1678 retval = core_move_value_at_r2_disp(target, 0x80, HFM_USTAT); in dsp5680xx_f_ex()
1688 retval = core_move_at_r2_disp_to_y0(target, HFM_USTAT); in dsp5680xx_f_ex()
1690 retval = core_move_y0_at_r0(target); in dsp5680xx_f_ex()
1692 retval = core_rx_upper_data(target, i); in dsp5680xx_f_ex()
1722 static int set_fm_ck_div(struct target *target) in set_fm_ck_div() argument
1728 retval = core_move_long_to_r2(target, HFM_BASE_ADDR); in set_fm_ck_div()
1730 retval = core_load_TX_RX_high_addr_to_r0(target); in set_fm_ck_div()
1733 retval = core_move_at_r2_to_y0(target); in set_fm_ck_div()
1735 retval = core_move_y0_at_r0(target); in set_fm_ck_div()
1737 retval = core_rx_upper_data(target, i); in set_fm_ck_div()
1752 retval = core_move_value_at_r2(target, HFM_CLK_DEFAULT); in set_fm_ck_div()
1755 retval = core_move_at_r2_to_y0(target); in set_fm_ck_div()
1757 retval = core_move_y0_at_r0(target); in set_fm_ck_div()
1759 retval = core_rx_upper_data(target, i); in set_fm_ck_div()
1785 static int dsp5680xx_f_signature(struct target *target, uint32_t address, uint32_t words, in dsp5680xx_f_signature() argument
1793 retval = eonce_enter_debug_mode_without_reset(target, NULL); in dsp5680xx_f_signature()
1801 dsp5680xx_f_ex(target, HFM_CALCULATE_DATA_SIGNATURE, address, words, in dsp5680xx_f_signature()
1805 dsp5680xx_read_16_single(target, HFM_BASE_ADDR | HFM_DATA, in dsp5680xx_f_signature()
1810 int dsp5680xx_f_erase_check(struct target *target, uint8_t *erased, in dsp5680xx_f_erase_check() argument
1820 retval = dsp5680xx_halt(target); in dsp5680xx_f_erase_check()
1823 retval = set_fm_ck_div(target); in dsp5680xx_f_erase_check()
1830 dsp5680xx_f_ex(target, HFM_ERASE_VERIFY, tmp, 0, &hfm_ustat, 1); in dsp5680xx_f_erase_check()
1846 static int erase_sector(struct target *target, int sector, uint16_t *hfm_ustat) in erase_sector() argument
1852 retval = dsp5680xx_f_ex(target, HFM_PAGE_ERASE, tmp, 0, hfm_ustat, 1); in erase_sector()
1865 static int mass_erase(struct target *target, uint16_t *hfm_ustat) in mass_erase() argument
1869 retval = dsp5680xx_f_ex(target, HFM_MASS_ERASE, 0, 0, hfm_ustat, 1); in mass_erase()
1873 int dsp5680xx_f_erase(struct target *target, int first, int last) in dsp5680xx_f_erase() argument
1878 retval = dsp5680xx_halt(target); in dsp5680xx_f_erase()
1885 retval = dsp5680xx_f_SIM_reset(target); in dsp5680xx_f_erase()
1891 retval = set_fm_ck_div(target); in dsp5680xx_f_erase()
1901 retval = mass_erase(target, &hfm_ustat); in dsp5680xx_f_erase()
1905 retval = erase_sector(target, i, &hfm_ustat); in dsp5680xx_f_erase()
1967 int dsp5680xx_f_wr(struct target *t, const uint8_t *b, uint32_t a, uint32_t count, in dsp5680xx_f_wr()
1970 struct target *target = t; in dsp5680xx_f_wr() local
1979 retval = eonce_enter_debug_mode(target, NULL); in dsp5680xx_f_wr()
1996 dsp5680xx_write(target, ram_addr, 1, len * 2, in dsp5680xx_f_wr()
2006 retval = set_fm_ck_div(target); in dsp5680xx_f_wr()
2015 retval = core_move_long_to_r3(target, address); /* Destination address to r3 */ in dsp5680xx_f_wr()
2017 core_load_TX_RX_high_addr_to_r0(target); /* TX/RX reg address to r0 */ in dsp5680xx_f_wr()
2019 retval = core_move_long_to_r2(target, HFM_BASE_ADDR); /* FM base address to r2 */ in dsp5680xx_f_wr()
2026 retval = core_move_value_at_r2_disp(target, 0x00, HFM_CNFG); in dsp5680xx_f_wr()
2029 retval = core_move_value_at_r2_disp(target, 0x04, HFM_USTAT); in dsp5680xx_f_wr()
2032 retval = core_move_value_at_r2_disp(target, 0x10, HFM_USTAT); in dsp5680xx_f_wr()
2034 retval = core_move_value_at_r2_disp(target, 0x20, HFM_USTAT); in dsp5680xx_f_wr()
2037 retval = core_move_value_at_r2_disp(target, 0x00, HFM_PROT); in dsp5680xx_f_wr()
2040 retval = core_move_value_at_r2_disp(target, 0x00, HFM_PROTB); in dsp5680xx_f_wr()
2059 retval = core_tx_upper_data(target, tmp, &drscan_data); in dsp5680xx_f_wr()
2062 retval = dsp5680xx_resume(target, 0, ram_addr, 0, 0); in dsp5680xx_f_wr()
2076 retval = core_tx_upper_data(target, tmp, &drscan_data); in dsp5680xx_f_wr()
2093 retval = dsp5680xx_f_signature(target, address, i, &signature); in dsp5680xx_f_wr()
2106 int dsp5680xx_f_unlock(struct target *target) in dsp5680xx_f_unlock() argument
2133 retval = eonce_enter_debug_mode_without_reset(target, &eonce_status); in dsp5680xx_f_unlock()
2147 retval = switch_tap(target, tap_chp, tap_cpu); in dsp5680xx_f_unlock()
2152 dsp5680xx_irscan(target, &instr, &ir_out, in dsp5680xx_f_unlock()
2161 retval = switch_tap(target, tap_chp, tap_cpu); in dsp5680xx_f_unlock()
2167 dsp5680xx_irscan(target, &instr, &ir_out, in dsp5680xx_f_unlock()
2172 retval = dsp5680xx_drscan(target, (uint8_t *) &instr, (uint8_t *) &ir_out, 16); in dsp5680xx_f_unlock()
2185 retval = dsp5680xx_drscan(target, (uint8_t *) &instr, (uint8_t *) &ir_out, in dsp5680xx_f_unlock()
2192 dsp5680xx_irscan(target, &instr, &ir_out, in dsp5680xx_f_unlock()
2196 retval = dsp5680xx_drscan(target, (uint8_t *) &instr, (uint8_t *) &ir_out, in dsp5680xx_f_unlock()
2202 target->state = TARGET_RUNNING; in dsp5680xx_f_unlock()
2207 int dsp5680xx_f_lock(struct target *target) in dsp5680xx_f_lock() argument
2215 retval = dsp5680xx_f_wr(target, (uint8_t *) (lock_word), HFM_LOCK_ADDR_L, 2, 1); in dsp5680xx_f_lock()
2240 target->state = TARGET_RUNNING; in dsp5680xx_f_lock()
2244 retval = switch_tap(target, tap_chp, tap_cpu); in dsp5680xx_f_lock()
2248 static int dsp5680xx_step(struct target *target, int current, target_addr_t address, in dsp5680xx_step() argument