for (writecount = 0; writecount < blocksize; writecount++)
{
retval = dap_queue_ap_write(dap, AP_REG_DRW,
- *(uint32_t *) (buffer + 4 * writecount));
+ *(uint32_t *) ((void *) (buffer + 4 * writecount)));
if (retval != ERROR_OK)
break;
}
- if (dap_run(dap) == ERROR_OK)
+ if ((retval = dap_run(dap)) == ERROR_OK)
{
wcount = wcount - blocksize;
address = address + 4 * blocksize;
if (errorcount > 1)
{
LOG_WARNING("Block write error address 0x%" PRIx32 ", wcount 0x%x", address, wcount);
- /* REVISIT return the *actual* fault code */
- return ERROR_JTAG_DEVICE_ERROR;
+ return retval;
}
}
if (nbytes < 4)
{
- if (mem_ap_write_buf_u16(dap, buffer,
- nbytes, address) != ERROR_OK)
+ retval = mem_ap_write_buf_u16(dap, buffer,
+ nbytes, address);
+ if (retval != ERROR_OK)
{
LOG_WARNING("Block write error address "
"0x%" PRIx32 ", count 0x%x",
address, count);
- return ERROR_JTAG_DEVICE_ERROR;
+ return retval;
}
address += nbytes >> 1;
if (retval != ERROR_OK)
break;
- if (dap_run(dap) != ERROR_OK)
+ if ((retval = dap_run(dap)) != ERROR_OK)
{
LOG_WARNING("Block write error address "
"0x%" PRIx32 ", count 0x%x",
address, count);
- /* REVISIT return *actual* fault code */
- return ERROR_JTAG_DEVICE_ERROR;
+ return retval;
}
}
if (nbytes < 4)
{
- if (mem_ap_write_buf_u8(dap, buffer, nbytes, address) != ERROR_OK)
+ retval = mem_ap_write_buf_u8(dap, buffer, nbytes, address);
+ if (retval != ERROR_OK)
{
LOG_WARNING("Block write error address "
"0x%" PRIx32 ", count 0x%x",
address, count);
- return ERROR_JTAG_DEVICE_ERROR;
+ return retval;
}
address += nbytes;
if (retval != ERROR_OK)
break;
- if (dap_run(dap) != ERROR_OK)
+ if ((retval = dap_run(dap)) != ERROR_OK)
{
LOG_WARNING("Block write error address "
"0x%" PRIx32 ", count 0x%x",
address, count);
- /* REVISIT return *actual* fault code */
- return ERROR_JTAG_DEVICE_ERROR;
+ return retval;
}
}
do
{
retval = dap_queue_ap_read(dap, AP_REG_DRW, &invalue);
- if (dap_run(dap) != ERROR_OK)
+ if (retval != ERROR_OK)
+ return retval;
+ if ((retval = dap_run(dap)) != ERROR_OK)
{
LOG_WARNING("Block read error address 0x%" PRIx32 ", count 0x%x", address, count);
- /* REVISIT return the *actual* fault code */
- return ERROR_JTAG_DEVICE_ERROR;
+ return retval;
}
nbytes = MIN((readcount << 1), 4);
do
{
retval = dap_queue_ap_read(dap, AP_REG_DRW, &invalue);
- if (dap_run(dap) != ERROR_OK)
+ if (retval != ERROR_OK)
+ return retval;
+ if ((retval = dap_run(dap)) != ERROR_OK)
{
LOG_WARNING("Block read error address 0x%" PRIx32 ", count 0x%x", address, count);
- /* REVISIT return the *actual* fault code */
- return ERROR_JTAG_DEVICE_ERROR;
+ return retval;
}
nbytes = MIN(readcount, 4);
* place to scan the table and do any topology detection?
*/
retval = dap_queue_ap_read(dap, AP_REG_IDR, &idreg);
+ if (retval != ERROR_OK)
+ return retval;
retval = dap_queue_ap_read(dap, AP_REG_BASE, &romaddr);
+ if (retval != ERROR_OK)
+ return retval;
if ((retval = dap_run(dap)) != ERROR_OK)
return retval;
apselold = dap->apsel;
dap_ap_select(dap, apsel);
retval = dap_queue_ap_read(dap, AP_REG_BASE, &dbgbase);
+ if (retval != ERROR_OK)
+ return retval;
retval = dap_queue_ap_read(dap, AP_REG_IDR, &apid);
+ if (retval != ERROR_OK)
+ return retval;
retval = dap_run(dap);
if (retval != ERROR_OK)
return retval;
* use the ID register to verify it's a MEM-AP.
*/
retval = dap_queue_ap_read(dap, AP_REG_BASE, &baseaddr);
+ if (retval != ERROR_OK)
+ return retval;
retval = dap_run(dap);
if (retval != ERROR_OK)
return retval;
dap_ap_select(dap, apsel);
retval = dap_queue_ap_read(dap, AP_REG_IDR, &apid);
+ if (retval != ERROR_OK)
+ return retval;
retval = dap_run(dap);
if (retval != ERROR_OK)
return retval;
dap_ap_select(dap, apsel);
retval = dap_queue_ap_read(dap, AP_REG_IDR, &apid);
+ if (retval != ERROR_OK)
+ return retval;
retval = dap_run(dap);
if (retval != ERROR_OK)
return retval;