#include "config.h"
#endif
-#include <jtag/drivers/libusb_common.h>
+#include <jtag/drivers/libusb_helper.h>
#include <helper/log.h>
#include <helper/time_support.h>
#include <target/target.h>
static enum aice_target_endian data_endian;
/* Constants for AICE command format length */
-static const int32_t AICE_FORMAT_HTDA = 3;
-static const int32_t AICE_FORMAT_HTDC = 7;
-static const int32_t AICE_FORMAT_HTDMA = 4;
-static const int32_t AICE_FORMAT_HTDMB = 8;
-static const int32_t AICE_FORMAT_HTDMC = 8;
-static const int32_t AICE_FORMAT_HTDMD = 12;
-static const int32_t AICE_FORMAT_DTHA = 6;
-static const int32_t AICE_FORMAT_DTHB = 2;
-static const int32_t AICE_FORMAT_DTHMA = 8;
-static const int32_t AICE_FORMAT_DTHMB = 4;
+#define AICE_FORMAT_HTDA (3)
+#define AICE_FORMAT_HTDC (7)
+#define AICE_FORMAT_HTDMA (4)
+#define AICE_FORMAT_HTDMB (8)
+#define AICE_FORMAT_HTDMC (8)
+#define AICE_FORMAT_HTDMD (12)
+#define AICE_FORMAT_DTHA (6)
+#define AICE_FORMAT_DTHB (2)
+#define AICE_FORMAT_DTHMA (8)
+#define AICE_FORMAT_DTHMB (4)
/* Constants for AICE command */
static const uint8_t AICE_CMD_SCAN_CHAIN = 0x00;
/* Read data from USB into in_buffer. */
static int aice_usb_read(uint8_t *in_buffer, int expected_size)
{
- int32_t result = usb_bulk_read_ex(aice_handler.usb_handle, aice_handler.usb_read_ep,
+ int result = usb_bulk_read_ex(aice_handler.usb_handle, aice_handler.usb_read_ep,
(char *)in_buffer, expected_size, AICE_USB_TIMEOUT);
- LOG_DEBUG_IO("aice_usb_read, result = %" PRId32, result);
+ LOG_DEBUG_IO("aice_usb_read, result = %d", result);
return result;
}
i = 0;
while (1) {
- aice_read_ctrl(AICE_READ_CTRL_BATCH_STATUS, &batch_status);
+ int retval = aice_read_ctrl(AICE_READ_CTRL_BATCH_STATUS, &batch_status);
+ if (retval != ERROR_OK)
+ return retval;
if (batch_status & 0x1)
return ERROR_OK;
static int aice_scan_chain(uint32_t *id_codes, uint8_t *num_of_ids)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("SCAN_CHAIN, length: 0x0F");
/** TODO: modify receive length */
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHA);
if (AICE_FORMAT_DTHA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRIu32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHA, result);
return ERROR_FAIL;
}
int aice_read_ctrl(uint32_t address, uint32_t *data)
{
- int32_t result;
-
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
(AICE_COMMAND_MODE_BATCH == aice_command_mode))
aice_usb_packet_flush();
LOG_DEBUG("READ_CTRL, address: 0x%" PRIx32, address);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHA);
if (AICE_FORMAT_DTHA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRIu32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHA, result);
return ERROR_FAIL;
}
int aice_write_ctrl(uint32_t address, uint32_t data)
{
- int32_t result;
-
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
aice_usb_packet_flush();
} else if (AICE_COMMAND_MODE_BATCH == aice_command_mode) {
LOG_DEBUG("WRITE_CTRL, address: 0x%" PRIx32 ", data: 0x%" PRIx32, address, data);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHB);
if (AICE_FORMAT_DTHB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRIu32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHB, result);
return ERROR_FAIL;
}
int aice_read_dtr(uint8_t target_id, uint32_t *data)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("READ_DTR, COREID: %" PRIu8, target_id);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
if (AICE_FORMAT_DTHMA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMA, result);
return ERROR_FAIL;
}
int aice_read_dtr_to_buffer(uint8_t target_id, uint32_t buffer_idx)
{
- int32_t result;
int retry_times = 0;
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
LOG_DEBUG("READ_DTR_TO_BUFFER, COREID: %" PRIu8, target_id);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")", AICE_FORMAT_DTHMB, result);
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)", AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_write_dtr(uint8_t target_id, uint32_t data)
{
- int32_t result;
int retry_times = 0;
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
LOG_DEBUG("WRITE_DTR, COREID: %" PRIu8 ", data: 0x%" PRIx32, target_id, data);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")", AICE_FORMAT_DTHMB, result);
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)", AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_write_dtr_from_buffer(uint8_t target_id, uint32_t buffer_idx)
{
- int32_t result;
int retry_times = 0;
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
LOG_DEBUG("WRITE_DTR_FROM_BUFFER, COREID: %" PRIu8 "", target_id);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")", AICE_FORMAT_DTHMB, result);
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)", AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_read_misc(uint8_t target_id, uint32_t address, uint32_t *data)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("READ_MISC, COREID: %" PRIu8 ", address: 0x%" PRIx32, target_id, address);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
if (AICE_FORMAT_DTHMA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMA, result);
return ERROR_AICE_DISCONNECT;
}
int aice_write_misc(uint8_t target_id, uint32_t address, uint32_t data)
{
- int32_t result;
int retry_times = 0;
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
LOG_DEBUG("WRITE_MISC, COREID: %" PRIu8 ", address: 0x%" PRIx32 ", data: 0x%" PRIx32,
target_id, address, data);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_read_edmsr(uint8_t target_id, uint32_t address, uint32_t *data)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("READ_EDMSR, COREID: %" PRIu8 ", address: 0x%" PRIx32, target_id, address);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
if (AICE_FORMAT_DTHMA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMA, result);
return ERROR_FAIL;
}
int aice_write_edmsr(uint8_t target_id, uint32_t address, uint32_t data)
{
- int32_t result;
int retry_times = 0;
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
LOG_DEBUG("WRITE_EDMSR, COREID: %" PRIu8 ", address: 0x%" PRIx32 ", data: 0x%" PRIx32,
target_id, address, data);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
static int aice_write_dim(uint8_t target_id, uint32_t *word, uint8_t num_of_words)
{
- int32_t result;
uint32_t big_endian_word[4];
int retry_times = 0;
big_endian_word[2],
big_endian_word[3]);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")", AICE_FORMAT_DTHMB, result);
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)", AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
static int aice_do_execute(uint8_t target_id)
{
- int32_t result;
int retry_times = 0;
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
LOG_DEBUG("EXECUTE, COREID: %" PRIu8 "", target_id);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_write_mem_b(uint8_t target_id, uint32_t address, uint32_t data)
{
- int32_t result;
int retry_times = 0;
LOG_DEBUG("WRITE_MEM_B, COREID: %" PRIu8 ", ADDRESS %08" PRIx32 " VALUE %08" PRIx32,
address, data & 0x000000FF, data_endian);
aice_usb_write(usb_out_buffer, AICE_FORMAT_HTDMD);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32
- ", result=%" PRId32 ")", AICE_FORMAT_DTHMB, result);
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)", AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_write_mem_h(uint8_t target_id, uint32_t address, uint32_t data)
{
- int32_t result;
int retry_times = 0;
LOG_DEBUG("WRITE_MEM_H, COREID: %" PRIu8 ", ADDRESS %08" PRIx32 " VALUE %08" PRIx32,
(address >> 1) & 0x7FFFFFFF, data & 0x0000FFFF, data_endian);
aice_usb_write(usb_out_buffer, AICE_FORMAT_HTDMD);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_write_mem(uint8_t target_id, uint32_t address, uint32_t data)
{
- int32_t result;
int retry_times = 0;
LOG_DEBUG("WRITE_MEM, COREID: %" PRIu8 ", ADDRESS %08" PRIx32 " VALUE %08" PRIx32,
(address >> 2) & 0x3FFFFFFF, data, data_endian);
aice_usb_write(usb_out_buffer, AICE_FORMAT_HTDMD);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_fastread_mem(uint8_t target_id, uint8_t *word, uint32_t num_of_words)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("FASTREAD_MEM, COREID: %" PRIu8 ", # of DATA %08" PRIx32,
target_id, num_of_words);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA + (num_of_words - 1) * 4);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA + (num_of_words - 1) * 4);
if (result < 0) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%" PRIu32 ", result=%d)",
AICE_FORMAT_DTHMA + (num_of_words - 1) * 4, result);
return ERROR_FAIL;
}
int aice_fastwrite_mem(uint8_t target_id, const uint8_t *word, uint32_t num_of_words)
{
- int32_t result;
int retry_times = 0;
if (AICE_COMMAND_MODE_PACK == aice_command_mode) {
LOG_DEBUG("FASTWRITE_MEM, COREID: %" PRIu8 ", # of DATA %08" PRIx32,
target_id, num_of_words);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
int aice_read_mem_b(uint8_t target_id, uint32_t address, uint32_t *data)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("READ_MEM_B, COREID: %" PRIu8 "", target_id);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
if (AICE_FORMAT_DTHMA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMA, result);
return ERROR_FAIL;
}
int aice_read_mem_h(uint8_t target_id, uint32_t address, uint32_t *data)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("READ_MEM_H, CORE_ID: %" PRIu8 "", target_id);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
if (AICE_FORMAT_DTHMA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMA, result);
return ERROR_FAIL;
}
int aice_read_mem(uint8_t target_id, uint32_t address, uint32_t *data)
{
- int32_t result;
int retry_times = 0;
if ((AICE_COMMAND_MODE_PACK == aice_command_mode) ||
LOG_DEBUG("READ_MEM, COREID: %" PRIu8 "", target_id);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA);
if (AICE_FORMAT_DTHMA != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMA, result);
return ERROR_FAIL;
}
int aice_batch_buffer_read(uint8_t buf_index, uint32_t *word, uint32_t num_of_words)
{
- int32_t result;
int retry_times = 0;
do {
LOG_DEBUG("BATCH_BUFFER_READ, # of DATA %08" PRIx32, num_of_words);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA + (num_of_words - 1) * 4);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMA + (num_of_words - 1) * 4);
if (result < 0) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%" PRIu32 ", result=%d)",
AICE_FORMAT_DTHMA + (num_of_words - 1) * 4, result);
return ERROR_FAIL;
}
int aice_batch_buffer_write(uint8_t buf_index, const uint8_t *word, uint32_t num_of_words)
{
- int32_t result;
int retry_times = 0;
if (num_of_words == 0)
LOG_DEBUG("BATCH_BUFFER_WRITE, # of DATA %08" PRIx32, num_of_words);
- result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
+ int result = aice_usb_read(usb_in_buffer, AICE_FORMAT_DTHMB);
if (AICE_FORMAT_DTHMB != result) {
- LOG_ERROR("aice_usb_read failed (requested=%" PRId32 ", result=%" PRId32 ")",
+ LOG_ERROR("aice_usb_read failed (requested=%d, result=%d)",
AICE_FORMAT_DTHMB, result);
return ERROR_FAIL;
}
static int check_suppressed_exception(uint32_t coreid, uint32_t dbger_value)
{
- uint32_t ir4_value;
- uint32_t ir6_value;
+ uint32_t ir4_value = 0;
+ uint32_t ir6_value = 0;
/* the default value of handling_suppressed_exception is false */
static bool handling_suppressed_exception;
static int aice_check_dbger(uint32_t coreid, uint32_t expect_status)
{
uint32_t i = 0;
- uint32_t value_dbger;
+ uint32_t value_dbger = 0;
while (1) {
aice_read_misc(coreid, NDS_EDM_MISC_DBGER, &value_dbger);
aice_execute_dim(coreid, instructions, 4);
- uint32_t value_edmsw;
+ uint32_t value_edmsw = 0;
aice_read_edmsr(coreid, NDS_EDM_SR_EDMSW, &value_edmsw);
if (value_edmsw & NDS_EDMSW_WDV)
aice_read_dtr(coreid, val);
LOG_DEBUG("aice_write_reg, reg_no: 0x%08" PRIx32 ", value: 0x%08" PRIx32, num, val);
uint32_t instructions[4]; /** execute instructions in DIM */
- uint32_t value_edmsw;
+ uint32_t value_edmsw = 0;
aice_write_dtr(coreid, val);
aice_read_edmsr(coreid, NDS_EDM_SR_EDMSW, &value_edmsw);
const uint16_t pids[] = { param->pid, 0 };
struct libusb_device_handle *devh;
- if (jtag_libusb_open(vids, pids, NULL, &devh) != ERROR_OK)
+ if (jtag_libusb_open(vids, pids, NULL, &devh, NULL) != ERROR_OK)
return ERROR_FAIL;
/* BE ***VERY CAREFUL*** ABOUT MAKING CHANGES IN THIS
/* reopen jlink after usb_reset
* on win32 this may take a second or two to re-enumerate */
int retval;
- while ((retval = jtag_libusb_open(vids, pids, NULL, &devh)) != ERROR_OK) {
+ while ((retval = jtag_libusb_open(vids, pids, NULL, &devh, NULL)) != ERROR_OK) {
usleep(1000);
timeout--;
if (!timeout)
LOG_DEBUG("backup_tmp_registers -");
/* backup target DTR first(if the target DTR is valid) */
- uint32_t value_edmsw;
+ uint32_t value_edmsw = 0;
aice_read_edmsr(coreid, NDS_EDM_SR_EDMSW, &value_edmsw);
core_info[coreid].edmsw_backup = value_edmsw;
if (value_edmsw & 0x1) { /* EDMSW.WDV == 1 */
{
jtag_libusb_close(aice_handler.usb_handle);
- if (custom_srst_script)
- free(custom_srst_script);
-
- if (custom_trst_script)
- free(custom_trst_script);
-
- if (custom_restart_script)
- free(custom_restart_script);
-
+ free(custom_srst_script);
+ free(custom_trst_script);
+ free(custom_restart_script);
return ERROR_OK;
}
aice_init_edm_registers(coreid, false);
/** Clear EDM_CTL.DBGIM & EDM_CTL.DBGACKM */
- uint32_t edm_ctl_value;
+ uint32_t edm_ctl_value = 0;
aice_read_edmsr(coreid, NDS_EDM_SR_EDM_CTL, &edm_ctl_value);
if (edm_ctl_value & 0x3)
aice_write_edmsr(coreid, NDS_EDM_SR_EDM_CTL, edm_ctl_value & ~(0x3));
- uint32_t dbger;
- uint32_t acc_ctl_value;
+ uint32_t dbger = 0;
+ uint32_t acc_ctl_value = 0;
core_info[coreid].debug_under_dex_on = false;
aice_read_misc(coreid, NDS_EDM_MISC_DBGER, &dbger);
* it is only for debugging 'debug exception handler' purpose.
* after openocd detaches from target, target behavior is
* undefined. */
- uint32_t ir0_value;
+ uint32_t ir0_value = 0;
uint32_t debug_mode_ir0_value;
aice_read_reg(coreid, IR0, &ir0_value);
debug_mode_ir0_value = ir0_value | 0x408; /* turn on DEX, set POM = 1 */
/* check status */
uint32_t i;
- uint32_t batch_status;
+ uint32_t batch_status = 0;
i = 0;
while (1) {