This is an automated email from Gerrit. "Mark O'Donovan <[email protected]>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/9547
-- gerrit commit 28b972bb156d0ddbb2ff0770788eab0c1318ec30 Author: Mark O'Donovan <[email protected]> Date: Sun Mar 29 12:47:17 2026 +0100 target/dsp5680xx: remove err_check() Improve readability by dropping macros containing `return` Change-Id: Iccba4196d1d40405b596957aa53f18c106db1dc7 Signed-off-by: Mark O'Donovan <[email protected]> diff --git a/src/target/dsp5680xx.c b/src/target/dsp5680xx.c index c65a3a0a11..f1ab61d0b0 100644 --- a/src/target/dsp5680xx.c +++ b/src/target/dsp5680xx.c @@ -20,7 +20,6 @@ static struct dsp5680xx_common dsp5680xx_context; #define _E "DSP5680XX_ERROR:%d\nAt:%s:%d:%s" #define err_log(c, m) LOG_ERROR(_E, c, __func__, __LINE__, m) -#define err_check(r, c, m) if (r != ERROR_OK) {LOG_ERROR(_E, c, __func__, __LINE__, m); return r; } #define DEBUG_MSG "Debug mode be enabled to read mem." #define HALT_MSG "Target must be halted." @@ -72,14 +71,13 @@ static int dsp5680xx_drscan(struct target *target, uint8_t *d_in, int retval = ERROR_OK; if (!target->tap) { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_JTAG_INVALID_TAP, - "Invalid tap"); + err_log(DSP5680XX_ERROR_JTAG_INVALID_TAP, "Invalid tap"); + return ERROR_FAIL; } if (len > 32) { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_JTAG_DR_LEN_OVERFLOW, + err_log(DSP5680XX_ERROR_JTAG_DR_LEN_OVERFLOW, "dr_len overflow, maximum is 32"); + return ERROR_FAIL; } /* TODO what values of len are valid for jtag_add_plain_dr_scan? */ /* can i send as many bits as i want? */ @@ -87,8 +85,10 @@ static int dsp5680xx_drscan(struct target *target, uint8_t *d_in, jtag_add_plain_dr_scan(len, d_in, d_out, TAP_IDLE); if (dsp5680xx_context.flush) { retval = dsp5680xx_execute_queue(); - err_check(retval, DSP5680XX_ERROR_JTAG_DRSCAN, - "drscan failed!"); + if (retval != ERROR_OK) { + err_log(DSP5680XX_ERROR_JTAG_DRSCAN, "drscan failed!"); + return retval; + } } if (d_out) LOG_DEBUG("Data read (%d bits): 0x%04X", len, *d_out); @@ -119,18 +119,15 @@ static int dsp5680xx_irscan(struct target *target, uint32_t *d_in, } if (ir_len != target->tap->ir_length) { if (target->tap->enabled) { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_INVALID_IR_LEN, - "Invalid irlen"); + err_log(DSP5680XX_ERROR_INVALID_IR_LEN, "Invalid irlen"); + return ERROR_FAIL; } else { struct jtag_tap *t = jtag_tap_by_string("dsp568013.chp"); if ((!t) || ((t->enabled) && (ir_len != tap_ir_len))) { - retval = ERROR_FAIL; - err_check(retval, - DSP5680XX_ERROR_INVALID_IR_LEN, - "Invalid irlen"); + err_log(DSP5680XX_ERROR_INVALID_IR_LEN, "Invalid irlen"); + return ERROR_FAIL; } } } @@ -138,8 +135,10 @@ static int dsp5680xx_irscan(struct target *target, uint32_t *d_in, TAP_IDLE); if (dsp5680xx_context.flush) { retval = dsp5680xx_execute_queue(); - err_check(retval, DSP5680XX_ERROR_JTAG_IRSCAN, - "irscan failed!"); + if (retval != ERROR_OK) { + err_log(DSP5680XX_ERROR_JTAG_IRSCAN, "irscan failed!"); + return retval; + } } return retval; } @@ -485,10 +484,14 @@ static int core_rx_lower_data(struct target *target, uint8_t *data_read) static int core_move_value_to_pc(struct target *target, uint32_t value) { - if (target->state != TARGET_HALTED) - err_check(ERROR_FAIL, DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG) - if (!dsp5680xx_context.debug_mode_enabled) - err_check(ERROR_FAIL, DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG) + if (target->state != TARGET_HALTED) { + err_log(DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG); + return ERROR_FAIL; + } + if (!dsp5680xx_context.debug_mode_enabled) { + err_log(DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG); + return ERROR_FAIL; + } int retval; retval = @@ -576,11 +579,10 @@ static int switch_tap(struct target *target, struct jtag_tap *master_tap, if (!master_tap) { master_tap = jtag_tap_by_string("dsp568013.chp"); if (!master_tap) { - retval = ERROR_FAIL; const char *msg = "Failed to get master tap."; - err_check(retval, DSP5680XX_ERROR_JTAG_TAP_FIND_MASTER, - msg); + err_log(DSP5680XX_ERROR_JTAG_TAP_FIND_MASTER, msg); + return ERROR_FAIL; } } if (!core_tap) { @@ -734,9 +736,9 @@ static int eonce_enter_debug_mode(struct target *target, tap_chp = jtag_tap_by_string("dsp568013.chp"); if (!tap_chp) { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_JTAG_TAP_FIND_MASTER, + err_log(DSP5680XX_ERROR_JTAG_TAP_FIND_MASTER, "Failed to get master tap."); + return ERROR_FAIL; } tap_cpu = jtag_tap_by_string("dsp568013.cpu"); if (!tap_cpu) { @@ -814,9 +816,8 @@ static int eonce_enter_debug_mode(struct target *target, if ((ir_out & JTAG_STATUS_MASK) == JTAG_STATUS_DEBUG) target->state = TARGET_HALTED; else { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_HALT, - "Failed to halt target."); + err_log(DSP5680XX_ERROR_HALT, "Failed to halt target."); + return ERROR_FAIL; } for (int i = 0; i < 3; i++) { @@ -841,8 +842,8 @@ static int eonce_enter_debug_mode(struct target *target, } else { const char *msg = "Failed to set EOnCE module to debug mode"; - retval = ERROR_TARGET_FAILURE; - err_check(retval, DSP5680XX_ERROR_ENTER_DEBUG_MODE, msg); + err_log(DSP5680XX_ERROR_ENTER_DEBUG_MODE, msg); + return ERROR_TARGET_FAILURE; } if (eonce_status) *eonce_status = data_read_from_dr; @@ -1056,9 +1057,9 @@ static int dsp5680xx_resume(struct target *target, bool current, break; } if (retry == 0) { - retval = ERROR_TARGET_FAILURE; - err_check(retval, DSP5680XX_ERROR_EXIT_DEBUG_MODE, + err_log(DSP5680XX_ERROR_EXIT_DEBUG_MODE, "Failed to exit debug mode..."); + return ERROR_TARGET_FAILURE; } else { target->state = TARGET_RUNNING; dsp5680xx_context.debug_mode_enabled = false; @@ -1074,8 +1075,11 @@ static int dsp5680xx_resume(struct target *target, bool current, jtag_add_sleep(TIME_DIV_FREESCALE * 200 * 1000); retval = reset_jtag(); - err_check(retval, DSP5680XX_ERROR_JTAG_RESET, - "Failed to reset JTAG state machine"); + if (retval != ERROR_OK) { + err_log(DSP5680XX_ERROR_JTAG_RESET, + "Failed to reset JTAG state machine"); + return retval; + } jtag_add_sleep(TIME_DIV_FREESCALE * 100 * 1000); jtag_add_reset(0, 0); jtag_add_sleep(TIME_DIV_FREESCALE * 300 * 1000); @@ -1086,9 +1090,8 @@ static int dsp5680xx_resume(struct target *target, bool current, target->state = TARGET_RUNNING; dsp5680xx_context.debug_mode_enabled = false; } else { - retval = ERROR_TARGET_FAILURE; - err_check(retval, DSP5680XX_ERROR_RESUME, - "Failed to resume target"); + err_log(DSP5680XX_ERROR_RESUME, "Failed to resume target"); + return ERROR_TARGET_FAILURE; } } return ERROR_OK; @@ -1209,10 +1212,14 @@ static int dsp5680xx_read(struct target *t, target_addr_t a, uint32_t size, uint8_t *buffer = buf; - if (target->state != TARGET_HALTED) - err_check(ERROR_FAIL, DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG) - if (!dsp5680xx_context.debug_mode_enabled) - err_check(ERROR_FAIL, DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG) + if (target->state != TARGET_HALTED) { + err_log(DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG); + return ERROR_FAIL; + } + if (!dsp5680xx_context.debug_mode_enabled) { + err_log(DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG); + return ERROR_FAIL; + } int retval = ERROR_OK; @@ -1473,10 +1480,14 @@ static int dsp5680xx_write(struct target *target, target_addr_t a, uint32_t size uint8_t const *buffer = b; - if (target->state != TARGET_HALTED) - err_check(ERROR_FAIL, DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG) - if (!dsp5680xx_context.debug_mode_enabled) - err_check(ERROR_FAIL, DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG) + if (target->state != TARGET_HALTED) { + err_log(DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG); + return ERROR_FAIL; + } + if (!dsp5680xx_context.debug_mode_enabled) { + err_log(DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG); + return ERROR_FAIL; + } int retval = 0; @@ -1500,10 +1511,8 @@ static int dsp5680xx_write(struct target *target, target_addr_t a, uint32_t size dsp5680xx_write_32(target, address, count, buffer, p_mem); break; default: - retval = ERROR_TARGET_DATA_ABORT; - err_check(retval, DSP5680XX_ERROR_INVALID_DATA_SIZE_UNIT, - "Invalid data size."); - break; + err_log(DSP5680XX_ERROR_INVALID_DATA_SIZE_UNIT, "Invalid data size."); + return ERROR_TARGET_DATA_ABORT; } return retval; } @@ -1511,10 +1520,14 @@ static int dsp5680xx_write(struct target *target, target_addr_t a, uint32_t size static int dsp5680xx_write_buffer(struct target *t, target_addr_t a, uint32_t size, const uint8_t *b) { - if (t->state != TARGET_HALTED) - err_check(ERROR_FAIL, DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG) - if (!dsp5680xx_context.debug_mode_enabled) - err_check(ERROR_FAIL, DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG) + if (t->state != TARGET_HALTED) { + err_log(DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG); + return ERROR_FAIL; + } + if (!dsp5680xx_context.debug_mode_enabled) { + err_log(DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG); + return ERROR_FAIL; + } return dsp5680xx_write(t, a, 1, size, b); } @@ -1531,10 +1544,14 @@ static int dsp5680xx_write_buffer(struct target *t, target_addr_t a, uint32_t si static int dsp5680xx_read_buffer(struct target *target, target_addr_t address, uint32_t size, uint8_t *buffer) { - if (target->state != TARGET_HALTED) - err_check(ERROR_FAIL, DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG) - if (!dsp5680xx_context.debug_mode_enabled) - err_check(ERROR_FAIL, DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG) + if (target->state != TARGET_HALTED) { + err_log(DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG); + return ERROR_FAIL; + } + if (!dsp5680xx_context.debug_mode_enabled) { + err_log(DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG); + return ERROR_FAIL; + } /* The "/2" solves the byte/word addressing issue.*/ return dsp5680xx_read(target, address, 2, size / 2, buffer); @@ -1644,15 +1661,19 @@ int dsp5680xx_f_protect_check(struct target *target, uint16_t *protected) { int retval; - if (target->state != TARGET_HALTED) - err_check(ERROR_FAIL, DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG) - if (!dsp5680xx_context.debug_mode_enabled) - err_check(ERROR_FAIL, DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG) + if (target->state != TARGET_HALTED) { + err_log(DSP5680XX_ERROR_TARGET_RUNNING, HALT_MSG); + return ERROR_FAIL; + } + if (!dsp5680xx_context.debug_mode_enabled) { + err_log(DSP5680XX_ERROR_NOT_IN_DEBUG, DEBUG_MSG); + return ERROR_FAIL; + } if (!protected) { const char *msg = "NULL pointer not valid."; - err_check(ERROR_FAIL, - DSP5680XX_ERROR_PROTECT_CHECK_INVALID_ARGS, msg); + err_log(DSP5680XX_ERROR_PROTECT_CHECK_INVALID_ARGS, msg); + return ERROR_FAIL; } retval = dsp5680xx_read_16_single(target, HFM_BASE_ADDR | HFM_PROT, @@ -1700,10 +1721,10 @@ static int dsp5680xx_f_ex(struct target *target, uint16_t c, uint32_t address, u if (retval != ERROR_OK) return retval; if ((watchdog--) == 1) { - retval = ERROR_TARGET_FAILURE; const char *msg = "Timed out waiting for FM to finish old command."; - err_check(retval, DSP5680XX_ERROR_FM_BUSY, msg); + err_log(DSP5680XX_ERROR_FM_BUSY, msg); + return ERROR_TARGET_FAILURE; } } while (!(i[0] & 0x40)); /* wait until current command is complete */ @@ -1775,17 +1796,17 @@ static int dsp5680xx_f_ex(struct target *target, uint16_t c, uint32_t address, u if (retval != ERROR_OK) return retval; if ((watchdog--) == 1) { - retval = ERROR_TARGET_FAILURE; - err_check(retval, DSP5680XX_ERROR_FM_CMD_TIMED_OUT, + err_log(DSP5680XX_ERROR_FM_CMD_TIMED_OUT, "FM execution did not finish."); + return ERROR_TARGET_FAILURE; } } while (!(i[0] & 0x40)); /* wait until the command is complete */ *hfm_ustat = ((i[0] << 8) | (i[1])); if (i[0] & HFM_USTAT_MASK_PVIOL_ACCER) { - retval = ERROR_TARGET_FAILURE; const char *msg = "pviol and/or accer bits set. HFM command execution error"; - err_check(retval, DSP5680XX_ERROR_FM_EXEC, msg); + err_log(DSP5680XX_ERROR_FM_EXEC, msg); + return ERROR_TARGET_FAILURE; } return ERROR_OK; } @@ -1851,9 +1872,8 @@ static int set_fm_ck_div(struct target *target) if (retval != ERROR_OK) return retval; if (i[0] != (0x80 | (HFM_CLK_DEFAULT & 0x7f))) { - retval = ERROR_TARGET_FAILURE; - err_check(retval, DSP5680XX_ERROR_FM_SET_CLK, - "Unable to set HFM CLK divisor."); + err_log(DSP5680XX_ERROR_FM_SET_CLK, "Unable to set HFM CLK divisor."); + return ERROR_TARGET_FAILURE; } if (hfm_at_wrong_value) LOG_DEBUG("HFM CLK divisor set to 0x%02x.", i[0] & 0x7f); @@ -1886,8 +1906,10 @@ static int dsp5680xx_f_signature(struct target *target, uint32_t address, uint32 /* * Generate error here, since it is not done in eonce_enter_debug_mode_without_reset */ - err_check(retval, DSP5680XX_ERROR_HALT, - "Failed to halt target."); + if (retval != ERROR_OK) { + err_log(DSP5680XX_ERROR_HALT, "Failed to halt target."); + return retval; + } } retval = dsp5680xx_f_ex(target, HFM_CALCULATE_DATA_SIGNATURE, address, words, @@ -2154,11 +2176,10 @@ int dsp5680xx_f_wr(struct target *t, const uint8_t *b, uint32_t a, uint32_t coun return retval; if (count % 2) { /* TODO implement handling of odd number of words. */ - retval = ERROR_FAIL; const char *msg = "Cannot handle odd number of words."; - err_check(retval, DSP5680XX_ERROR_FLASHING_INVALID_WORD_COUNT, - msg); + err_log(DSP5680XX_ERROR_FLASHING_INVALID_WORD_COUNT, msg); + return ERROR_FAIL; } dsp5680xx_context.flush = 1; @@ -2211,10 +2232,10 @@ int dsp5680xx_f_wr(struct target *t, const uint8_t *b, uint32_t a, uint32_t coun return retval; pc_crc = perl_crc(buffer, i); if (pc_crc != signature) { - retval = ERROR_FAIL; const char *msg = "Flashed data failed CRC check, flash again!"; - err_check(retval, DSP5680XX_ERROR_FLASHING_CRC, msg); + err_log(DSP5680XX_ERROR_FLASHING_CRC, msg); + return ERROR_FAIL; } } return retval; @@ -2236,15 +2257,15 @@ int dsp5680xx_f_unlock(struct target *target) tap_chp = jtag_tap_by_string("dsp568013.chp"); if (!tap_chp) { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_JTAG_TAP_ENABLE_MASTER, + err_log(DSP5680XX_ERROR_JTAG_TAP_ENABLE_MASTER, "Failed to get master tap."); + return ERROR_FAIL; } tap_cpu = jtag_tap_by_string("dsp568013.cpu"); if (!tap_cpu) { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_JTAG_TAP_ENABLE_CORE, + err_log(DSP5680XX_ERROR_JTAG_TAP_ENABLE_CORE, "Failed to get master tap."); + return ERROR_FAIL; } retval = eonce_enter_debug_mode_without_reset(target, &eonce_status); @@ -2255,8 +2276,11 @@ int dsp5680xx_f_unlock(struct target *target) jtag_add_sleep(TIME_DIV_FREESCALE * 200 * 1000); retval = reset_jtag(); - err_check(retval, DSP5680XX_ERROR_JTAG_RESET, - "Failed to reset JTAG state machine"); + if (retval != ERROR_OK) { + err_log(DSP5680XX_ERROR_JTAG_RESET, + "Failed to reset JTAG state machine"); + return retval; + } jtag_add_sleep(150); /* Enable core tap */ @@ -2299,8 +2323,11 @@ int dsp5680xx_f_unlock(struct target *target) jtag_add_sleep(TIME_DIV_FREESCALE * 200 * 1000); retval = reset_jtag(); - err_check(retval, DSP5680XX_ERROR_JTAG_RESET, - "Failed to reset JTAG state machine"); + if (retval != ERROR_OK) { + err_log(DSP5680XX_ERROR_JTAG_RESET, + "Failed to reset JTAG state machine"); + return retval; + } jtag_add_sleep(150); instr = 0x0606ffff; @@ -2345,17 +2372,20 @@ int dsp5680xx_f_lock(struct target *target) jtag_add_sleep(TIME_DIV_FREESCALE * 200 * 1000); retval = reset_jtag(); - err_check(retval, DSP5680XX_ERROR_JTAG_RESET, - "Failed to reset JTAG state machine"); + if (retval != ERROR_OK) { + err_log(DSP5680XX_ERROR_JTAG_RESET, + "Failed to reset JTAG state machine"); + return retval; + } jtag_add_sleep(TIME_DIV_FREESCALE * 100 * 1000); jtag_add_reset(0, 0); jtag_add_sleep(TIME_DIV_FREESCALE * 300 * 1000); tap_chp = jtag_tap_by_string("dsp568013.chp"); if (!tap_chp) { - retval = ERROR_FAIL; - err_check(retval, DSP5680XX_ERROR_JTAG_TAP_ENABLE_MASTER, + err_log(DSP5680XX_ERROR_JTAG_TAP_ENABLE_MASTER, "Failed to get master tap."); + return ERROR_FAIL; } tap_cpu = jtag_tap_by_string("dsp568013.cpu"); if (!tap_cpu) { --
