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:
C.S.M
2023-02-15 12:39:12 +08:00
4 changed files with 9 additions and 8 deletions

View File

@@ -649,6 +649,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable, bool dcache_wrap_enable
#ifdef CONFIG_ESPTOOLPY_FLASHMODE_QIO
flash_support_wrap = true;
spi_flash_wrap_probe();
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
flash_support_wrap = false;
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) {
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));
}
#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
flash_support_wrap = true;
spi_flash_wrap_probe();
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
flash_support_wrap = false;
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) {
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));
}
#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
flash_support_wrap = true;
spi_flash_wrap_probe();
if (!spi_flash_support_wrap_size(flash_wrap_size)) {
flash_support_wrap = false;
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) {
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));
}
return ESP_OK;

View File

@@ -144,7 +144,7 @@ bool spi_flash_hpm_dummy_adjust(void);
* @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

View File

@@ -140,10 +140,8 @@ esp_err_t spi_flash_wrap_probe(void)
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);
}

View File

@@ -555,7 +555,7 @@ void test_flash_wrap(const esp_partition_t* part)
printf("Read back...\n");
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));
spi_flash_wrap_disable();