mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 10:47:19 +02:00
fix(spi_flash): Add suspend check on esp32c6 and esp32h2 for some reason
This commit is contained in:
@ -119,6 +119,18 @@ menu "Main Flash configuration"
|
|||||||
|
|
||||||
For new users, DO NOT enable this config.
|
For new users, DO NOT enable this config.
|
||||||
|
|
||||||
|
config SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND
|
||||||
|
bool "Enable chip suspend feature on c6 or h2 anyway (DO NOT ENABLE FOR NEW USERS OR APPLICATIONS)"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Flash suspend has defect on ESP32C6 until v0.2 and ESP32H2 until v1.2. If you already use suspend
|
||||||
|
feature for massive protection, you can enable this for bypassing check after knowing the risk.
|
||||||
|
But if you are new users, or developing new applications, or producing a new batch,
|
||||||
|
please DO NOT enable this config option.
|
||||||
|
|
||||||
|
For more information, please refer to errata or connect to Espressif business support team.
|
||||||
|
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -21,6 +21,9 @@
|
|||||||
#include "esp_rom_spiflash.h"
|
#include "esp_rom_spiflash.h"
|
||||||
#include "esp_private/esp_clk.h"
|
#include "esp_private/esp_clk.h"
|
||||||
#include "esp_spi_flash_counters.h"
|
#include "esp_spi_flash_counters.h"
|
||||||
|
#include "esp_check.h"
|
||||||
|
#include "hal/efuse_hal.h"
|
||||||
|
#include "soc/chip_revision.h"
|
||||||
|
|
||||||
#if CONFIG_IDF_TARGET_ESP32S2
|
#if CONFIG_IDF_TARGET_ESP32S2
|
||||||
#include "esp_crypto_lock.h" // for locking flash encryption peripheral
|
#include "esp_crypto_lock.h" // for locking flash encryption peripheral
|
||||||
@ -1439,6 +1442,20 @@ restore_cache:
|
|||||||
//init suspend mode cmd, uses internal.
|
//init suspend mode cmd, uses internal.
|
||||||
esp_err_t esp_flash_suspend_cmd_init(esp_flash_t* chip)
|
esp_err_t esp_flash_suspend_cmd_init(esp_flash_t* chip)
|
||||||
{
|
{
|
||||||
|
#if !CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32H2
|
||||||
|
if (!ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 102)) {
|
||||||
|
ESP_LOGE(TAG, "ESP32H2 chips lower than v1.2 are not recommended to suspend the Flash");
|
||||||
|
return ESP_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32C6
|
||||||
|
if (!ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 2)) {
|
||||||
|
ESP_LOGE(TAG, "ESP32C6 chips lower than v0.2 are not recommended to suspend the Flash");
|
||||||
|
return ESP_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
ESP_EARLY_LOGW(TAG, "Flash suspend feature is enabled");
|
ESP_EARLY_LOGW(TAG, "Flash suspend feature is enabled");
|
||||||
if (chip->chip_drv->get_chip_caps == NULL) {
|
if (chip->chip_drv->get_chip_caps == NULL) {
|
||||||
// chip caps get failed, pass the flash capability check.
|
// chip caps get failed, pass the flash capability check.
|
||||||
|
@ -2,3 +2,4 @@
|
|||||||
|
|
||||||
CONFIG_IDF_TARGET="esp32c3"
|
CONFIG_IDF_TARGET="esp32c3"
|
||||||
CONFIG_SPI_FLASH_AUTO_SUSPEND=y
|
CONFIG_SPI_FLASH_AUTO_SUSPEND=y
|
||||||
|
CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND=y
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
CONFIG_ESP_TASK_WDT=n
|
CONFIG_ESP_TASK_WDT_INIT=n
|
||||||
CONFIG_SPI_FLASH_AUTO_SUSPEND=y
|
CONFIG_SPI_FLASH_AUTO_SUSPEND=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||||
|
CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND=y
|
||||||
|
@ -2,3 +2,4 @@ CONFIG_SPI_FLASH_AUTO_SUSPEND=y
|
|||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
||||||
|
CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND=y
|
||||||
|
Reference in New Issue
Block a user