summaryrefslogtreecommitdiff
path: root/platforms
diff options
context:
space:
mode:
authorPurdea Andrei <andrei@purdea.ro>2024-05-28 14:49:55 +0300
committerGitHub <noreply@github.com>2024-05-28 12:49:55 +0100
commit267dffda154d119ed5f155665e90fc5e03d138a5 (patch)
tree4e29634437942d5b96146fa375f1db0dc95d5105 /platforms
parent6921c8a7ddbf5596d629f6272b4043bb3cbcf661 (diff)
EEPROM: Don't erase if we don't have to. Adding eeprom_driver_format abstraction. (#18332)
Diffstat (limited to 'platforms')
-rw-r--r--platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c7
-rw-r--r--platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c6
2 files changed, 13 insertions, 0 deletions
diff --git a/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c b/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c
index a81fe3353c..9857ac046b 100644
--- a/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c
+++ b/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c
@@ -24,6 +24,7 @@
#include "debug.h"
#include "eeprom_legacy_emulated_flash.h"
#include "legacy_flash_ops.h"
+#include "eeprom_driver.h"
/*
* We emulate eeprom by writing a snapshot compacted view of eeprom contents,
@@ -564,6 +565,12 @@ void eeprom_driver_init(void) {
EEPROM_Init();
}
+void eeprom_driver_format(bool erase) {
+ /* emulated eepron requires the write log data structures to be erased before use. */
+ (void)erase;
+ eeprom_driver_erase();
+}
+
void eeprom_driver_erase(void) {
EEPROM_Erase();
}
diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c
index ed26cc7145..628137a0b3 100644
--- a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c
+++ b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c
@@ -52,6 +52,12 @@ static inline void STM32_L0_L1_EEPROM_Lock(void) {
void eeprom_driver_init(void) {}
+void eeprom_driver_format(bool erase) {
+ if (erase) {
+ eeprom_driver_erase();
+ }
+}
+
void eeprom_driver_erase(void) {
STM32_L0_L1_EEPROM_Unlock();