samx5: Verbose error reports on protected devices.
This commit is contained in:
parent
8c8aa980cf
commit
cddf02f174
|
@ -519,7 +519,7 @@ static int samx5x_flash_erase(struct target_flash *f, target_addr addr,
|
||||||
target *t = f->t;
|
target *t = f->t;
|
||||||
uint16_t errs = samx5x_read_nvm_error(t);
|
uint16_t errs = samx5x_read_nvm_error(t);
|
||||||
if (errs) {
|
if (errs) {
|
||||||
DEBUG_INFO(NVM_ERROR_BITS_MSG, "erase", addr, len);
|
DEBUG_WARN(NVM_ERROR_BITS_MSG, "erase", addr, len);
|
||||||
samx5x_print_nvm_error(errs);
|
samx5x_print_nvm_error(errs);
|
||||||
samx5x_clear_nvm_error(t);
|
samx5x_clear_nvm_error(t);
|
||||||
}
|
}
|
||||||
|
@ -533,11 +533,15 @@ static int samx5x_flash_erase(struct target_flash *f, target_addr addr,
|
||||||
SAMX5X_PAGE_SIZE;
|
SAMX5X_PAGE_SIZE;
|
||||||
lock_region_size = flash_size >> 5;
|
lock_region_size = flash_size >> 5;
|
||||||
|
|
||||||
if (addr < (15 - bootprot) * 8192)
|
if (addr < (15 - bootprot) * 8192) {
|
||||||
return -1;
|
DEBUG_WARN("Bootprot\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (~runlock & (1 << addr / lock_region_size))
|
if (~runlock & (1 << addr / lock_region_size)) {
|
||||||
return -1;
|
DEBUG_WARN("runlock\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
while (len) {
|
while (len) {
|
||||||
target_mem_write32(t, SAMX5X_NVMC_ADDRESS, addr);
|
target_mem_write32(t, SAMX5X_NVMC_ADDRESS, addr);
|
||||||
|
@ -553,11 +557,15 @@ static int samx5x_flash_erase(struct target_flash *f, target_addr addr,
|
||||||
/* Poll for NVM Ready */
|
/* Poll for NVM Ready */
|
||||||
while ((target_mem_read32(t, SAMX5X_NVMC_STATUS) &
|
while ((target_mem_read32(t, SAMX5X_NVMC_STATUS) &
|
||||||
SAMX5X_STATUS_READY) == 0)
|
SAMX5X_STATUS_READY) == 0)
|
||||||
if (target_check_error(t) || samx5x_check_nvm_error(t))
|
if (target_check_error(t) || samx5x_check_nvm_error(t)) {
|
||||||
return -1;
|
DEBUG_WARN("NVM Ready\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (target_check_error(t) || samx5x_check_nvm_error(t))
|
if (target_check_error(t) || samx5x_check_nvm_error(t)) {
|
||||||
return -1;
|
DEBUG_WARN("Error\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Lock */
|
/* Lock */
|
||||||
samx5x_lock_current_address(t);
|
samx5x_lock_current_address(t);
|
||||||
|
|
Loading…
Reference in New Issue