spiflash: Add spi_flash_read_encrypted() function

This commit is contained in:
Angus Gratton
2017-01-04 17:37:15 +11:00
committed by Ivan Grokhotkov
parent fbe89a0833
commit 95c150fe2c
2 changed files with 44 additions and 0 deletions

View File

@@ -381,6 +381,33 @@ out:
return spi_flash_translate_rc(rc);
}
#define FLASH_PAGE_SIZE 0x10000
esp_err_t IRAM_ATTR spi_flash_read_encrypted(size_t src, void *dstv, size_t size)
{
if (src + size > g_rom_flashchip.chip_size) {
return ESP_ERR_INVALID_SIZE;
}
if (size == 0) {
return ESP_OK;
}
esp_err_t err;
const uint8_t *map;
spi_flash_mmap_handle_t map_handle;
size_t map_src = src & ~(FLASH_PAGE_SIZE-1);
size_t map_size = size + (src - map_src);
err = spi_flash_mmap(map_src, map_size, SPI_FLASH_MMAP_DATA, (const void **)&map, &map_handle);
if (err != ESP_OK) {
return err;
}
memcpy(dstv, map + (src - map_src), size);
spi_flash_munmap(map_handle);
return err;
}
static esp_err_t spi_flash_translate_rc(SpiFlashOpResult rc)
{
switch (rc) {