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_issi.c"
)
if(NOT CONFIG_SPI_FLASH_USE_LEGACY_IMPL)
list(APPEND srcs "esp_flash_api.c"
"esp_flash_spi_init.c"
if (NOT CONFIG_IDF_TARGET_ESP32S2BETA)
# TODO: workaround until ESP32-S2 supports new API, can be always included
list(APPEND srcs "esp_flash_spi_init.c"
"memspi_host_driver.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()
set(priv_requires bootloader_support app_update soc)
endif()

View file

@ -77,6 +77,15 @@ menu "SPI Flash driver"
bool "Allowed"
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
bool "Use the legacy implementation before IDF v4.0"
default n

View file

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

View file

@ -700,3 +700,8 @@ void spi_flash_dump_counters(void)
}
#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