added verbose level in avrdude_message()

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1321 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
awachtler
2014-06-13 20:07:40 +00:00
parent 81a6464d53
commit bb48be1ac0
45 changed files with 1854 additions and 2128 deletions

298
jtag3.c
View File

@@ -109,7 +109,7 @@ static unsigned int jtag3_memaddr(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m, uns
void jtag3_setup(PROGRAMMER * pgm)
{
if ((pgm->cookie = malloc(sizeof(struct pdata))) == 0) {
avrdude_message("%s: jtag3_setup(): Out of memory allocating private data\n",
avrdude_message(MSG_INFO, "%s: jtag3_setup(): Out of memory allocating private data\n",
progname);
exit(1);
}
@@ -168,7 +168,7 @@ static void jtag3_print_data(unsigned char *b, size_t s)
return;
for (i = 0; i < s; i++) {
avrdude_message("0x%02x", b[i]);
avrdude_message(MSG_INFO, "0x%02x", b[i]);
if (i % 16 == 15)
putc('\n', stderr);
else
@@ -183,10 +183,10 @@ static void jtag3_prmsg(PROGRAMMER * pgm, unsigned char * data, size_t len)
int i;
if (verbose >= 4) {
avrdude_message("Raw message:\n");
avrdude_message(MSG_TRACE, "Raw message:\n");
for (i = 0; i < len; i++) {
avrdude_message("%02x ", data[i]);
avrdude_message(MSG_TRACE, "%02x ", data[i]);
if (i % 16 == 15)
putc('\n', stderr);
else
@@ -198,34 +198,34 @@ static void jtag3_prmsg(PROGRAMMER * pgm, unsigned char * data, size_t len)
switch (data[0]) {
case SCOPE_INFO:
avrdude_message("[info] ");
avrdude_message(MSG_INFO, "[info] ");
break;
case SCOPE_GENERAL:
avrdude_message("[general] ");
avrdude_message(MSG_INFO, "[general] ");
break;
case SCOPE_AVR_ISP:
avrdude_message("[AVRISP] ");
avrdude_message(MSG_INFO, "[AVRISP] ");
jtag3_print_data(data + 1, len - 1);
return;
case SCOPE_AVR:
avrdude_message("[AVR] ");
avrdude_message(MSG_INFO, "[AVR] ");
break;
default:
avrdude_message("[scope 0x%02x] ", data[0]);
avrdude_message(MSG_INFO, "[scope 0x%02x] ", data[0]);
break;
}
switch (data[1]) {
case RSP3_OK:
avrdude_message("OK\n");
avrdude_message(MSG_INFO, "OK\n");
break;
case RSP3_FAILED:
avrdude_message("FAILED");
avrdude_message(MSG_INFO, "FAILED");
if (len > 3)
{
char reason[50];
@@ -264,26 +264,26 @@ static void jtag3_prmsg(PROGRAMMER * pgm, unsigned char * data, size_t len)
strcpy(reason, "debugWIRE communication failed");
break;
}
avrdude_message(", reason: %s\n", reason);
avrdude_message(MSG_INFO, ", reason: %s\n", reason);
}
else
{
avrdude_message(", unspecified reason\n");
avrdude_message(MSG_INFO, ", unspecified reason\n");
}
break;
case RSP3_DATA:
avrdude_message("Data returned:\n");
avrdude_message(MSG_INFO, "Data returned:\n");
jtag3_print_data(data + 2, len - 2);
break;
case RSP3_INFO:
avrdude_message("Info returned:\n");
avrdude_message(MSG_INFO, "Info returned:\n");
for (i = 2; i < len; i++) {
if (isprint(data[i]))
putc(data[i], stderr);
else
avrdude_message("\\%03o", data[i]);
avrdude_message(MSG_INFO, "\\%03o", data[i]);
}
putc('\n', stderr);
break;
@@ -291,18 +291,18 @@ static void jtag3_prmsg(PROGRAMMER * pgm, unsigned char * data, size_t len)
case RSP3_PC:
if (len < 7)
{
avrdude_message("PC reply too short\n");
avrdude_message(MSG_INFO, "PC reply too short\n");
}
else
{
unsigned long pc = (data[6] << 24) | (data[5] << 16)
| (data[4] << 8) | data[3];
avrdude_message("PC 0x%0lx\n", pc);
avrdude_message(MSG_INFO, "PC 0x%0lx\n", pc);
}
break;
default:
avrdude_message("unknown message 0x%02x\n", data[1]);
avrdude_message(MSG_INFO, "unknown message 0x%02x\n", data[1]);
}
}
@@ -311,10 +311,10 @@ static void jtag3_prevent(PROGRAMMER * pgm, unsigned char * data, size_t len)
int i;
if (verbose >= 4) {
avrdude_message("Raw event:\n");
avrdude_message(MSG_TRACE, "Raw event:\n");
for (i = 0; i < len; i++) {
avrdude_message("%02x ", data[i]);
avrdude_message(MSG_TRACE, "%02x ", data[i]);
if (i % 16 == 15)
putc('\n', stderr);
else
@@ -324,47 +324,47 @@ static void jtag3_prevent(PROGRAMMER * pgm, unsigned char * data, size_t len)
putc('\n', stderr);
}
avrdude_message("Event serial 0x%04x, ",
avrdude_message(MSG_INFO, "Event serial 0x%04x, ",
(data[3] << 8) | data[2]);
switch (data[4]) {
case SCOPE_INFO:
avrdude_message("[info] ");
avrdude_message(MSG_INFO, "[info] ");
break;
case SCOPE_GENERAL:
avrdude_message("[general] ");
avrdude_message(MSG_INFO, "[general] ");
break;
case SCOPE_AVR:
avrdude_message("[AVR] ");
avrdude_message(MSG_INFO, "[AVR] ");
break;
default:
avrdude_message("[scope 0x%02x] ", data[0]);
avrdude_message(MSG_INFO, "[scope 0x%02x] ", data[0]);
break;
}
switch (data[5]) {
case EVT3_BREAK:
avrdude_message("BREAK");
avrdude_message(MSG_INFO, "BREAK");
if (len >= 11) {
avrdude_message(", PC = 0x%lx, reason ", b4_to_u32(data + 6));
avrdude_message(MSG_INFO, ", PC = 0x%lx, reason ", b4_to_u32(data + 6));
switch (data[10]) {
case 0x00:
avrdude_message("unspecified");
avrdude_message(MSG_INFO, "unspecified");
break;
case 0x01:
avrdude_message("program break");
avrdude_message(MSG_INFO, "program break");
break;
case 0x02:
avrdude_message("data break PDSB");
avrdude_message(MSG_INFO, "data break PDSB");
break;
case 0x03:
avrdude_message("data break PDMSB");
avrdude_message(MSG_INFO, "data break PDMSB");
break;
default:
avrdude_message("unknown: 0x%02x", data[10]);
avrdude_message(MSG_INFO, "unknown: 0x%02x", data[10]);
}
/* There are two more bytes of data which always appear to be
* 0x01, 0x00. Purpose unknown. */
@@ -373,24 +373,24 @@ static void jtag3_prevent(PROGRAMMER * pgm, unsigned char * data, size_t len)
case EVT3_SLEEP:
if (len >= 8 && data[7] == 0)
avrdude_message("sleeping");
avrdude_message(MSG_INFO, "sleeping");
else if (len >= 8 && data[7] == 1)
avrdude_message("wakeup");
avrdude_message(MSG_INFO, "wakeup");
else
avrdude_message("unknown SLEEP event");
avrdude_message(MSG_INFO, "unknown SLEEP event");
break;
case EVT3_POWER:
if (len >= 8 && data[7] == 0)
avrdude_message("power-down");
avrdude_message(MSG_INFO, "power-down");
else if (len >= 8 && data[7] == 1)
avrdude_message("power-up");
avrdude_message(MSG_INFO, "power-up");
else
avrdude_message("unknown POWER event");
avrdude_message(MSG_INFO, "unknown POWER event");
break;
default:
avrdude_message("UNKNOWN 0x%02x", data[5]);
avrdude_message(MSG_INFO, "UNKNOWN 0x%02x", data[5]);
break;
}
putc('\n', stderr);
@@ -405,13 +405,12 @@ int jtag3_send(PROGRAMMER * pgm, unsigned char * data, size_t len)
if (pgm->flag & PGM_FL_IS_EDBG)
return jtag3_edbg_send(pgm, data, len);
if (verbose >= 3)
avrdude_message("\n%s: jtag3_send(): sending %lu bytes\n",
avrdude_message(MSG_DEBUG, "\n%s: jtag3_send(): sending %lu bytes\n",
progname, (unsigned long)len);
if ((buf = malloc(len + 4)) == NULL)
{
avrdude_message("%s: jtag3_send(): out of memory",
avrdude_message(MSG_INFO, "%s: jtag3_send(): out of memory",
progname);
return -1;
}
@@ -422,7 +421,7 @@ int jtag3_send(PROGRAMMER * pgm, unsigned char * data, size_t len)
memcpy(buf + 4, data, len);
if (serial_send(&pgm->fd, buf, len + 4) != 0) {
avrdude_message("%s: jtag3_send(): failed to send command to serial port\n",
avrdude_message(MSG_INFO, "%s: jtag3_send(): failed to send command to serial port\n",
progname);
return -1;
}
@@ -444,13 +443,12 @@ static int jtag3_edbg_send(PROGRAMMER * pgm, unsigned char * data, size_t len)
memset(status, 0, USBDEV_MAX_XFER_3);
}
if (verbose >= 3)
avrdude_message("\n%s: jtag3_edbg_send(): sending %lu bytes\n",
avrdude_message(MSG_DEBUG, "\n%s: jtag3_edbg_send(): sending %lu bytes\n",
progname, (unsigned long)len);
if (len + 8 > USBDEV_MAX_XFER_3)
{
avrdude_message("%s: jtag3_edbg_send(): Fragmentation not (yet) implemented!\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_send(): Fragmentation not (yet) implemented!\n",
progname);
return -1;
}
@@ -464,7 +462,7 @@ static int jtag3_edbg_send(PROGRAMMER * pgm, unsigned char * data, size_t len)
memcpy(buf + 8, data, len);
if (serial_send(&pgm->fd, buf, USBDEV_MAX_XFER_3) != 0) {
avrdude_message("%s: jtag3_edbg_send(): failed to send command to serial port\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_send(): failed to send command to serial port\n",
progname);
return -1;
}
@@ -472,15 +470,14 @@ static int jtag3_edbg_send(PROGRAMMER * pgm, unsigned char * data, size_t len)
if (rv < 0) {
/* timeout in receive */
if (verbose > 1)
avrdude_message("%s: jtag3_edbg_send(): Timeout receiving packet\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_edbg_send(): Timeout receiving packet\n",
progname);
return -1;
}
if (status[0] != EDBG_VENDOR_AVR_CMD || status[1] != 0x01)
{
/* what to do in this case? */
avrdude_message("%s: jtag3_edbg_send(): Unexpected response 0x%02x, 0x%02x\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_send(): Unexpected response 0x%02x, 0x%02x\n",
progname, status[0], status[1]);
}
@@ -496,8 +493,7 @@ static int jtag3_edbg_prepare(PROGRAMMER * pgm)
unsigned char status[USBDEV_MAX_XFER_3];
int rv;
if (verbose >= 3)
avrdude_message("\n%s: jtag3_edbg_prepare()\n",
avrdude_message(MSG_DEBUG, "\n%s: jtag3_edbg_prepare()\n",
progname);
if (verbose >= 4)
@@ -506,41 +502,40 @@ static int jtag3_edbg_prepare(PROGRAMMER * pgm)
buf[0] = CMSISDAP_CMD_CONNECT;
buf[1] = CMSISDAP_CONN_SWD;
if (serial_send(&pgm->fd, buf, USBDEV_MAX_XFER_3) != 0) {
avrdude_message("%s: jtag3_edbg_prepare(): failed to send command to serial port\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_prepare(): failed to send command to serial port\n",
progname);
return -1;
}
rv = serial_recv(&pgm->fd, status, USBDEV_MAX_XFER_3);
if (rv != USBDEV_MAX_XFER_3) {
avrdude_message("%s: jtag3_edbg_prepare(): failed to read from serial port (%d)\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_prepare(): failed to read from serial port (%d)\n",
progname, rv);
return -1;
}
if (status[0] != CMSISDAP_CMD_CONNECT ||
status[1] == 0)
avrdude_message("%s: jtag3_edbg_prepare(): unexpected response 0x%02x, 0x%02x\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_prepare(): unexpected response 0x%02x, 0x%02x\n",
progname, status[0], status[1]);
if (verbose >= 2)
avrdude_message("%s: jtag3_edbg_prepare(): connection status 0x%02x\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_edbg_prepare(): connection status 0x%02x\n",
progname, status[1]);
buf[0] = CMSISDAP_CMD_LED;
buf[1] = CMSISDAP_LED_CONNECT;
buf[2] = 1;
if (serial_send(&pgm->fd, buf, USBDEV_MAX_XFER_3) != 0) {
avrdude_message("%s: jtag3_edbg_prepare(): failed to send command to serial port\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_prepare(): failed to send command to serial port\n",
progname);
return -1;
}
rv = serial_recv(&pgm->fd, status, USBDEV_MAX_XFER_3);
if (rv != USBDEV_MAX_XFER_3) {
avrdude_message("%s: jtag3_edbg_prepare(): failed to read from serial port (%d)\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_prepare(): failed to read from serial port (%d)\n",
progname, rv);
return -1;
}
if (status[0] != CMSISDAP_CMD_LED ||
status[1] != 0)
avrdude_message("%s: jtag3_edbg_prepare(): unexpected response 0x%02x, 0x%02x\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_prepare(): unexpected response 0x%02x, 0x%02x\n",
progname, status[0], status[1]);
return 0;
@@ -556,8 +551,7 @@ static int jtag3_edbg_signoff(PROGRAMMER * pgm)
unsigned char status[USBDEV_MAX_XFER_3];
int rv;
if (verbose >= 3)
avrdude_message("\n%s: jtag3_edbg_signoff()\n",
avrdude_message(MSG_DEBUG, "\n%s: jtag3_edbg_signoff()\n",
progname);
if (verbose >= 4)
@@ -567,36 +561,36 @@ static int jtag3_edbg_signoff(PROGRAMMER * pgm)
buf[1] = CMSISDAP_LED_CONNECT;
buf[2] = 0;
if (serial_send(&pgm->fd, buf, USBDEV_MAX_XFER_3) != 0) {
avrdude_message("%s: jtag3_edbg_signoff(): failed to send command to serial port\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_signoff(): failed to send command to serial port\n",
progname);
return -1;
}
rv = serial_recv(&pgm->fd, status, USBDEV_MAX_XFER_3);
if (rv != USBDEV_MAX_XFER_3) {
avrdude_message("%s: jtag3_edbg_signoff(): failed to read from serial port (%d)\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_signoff(): failed to read from serial port (%d)\n",
progname, rv);
return -1;
}
if (status[0] != CMSISDAP_CMD_LED ||
status[1] != 0)
avrdude_message("%s: jtag3_edbg_signoff(): unexpected response 0x%02x, 0x%02x\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_signoff(): unexpected response 0x%02x, 0x%02x\n",
progname, status[0], status[1]);
buf[0] = CMSISDAP_CMD_DISCONNECT;
if (serial_send(&pgm->fd, buf, USBDEV_MAX_XFER_3) != 0) {
avrdude_message("%s: jtag3_edbg_signoff(): failed to send command to serial port\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_signoff(): failed to send command to serial port\n",
progname);
return -1;
}
rv = serial_recv(&pgm->fd, status, USBDEV_MAX_XFER_3);
if (rv != USBDEV_MAX_XFER_3) {
avrdude_message("%s: jtag3_edbg_signoff(): failed to read from serial port (%d)\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_signoff(): failed to read from serial port (%d)\n",
progname, rv);
return -1;
}
if (status[0] != CMSISDAP_CMD_DISCONNECT ||
status[1] != 0)
avrdude_message("%s: jtag3_edbg_signoff(): unexpected response 0x%02x, 0x%02x\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_signoff(): unexpected response 0x%02x, 0x%02x\n",
progname, status[0], status[1]);
return 0;
@@ -624,11 +618,10 @@ static int jtag3_recv_frame(PROGRAMMER * pgm, unsigned char **msg) {
if (pgm->flag & PGM_FL_IS_EDBG)
return jtag3_edbg_recv_frame(pgm, msg);
if (verbose >= 4)
avrdude_message("%s: jtag3_recv():\n", progname);
avrdude_message(MSG_TRACE, "%s: jtag3_recv():\n", progname);
if ((buf = malloc(pgm->fd.usb.max_xfer)) == NULL) {
avrdude_message("%s: jtag3_recv(): out of memory\n",
avrdude_message(MSG_INFO, "%s: jtag3_recv(): out of memory\n",
progname);
return -1;
}
@@ -639,8 +632,7 @@ static int jtag3_recv_frame(PROGRAMMER * pgm, unsigned char **msg) {
if (rv < 0) {
/* timeout in receive */
if (verbose > 1)
avrdude_message("%s: jtag3_recv(): Timeout receiving packet\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_recv(): Timeout receiving packet\n",
progname);
free(buf);
return -1;
@@ -655,11 +647,10 @@ static int jtag3_edbg_recv_frame(PROGRAMMER * pgm, unsigned char **msg) {
int rv, len;
unsigned char *buf = NULL;
if (verbose >= 4)
avrdude_message("%s: jtag3_edbg_recv():\n", progname);
avrdude_message(MSG_TRACE, "%s: jtag3_edbg_recv():\n", progname);
if ((buf = malloc(USBDEV_MAX_XFER_3)) == NULL) {
avrdude_message("%s: jtag3_edbg_recv(): out of memory\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_recv(): out of memory\n",
progname);
return -1;
}
@@ -667,7 +658,7 @@ static int jtag3_edbg_recv_frame(PROGRAMMER * pgm, unsigned char **msg) {
buf[0] = EDBG_VENDOR_AVR_RSP;
if (serial_send(&pgm->fd, buf, USBDEV_MAX_XFER_3) != 0) {
avrdude_message("%s: jtag3_edbg_recv(): error sending CMSIS-DAP vendor command\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_recv(): error sending CMSIS-DAP vendor command\n",
progname);
return -1;
}
@@ -676,8 +667,7 @@ static int jtag3_edbg_recv_frame(PROGRAMMER * pgm, unsigned char **msg) {
if (rv < 0) {
/* timeout in receive */
if (verbose > 1)
avrdude_message("%s: jtag3_edbg_recv(): Timeout receiving packet\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_edbg_recv(): Timeout receiving packet\n",
progname);
free(buf);
return -1;
@@ -685,14 +675,14 @@ static int jtag3_edbg_recv_frame(PROGRAMMER * pgm, unsigned char **msg) {
if (buf[0] != EDBG_VENDOR_AVR_RSP ||
buf[1] != ((1 << 4) | 1)) {
avrdude_message("%s: jtag3_edbg_recv(): Unexpected response 0x%02x, 0x%02x\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_recv(): Unexpected response 0x%02x, 0x%02x\n",
progname, buf[0], buf[1]);
return -1;
}
/* calculate length from response; CMSIS-DAP response might be larger */
len = (buf[2] << 8) | buf[3];
if (len > rv + 4) {
avrdude_message("%s: jtag3_edbg_recv(): Unexpected length value (%d > %d)\n",
avrdude_message(MSG_INFO, "%s: jtag3_edbg_recv(): Unexpected length value (%d > %d)\n",
progname, len, rv + 4);
len = rv + 4;
}
@@ -721,8 +711,7 @@ int jtag3_recv(PROGRAMMER * pgm, unsigned char **msg) {
rv &= USB_RECV_LENGTH_MASK;
r_seqno = ((*msg)[2] << 8) | (*msg)[1];
if (verbose >= 3)
avrdude_message("%s: jtag3_recv(): "
avrdude_message(MSG_DEBUG, "%s: jtag3_recv(): "
"Got message seqno %d (command_sequence == %d)\n",
progname, r_seqno, PDATA(pgm)->command_sequence);
if (r_seqno == PDATA(pgm)->command_sequence) {
@@ -738,8 +727,7 @@ int jtag3_recv(PROGRAMMER * pgm, unsigned char **msg) {
return rv;
}
if (verbose >= 2)
avrdude_message("%s: jtag3_recv(): "
avrdude_message(MSG_NOTICE2, "%s: jtag3_recv(): "
"got wrong sequence number, %u != %u\n",
progname, r_seqno, PDATA(pgm)->command_sequence);
@@ -753,8 +741,7 @@ int jtag3_recv(PROGRAMMER * pgm, unsigned char **msg) {
int status;
unsigned char c;
if (verbose >= 2)
avrdude_message("%s: Sending %s command: ",
avrdude_message(MSG_NOTICE2, "%s: Sending %s command: ",
progname, descr);
jtag3_send(pgm, cmd, cmdlen);
@@ -762,18 +749,19 @@ int jtag3_recv(PROGRAMMER * pgm, unsigned char **msg) {
if (status <= 0) {
if (verbose >= 2)
putc('\n', stderr);
avrdude_message("%s: %s command: timeout/error communicating with programmer (status %d)\n",
avrdude_message(MSG_NOTICE2, "%s: %s command: timeout/error communicating with programmer (status %d)\n",
progname, descr, status);
return -1;
} else if (verbose >= 3) {
putc('\n', stderr);
jtag3_prmsg(pgm, *resp, status);
} else if (verbose == 2)
avrdude_message("0x%02x (%d bytes msg)\n", (*resp)[1], status);
} else {
avrdude_message(MSG_NOTICE2, "0x%02x (%d bytes msg)\n", (*resp)[1], status);
}
c = (*resp)[1];
if ((c & RSP3_STATUS_MASK) != RSP3_OK) {
avrdude_message("%s: bad response to %s command: 0x%02x\n",
avrdude_message(MSG_INFO, "%s: bad response to %s command: 0x%02x\n",
progname, descr, c);
free(*resp);
resp = 0;
@@ -788,8 +776,7 @@ int jtag3_getsync(PROGRAMMER * pgm, int mode) {
unsigned char buf[3], *resp;
if (verbose >= 3)
avrdude_message("%s: jtag3_getsync()\n", progname);
avrdude_message(MSG_DEBUG, "%s: jtag3_getsync()\n", progname);
if (pgm->flag & PGM_FL_IS_EDBG) {
if (jtag3_edbg_prepare(pgm) < 0)
@@ -835,7 +822,7 @@ static int jtag3_chip_erase(PROGRAMMER * pgm, AVRPART * p)
static int jtag3_chip_erase_dw(PROGRAMMER * pgm, AVRPART * p)
{
avrdude_message("%s: Chip erase not supported in debugWire mode\n",
avrdude_message(MSG_INFO, "%s: Chip erase not supported in debugWire mode\n",
progname);
return 0;
@@ -865,8 +852,7 @@ static int jtag3_program_enable(PROGRAMMER * pgm)
}
/* XXX activate external reset here */
if (verbose > 0)
avrdude_message("%s: retrying with external reset applied\n",
avrdude_message(MSG_NOTICE, "%s: retrying with external reset applied\n",
progname);
}
@@ -939,10 +925,10 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
if (jtag3_getparm(pgm, SCOPE_GENERAL, 0, PARM3_FW_MAJOR, parm, 2) < 0)
return -1;
if (pgm->fd.usb.max_xfer < USBDEV_MAX_XFER_3 && (pgm->flag & PGM_FL_IS_EDBG) == 0) {
avrdude_message("%s: the JTAGICE3's firmware %d.%d is broken on USB 1.1 connections, sorry\n",
avrdude_message(MSG_INFO, "%s: the JTAGICE3's firmware %d.%d is broken on USB 1.1 connections, sorry\n",
progname, parm[0], parm[1]);
if (ovsigck) {
avrdude_message("%s: forced to continue by option -F; THIS PUTS THE DEVICE'S DATA INTEGRITY AT RISK!\n",
avrdude_message(MSG_INFO, "%s: forced to continue by option -F; THIS PUTS THE DEVICE'S DATA INTEGRITY AT RISK!\n",
progname);
} else {
return -1;
@@ -964,7 +950,7 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
}
if (conn == 0) {
avrdude_message("%s: jtag3_initialize(): part %s has no %s interface\n",
avrdude_message(MSG_INFO, "%s: jtag3_initialize(): part %s has no %s interface\n",
progname, p->desc, ifname);
return -1;
}
@@ -997,8 +983,7 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
if (pgm->bitclock != 0.0 && PDATA(pgm)->set_sck != NULL)
{
unsigned int clock = 1E-3 / pgm->bitclock; /* kHz */
if (verbose >= 2)
avrdude_message("%s: jtag3_initialize(): "
avrdude_message(MSG_NOTICE2, "%s: jtag3_initialize(): "
"trying to set JTAG clock to %u kHz\n",
progname, clock);
parm[0] = clock & 0xff;
@@ -1009,8 +994,7 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
if (conn == PARM3_CONN_JTAG)
{
if (verbose >= 2)
avrdude_message("%s: jtag3_initialize(): "
avrdude_message(MSG_NOTICE2, "%s: jtag3_initialize(): "
"trying to set JTAG daisy-chain info to %d,%d,%d,%d\n",
progname,
PDATA(pgm)->jtagchain[0], PDATA(pgm)->jtagchain[1],
@@ -1102,7 +1086,7 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
ocdrev = 4;
else
ocdrev = 3; /* many exceptions from that, actually */
avrdude_message("%s: part definition for %s lacks \"ocdrev\"; guessing %d\n",
avrdude_message(MSG_INFO, "%s: part definition for %s lacks \"ocdrev\"; guessing %d\n",
progname, p->desc, ocdrev);
md.ocd_revision = ocdrev;
} else {
@@ -1141,9 +1125,9 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
* (except ISP which is handled completely differently, but that
* doesn't apply here anyway), the response is just RSP_OK.
*/
if (resp[1] == RSP3_DATA && status >= 7 && verbose >= 1)
if (resp[1] == RSP3_DATA && status >= 7)
/* JTAG ID has been returned */
avrdude_message("%s: JTAG ID returned: 0x%02x 0x%02x 0x%02x 0x%02x\n",
avrdude_message(MSG_NOTICE, "%s: JTAG ID returned: 0x%02x 0x%02x 0x%02x 0x%02x\n",
progname, resp[3], resp[4], resp[5], resp[6]);
free(resp);
@@ -1157,7 +1141,7 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
AVRMEM *bootmem = avr_locate_mem(p, "boot");
AVRMEM *flashmem = avr_locate_mem(p, "flash");
if (bootmem == NULL || flashmem == NULL) {
avrdude_message("%s: jtagmk3_initialize(): Cannot locate \"flash\" and \"boot\" memories in description\n",
avrdude_message(MSG_INFO, "%s: jtagmk3_initialize(): Cannot locate \"flash\" and \"boot\" memories in description\n",
progname);
} else {
PDATA(pgm)->boot_start = bootmem->offset - flashmem->offset;
@@ -1167,12 +1151,12 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
free(PDATA(pgm)->flash_pagecache);
free(PDATA(pgm)->eeprom_pagecache);
if ((PDATA(pgm)->flash_pagecache = malloc(PDATA(pgm)->flash_pagesize)) == NULL) {
avrdude_message("%s: jtag3_initialize(): Out of memory\n",
avrdude_message(MSG_INFO, "%s: jtag3_initialize(): Out of memory\n",
progname);
return -1;
}
if ((PDATA(pgm)->eeprom_pagecache = malloc(PDATA(pgm)->eeprom_pagesize)) == NULL) {
avrdude_message("%s: jtag3_initialize(): Out of memory\n",
avrdude_message(MSG_INFO, "%s: jtag3_initialize(): Out of memory\n",
progname);
free(PDATA(pgm)->flash_pagecache);
return -1;
@@ -1216,17 +1200,15 @@ static int jtag3_parseextparms(PROGRAMMER * pgm, LISTID extparms)
unsigned int ub, ua, bb, ba;
if (sscanf(extended_param, "jtagchain=%u,%u,%u,%u", &ub, &ua, &bb, &ba)
!= 4) {
avrdude_message("%s: jtag3_parseextparms(): invalid JTAG chain '%s'\n",
avrdude_message(MSG_INFO, "%s: jtag3_parseextparms(): invalid JTAG chain '%s'\n",
progname, extended_param);
rv = -1;
continue;
}
if (verbose >= 2) {
avrdude_message("%s: jtag3_parseextparms(): JTAG chain parsed as:\n"
avrdude_message(MSG_NOTICE2, "%s: jtag3_parseextparms(): JTAG chain parsed as:\n"
"%s %u units before, %u units after, %u bits before, %u bits after\n",
progname,
progbuf, ub, ua, bb, ba);
}
PDATA(pgm)->jtagchain[0] = ub;
PDATA(pgm)->jtagchain[1] = ua;
PDATA(pgm)->jtagchain[2] = bb;
@@ -1235,7 +1217,7 @@ static int jtag3_parseextparms(PROGRAMMER * pgm, LISTID extparms)
continue;
}
avrdude_message("%s: jtag3_parseextparms(): invalid extended parameter '%s'\n",
avrdude_message(MSG_INFO, "%s: jtag3_parseextparms(): invalid extended parameter '%s'\n",
progname, extended_param);
rv = -1;
}
@@ -1250,12 +1232,12 @@ int jtag3_open_common(PROGRAMMER * pgm, char * port)
int rv = -1;
#if !defined(HAVE_LIBUSB)
avrdude_message("avrdude was compiled without usb support.\n");
avrdude_message(MSG_INFO, "avrdude was compiled without usb support.\n");
return -1;
#endif
if (strncmp(port, "usb", 3) != 0) {
avrdude_message("%s: jtag3_open_common(): JTAGICE3/EDBG port names must start with \"usb\"\n",
avrdude_message(MSG_INFO, "%s: jtag3_open_common(): JTAGICE3/EDBG port names must start with \"usb\"\n",
progname);
return -1;
}
@@ -1282,13 +1264,13 @@ int jtag3_open_common(PROGRAMMER * pgm, char * port)
rv = serial_open(port, pinfo, &pgm->fd);
}
if (rv < 0) {
avrdude_message("%s: jtag3_open_common(): Did not find any device matching VID 0x%04x and PID list: ",
avrdude_message(MSG_INFO, "%s: jtag3_open_common(): Did not find any device matching VID 0x%04x and PID list: ",
progname, (unsigned)pinfo.usbinfo.vid);
int notfirst = 0;
for (usbpid = lfirst(pgm->usbpid); usbpid != NULL; usbpid = lnext(usbpid)) {
if (notfirst)
avrdude_message(", ");
avrdude_message("0x%04x", (unsigned int)(*(int *)(ldata(usbpid))));
avrdude_message(MSG_INFO, ", ");
avrdude_message(MSG_INFO, "0x%04x", (unsigned int)(*(int *)(ldata(usbpid))));
notfirst = 1;
}
fputc('\n', stderr);
@@ -1301,8 +1283,7 @@ int jtag3_open_common(PROGRAMMER * pgm, char * port)
/* The event EP has been deleted by usb_open(), so we are
running on a CMSIS-DAP device, using EDBG protocol */
pgm->flag |= PGM_FL_IS_EDBG;
if (verbose)
avrdude_message("%s: Found CMSIS-DAP compliant device, using EDBG protocol\n",
avrdude_message(MSG_NOTICE, "%s: Found CMSIS-DAP compliant device, using EDBG protocol\n",
progname);
}
@@ -1318,8 +1299,7 @@ int jtag3_open_common(PROGRAMMER * pgm, char * port)
static int jtag3_open(PROGRAMMER * pgm, char * port)
{
if (verbose >= 2)
avrdude_message("%s: jtag3_open()\n", progname);
avrdude_message(MSG_NOTICE2, "%s: jtag3_open()\n", progname);
if (jtag3_open_common(pgm, port) < 0)
return -1;
@@ -1332,8 +1312,7 @@ static int jtag3_open(PROGRAMMER * pgm, char * port)
static int jtag3_open_dw(PROGRAMMER * pgm, char * port)
{
if (verbose >= 2)
avrdude_message("%s: jtag3_open_dw()\n", progname);
avrdude_message(MSG_NOTICE2, "%s: jtag3_open_dw()\n", progname);
if (jtag3_open_common(pgm, port) < 0)
return -1;
@@ -1346,8 +1325,7 @@ static int jtag3_open_dw(PROGRAMMER * pgm, char * port)
static int jtag3_open_pdi(PROGRAMMER * pgm, char * port)
{
if (verbose >= 2)
avrdude_message("%s: jtag3_open_pdi()\n", progname);
avrdude_message(MSG_NOTICE2, "%s: jtag3_open_pdi()\n", progname);
if (jtag3_open_common(pgm, port) < 0)
return -1;
@@ -1363,8 +1341,7 @@ void jtag3_close(PROGRAMMER * pgm)
{
unsigned char buf[4], *resp;
if (verbose >= 2)
avrdude_message("%s: jtag3_close()\n", progname);
avrdude_message(MSG_NOTICE2, "%s: jtag3_close()\n", progname);
buf[0] = SCOPE_AVR;
buf[1] = CMD3_SIGN_OFF;
@@ -1391,12 +1368,11 @@ static int jtag3_page_erase(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
{
unsigned char cmd[8], *resp;
if (verbose >= 2)
avrdude_message("%s: jtag3_page_erase(.., %s, 0x%x)\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_page_erase(.., %s, 0x%x)\n",
progname, m->desc, addr);
if (!(p->flags & AVRPART_HAS_PDI)) {
avrdude_message("%s: jtag3_page_erase: not an Xmega device\n",
avrdude_message(MSG_INFO, "%s: jtag3_page_erase: not an Xmega device\n",
progname);
return -1;
}
@@ -1443,8 +1419,7 @@ static int jtag3_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
int status, dynamic_memtype = 0;
long otimeout = serial_recv_timeout;
if (verbose >= 2)
avrdude_message("%s: jtag3_paged_write(.., %s, %d, %d)\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_paged_write(.., %s, %d, %d)\n",
progname, m->desc, page_size, n_bytes);
if (!(pgm->flag & PGM_FL_IS_DW) && jtag3_program_enable(pgm) < 0)
@@ -1453,7 +1428,7 @@ static int jtag3_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
if (page_size == 0) page_size = 256;
if ((cmd = malloc(page_size + 13)) == NULL) {
avrdude_message("%s: jtag3_paged_write(): Out of memory\n",
avrdude_message(MSG_INFO, "%s: jtag3_paged_write(): Out of memory\n",
progname);
return -1;
}
@@ -1500,8 +1475,7 @@ static int jtag3_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
block_size = maxaddr - addr;
else
block_size = page_size;
if (verbose >= 3)
avrdude_message("%s: jtag3_paged_write(): "
avrdude_message(MSG_DEBUG, "%s: jtag3_paged_write(): "
"block_size at addr %d is %d\n",
progname, addr, block_size);
@@ -1549,8 +1523,7 @@ static int jtag3_paged_load(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
int status, dynamic_memtype = 0;
long otimeout = serial_recv_timeout;
if (verbose >= 2)
avrdude_message("%s: jtag3_paged_load(.., %s, %d, %d)\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_paged_load(.., %s, %d, %d)\n",
progname, m->desc, page_size, n_bytes);
if (!(pgm->flag & PGM_FL_IS_DW) && jtag3_program_enable(pgm) < 0)
@@ -1588,8 +1561,7 @@ static int jtag3_paged_load(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
block_size = maxaddr - addr;
else
block_size = page_size;
if (verbose >= 3)
avrdude_message("%s: jtag3_paged_load(): "
avrdude_message(MSG_DEBUG, "%s: jtag3_paged_load(): "
"block_size at addr %d is %d\n",
progname, addr, block_size);
@@ -1604,7 +1576,7 @@ static int jtag3_paged_load(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
if (resp[1] != RSP3_DATA ||
status < block_size + 4) {
avrdude_message("%s: wrong/short reply to read memory command\n",
avrdude_message(MSG_INFO, "%s: wrong/short reply to read memory command\n",
progname);
serial_recv_timeout = otimeout;
free(resp);
@@ -1627,8 +1599,7 @@ static int jtag3_read_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem,
unsigned long paddr = 0UL, *paddr_ptr = NULL;
unsigned int pagesize = 0;
if (verbose >= 2)
avrdude_message("%s: jtag3_read_byte(.., %s, 0x%lx, ...)\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_read_byte(.., %s, 0x%lx, ...)\n",
progname, mem->desc, addr);
if (!(pgm->flag & PGM_FL_IS_DW) && jtag3_program_enable(pgm) < 0)
@@ -1716,7 +1687,7 @@ static int jtag3_read_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem,
return 0;
} else {
/* should not happen */
avrdude_message("address out of range for signature memory: %lu\n", addr);
avrdude_message(MSG_INFO, "address out of range for signature memory: %lu\n", addr);
return -1;
}
}
@@ -1757,7 +1728,7 @@ static int jtag3_read_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem,
if (resp[1] != RSP3_DATA ||
status < (pagesize? pagesize: 1) + 4) {
avrdude_message("%s: wrong/short reply to read memory command\n",
avrdude_message(MSG_INFO, "%s: wrong/short reply to read memory command\n",
progname);
free(resp);
return -1;
@@ -1783,8 +1754,7 @@ static int jtag3_write_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem,
int status, unsupp = 0;
unsigned int pagesize = 0;
if (verbose >= 2)
avrdude_message("%s: jtag3_write_byte(.., %s, 0x%lx, ...)\n",
avrdude_message(MSG_NOTICE2, "%s: jtag3_write_byte(.., %s, 0x%lx, ...)\n",
progname, mem->desc, addr);
cmd[0] = SCOPE_AVR;
@@ -1901,7 +1871,7 @@ static int jtag3_set_sck_period(PROGRAMMER * pgm, double v)
parm[1] = (clock >> 8) & 0xff;
if (PDATA(pgm)->set_sck == NULL) {
avrdude_message("%s: No backend to set the SCK period for\n",
avrdude_message(MSG_INFO, "%s: No backend to set the SCK period for\n",
progname);
return -1;
}
@@ -1921,8 +1891,7 @@ int jtag3_getparm(PROGRAMMER * pgm, unsigned char scope,
unsigned char buf[6], *resp, c;
char descr[60];
if (verbose >= 2)
avrdude_message("%s: jtag3_getparm()\n", progname);
avrdude_message(MSG_NOTICE2, "%s: jtag3_getparm()\n", progname);
buf[0] = scope;
buf[1] = CMD3_GET_PARAMETER;
@@ -1939,7 +1908,7 @@ int jtag3_getparm(PROGRAMMER * pgm, unsigned char scope,
c = resp[1];
if (c != RSP3_DATA || status < 3) {
avrdude_message("%s: jtag3_getparm(): "
avrdude_message(MSG_INFO, "%s: jtag3_getparm(): "
"bad response to %s\n",
progname, descr);
free(resp);
@@ -1964,15 +1933,14 @@ int jtag3_setparm(PROGRAMMER * pgm, unsigned char scope,
unsigned char *buf, *resp;
char descr[60];
if (verbose >= 2)
avrdude_message("%s: jtag3_setparm()\n", progname);
avrdude_message(MSG_NOTICE2, "%s: jtag3_setparm()\n", progname);
sprintf(descr, "set parameter (scope 0x%02x, section %d, parm %d)",
scope, section, parm);
if ((buf = malloc(6 + length)) == NULL)
{
avrdude_message("%s: jtag3_setparm(): Out of memory\n",
avrdude_message(MSG_INFO, "%s: jtag3_setparm(): Out of memory\n",
progname);
return -1;
}
@@ -2021,7 +1989,7 @@ static void jtag3_display(PROGRAMMER * pgm, const char * p)
c = resp[1];
if (c != RSP3_INFO) {
avrdude_message("%s: jtag3_display(): response is not RSP3_INFO\n",
avrdude_message(MSG_INFO, "%s: jtag3_display(): response is not RSP3_INFO\n",
progname);
free(resp);
return;
@@ -2029,11 +1997,11 @@ static void jtag3_display(PROGRAMMER * pgm, const char * p)
memmove(resp, resp + 3, status - 3);
resp[status - 3] = 0;
avrdude_message("%sICE hardware version: %d\n", p, parms[0]);
avrdude_message("%sICE firmware version: %d.%02d (rel. %d)\n", p,
avrdude_message(MSG_INFO, "%sICE hardware version: %d\n", p, parms[0]);
avrdude_message(MSG_INFO, "%sICE firmware version: %d.%02d (rel. %d)\n", p,
parms[1], parms[2],
(parms[3] | (parms[4] << 8)));
avrdude_message("%sSerial number : %s\n", p, resp);
avrdude_message(MSG_INFO, "%sSerial number : %s\n", p, resp);
free(resp);
jtag3_print_parms1(pgm, p);
@@ -2047,27 +2015,27 @@ static void jtag3_print_parms1(PROGRAMMER * pgm, const char * p)
if (jtag3_getparm(pgm, SCOPE_GENERAL, 1, PARM3_VTARGET, buf, 2) < 0)
return;
avrdude_message("%sVtarget : %.2f V\n", p,
avrdude_message(MSG_INFO, "%sVtarget : %.2f V\n", p,
b2_to_u16(buf) / 1000.0);
if (jtag3_getparm(pgm, SCOPE_AVR, 1, PARM3_CLK_MEGA_PROG, buf, 2) < 0)
return;
avrdude_message("%sJTAG clock megaAVR/program: %u kHz\n", p,
avrdude_message(MSG_INFO, "%sJTAG clock megaAVR/program: %u kHz\n", p,
b2_to_u16(buf));
if (jtag3_getparm(pgm, SCOPE_AVR, 1, PARM3_CLK_MEGA_DEBUG, buf, 2) < 0)
return;
avrdude_message("%sJTAG clock megaAVR/debug: %u kHz\n", p,
avrdude_message(MSG_INFO, "%sJTAG clock megaAVR/debug: %u kHz\n", p,
b2_to_u16(buf));
if (jtag3_getparm(pgm, SCOPE_AVR, 1, PARM3_CLK_XMEGA_JTAG, buf, 2) < 0)
return;
avrdude_message("%sJTAG clock Xmega: %u kHz\n", p,
avrdude_message(MSG_INFO, "%sJTAG clock Xmega: %u kHz\n", p,
b2_to_u16(buf));
if (jtag3_getparm(pgm, SCOPE_AVR, 1, PARM3_CLK_XMEGA_PDI, buf, 2) < 0)
return;
avrdude_message("%sPDI clock Xmega : %u kHz\n", p,
avrdude_message(MSG_INFO, "%sPDI clock Xmega : %u kHz\n", p,
b2_to_u16(buf));
}