spi_flash: Force legacy mode for ESP32-S2

Can be removed once IDF-763 is merged
This commit is contained in:
Angus Gratton
2019-08-08 15:28:10 +10:00
committed by Angus Gratton
parent dc9170966b
commit 309376f51a
6 changed files with 23 additions and 8 deletions

View File

@@ -13,13 +13,16 @@ else()
"spi_flash_chip_generic.c" "spi_flash_chip_generic.c"
"spi_flash_chip_issi.c" "spi_flash_chip_issi.c"
) )
if(NOT CONFIG_SPI_FLASH_USE_LEGACY_IMPL) if (NOT CONFIG_IDF_TARGET_ESP32S2BETA)
list(APPEND srcs "esp_flash_api.c" # TODO: workaround until ESP32-S2 supports new API, can be always included
"esp_flash_spi_init.c" list(APPEND srcs "esp_flash_spi_init.c"
"memspi_host_driver.c" "memspi_host_driver.c"
"spi_flash_os_func_app.c" "spi_flash_os_func_app.c"
"spi_flash_os_func_noos.c" "spi_flash_os_func_noos.c")
) endif()
if(NOT CONFIG_SPI_FLASH_USE_LEGACY_IMPL)
list(APPEND srcs "esp_flash_api.c")
endif() endif()
set(priv_requires bootloader_support app_update soc) set(priv_requires bootloader_support app_update soc)
endif() endif()

View File

@@ -77,6 +77,15 @@ menu "SPI Flash driver"
bool "Allowed" bool "Allowed"
endchoice endchoice
# Force the Legacy implementation to be used on ESP32S2Beta
#
# TODO esp32s2beta: Remove once SPI Flash HAL available on S2 Beta
config SPI_FLASH_FORCE_LEGACY_ESP32S2BETA
bool
default y
depends on IDF_TARGET_ESP32S2BETA
select SPI_FLASH_USE_LEGACY_IMPL
config SPI_FLASH_USE_LEGACY_IMPL config SPI_FLASH_USE_LEGACY_IMPL
bool "Use the legacy implementation before IDF v4.0" bool "Use the legacy implementation before IDF v4.0"
default n default n

View File

@@ -12,9 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
#include <string.h> #include <string.h>
#include "esp_spi_flash_chip.h"
#include "esp_spi_flash.h" #include "esp_spi_flash.h"
#include "cache_utils.h"
#include "esp32/rom/spi_flash.h" #include "esp32/rom/spi_flash.h"
#include "esp32/rom/cache.h" #include "esp32/rom/cache.h"
@@ -38,7 +36,7 @@ esp_rom_spiflash_result_t IRAM_ATTR spi_flash_write_encrypted_chip(size_t dest_a
{ {
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;
rc = spi_flash_unlock(); rc = esp_rom_spiflash_unlock();
if (rc != ESP_ROM_SPIFLASH_RESULT_OK) { if (rc != ESP_ROM_SPIFLASH_RESULT_OK) {
return rc; return rc;
} }

View File

@@ -700,3 +700,8 @@ void spi_flash_dump_counters(void)
} }
#endif //CONFIG_SPI_FLASH_ENABLE_COUNTERS #endif //CONFIG_SPI_FLASH_ENABLE_COUNTERS
#if defined(CONFIG_SPI_FLASH_USE_LEGACY_IMPL) && defined(CONFIG_IDF_TARGET_ESP32S2BETA)
// TODO esp32s2beta: Remove once ESP32S2Beta has new SPI Flash API support
esp_flash_t *esp_flash_default_chip = NULL;
#endif