spi_flash: esp32: fix regression in encrypted flash write

In commit 309376f51a, it seems like regression
was added to use ROM level API for disabling flash write protection. This
started random firmware crashes (on specific modules) with exception
`IllegalInstruction` during encrypted flash writes.

Fix here removes relevant ROM API call, since disabling flash write protection
is already ensured by caller of this API.

Closes https://github.com/espressif/esp-idf/issues/5467
This commit is contained in:
Mahavir Jain 2020-06-23 16:03:08 +05:30
parent 7ab2ffb45f
commit 56accfe4c4

View file

@ -35,15 +35,11 @@ static inline void IRAM_ATTR spi_flash_guard_end(void)
esp_rom_spiflash_result_t IRAM_ATTR spi_flash_write_encrypted_chip(size_t dest_addr, const void *src, size_t size) esp_rom_spiflash_result_t IRAM_ATTR spi_flash_write_encrypted_chip(size_t dest_addr, const void *src, size_t size)
{ {
const uint8_t *ssrc = (const uint8_t *)src; const uint8_t *ssrc = (const uint8_t *)src;
esp_rom_spiflash_result_t rc; esp_rom_spiflash_result_t rc = ESP_ROM_SPIFLASH_RESULT_OK;
assert((dest_addr % 16) == 0); assert((dest_addr % 16) == 0);
assert((size % 16) == 0); assert((size % 16) == 0);
rc = esp_rom_spiflash_unlock();
if (rc != ESP_ROM_SPIFLASH_RESULT_OK) {
return rc;
}
/* esp_rom_spiflash_write_encrypted encrypts data in RAM as it writes, /* esp_rom_spiflash_write_encrypted encrypts data in RAM as it writes,
so copy to a temporary buffer - 32 bytes at a time. so copy to a temporary buffer - 32 bytes at a time.