From 339c24ca47309eb897e13770b60908fcbbf6530d Mon Sep 17 00:00:00 2001 From: Armando Date: Fri, 29 Nov 2024 15:01:12 +0800 Subject: [PATCH] refactor(mspi): added mspi_timing_tuning dir --- components/esp_hw_support/CMakeLists.txt | 16 ++++++++++------ components/esp_hw_support/linker.lf | 11 ----------- .../include/esp_private/mspi_timing_config.h | 0 .../include/esp_private/mspi_timing_tuning.h | 0 .../include/esp_private/mspi_timing_types.h | 2 +- .../esp_hw_support/mspi_timing_tuning/linker.lf | 15 +++++++++++++++ .../mspi_timing_by_dqs.c | 0 .../mspi_timing_by_dqs.h | 0 .../mspi_timing_by_flash_delay.c | 0 .../mspi_timing_by_flash_delay.h | 0 .../mspi_timing_by_mspi_delay.c | 0 .../mspi_timing_by_mspi_delay.h | 0 .../mspi_timing_tuning.c | 0 .../{ => mspi_timing_tuning}/mspi_timing_types.h | 0 .../port/esp32p4/CMakeLists.txt | 11 +++++++++++ .../port/esp32p4/mspi_timing_config.c | 0 .../port/esp32p4/mspi_timing_tuning_configs.h | 0 .../port/esp32s3/CMakeLists.txt | 11 +++++++++++ .../port/esp32s3/mspi_timing_config.c | 0 .../port/esp32s3/mspi_timing_tuning_configs.h | 0 .../esp_hw_support/port/esp32p4/CMakeLists.txt | 5 ----- .../esp_hw_support/port/esp32s3/CMakeLists.txt | 4 ---- components/esp_system/system_init_fn.txt | 2 +- 23 files changed, 49 insertions(+), 28 deletions(-) rename components/esp_hw_support/{ => mspi_timing_tuning}/include/esp_private/mspi_timing_config.h (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/include/esp_private/mspi_timing_tuning.h (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/include/esp_private/mspi_timing_types.h (91%) create mode 100644 components/esp_hw_support/mspi_timing_tuning/linker.lf rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_by_dqs.c (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_by_dqs.h (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_by_flash_delay.c (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_by_flash_delay.h (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_by_mspi_delay.c (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_by_mspi_delay.h (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_tuning.c (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/mspi_timing_types.h (100%) create mode 100644 components/esp_hw_support/mspi_timing_tuning/port/esp32p4/CMakeLists.txt rename components/esp_hw_support/{ => mspi_timing_tuning}/port/esp32p4/mspi_timing_config.c (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/port/esp32p4/mspi_timing_tuning_configs.h (100%) create mode 100644 components/esp_hw_support/mspi_timing_tuning/port/esp32s3/CMakeLists.txt rename components/esp_hw_support/{ => mspi_timing_tuning}/port/esp32s3/mspi_timing_config.c (100%) rename components/esp_hw_support/{ => mspi_timing_tuning}/port/esp32s3/mspi_timing_tuning_configs.h (100%) diff --git a/components/esp_hw_support/CMakeLists.txt b/components/esp_hw_support/CMakeLists.txt index e0ccdbce17..75f844aaf4 100644 --- a/components/esp_hw_support/CMakeLists.txt +++ b/components/esp_hw_support/CMakeLists.txt @@ -125,15 +125,15 @@ if(NOT non_os_build) endif() if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP) - list(APPEND srcs "mspi_timing_tuning.c") + list(APPEND srcs "mspi_timing_tuning/mspi_timing_tuning.c") if(CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY) - list(APPEND srcs "mspi_timing_by_mspi_delay.c") + list(APPEND srcs "mspi_timing_tuning/mspi_timing_by_mspi_delay.c") endif() if(CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_DQS) - list(APPEND srcs "mspi_timing_by_dqs.c") + list(APPEND srcs "mspi_timing_tuning/mspi_timing_by_dqs.c") endif() if(CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_FLASH_DELAY) - list(APPEND srcs "mspi_timing_by_flash_delay.c") + list(APPEND srcs "mspi_timing_tuning/mspi_timing_by_flash_delay.c") endif() endif() @@ -153,17 +153,21 @@ else() endif() set(public_include_dirs "include" "include/soc" "include/soc/${target}" - "dma/include" "ldo/include" "debug_probe/include") + "dma/include" "ldo/include" "debug_probe/include" + "mspi_timing_tuning/include") idf_component_register(SRCS ${srcs} INCLUDE_DIRS ${public_include_dirs} PRIV_INCLUDE_DIRS port/include include/esp_private REQUIRES ${requires} PRIV_REQUIRES "${priv_requires}" - LDFRAGMENTS linker.lf dma/linker.lf ldo/linker.lf) + LDFRAGMENTS linker.lf dma/linker.lf ldo/linker.lf mspi_timing_tuning/linker.lf) idf_build_get_property(target IDF_TARGET) add_subdirectory(port/${target}) +if(CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING) + add_subdirectory(mspi_timing_tuning/port/${target}) +endif() add_subdirectory(lowpower) if(CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND OR CONFIG_PM_SLP_DISABLE_GPIO) diff --git a/components/esp_hw_support/linker.lf b/components/esp_hw_support/linker.lf index f3848b85fc..9695d404ac 100644 --- a/components/esp_hw_support/linker.lf +++ b/components/esp_hw_support/linker.lf @@ -35,17 +35,6 @@ entries: periph_ctrl: wifi_module_disable (noflash) if SOC_SYSTIMER_SUPPORTED = y: systimer (noflash) - if APP_BUILD_TYPE_PURE_RAM_APP = n: - mspi_timing_tuning (noflash) - if SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY = y: - mspi_timing_by_mspi_delay (noflash) - mspi_timing_config (noflash) - if SOC_MEMSPI_TIMING_TUNING_BY_DQS = y: - mspi_timing_by_dqs (noflash) - if SOC_MEMSPI_TIMING_TUNING_BY_FLASH_DELAY = y: - mspi_timing_by_flash_delay (noflash) - if SOC_MEMSPI_TIMING_TUNING_BY_DQS = y || SOC_MEMSPI_TIMING_TUNING_BY_FLASH_DELAY = y: - mspi_timing_config (noflash) if SOC_ADC_SHARED_POWER = y: if ADC_ONESHOT_CTRL_FUNC_IN_IRAM = y: sar_periph_ctrl (noflash) diff --git a/components/esp_hw_support/include/esp_private/mspi_timing_config.h b/components/esp_hw_support/mspi_timing_tuning/include/esp_private/mspi_timing_config.h similarity index 100% rename from components/esp_hw_support/include/esp_private/mspi_timing_config.h rename to components/esp_hw_support/mspi_timing_tuning/include/esp_private/mspi_timing_config.h diff --git a/components/esp_hw_support/include/esp_private/mspi_timing_tuning.h b/components/esp_hw_support/mspi_timing_tuning/include/esp_private/mspi_timing_tuning.h similarity index 100% rename from components/esp_hw_support/include/esp_private/mspi_timing_tuning.h rename to components/esp_hw_support/mspi_timing_tuning/include/esp_private/mspi_timing_tuning.h diff --git a/components/esp_hw_support/include/esp_private/mspi_timing_types.h b/components/esp_hw_support/mspi_timing_tuning/include/esp_private/mspi_timing_types.h similarity index 91% rename from components/esp_hw_support/include/esp_private/mspi_timing_types.h rename to components/esp_hw_support/mspi_timing_tuning/include/esp_private/mspi_timing_types.h index 488ee11174..9b7f19caa1 100644 --- a/components/esp_hw_support/include/esp_private/mspi_timing_types.h +++ b/components/esp_hw_support/mspi_timing_tuning/include/esp_private/mspi_timing_types.h @@ -21,7 +21,7 @@ extern "C" { typedef enum { MSPI_TIMING_SPEED_MODE_LOW_PERF, /*!< Low performance speed mode, this mode is safe for all the scenarios, unless the MSPI attached devices (Flash, PSRAM) are powered down. - As a tradeoff, the performance of the MSPI (devices) are swithed to a very low speed */ + As a tradeoff, the performance of the MSPI (devices) are switched to a very low speed */ MSPI_TIMING_SPEED_MODE_NORMAL_PERF, /*!< Normal performance speed mode, MSPI speed is the same as you configured in menuconfig */ } mspi_timing_speed_mode_t; diff --git a/components/esp_hw_support/mspi_timing_tuning/linker.lf b/components/esp_hw_support/mspi_timing_tuning/linker.lf new file mode 100644 index 0000000000..69d562586a --- /dev/null +++ b/components/esp_hw_support/mspi_timing_tuning/linker.lf @@ -0,0 +1,15 @@ +[mapping:mspi_timing_tuning_driver] +archive: libesp_hw_support.a +entries: + +if APP_BUILD_TYPE_PURE_RAM_APP = n: + mspi_timing_tuning (noflash) + if SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY = y: + mspi_timing_by_mspi_delay (noflash) + mspi_timing_config (noflash) + if SOC_MEMSPI_TIMING_TUNING_BY_DQS = y: + mspi_timing_by_dqs (noflash) + if SOC_MEMSPI_TIMING_TUNING_BY_FLASH_DELAY = y: + mspi_timing_by_flash_delay (noflash) + if SOC_MEMSPI_TIMING_TUNING_BY_DQS = y || SOC_MEMSPI_TIMING_TUNING_BY_FLASH_DELAY = y: + mspi_timing_config (noflash) diff --git a/components/esp_hw_support/mspi_timing_by_dqs.c b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_dqs.c similarity index 100% rename from components/esp_hw_support/mspi_timing_by_dqs.c rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_dqs.c diff --git a/components/esp_hw_support/mspi_timing_by_dqs.h b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_dqs.h similarity index 100% rename from components/esp_hw_support/mspi_timing_by_dqs.h rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_dqs.h diff --git a/components/esp_hw_support/mspi_timing_by_flash_delay.c b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_flash_delay.c similarity index 100% rename from components/esp_hw_support/mspi_timing_by_flash_delay.c rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_flash_delay.c diff --git a/components/esp_hw_support/mspi_timing_by_flash_delay.h b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_flash_delay.h similarity index 100% rename from components/esp_hw_support/mspi_timing_by_flash_delay.h rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_flash_delay.h diff --git a/components/esp_hw_support/mspi_timing_by_mspi_delay.c b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_mspi_delay.c similarity index 100% rename from components/esp_hw_support/mspi_timing_by_mspi_delay.c rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_mspi_delay.c diff --git a/components/esp_hw_support/mspi_timing_by_mspi_delay.h b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_mspi_delay.h similarity index 100% rename from components/esp_hw_support/mspi_timing_by_mspi_delay.h rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_mspi_delay.h diff --git a/components/esp_hw_support/mspi_timing_tuning.c b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_tuning.c similarity index 100% rename from components/esp_hw_support/mspi_timing_tuning.c rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_tuning.c diff --git a/components/esp_hw_support/mspi_timing_types.h b/components/esp_hw_support/mspi_timing_tuning/mspi_timing_types.h similarity index 100% rename from components/esp_hw_support/mspi_timing_types.h rename to components/esp_hw_support/mspi_timing_tuning/mspi_timing_types.h diff --git a/components/esp_hw_support/mspi_timing_tuning/port/esp32p4/CMakeLists.txt b/components/esp_hw_support/mspi_timing_tuning/port/esp32p4/CMakeLists.txt new file mode 100644 index 0000000000..668e5643d5 --- /dev/null +++ b/components/esp_hw_support/mspi_timing_tuning/port/esp32p4/CMakeLists.txt @@ -0,0 +1,11 @@ +target_include_directories(${COMPONENT_LIB} PUBLIC .) + +set(srcs) + +if(NOT BOOTLOADER_BUILD) + if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP) + list(APPEND srcs "mspi_timing_config.c") + endif() +endif() + +target_sources(${COMPONENT_LIB} PRIVATE "${srcs}") diff --git a/components/esp_hw_support/port/esp32p4/mspi_timing_config.c b/components/esp_hw_support/mspi_timing_tuning/port/esp32p4/mspi_timing_config.c similarity index 100% rename from components/esp_hw_support/port/esp32p4/mspi_timing_config.c rename to components/esp_hw_support/mspi_timing_tuning/port/esp32p4/mspi_timing_config.c diff --git a/components/esp_hw_support/port/esp32p4/mspi_timing_tuning_configs.h b/components/esp_hw_support/mspi_timing_tuning/port/esp32p4/mspi_timing_tuning_configs.h similarity index 100% rename from components/esp_hw_support/port/esp32p4/mspi_timing_tuning_configs.h rename to components/esp_hw_support/mspi_timing_tuning/port/esp32p4/mspi_timing_tuning_configs.h diff --git a/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/CMakeLists.txt b/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/CMakeLists.txt new file mode 100644 index 0000000000..73aac5814e --- /dev/null +++ b/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/CMakeLists.txt @@ -0,0 +1,11 @@ +target_include_directories(${COMPONENT_LIB} PUBLIC . include) + +set(srcs) + +if(NOT BOOTLOADER_BUILD) + if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP) + list(APPEND srcs "mspi_timing_config.c") + endif() +endif() + +target_sources(${COMPONENT_LIB} PRIVATE "${srcs}") diff --git a/components/esp_hw_support/port/esp32s3/mspi_timing_config.c b/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/mspi_timing_config.c similarity index 100% rename from components/esp_hw_support/port/esp32s3/mspi_timing_config.c rename to components/esp_hw_support/mspi_timing_tuning/port/esp32s3/mspi_timing_config.c diff --git a/components/esp_hw_support/port/esp32s3/mspi_timing_tuning_configs.h b/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/mspi_timing_tuning_configs.h similarity index 100% rename from components/esp_hw_support/port/esp32s3/mspi_timing_tuning_configs.h rename to components/esp_hw_support/mspi_timing_tuning/port/esp32s3/mspi_timing_tuning_configs.h diff --git a/components/esp_hw_support/port/esp32p4/CMakeLists.txt b/components/esp_hw_support/port/esp32p4/CMakeLists.txt index 80c879245a..f238efa3fe 100644 --- a/components/esp_hw_support/port/esp32p4/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32p4/CMakeLists.txt @@ -11,11 +11,6 @@ set(srcs "rtc_clk_init.c" if(NOT BOOTLOADER_BUILD) list(APPEND srcs "sar_periph_ctrl.c") - - if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP) - list(APPEND srcs "mspi_timing_config.c") - endif() - endif() add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" "${srcs}") diff --git a/components/esp_hw_support/port/esp32s3/CMakeLists.txt b/components/esp_hw_support/port/esp32s3/CMakeLists.txt index 988804728e..8dfb2b5811 100644 --- a/components/esp_hw_support/port/esp32s3/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32s3/CMakeLists.txt @@ -12,10 +12,6 @@ set(srcs if(NOT BOOTLOADER_BUILD) list(APPEND srcs "sar_periph_ctrl.c") - if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP) - list(APPEND srcs "mspi_timing_config.c") - endif() - if(CONFIG_ESP_SYSTEM_MEMPROT_FEATURE) list(APPEND srcs "esp_memprot.c" "../esp_memprot_conv.c") endif() diff --git a/components/esp_system/system_init_fn.txt b/components/esp_system/system_init_fn.txt index 53fb06ef3d..b7a8d4f5a4 100644 --- a/components/esp_system/system_init_fn.txt +++ b/components/esp_system/system_init_fn.txt @@ -119,7 +119,7 @@ SECONDARY: 230: usb_serial_jtag_conn_status_init in components/esp_driver_usb_se # psram adjust timing point need a separate task which should be created at startup. # Valid only `CONFIG_SPIRAM_TIMING_TUNING_POINT_VIA_TEMPERATURE_SENSOR` is enabled. -SECONDARY: 240: psram_adjust_timing_point_via_temperature in components/esp_hw_support/mspi_timing_by_mspi_delay.c on BIT(0) +SECONDARY: 240: psram_adjust_timing_point_via_temperature in components/esp_hw_support/mspi_timing_tuning/mspi_timing_by_mspi_delay.c on BIT(0) # Has to be the last step! # Now that the application is about to start, disable boot watchdog