Skip to content
Snippets Groups Projects
Commit c92a605e authored by Andrey Smirnov's avatar Andrey Smirnov Committed by Paul Fertser
Browse files

at91samd: Bail early if trying to erase protected sector


Bail early if trying to erase protected sector and also do not double-erase already
erased sectors.

Change-Id: Ic2d39af48c3b8e10e78d52dd978b9bc01f671c6a
Signed-off-by: default avatarAndrey Smirnov <andrew.smirnov@gmail.com>
Reviewed-on: http://openocd.zylin.com/2026


Tested-by: jenkins
Reviewed-by: default avatarPaul Fertser <fercerpav@gmail.com>
parent 34db6b9c
Branches
Tags
No related merge requests found
......@@ -360,6 +360,12 @@ static int samd_erase(struct flash_bank *bank, int first, int last)
/* For each sector to be erased */
for (int s = first; s <= last; s++) {
if (bank->sectors[s].is_protected) {
LOG_ERROR("SAMD: failed to erase sector %d. That sector is write-protected", s);
return ERROR_FLASH_OPERATION_FAILED;
}
if (!bank->sectors[s].is_erased) {
/* For each row in that sector */
for (int r = s * rows_in_sector; r < (s + 1) * rows_in_sector; r++) {
res = samd_erase_row(bank, r * chip->page_size * 4);
......@@ -371,6 +377,7 @@ static int samd_erase(struct flash_bank *bank, int first, int last)
bank->sectors[s].is_erased = 1;
}
}
return ERROR_OK;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment