diff --git a/components/esp_hal_mspi/esp32c5/include/hal/spi_flash_ll.h b/components/esp_hal_mspi/esp32c5/include/hal/spi_flash_ll.h index 27bbb9e7467..65697a01fe3 100644 --- a/components/esp_hal_mspi/esp32c5/include/hal/spi_flash_ll.h +++ b/components/esp_hal_mspi/esp32c5/include/hal/spi_flash_ll.h @@ -21,8 +21,6 @@ extern "C" { #endif -// TODO: [ESP32C5] IDF-8715 - #define spi_flash_ll_calculate_clock_reg(host_id, clock_div) (((host_id)<=SPI1_HOST) ? spimem_flash_ll_calculate_clock_reg(clock_div) \ : gpspi_flash_ll_calculate_clock_reg(clock_div)) diff --git a/components/esp_hal_mspi/esp32c61/include/hal/spi_flash_ll.h b/components/esp_hal_mspi/esp32c61/include/hal/spi_flash_ll.h index 2120509d04f..ce3618f050c 100644 --- a/components/esp_hal_mspi/esp32c61/include/hal/spi_flash_ll.h +++ b/components/esp_hal_mspi/esp32c61/include/hal/spi_flash_ll.h @@ -14,8 +14,6 @@ #pragma once -// TODO: [ESP32C61] IDF-9314, inherit from c6 - #include "gpspi_flash_ll.h" #include "spimem_flash_ll.h" diff --git a/components/esp_hal_mspi/esp32h4/include/hal/gpspi_flash_ll.h b/components/esp_hal_mspi/esp32h4/include/hal/gpspi_flash_ll.h index bffcc612d43..0d73bf7a040 100644 --- a/components/esp_hal_mspi/esp32h4/include/hal/gpspi_flash_ll.h +++ b/components/esp_hal_mspi/esp32h4/include/hal/gpspi_flash_ll.h @@ -23,7 +23,7 @@ #include #include "hal/misc.h" -//TODO: [ESP32H4] IDF-12388 inherited from verification branch, need check +//TODO: [ESP32H4] IDF-12389 inherited from verification branch, need check #ifdef __cplusplus extern "C" { diff --git a/components/esp_hal_mspi/esp32h4/include/hal/mspi_ll.h b/components/esp_hal_mspi/esp32h4/include/hal/mspi_ll.h index 9ac94c7d136..91cbd8afa7a 100644 --- a/components/esp_hal_mspi/esp32h4/include/hal/mspi_ll.h +++ b/components/esp_hal_mspi/esp32h4/include/hal/mspi_ll.h @@ -26,8 +26,6 @@ #include "hal/misc.h" #include "hal/assert.h" -//TODO: [ESP32H4] IDF-12390 inherited from verification branch, need check - #ifdef __cplusplus extern "C" { #endif diff --git a/components/esp_hal_mspi/esp32h4/include/hal/spi_flash_ll.h b/components/esp_hal_mspi/esp32h4/include/hal/spi_flash_ll.h index 84a826471d4..e9ae3caa6fd 100644 --- a/components/esp_hal_mspi/esp32h4/include/hal/spi_flash_ll.h +++ b/components/esp_hal_mspi/esp32h4/include/hal/spi_flash_ll.h @@ -17,8 +17,6 @@ #include "gpspi_flash_ll.h" #include "spimem_flash_ll.h" -//TODO: [ESP32H4] IDF-12388 inherited from verification branch, need check - #ifdef __cplusplus extern "C" { #endif diff --git a/components/esp_hal_mspi/esp32p4/include/hal/spimem_flash_ll.h b/components/esp_hal_mspi/esp32p4/include/hal/spimem_flash_ll.h index c49d3e6d678..3e8267c4248 100644 --- a/components/esp_hal_mspi/esp32p4/include/hal/spimem_flash_ll.h +++ b/components/esp_hal_mspi/esp32p4/include/hal/spimem_flash_ll.h @@ -37,8 +37,6 @@ extern "C" { #endif -//TODO: IDF-7499 - #define spimem_flash_ll_get_hw(host_id) (((host_id)==SPI1_HOST ? &SPIMEM1 : NULL )) #define spimem_flash_ll_hw_get_id(dev) ((dev) == (void*)&SPIMEM1? SPI1_HOST: -1) diff --git a/components/esp_hw_support/port/esp32h4/esp_clk_tree.c b/components/esp_hw_support/port/esp32h4/esp_clk_tree.c index 091ebe17c43..e01a6246de1 100644 --- a/components/esp_hw_support/port/esp32h4/esp_clk_tree.c +++ b/components/esp_hw_support/port/esp32h4/esp_clk_tree.c @@ -67,7 +67,7 @@ uint32_t *freq_value) void esp_clk_tree_initialize(void) { - // // TODO: IDF-12388 + // // TODO: IDF-14962 // // // In bootloader, flash clock source will always be switched to use XTAL_X2 clock // // s_xtal_x2_ref_cnt++; // if (clk_ll_cpu_get_src() == SOC_CPU_CLK_SRC_XTAL_X2) { diff --git a/components/esp_phy/src/phy_override.c b/components/esp_phy/src/phy_override.c index 4fc5857806c..192973e283d 100644 --- a/components/esp_phy/src/phy_override.c +++ b/components/esp_phy/src/phy_override.c @@ -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 */ @@ -19,7 +19,7 @@ */ static bool s_wifi_adc_xpd_flag; -#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED // TODO: [ESP32C5] IDF-8727 remove me when fix IDF-8727 +#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED static bool s_wifi_pwdet_xpd_flag; static bool s_wifi_tsens_xpd_flag; #endif @@ -60,7 +60,7 @@ IRAM_ATTR void phy_i2c_exit_critical(void) void phy_set_pwdet_power(bool en) { -#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED // TODO: [ESP32C5] IDF-8727 remove me when fix IDF-8727 +#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED if (s_wifi_pwdet_xpd_flag == en) { /* ignore repeated calls to phy_set_pwdet_power when the state is already correct */ return; @@ -77,7 +77,7 @@ void phy_set_pwdet_power(bool en) void IRAM_ATTR phy_set_tsens_power(bool en) { -#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED // TODO: [ESP32C5] IDF-8727 remove me when fix IDF-8727 +#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED if (s_wifi_tsens_xpd_flag == en) { /* ignore repeated calls to phy_set_tsens_power when the state is already correct */ return; @@ -94,7 +94,7 @@ void IRAM_ATTR phy_set_tsens_power(bool en) int16_t phy_get_tsens_value(void) { -#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED // TODO: [ESP32C5] IDF-8727 remove me when fix IDF-8727 +#if CONFIG_SOC_TEMP_SENSOR_SUPPORTED return temp_sensor_get_raw_value(NULL); #else return 0; diff --git a/components/esp_rom/esp32h21/include/esp32h21/rom/spi_flash.h b/components/esp_rom/esp32h21/include/esp32h21/rom/spi_flash.h index 6710d80a7ad..0b6e0afb6d4 100644 --- a/components/esp_rom/esp32h21/include/esp32h21/rom/spi_flash.h +++ b/components/esp_rom/esp32h21/include/esp32h21/rom/spi_flash.h @@ -11,8 +11,6 @@ #include "esp_attr.h" #include "esp_rom_spiflash.h" -//TODO: [ESP32H21] IDF-11609 - #ifdef __cplusplus extern "C" { #endif diff --git a/components/esp_rom/esp32h4/include/esp32h4/rom/spi_flash.h b/components/esp_rom/esp32h4/include/esp32h4/rom/spi_flash.h index 4e1d435b090..bbef05a3d32 100644 --- a/components/esp_rom/esp32h4/include/esp32h4/rom/spi_flash.h +++ b/components/esp_rom/esp32h4/include/esp32h4/rom/spi_flash.h @@ -15,8 +15,6 @@ extern "C" { #endif -//TODO: [ESP32H4] IDF-12388 inherit from verification branch, need check - #define PERIPHS_SPI_FLASH_CMD SPI_MEM_CMD_REG(1) #define PERIPHS_SPI_FLASH_ADDR SPI_MEM_ADDR_REG(1) #define PERIPHS_SPI_FLASH_CTRL SPI_MEM_CTRL_REG(1) diff --git a/components/soc/esp32c5/include/soc/soc_caps.h b/components/soc/esp32c5/include/soc/soc_caps.h index e86ac803862..7b8d956b36f 100644 --- a/components/soc/esp32c5/include/soc/soc_caps.h +++ b/components/soc/esp32c5/include/soc/soc_caps.h @@ -81,7 +81,7 @@ #define SOC_ASSIST_DEBUG_SUPPORTED 1 #define SOC_WDT_SUPPORTED 1 #define SOC_SDIO_SLAVE_SUPPORTED 1 -#define SOC_SPI_FLASH_SUPPORTED 1 // TODO: [ESP32C5] IDF-8715 +#define SOC_SPI_FLASH_SUPPORTED 1 #define SOC_ECDSA_SUPPORTED 1 #define SOC_RNG_SUPPORTED 1 #define SOC_KEY_MANAGER_SUPPORTED 1 diff --git a/components/soc/esp32c61/include/soc/soc_caps.h b/components/soc/esp32c61/include/soc/soc_caps.h index 4764ed4d161..88ac4c0c352 100644 --- a/components/soc/esp32c61/include/soc/soc_caps.h +++ b/components/soc/esp32c61/include/soc/soc_caps.h @@ -59,7 +59,7 @@ #define SOC_CLK_TREE_SUPPORTED 1 #define SOC_ASSIST_DEBUG_SUPPORTED 1 #define SOC_WDT_SUPPORTED 1 -#define SOC_SPI_FLASH_SUPPORTED 1 //TODO: [ESP32C61] IDF-9314 +#define SOC_SPI_FLASH_SUPPORTED 1 // \#define SOC_RNG_SUPPORTED 1 //TODO: [ESP32C61] IDF-9236 #define SOC_MODEM_CLOCK_SUPPORTED 1 #define SOC_REG_I2C_SUPPORTED 1 diff --git a/components/soc/esp32h4/include/soc/soc_caps.h b/components/soc/esp32h4/include/soc/soc_caps.h index 61e2b3baaa7..7eebfb1c3a3 100644 --- a/components/soc/esp32h4/include/soc/soc_caps.h +++ b/components/soc/esp32h4/include/soc/soc_caps.h @@ -88,7 +88,7 @@ #define SOC_CLK_TREE_SUPPORTED 1 // #define SOC_ASSIST_DEBUG_SUPPORTED 1 // TODO: [ESP32H4] IDF-12310 #define SOC_WDT_SUPPORTED 1 -#define SOC_SPI_FLASH_SUPPORTED 1 // TODO: [ESP32H4] IDF-12388 +#define SOC_SPI_FLASH_SUPPORTED 1 #define SOC_SPIRAM_SUPPORTED 1 #define SOC_LIGHT_SLEEP_SUPPORTED 1 #define SOC_DEEP_SLEEP_SUPPORTED 1 diff --git a/components/spi_flash/test_apps/.build-test-rules.yml b/components/spi_flash/test_apps/.build-test-rules.yml index a5eb1537b0c..d70e8452c91 100644 --- a/components/spi_flash/test_apps/.build-test-rules.yml +++ b/components/spi_flash/test_apps/.build-test-rules.yml @@ -2,9 +2,9 @@ components/spi_flash/test_apps/esp_flash: disable: - - if: IDF_TARGET in ["esp32h21", "esp32h4", "esp32s31"] + - if: IDF_TARGET in ["esp32s31"] temporary: true - reason: not support yet # TODO: [esp32h21] IDF-11609 [ESP32H4] IDF-12388 TODO: [esp32s31] IDF-14777 + reason: not support yet # TODO: TODO: [esp32s31] IDF-14777 depends_filepatterns: - components/bootloader_support/bootloader_flash/**/* depends_components: @@ -26,9 +26,9 @@ components/spi_flash/test_apps/esp_flash_blockdev: components/spi_flash/test_apps/esp_flash_stress: disable: - - if: IDF_TARGET in ["esp32h4", "esp32s31"] + - if: IDF_TARGET in ["esp32s31"] temporary: true - reason: not support yet # TODO: [ESP32H4] IDF-12388 [ESP32S31] IDF-14777 + reason: not support yet # TODO: [ESP32S31] IDF-14777 depends_components: - esp_mm - spi_flash @@ -38,7 +38,7 @@ components/spi_flash/test_apps/flash_encryption: disable: - if: IDF_TARGET in ["esp32h4", "esp32s31"] temporary: true - reason: not support yet # TODO: [ESP32H4] IDF-12388 [ESP32S31] IDF-14628 + reason: not support yet # TODO: [ESP32H4] IDF-12261 [ESP32S31] IDF-14628 disable_test: - if: IDF_TARGET in ["esp32c2", "esp32s2", "esp32c6", "esp32h2", "esp32p4", "esp32c5", "esp32c61", "esp32h21", "esp32h4"] temporary: true diff --git a/components/spi_flash/test_apps/esp_flash/README.md b/components/spi_flash/test_apps/esp_flash/README.md index 7b96141437e..44f3780f1d6 100644 --- a/components/spi_flash/test_apps/esp_flash/README.md +++ b/components/spi_flash/test_apps/esp_flash/README.md @@ -1,2 +1,2 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H21 | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | --------- | -------- | -------- | -------- | -------- | diff --git a/components/spi_flash/test_apps/esp_flash/main/test_spi_flash.c b/components/spi_flash/test_apps/esp_flash/main/test_spi_flash.c index 1a63c8118ce..7924767677a 100644 --- a/components/spi_flash/test_apps/esp_flash/main/test_spi_flash.c +++ b/components/spi_flash/test_apps/esp_flash/main/test_spi_flash.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -125,41 +125,41 @@ TEST_CASE("flash write and erase work both on PRO CPU and on APP CPU", "[spi_fla #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32, ESP32S2, ESP32S3, ESP32C3, ESP32P4) #if CONFIG_FREERTOS_NUMBER_OF_CORES > 1 +typedef struct { + QueueHandle_t queue; + volatile bool done; +} deadlock_test_arg_t; + +static void producer_task(void* varg) +{ + int dummy = 0; + deadlock_test_arg_t* arg = (deadlock_test_arg_t*) varg; + while (!arg->done) { + xQueueSend(arg->queue, &dummy, 0); + vTaskDelay(1); + } + vTaskDelete(NULL); +} + +static void consumer_task(void* varg) +{ + int dummy; + deadlock_test_arg_t* arg = (deadlock_test_arg_t*) varg; + while (!arg->done) { + if (xQueueReceive(arg->queue, &dummy, 0) == pdTRUE) { + vTaskDelay(1); + } + } + vTaskDelete(NULL); +} + TEST_CASE("spi_flash deadlock with high priority busy-waiting task", "[spi_flash][esp_flash]") { - typedef struct { - QueueHandle_t queue; - volatile bool done; - } deadlock_test_arg_t; - /* Create two tasks: high-priority consumer on CPU0, low-priority producer on CPU1. * Consumer polls the queue until it gets some data, then yields. * Run flash operation on CPU0. Check that when IPC1 task blocks out the producer, * the task which does flash operation does not get blocked by the consumer. */ - - void producer_task(void* varg) - { - int dummy = 0; - deadlock_test_arg_t* arg = (deadlock_test_arg_t*) varg; - while (!arg->done) { - xQueueSend(arg->queue, &dummy, 0); - vTaskDelay(1); - } - vTaskDelete(NULL); - } - - void consumer_task(void* varg) - { - int dummy; - deadlock_test_arg_t* arg = (deadlock_test_arg_t*) varg; - while (!arg->done) { - if (xQueueReceive(arg->queue, &dummy, 0) == pdTRUE) { - vTaskDelay(1); - } - } - vTaskDelete(NULL); - } deadlock_test_arg_t arg = { .queue = xQueueCreate(32, sizeof(int)), .done = false diff --git a/components/spi_flash/test_apps/esp_flash_stress/README.md b/components/spi_flash/test_apps/esp_flash_stress/README.md index 15bfc62bf3a..44f3780f1d6 100644 --- a/components/spi_flash/test_apps/esp_flash_stress/README.md +++ b/components/spi_flash/test_apps/esp_flash_stress/README.md @@ -1,2 +1,2 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H21 | ESP32-P4 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | --------- | -------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H21 | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | --------- | -------- | -------- | -------- | -------- |