[Skiboot] [PATCH v2 5/5] external/pflash: Use blocklevel_smart_erase()
Cyril Bur
cyril.bur at au1.ibm.com
Wed Apr 19 14:11:43 AEST 2017
Signed-off-by: Cyril Bur <cyril.bur at au1.ibm.com>
---
external/pflash/pflash.c | 31 ++++---------------------------
1 file changed, 4 insertions(+), 27 deletions(-)
diff --git a/external/pflash/pflash.c b/external/pflash/pflash.c
index 2f9cc71d..a344987e 100644
--- a/external/pflash/pflash.c
+++ b/external/pflash/pflash.c
@@ -235,7 +235,6 @@ static void erase_chip(void)
static void erase_range(uint32_t start, uint32_t size, bool will_program)
{
- uint32_t done = 0;
int rc;
printf("About to erase 0x%08x..0x%08x !\n", start, start + size);
@@ -247,33 +246,11 @@ static void erase_range(uint32_t start, uint32_t size, bool will_program)
}
printf("Erasing...\n");
- progress_init(size >> 8);
- while(size) {
- /* If aligned to 64k and at least 64k, use 64k erase */
- if ((start & 0xffff) == 0 && size >= 0x10000) {
- rc = blocklevel_erase(bl, start, 0x10000);
- if (rc) {
- fprintf(stderr, "Error %d erasing 0x%08x\n",
- rc, start);
- exit(1);
- }
- start += 0x10000;
- size -= 0x10000;
- done += 0x10000;
- } else {
- rc = blocklevel_erase(bl, start, 0x1000);
- if (rc) {
- fprintf(stderr, "Error %d erasing 0x%08x\n",
- rc, start);
- exit(1);
- }
- start += 0x1000;
- size -= 0x1000;
- done += 0x1000;
- }
- progress_tick(done >> 8);
+ rc = blocklevel_smart_erase(bl, start, size);
+ if (rc) {
+ fprintf(stderr, "Failed to blocklevel_smart_erase(): %d\n", rc);
+ return;
}
- progress_end();
/* If this is a flash partition, mark it empty if we aren't
* going to program over it as well
--
2.12.2
More information about the Skiboot
mailing list