forked from espressif/esp-idf
Merge branch 'bugfix/wrap_init' into 'master'
spi_flash: initialize wrap in app stage See merge request espressif/esp-idf!22362
This commit is contained in:
@@ -649,6 +649,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable, bool dcache_wrap_enable
|
|||||||
|
|
||||||
#ifdef CONFIG_ESPTOOLPY_FLASHMODE_QIO
|
#ifdef CONFIG_ESPTOOLPY_FLASHMODE_QIO
|
||||||
flash_support_wrap = true;
|
flash_support_wrap = true;
|
||||||
|
spi_flash_wrap_probe();
|
||||||
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
|
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
|
||||||
flash_support_wrap = false;
|
flash_support_wrap = false;
|
||||||
ESP_EARLY_LOGW(TAG, "Flash do not support wrap size %d.", flash_wrap_size);
|
ESP_EARLY_LOGW(TAG, "Flash do not support wrap size %d.", flash_wrap_size);
|
||||||
@@ -672,7 +673,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable, bool dcache_wrap_enable
|
|||||||
|
|
||||||
if (flash_support_wrap && flash_wrap_size > 0) {
|
if (flash_support_wrap && flash_wrap_size > 0) {
|
||||||
ESP_EARLY_LOGI(TAG, "Flash wrap enabled, size = %d.", flash_wrap_size);
|
ESP_EARLY_LOGI(TAG, "Flash wrap enabled, size = %d.", flash_wrap_size);
|
||||||
spI_flash_wrap_enable(flash_wrap_size);
|
spi_flash_wrap_enable(flash_wrap_size);
|
||||||
esp_enable_cache_flash_wrap((flash_wrap_sizes[0] > 0), (flash_wrap_sizes[1] > 0));
|
esp_enable_cache_flash_wrap((flash_wrap_sizes[0] > 0), (flash_wrap_sizes[1] > 0));
|
||||||
}
|
}
|
||||||
#if (CONFIG_IDF_TARGET_ESP32S2 && CONFIG_SPIRAM)
|
#if (CONFIG_IDF_TARGET_ESP32S2 && CONFIG_SPIRAM)
|
||||||
@@ -895,6 +896,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable, bool dcache_wrap_enable
|
|||||||
|
|
||||||
#ifdef CONFIG_ESPTOOLPY_FLASHMODE_QIO
|
#ifdef CONFIG_ESPTOOLPY_FLASHMODE_QIO
|
||||||
flash_support_wrap = true;
|
flash_support_wrap = true;
|
||||||
|
spi_flash_wrap_probe();
|
||||||
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
|
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
|
||||||
flash_support_wrap = false;
|
flash_support_wrap = false;
|
||||||
ESP_EARLY_LOGW(TAG, "Flash do not support wrap size %d.", flash_wrap_size);
|
ESP_EARLY_LOGW(TAG, "Flash do not support wrap size %d.", flash_wrap_size);
|
||||||
@@ -919,7 +921,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable, bool dcache_wrap_enable
|
|||||||
|
|
||||||
if (flash_support_wrap && flash_wrap_size > 0) {
|
if (flash_support_wrap && flash_wrap_size > 0) {
|
||||||
ESP_EARLY_LOGI(TAG, "Flash wrap enabled, size = %d.", flash_wrap_size);
|
ESP_EARLY_LOGI(TAG, "Flash wrap enabled, size = %d.", flash_wrap_size);
|
||||||
spI_flash_wrap_enable(flash_wrap_size);
|
spi_flash_wrap_enable(flash_wrap_size);
|
||||||
esp_enable_cache_flash_wrap((flash_wrap_sizes[0] > 0), (flash_wrap_sizes[1] > 0));
|
esp_enable_cache_flash_wrap((flash_wrap_sizes[0] > 0), (flash_wrap_sizes[1] > 0));
|
||||||
}
|
}
|
||||||
#if (CONFIG_IDF_TARGET_ESP32S3 && CONFIG_SPIRAM)
|
#if (CONFIG_IDF_TARGET_ESP32S3 && CONFIG_SPIRAM)
|
||||||
@@ -961,6 +963,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable)
|
|||||||
|
|
||||||
#ifdef CONFIG_ESPTOOLPY_FLASHMODE_QIO
|
#ifdef CONFIG_ESPTOOLPY_FLASHMODE_QIO
|
||||||
flash_support_wrap = true;
|
flash_support_wrap = true;
|
||||||
|
spi_flash_wrap_probe();
|
||||||
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
|
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
|
||||||
flash_support_wrap = false;
|
flash_support_wrap = false;
|
||||||
ESP_EARLY_LOGW(TAG, "Flash do not support wrap size %d.", flash_wrap_size);
|
ESP_EARLY_LOGW(TAG, "Flash do not support wrap size %d.", flash_wrap_size);
|
||||||
@@ -971,7 +974,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable)
|
|||||||
|
|
||||||
if (flash_support_wrap && flash_wrap_size > 0) {
|
if (flash_support_wrap && flash_wrap_size > 0) {
|
||||||
ESP_EARLY_LOGI(TAG, "Flash wrap enabled, size = %d.", flash_wrap_size);
|
ESP_EARLY_LOGI(TAG, "Flash wrap enabled, size = %d.", flash_wrap_size);
|
||||||
spI_flash_wrap_enable(flash_wrap_size);
|
spi_flash_wrap_enable(flash_wrap_size);
|
||||||
esp_enable_cache_flash_wrap((flash_wrap_size > 0));
|
esp_enable_cache_flash_wrap((flash_wrap_size > 0));
|
||||||
}
|
}
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
|
@@ -144,7 +144,7 @@ bool spi_flash_hpm_dummy_adjust(void);
|
|||||||
* @return esp_err_t : ESP_OK for successful.
|
* @return esp_err_t : ESP_OK for successful.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
esp_err_t spI_flash_wrap_enable(spi_flash_wrap_size_t wrap_size);
|
esp_err_t spi_flash_wrap_enable(spi_flash_wrap_size_t wrap_size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Probe flash wrap method
|
* @brief Probe flash wrap method
|
||||||
|
@@ -140,10 +140,8 @@ esp_err_t spi_flash_wrap_probe(void)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t spI_flash_wrap_enable(spi_flash_wrap_size_t wrap_size)
|
esp_err_t spi_flash_wrap_enable(spi_flash_wrap_size_t wrap_size)
|
||||||
{
|
{
|
||||||
// Calculate pre_code. pre_code equals log(2)(wrap_size) - 3
|
|
||||||
// So the wrap_size:pre_code is 8:0, 16:1, 32:2, 64:3.
|
|
||||||
return chip_wrap->chip_wrap_set(wrap_size);
|
return chip_wrap->chip_wrap_set(wrap_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -555,7 +555,7 @@ void test_flash_wrap(const esp_partition_t* part)
|
|||||||
|
|
||||||
printf("Read back...\n");
|
printf("Read back...\n");
|
||||||
spi_flash_wrap_probe();
|
spi_flash_wrap_probe();
|
||||||
spI_flash_wrap_enable(FLASH_WRAP_SIZE_32B);
|
spi_flash_wrap_enable(FLASH_WRAP_SIZE_32B);
|
||||||
esp_flash_read(chip, wrap_buf, offs + 3, sizeof(wrap_buf));
|
esp_flash_read(chip, wrap_buf, offs + 3, sizeof(wrap_buf));
|
||||||
spi_flash_wrap_disable();
|
spi_flash_wrap_disable();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user