aboutsummaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
Diffstat (limited to 'external')
-rw-r--r--external/common/arch_flash_arm.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/external/common/arch_flash_arm.c b/external/common/arch_flash_arm.c
index 697609d..bb8800f 100644
--- a/external/common/arch_flash_arm.c
+++ b/external/common/arch_flash_arm.c
@@ -300,8 +300,17 @@ int arch_flash_erase_chip(struct blocklevel_device *bl)
if (!arch_data.init_bl || arch_data.init_bl != bl)
return -1;
- if (!arch_data.flash_chip)
- return -1;
+ if (!arch_data.flash_chip) {
+ /* Just assume its a regular erase */
+ int rc;
+ uint64_t total_size;
+
+ rc = blocklevel_get_info(bl, NULL, &total_size, NULL);
+ if (rc)
+ return rc;
+
+ return blocklevel_erase(bl, 0, total_size);
+ }
return flash_erase_chip(arch_data.flash_chip);
}