summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/nrf/supervisor/internal_flash.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ports/nrf/supervisor/internal_flash.c b/ports/nrf/supervisor/internal_flash.c
index 5713dea88..dcacd4d27 100644
--- a/ports/nrf/supervisor/internal_flash.c
+++ b/ports/nrf/supervisor/internal_flash.c
@@ -97,7 +97,9 @@ mp_uint_t supervisor_flash_write_blocks(const uint8_t *src, uint32_t lba, uint32
count = MIN(num_blocks, count);
if (page_addr != _flash_page_addr) {
- nrf_nvm_safe_flash_page_write(_flash_page_addr, _flash_cache);
+ // Write out anything in cache before overwriting it.
+ supervisor_flash_flush();
+
_flash_page_addr = page_addr;
// Copy the current contents of the entire page into the cache.