flash: Add optional verify-after-write feature
Sometimes it might make sense to verify the written data to NOR flash. This patch adds this feature. To enable this verify-after-write, you need to define CONFIG_FLASH_VERIFY in your board config header. Please note that this option is useless in nearly all cases, since such flash programming errors usually are detected earlier while unprotecting/erasing/programming. Please only enable this option if you really know what you are doing. Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
@@ -149,6 +149,9 @@ flash_write (char *src, ulong addr, ulong cnt)
|
||||
flash_info_t *info_first = addr2info (addr);
|
||||
flash_info_t *info_last = addr2info (end );
|
||||
flash_info_t *info;
|
||||
__maybe_unused char *src_orig = src;
|
||||
__maybe_unused char *addr_orig = (char *)addr;
|
||||
__maybe_unused ulong cnt_orig = cnt;
|
||||
|
||||
if (cnt == 0) {
|
||||
return (ERR_OK);
|
||||
@@ -185,6 +188,14 @@ flash_write (char *src, ulong addr, ulong cnt)
|
||||
addr += len;
|
||||
src += len;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_FLASH_VERIFY)
|
||||
if (memcmp(src_orig, addr_orig, cnt_orig)) {
|
||||
printf("\nVerify failed!\n");
|
||||
return ERR_PROG_ERROR;
|
||||
}
|
||||
#endif /* CONFIG_SYS_FLASH_VERIFY_AFTER_WRITE */
|
||||
|
||||
return (ERR_OK);
|
||||
#endif /* CONFIG_SPD823TS */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user