kopia lustrzana https://github.com/espressif/esp-idf
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
pull/5628/head
rodzic
49d69bb235
commit
5b9b5d9636
|
@ -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.
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue