From 7022dcfd9537e20a8b8e8eee862e07788f1acb39 Mon Sep 17 00:00:00 2001 From: Sylvio Alves Date: Tue, 28 Dec 2021 15:02:18 -0300 Subject: [PATCH] drivers: flash: esp32: add flash encryption support Add flash encryption function check to redirect flash write and read calls properly. Signed-off-by: Sylvio Alves --- drivers/flash/flash_esp32.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/flash/flash_esp32.c b/drivers/flash/flash_esp32.c index 696e359f2c2..a97b6d96b95 100644 --- a/drivers/flash/flash_esp32.c +++ b/drivers/flash/flash_esp32.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -81,8 +82,14 @@ static inline void flash_esp32_sem_give(const struct device *dev) static int flash_esp32_read(const struct device *dev, off_t address, void *buffer, size_t length) { + int ret = 0; + flash_esp32_sem_take(dev); - int ret = spi_flash_read(address, buffer, length); + if (!esp_flash_encryption_enabled()) { + ret = spi_flash_read(address, buffer, length); + } else { + ret = spi_flash_read_encrypted(address, buffer, length); + } flash_esp32_sem_give(dev); return ret; } @@ -92,8 +99,14 @@ static int flash_esp32_write(const struct device *dev, const void *buffer, size_t length) { + int ret = 0; + flash_esp32_sem_take(dev); - int ret = spi_flash_write(address, buffer, length); + if (!esp_flash_encryption_enabled()) { + ret = spi_flash_write(address, buffer, length); + } else { + ret = spi_flash_write_encrypted(address, buffer, length); + } flash_esp32_sem_give(dev); return ret; }