mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 09:09:10 -04:00
Merge branch 'fix/flash_encryption_verify_write' into 'master'
fix(spi_flash): Fix flash encryption write verify Closes IDFGH-14629 See merge request espressif/esp-idf!37356
This commit is contained in:
commit
eb5c2485e2
@ -180,6 +180,8 @@ menu "SPI Flash driver"
|
||||
back and verified. This can catch hardware problems with SPI flash, or flash which
|
||||
was not erased before verification.
|
||||
|
||||
This will slightly influence the write performance.
|
||||
|
||||
config SPI_FLASH_LOG_FAILED_WRITE
|
||||
bool "Log errors if verification fails"
|
||||
depends on SPI_FLASH_VERIFY_WRITE
|
||||
|
@ -1378,11 +1378,31 @@ esp_err_t esp_flash_write_encrypted(esp_flash_t *chip, uint32_t address, const v
|
||||
COUNTER_ADD_BYTES(write, encrypt_byte);
|
||||
|
||||
#if CONFIG_SPI_FLASH_VERIFY_WRITE
|
||||
|
||||
if (lock_once == true) {
|
||||
err = s_encryption_write_unlock(chip);
|
||||
if (err != ESP_OK) {
|
||||
bus_acquired = false;
|
||||
//Error happens, we end flash operation. Re-enable cache and flush it
|
||||
goto restore_cache;
|
||||
}
|
||||
bus_acquired = false;
|
||||
}
|
||||
err = s_verify_write(chip, row_addr, encrypt_byte, (uint32_t *)encrypt_buf, is_encrypted);
|
||||
if (err != ESP_OK) {
|
||||
//Error happens, we end flash operation. Re-enable cache and flush it
|
||||
goto restore_cache;
|
||||
}
|
||||
|
||||
if (lock_once == true) {
|
||||
err = s_encryption_write_lock(chip);
|
||||
if (err != ESP_OK) {
|
||||
bus_acquired = false;
|
||||
//Error happens, we end flash operation. Re-enable cache and flush it
|
||||
goto restore_cache;
|
||||
}
|
||||
bus_acquired = true;
|
||||
}
|
||||
#endif //CONFIG_SPI_FLASH_VERIFY_WRITE
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@ from pytest_embedded import Dut
|
||||
'config',
|
||||
[
|
||||
'release',
|
||||
'verify',
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@ -38,6 +39,7 @@ def test_flash_encryption_rom_impl(dut: Dut) -> None:
|
||||
[
|
||||
'release_f4r8',
|
||||
'rom_impl',
|
||||
'verify',
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user