Quellcode durchsuchen

esp32h4: removed esp32h4 related codes

laokaiyao vor 2 Jahren
Ursprung
Commit
bf2a7b2df6
100 geänderte Dateien mit 188 neuen und 1973 gelöschten Zeilen
  1. 0 24
      Kconfig
  2. 0 2
      components/app_update/esp_ota_ops.c
  3. 1 1
      components/app_update/include/esp_ota_ops.h
  4. 0 6
      components/bootloader_support/include/esp_app_format.h
  5. 0 2
      components/bootloader_support/private_include/bootloader_signature.h
  6. 0 3
      components/bootloader_support/src/bootloader_efuse.c
  7. 0 6
      components/bootloader_support/src/bootloader_utility.c
  8. 0 2
      components/bootloader_support/src/esp_image_format.c
  9. 0 2
      components/bootloader_support/src/secure_boot_v2/secure_boot_signature_priv.h
  10. 0 13
      components/bt/CMakeLists.txt
  11. 0 392
      components/bt/controller/esp32h4/Kconfig.in
  12. 0 1169
      components/bt/controller/esp32h4/bt.c
  13. 1 1
      components/driver/test_apps/ledc/main/test_ledc.c
  14. 1 1
      components/driver/test_apps/spi/master/main/test_spi_bus_lock.c
  15. 1 1
      components/driver/test_apps/spi/slave/main/test_spi_slave.c
  16. 1 1
      components/driver/test_apps/spi/slave_hd/main/test_spi_slave_hd.c
  17. 1 1
      components/efuse/efuse_table_gen.py
  18. 3 18
      components/esp_coex/CMakeLists.txt
  19. 1 10
      components/esp_phy/CMakeLists.txt
  20. 2 2
      components/esp_phy/src/phy_init_esp32hxx.c
  21. 0 1
      components/esp_pm/include/esp_pm.h
  22. 0 2
      components/esp_pm/pm_impl.c
  23. 1 1
      components/esp_pm/pm_trace.c
  24. 0 2
      components/esp_pm/test_apps/esp_pm/main/test_pm.c
  25. 1 22
      components/esp_rom/CMakeLists.txt
  26. 0 2
      components/esp_rom/README.md
  27. 1 2
      components/esp_system/Kconfig
  28. 4 4
      components/esp_system/crosscore_int.c
  29. 0 4
      components/esp_system/fpga_overrides.c
  30. 2 2
      components/esp_system/include/esp_private/crosscore_int.h
  31. 0 5
      components/esp_system/port/cpu_start.c
  32. 0 2
      components/esp_system/system_time.c
  33. 1 1
      components/esp_system/test_apps/esp_system_unity_tests/main/test_reset_reason.c
  34. 0 2
      components/esp_timer/src/esp_timer.c
  35. 0 2
      components/esp_timer/src/ets_timer_legacy.c
  36. 0 2
      components/esp_timer/src/system_time.c
  37. 1 3
      components/esp_timer/test_apps/main/test_ets_timer.c
  38. 0 1
      components/esp_wifi/Kconfig
  39. 0 1
      components/esptool_py/Kconfig.projbuild
  40. 0 8
      components/esptool_py/project_include.cmake
  41. 1 1
      components/freertos/Kconfig
  42. 0 2
      components/heap/port/memory_layout_utils.c
  43. 0 2
      components/mbedtls/port/esp_ds/esp_rsa_sign_alt.c
  44. 0 2
      components/mbedtls/port/sha/dma/sha.c
  45. 2 4
      components/newlib/newlib_init.c
  46. 0 3
      components/newlib/port/esp_time_impl.c
  47. 2 2
      components/newlib/test/test_newlib.c
  48. 0 2
      components/newlib/test/test_time.c
  49. 0 12
      components/openthread/port/esp_openthread_radio.c
  50. 5 5
      components/spi_flash/cache_utils.c
  51. 3 3
      components/spi_flash/spi_flash_os_func_noos.c
  52. 0 2
      components/wpa_supplicant/src/utils/includes.h
  53. 4 4
      docs/en/api-guides/openthread.rst
  54. 1 20
      docs/en/api-reference/peripherals/ledc.rst
  55. 1 20
      docs/zh_CN/api-reference/peripherals/ledc.rst
  56. 33 33
      examples/bluetooth/.build-test-rules.yml
  57. 3 3
      examples/bluetooth/bluedroid/ble/ble_ancs/README.md
  58. 3 3
      examples/bluetooth/bluedroid/ble/ble_compatibility_test/README.md
  59. 3 3
      examples/bluetooth/bluedroid/ble/ble_eddystone/README.md
  60. 3 3
      examples/bluetooth/bluedroid/ble/ble_hid_device_demo/README.md
  61. 2 2
      examples/bluetooth/bluedroid/ble/ble_ibeacon/README.md
  62. 2 2
      examples/bluetooth/bluedroid/ble/ble_spp_client/README.md
  63. 3 3
      examples/bluetooth/bluedroid/ble/ble_spp_server/README.md
  64. 3 3
      examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/README.md
  65. 3 3
      examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/README.md
  66. 3 3
      examples/bluetooth/bluedroid/ble/gatt_client/README.md
  67. 3 3
      examples/bluetooth/bluedroid/ble/gatt_security_client/README.md
  68. 3 3
      examples/bluetooth/bluedroid/ble/gatt_security_server/README.md
  69. 3 3
      examples/bluetooth/bluedroid/ble/gatt_server/README.md
  70. 3 3
      examples/bluetooth/bluedroid/ble/gatt_server_service_table/README.md
  71. 3 3
      examples/bluetooth/bluedroid/ble/gattc_multi_connect/README.md
  72. 3 3
      examples/bluetooth/bluedroid/ble_50/ble50_security_client/README.md
  73. 3 3
      examples/bluetooth/bluedroid/ble_50/ble50_security_server/README.md
  74. 3 3
      examples/bluetooth/bluedroid/ble_50/multi-adv/README.md
  75. 3 3
      examples/bluetooth/bluedroid/ble_50/peroidic_adv/README.md
  76. 3 3
      examples/bluetooth/bluedroid/ble_50/peroidic_sync/README.md
  77. 2 2
      examples/bluetooth/bluedroid/coex/gattc_gatts_coex/README.md
  78. 0 2
      examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_main.c
  79. 2 2
      examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/README.md
  80. 2 2
      examples/bluetooth/nimble/ble_l2cap_coc/coc_bleprph/README.md
  81. 3 3
      examples/bluetooth/nimble/ble_multi_adv/README.md
  82. 5 5
      examples/bluetooth/nimble/ble_periodic_adv/README.md
  83. 8 8
      examples/bluetooth/nimble/ble_periodic_sync/README.md
  84. 2 2
      examples/bluetooth/nimble/ble_phy/phy_cent/README.md
  85. 2 2
      examples/bluetooth/nimble/ble_phy/phy_prph/README.md
  86. 3 3
      examples/bluetooth/nimble/ble_spp/spp_client/README.md
  87. 3 3
      examples/bluetooth/nimble/ble_spp/spp_server/README.md
  88. 4 4
      examples/bluetooth/nimble/blecent/README.md
  89. 3 3
      examples/bluetooth/nimble/blehr/README.md
  90. 3 3
      examples/bluetooth/nimble/bleprph/README.md
  91. 1 8
      examples/ethernet/basic/components/ethernet_init/Kconfig.projbuild
  92. 0 5
      examples/ethernet/enc28j60/main/Kconfig.projbuild
  93. 3 3
      examples/openthread/README.md
  94. 1 1
      examples/openthread/ot_cli/sdkconfig.defaults
  95. 3 3
      examples/peripherals/i2s/i2s_codec/i2s_es8311/main/example_config.h
  96. 1 1
      examples/storage/ext_flash_fatfs/main/ext_flash_fatfs_example_main.c
  97. 1 1
      examples/storage/semihost_vfs/README.md
  98. 2 4
      examples/system/deep_sleep/main/Kconfig.projbuild
  99. 0 1
      examples/system/esp_timer/sdkconfig.ci.rtc
  100. 1 1
      examples/system/gcov/main/Kconfig.projbuild

+ 0 - 24
Kconfig

@@ -66,28 +66,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
         select FREERTOS_UNICORE
         select IDF_TARGET_ARCH_RISCV
 
-    config IDF_TARGET_ESP32H4
-        bool
-        default "y" if IDF_TARGET="esp32h4"
-        select FREERTOS_UNICORE
-        select IDF_TARGET_ARCH_RISCV
-
-    choice IDF_TARGET_ESP32H4_BETA_VERSION
-        prompt "ESP32-H4 beta version"
-        depends on IDF_TARGET_ESP32H4
-        default IDF_TARGET_ESP32H4_BETA_VERSION_2
-        help
-            Currently ESP32-H4 has several beta versions for internal use only.
-            Select the one that matches your chip model.
-
-        config IDF_TARGET_ESP32H4_BETA_VERSION_1
-            bool
-            prompt "ESP32-H4 beta1"
-        config IDF_TARGET_ESP32H4_BETA_VERSION_2
-            bool
-            prompt "ESP32-H4 beta2"
-    endchoice
-
     config IDF_TARGET_ESP32C2
         bool
         default "y" if IDF_TARGET="esp32c2"
@@ -116,10 +94,8 @@ mainmenu "Espressif IoT Development Framework Configuration"
         default 0x0002 if IDF_TARGET_ESP32S2
         default 0x0005 if IDF_TARGET_ESP32C3
         default 0x0009 if IDF_TARGET_ESP32S3
-        default 0x000A if IDF_TARGET_ESP32H4_BETA_VERSION_1
         default 0x000C if IDF_TARGET_ESP32C2
         default 0x000D if IDF_TARGET_ESP32C6
-        default 0x000E if IDF_TARGET_ESP32H4_BETA_VERSION_2 # ESP32-TODO: IDF-3475
         default 0x0010 if IDF_TARGET_ESP32H2
         default 0xFFFF
 

+ 0 - 2
components/app_update/esp_ota_ops.c

@@ -37,8 +37,6 @@
 #include "esp32c3/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32S3
 #include "esp32s3/rom/secure_boot.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 1 - 1
components/app_update/include/esp_ota_ops.h

@@ -334,7 +334,7 @@ typedef enum {
 /**
  * @brief Revokes the old signature digest. To be called in the application after the rollback logic.
  *
- * Relevant for Secure boot v2 on ESP32-S2, ESP32-S3, ESP32-C3, ESP32-H4 where upto 3 key digests can be stored (Key \#N-1, Key \#N, Key \#N+1).
+ * Relevant for Secure boot v2 on ESP32-S2, ESP32-S3, ESP32-C3 where upto 3 key digests can be stored (Key \#N-1, Key \#N, Key \#N+1).
  * When key \#N-1 used to sign an app is invalidated, an OTA update is to be sent with an app signed with key \#N-1 & Key \#N.
  * After successfully booting the OTA app should call this function to revoke Key \#N-1.
  *

+ 0 - 6
components/bootloader_support/include/esp_app_format.h

@@ -17,12 +17,6 @@ typedef enum {
     ESP_CHIP_ID_ESP32S2 = 0x0002,  /*!< chip ID: ESP32-S2 */
     ESP_CHIP_ID_ESP32C3 = 0x0005, /*!< chip ID: ESP32-C3 */
     ESP_CHIP_ID_ESP32S3 = 0x0009, /*!< chip ID: ESP32-S3 */
-    ESP_CHIP_ID_ESP32C2 = 0x000C, /*!< chip ID: ESP32-C2 */
-#if CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_2
-    ESP_CHIP_ID_ESP32H4 = 0x000E, /*!< chip ID: ESP32-H4 Beta2*/  // ESP32H4-TODO: IDF-3475
-#elif CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_1
-    ESP_CHIP_ID_ESP32H4 = 0x000A, /*!< chip ID: ESP32-H4 Beta1 */
-#endif
     ESP_CHIP_ID_ESP32C6 = 0x000D, /*!< chip ID: ESP32-C6 */
     ESP_CHIP_ID_INVALID = 0xFFFF /*!< Invalid chip ID (we defined it to make sure the esp_chip_id_t is 2 bytes size) */
 } __attribute__((packed)) esp_chip_id_t;

+ 0 - 2
components/bootloader_support/private_include/bootloader_signature.h

@@ -17,8 +17,6 @@
 #include "esp32c3/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32S3
 #include "esp32s3/rom/secure_boot.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 0 - 3
components/bootloader_support/src/bootloader_efuse.c

@@ -27,9 +27,6 @@ int bootloader_clock_get_rated_freq_mhz(void)
 #elif CONFIG_IDF_TARGET_ESP32C3
     return 160;
 
-#elif CONFIG_IDF_TARGET_ESP32H4
-    return 96;
-
 #elif CONFIG_IDF_TARGET_ESP32C6
     return 160;
 

+ 0 - 6
components/bootloader_support/src/bootloader_utility.c

@@ -28,12 +28,6 @@
 #include "esp32c3/rom/uart.h"
 #include "esp32c3/rom/gpio.h"
 #include "esp32c3/rom/secure_boot.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/efuse.h"
-#include "esp32h4/rom/crc.h"
-#include "esp32h4/rom/uart.h"
-#include "esp32h4/rom/gpio.h"
-#include "esp32h4/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/efuse.h"
 #include "esp32c2/rom/crc.h"

+ 0 - 2
components/bootloader_support/src/esp_image_format.c

@@ -29,8 +29,6 @@
 #include "esp32s3/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rom/secure_boot.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/rtc.h"
 #include "esp32c2/rom/secure_boot.h"

+ 0 - 2
components/bootloader_support/src/secure_boot_v2/secure_boot_signature_priv.h

@@ -13,8 +13,6 @@
 #include "esp32c3/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32S3
 #include "esp32s3/rom/secure_boot.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/secure_boot.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 0 - 13
components/bt/CMakeLists.txt

@@ -17,10 +17,6 @@ if(CONFIG_BT_ENABLED)
         list(APPEND srcs "controller/esp32c3/bt.c")
         list(APPEND include_dirs include/esp32c3/include)
 
-    elseif(CONFIG_IDF_TARGET_ESP32H4)
-        list(APPEND srcs "controller/esp32h4/bt.c")
-        list(APPEND include_dirs include/esp32h4/include)
-
     elseif(CONFIG_IDF_TARGET_ESP32C2)
         list(APPEND srcs "controller/esp32c2/bt.c")
         list(APPEND include_dirs include/esp32c2/include)
@@ -716,15 +712,6 @@ if(CONFIG_BT_ENABLED)
         target_link_directories(${COMPONENT_LIB} INTERFACE
                 "${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c3_family/esp32s3")
         target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
-    elseif(CONFIG_IDF_TARGET_ESP32H4)
-        if(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_1)
-            # TODO: rename esp32h2 to esp32h4 [BT-2875]
-            add_prebuilt_library(libble_app "controller/lib_esp32h2/esp32h2-bt-lib/beta1/libble_app.a")
-        elseif(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_2)
-            # TODO: rename esp32h2 to esp32h4 [BT-2875]
-            add_prebuilt_library(libble_app "controller/lib_esp32h2/esp32h2-bt-lib/beta2/libble_app.a")
-        endif()
-        target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
     elseif(CONFIG_IDF_TARGET_ESP32C2)
         add_prebuilt_library(libble_app "controller/lib_esp32c2/esp32c2-bt-lib/libble_app.a")
         target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)

+ 0 - 392
components/bt/controller/esp32h4/Kconfig.in

@@ -1,392 +0,0 @@
-
-menu "HCI Config"
-
-    choice BT_LE_HCI_INTERFACE
-        prompt "Select HCI interface"
-        default BT_LE_HCI_INTERFACE_USE_RAM
-
-        config BT_LE_HCI_INTERFACE_USE_RAM
-            bool "ram"
-            help
-                Use RAM as HCI interface
-        config BT_LE_HCI_INTERFACE_USE_UART
-            bool "uart"
-            help
-                Use UART as HCI interface
-    endchoice
-
-    config BT_LE_HCI_UART_PORT
-        int "HCI UART port"
-        depends on BT_LE_HCI_INTERFACE_USE_UART
-        default 1
-        help
-            Set the port number of HCI UART
-
-    config BT_LE_HCI_UART_FLOWCTRL
-        bool "HCI uart Hardware Flow ctrl"
-        depends on BT_LE_HCI_INTERFACE_USE_UART
-        default n
-
-    config BT_LE_HCI_UART_TX_PIN
-        int "HCI uart Tx gpio"
-        depends on BT_LE_HCI_INTERFACE_USE_UART
-        default 19
-
-    config BT_LE_HCI_UART_RX_PIN
-        int "HCI uart Rx gpio"
-        depends on BT_LE_HCI_INTERFACE_USE_UART
-        default 10
-
-    config BT_LE_HCI_UART_RTS_PIN
-        int "HCI uart RTS gpio"
-        depends on BT_LE_HCI_UART_FLOWCTRL
-        default 4
-
-    config BT_LE_HCI_UART_CTS_PIN
-        int "HCI uart CTS gpio"
-        depends on BT_LE_HCI_UART_FLOWCTRL
-        default 5
-
-    config BT_LE_HCI_UART_BAUD
-        int "HCI uart baudrate"
-        depends on BT_LE_HCI_INTERFACE_USE_UART
-        default 921600
-        help
-            HCI uart baud rate 115200 ~ 1000000
-
-    choice BT_LE_HCI_UART_PARITY
-        prompt "select uart parity"
-        depends on BT_LE_HCI_INTERFACE_USE_UART
-        default BT_LE_HCI_UART_UART_PARITY_DISABLE
-
-        config BT_LE_HCI_UART_UART_PARITY_DISABLE
-            bool "PARITY_DISABLE"
-            help
-                UART_PARITY_DISABLE
-        config BT_LE_HCI_UART_UART_PARITY_EVEN
-            bool "PARITY_EVEN"
-            help
-                UART_PARITY_EVEN
-        config BT_LE_HCI_UART_UART_PARITY_ODD
-            bool "PARITY_ODD"
-            help
-                UART_PARITY_ODD
-    endchoice
-
-    config BT_LE_HCI_UART_TASK_STACK_SIZE
-        int "HCI uart task stack size"
-        depends on BT_LE_HCI_INTERFACE_USE_UART
-        default 1000
-        help
-            Set the size of uart task stack
-endmenu
-
-config BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT
-    bool
-    default y
-    help
-        Enable NPL porting for controller.
-
-
-menuconfig BT_LE_50_FEATURE_SUPPORT
-    bool "Enable BLE 5 feature"
-    depends on !BT_NIMBLE_ENABLED
-    default y
-    help
-        Enable BLE 5 feature
-
-config BT_LE_LL_CFG_FEAT_LE_2M_PHY
-    bool "Enable 2M Phy"
-    depends on BT_LE_50_FEATURE_SUPPORT
-    default y
-    help
-        Enable 2M-PHY
-
-config BT_LE_LL_CFG_FEAT_LE_CODED_PHY
-    bool "Enable coded Phy"
-    depends on BT_LE_50_FEATURE_SUPPORT
-    default y
-    help
-        Enable coded-PHY
-
-config BT_LE_EXT_ADV
-    bool "Enable extended advertising"
-    depends on BT_LE_50_FEATURE_SUPPORT
-    default y
-    help
-        Enable this option to do extended advertising. Extended advertising
-        will be supported from BLE 5.0 onwards.
-
-if BT_LE_EXT_ADV
-    config BT_LE_MAX_EXT_ADV_INSTANCES
-        int "Maximum number of extended advertising instances."
-        range 0 4
-        default 1
-        depends on BT_LE_EXT_ADV
-        help
-            Change this option to set maximum number of extended advertising
-            instances. Minimum there is always one instance of
-            advertising. Enter how many more advertising instances you
-            want.
-            Each extended advertising instance will take about 0.5k DRAM.
-
-    config BT_LE_EXT_ADV_MAX_SIZE
-        int "Maximum length of the advertising data."
-        range 0 1650
-        default 1650
-        depends on BT_LE_EXT_ADV
-        help
-            Defines the length of the extended adv data. The value should not
-            exceed 1650.
-
-    config BT_LE_ENABLE_PERIODIC_ADV
-        bool "Enable periodic advertisement."
-        default y
-        depends on BT_LE_EXT_ADV
-        help
-            Enable this option to start periodic advertisement.
-
-    config BT_LE_PERIODIC_ADV_SYNC_TRANSFER
-        bool "Enable Transer Sync Events"
-        depends on BT_LE_ENABLE_PERIODIC_ADV
-        default y
-        help
-            This enables controller transfer periodic sync events to host
-
-endif
-
-config BT_LE_MAX_PERIODIC_SYNCS
-    int "Maximum number of periodic advertising syncs"
-    depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED
-
-    range 0 8
-    default 1 if BT_LE_ENABLE_PERIODIC_ADV
-    default 0
-    help
-        Set this option to set the upper limit for number of periodic sync
-        connections. This should be less than maximum connections allowed by
-        controller.
-
-config BT_LE_MAX_PERIODIC_ADVERTISER_LIST
-    int "Maximum number of periodic advertiser list"
-    depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED
-    range 1 5
-    default 5
-    help
-        Set this option to set the upper limit for number of periodic advertiser list.
-
-menu "Memory Settings"
-    depends on !BT_NIMBLE_ENABLED
-
-    config BT_LE_MSYS_1_BLOCK_COUNT
-        int "MSYS_1 Block Count"
-        default 12
-        help
-            MSYS is a system level mbuf registry. For prepare write & prepare
-            responses MBUFs are allocated out of msys_1 pool. For NIMBLE_MESH
-            enabled cases, this block count is increased by 8 than user defined
-            count.
-
-    config BT_LE_MSYS_1_BLOCK_SIZE
-        int "MSYS_1 Block Size"
-        default 256
-        help
-            Dynamic memory size of block 1
-
-    config BT_LE_MSYS_2_BLOCK_COUNT
-        int "MSYS_2 Block Count"
-        default 24
-        help
-            Dynamic memory count
-
-    config BT_LE_MSYS_2_BLOCK_SIZE
-        int "MSYS_2 Block Size"
-        default 320
-        help
-            Dynamic memory size of block 2
-
-    config BT_LE_ACL_BUF_COUNT
-        int "ACL Buffer count"
-        default 10
-        help
-            The number of ACL data buffers.
-
-    config BT_LE_ACL_BUF_SIZE
-        int "ACL Buffer size"
-        default 517
-        help
-            This is the maximum size of the data portion of HCI ACL data packets.
-            It does not include the HCI data header (of 4 bytes)
-
-    config BT_LE_HCI_EVT_BUF_SIZE
-        int "HCI Event Buffer size"
-        default 257 if BT_LE_EXT_ADV
-        default 70
-        help
-            This is the size of each HCI event buffer in bytes. In case of
-            extended advertising, packets can be fragmented. 257 bytes is the
-            maximum size of a packet.
-
-    config BT_LE_HCI_EVT_HI_BUF_COUNT
-        int "High Priority HCI Event Buffer count"
-        default 30
-        help
-            This is the high priority HCI events' buffer size. High-priority
-            event buffers are for everything except advertising reports. If there
-            are no free high-priority event buffers then host will try to allocate a
-            low-priority buffer instead
-
-    config BT_LE_HCI_EVT_LO_BUF_COUNT
-        int "Low Priority HCI Event Buffer count"
-        default 8
-        help
-            This is the low priority HCI events' buffer size. Low-priority event
-            buffers are only used for advertising reports. If there are no free
-            low-priority event buffers, then an incoming advertising report will
-            get dropped
-endmenu
-
-config BT_LE_CONTROLLER_TASK_STACK_SIZE
-    int "Controller task stack size"
-    default 5120 if BLE_MESH
-    default 4096
-    help
-        This configures stack size of NimBLE controller task
-
-config BT_LE_LL_RESOLV_LIST_SIZE
-    int "BLE LL Resolving list size"
-    range 1 5
-    default 4
-    help
-        Configure the size of resolving list used in link layer.
-
-menuconfig BT_LE_SECURITY_ENABLE
-    bool "Enable BLE SM feature"
-    depends on !BT_NIMBLE_ENABLED
-    default y
-    help
-        Enable BLE sm feature
-
-config BT_LE_SM_LEGACY
-    bool "Security manager legacy pairing"
-    depends on BT_LE_SECURITY_ENABLE
-    default y
-    help
-        Enable security manager legacy pairing
-
-config BT_LE_SM_SC
-    bool "Security manager secure connections (4.2)"
-    depends on BT_LE_SECURITY_ENABLE
-    default y
-    help
-        Enable security manager secure connections
-
-config BT_LE_SM_SC_DEBUG_KEYS
-    bool "Use predefined public-private key pair"
-    default n
-    depends on BT_LE_SECURITY_ENABLE && BT_LE_SM_SC
-    help
-        If this option is enabled, SM uses predefined DH key pair as described
-        in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to
-        decrypt air traffic easily and thus should only be used for debugging.
-
-config BT_LE_LL_CFG_FEAT_LE_ENCRYPTION
-    bool "Enable LE encryption"
-    depends on BT_LE_SECURITY_ENABLE
-    default y
-    help
-        Enable encryption connection
-
-config BT_LE_CRYPTO_STACK_MBEDTLS
-    bool "Override TinyCrypt with mbedTLS for crypto computations"
-    default y
-    depends on !BT_NIMBLE_ENABLED
-    select MBEDTLS_ECP_RESTARTABLE
-    select MBEDTLS_CMAC_C
-    help
-        Enable this option to choose mbedTLS instead of TinyCrypt for crypto
-        computations.
-
-config BT_LE_WHITELIST_SIZE
-    int "BLE white list size"
-    range 1 15
-    default 12
-    depends on !BT_NIMBLE_ENABLED
-
-    help
-        BLE list size
-
-config BT_LE_LL_DUP_SCAN_LIST_COUNT
-    int "BLE duplicate scan list count"
-    range 1 100
-    default 20
-    help
-        config the max count of duplicate scan list
-
-config BT_LE_LL_SCA
-    int "BLE Sleep clock accuracy"
-    range 0 500
-    default 60
-    help
-        Sleep clock accuracy of our device (in ppm)
-
-config BT_LE_MAX_CONNECTIONS
-    int "Maximum number of concurrent connections"
-    depends on !BT_NIMBLE_ENABLED
-    range 1 9
-    default 3
-    help
-        Defines maximum number of concurrent BLE connections. For ESP32, user
-        is expected to configure BTDM_CTRL_BLE_MAX_CONN from controller menu
-        along with this option. Similarly for ESP32-C3 or ESP32-S3, user is expected to
-        configure BT_CTRL_BLE_MAX_ACT from controller menu.
-        Each connection will take about 1k DRAM.
-
-choice BT_LE_COEX_PHY_CODED_TX_RX_TLIM
-    prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection"
-    default BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
-    depends on !BT_NIMBLE_ENABLED
-    help
-        When using PHY-Coded in BLE connection, limitation on max tx/rx time can be applied to
-        better avoid dramatic performance deterioration of Wi-Fi.
-
-    config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN
-        bool "Force Enable"
-        help
-            Always enable the limitation on max tx/rx time for Coded-PHY connection
-
-    config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
-        bool "Force Disable"
-        help
-            Disable the limitation on max tx/rx time for Coded-PHY connection
-endchoice
-
-config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
-    int
-    depends on !BT_NIMBLE_ENABLED
-    default 1 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN
-    default 0 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
-
-config BT_LE_SLEEP_ENABLE
-    bool "Enable BLE sleep"
-    default n
-    help
-        Enable BLE sleep
-
-choice BT_LE_WAKEUP_SOURCE
-    prompt "BLE light sleep wakeup source"
-    depends on BT_LE_SLEEP_ENABLE
-    default BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-    config BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-        bool "Use ESP timer to wakeup CPU"
-        help
-            Use esp timer to wakeup CPU
-endchoice
-
-config BT_LE_USE_ESP_TIMER
-    bool "Use Esp Timer for callout"
-    depends on !BT_NIMBLE_ENABLED
-    default y
-    help
-        Set this option to use Esp Timer which has higher priority timer
-        instead of FreeRTOS timer

+ 0 - 1169
components/bt/controller/esp32h4/bt.c

@@ -1,1169 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
- *
- * SPDX-License-Identifier: Apache-2.0
- */
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "esp_random.h"
-#include <esp_mac.h>
-
-#include "sdkconfig.h"
-
-#include "nimble/nimble_port.h"
-#include "nimble/nimble_port_freertos.h"
-
-#ifdef ESP_PLATFORM
-#include "esp_log.h"
-#endif
-
-#if CONFIG_SW_COEXIST_ENABLE
-#include "esp_coexist_internal.h"
-#endif
-
-#include "nimble/nimble_npl_os.h"
-#include "nimble/ble_hci_trans.h"
-#include "os/endian.h"
-
-#include "esp_bt.h"
-#include "esp_intr_alloc.h"
-#include "esp_sleep.h"
-#include "esp_pm.h"
-#include "esp_phy_init.h"
-#include "soc/system_reg.h"
-#include "soc/clkrst_reg.h"
-
-#include "hci_uart.h"
-#include "bt_osi_mem.h"
-
-#ifdef CONFIG_BT_BLUEDROID_ENABLED
-#include "hci/hci_hal.h"
-#endif
-
-#include "freertos/FreeRTOS.h"
-#include "freertos/task.h"
-
-#include "esp_private/periph_ctrl.h"
-#include "esp_sleep.h"
-
-#include "soc/syscon_reg.h"
-#include "soc/dport_access.h"
-
-/* Macro definition
- ************************************************************************
- */
-
-#define NIMBLE_PORT_LOG_TAG          "BLE_INIT"
-#define OSI_COEX_VERSION              0x00010006
-#define OSI_COEX_MAGIC_VALUE          0xFADEBEAD
-
-#define EXT_FUNC_VERSION             0x20221122
-#define EXT_FUNC_MAGIC_VALUE         0xA5A5A5A5
-
-#define BT_ASSERT_PRINT              ets_printf
-
-#ifdef CONFIG_BT_BLUEDROID_ENABLED
-/* ACL_DATA_MBUF_LEADINGSPCAE: The leadingspace in user info header for ACL data */
-#define ACL_DATA_MBUF_LEADINGSPCAE    4
-#endif
-
-/* Types definition
- ************************************************************************
- */
-
-struct osi_coex_funcs_t {
-    uint32_t _magic;
-    uint32_t _version;
-    void (* _coex_wifi_sleep_set)(bool sleep);
-    int (* _coex_core_ble_conn_dyn_prio_get)(bool *low, bool *high);
-    void (* _coex_schm_status_bit_set)(uint32_t type, uint32_t status);
-    void (* _coex_schm_status_bit_clear)(uint32_t type, uint32_t status);
-};
-
-struct ext_funcs_t {
-    uint32_t ext_version;
-    int (*_esp_intr_alloc)(int source, int flags, intr_handler_t handler, void *arg, void **ret_handle);
-    int (*_esp_intr_free)(void **ret_handle);
-    void *(* _malloc)(size_t size);
-    void (*_free)(void *p);
-    void (*_hal_uart_start_tx)(int);
-    int (*_hal_uart_init_cbs)(int, hci_uart_tx_char, hci_uart_tx_done, hci_uart_rx_char, void *);
-    int (*_hal_uart_config)(int, int32_t, uint8_t, uint8_t, uart_parity_t, uart_hw_flowcontrol_t);
-    int (*_hal_uart_close)(int);
-    void (*_hal_uart_blocking_tx)(int, uint8_t);
-    int (*_hal_uart_init)(int, void *);
-    int (* _task_create)(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id);
-    void (* _task_delete)(void *task_handle);
-    void (*_osi_assert)(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2);
-    uint32_t (* _os_random)(void);
-    int (* _ecc_gen_key_pair)(uint8_t *public, uint8_t *priv);
-    int (* _ecc_gen_dh_key)(const uint8_t *remote_pub_key_x, const uint8_t *remote_pub_key_y, const uint8_t *local_priv_key, uint8_t *dhkey);
-    void (* _esp_reset_rpa_moudle)(void);
-    uint32_t magic;
-};
-
-
-/* External functions or variables
- ************************************************************************
- */
-
-extern int ble_plf_set_log_level(int level);
-extern int ble_osi_coex_funcs_register(struct osi_coex_funcs_t *coex_funcs);
-extern int ble_controller_init(esp_bt_controller_config_t *cfg);
-extern int ble_controller_deinit(void);
-extern int ble_controller_enable(uint8_t mode);
-extern int ble_controller_disable(void);
-extern int esp_register_ext_funcs (struct ext_funcs_t *);
-extern void esp_unregister_ext_funcs (void);
-extern int esp_ble_ll_set_public_addr(const uint8_t *addr);
-extern int esp_register_npl_funcs (struct npl_funcs_t *p_npl_func);
-extern void esp_unregister_npl_funcs (void);
-extern void npl_freertos_mempool_deinit(void);
-extern int os_msys_buf_alloc(void);
-extern uint32_t r_os_cputime_get32(void);
-extern uint32_t r_os_cputime_ticks_to_usecs(uint32_t ticks);
-extern void r_ble_lll_rfmgmt_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg, void *w_arg, uint32_t us_to_enabled);
-extern void r_ble_rtc_wake_up_state_clr(void);
-extern int os_msys_init(void);
-extern void os_msys_buf_free(void);
-extern void bt_bb_set_le_tx_on_delay(uint32_t delay_us);
-extern int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x,
-                                const uint8_t *peer_pub_key_y,
-                                const uint8_t *our_priv_key, uint8_t *out_dhkey);
-extern int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv);
-extern int ble_txpwr_set(esp_ble_enhanced_power_type_t power_type, uint16_t handle, int power_level);
-extern int ble_txpwr_get(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
-extern int ble_get_npl_element_info(esp_bt_controller_config_t *cfg, ble_npl_count_info_t * npl_info);
-extern uint32_t _bt_bss_start;
-extern uint32_t _bt_bss_end;
-extern uint32_t _nimble_bss_start;
-extern uint32_t _nimble_bss_end;
-extern uint32_t _nimble_data_start;
-extern uint32_t _nimble_data_end;
-extern uint32_t _bt_data_start;
-extern uint32_t _bt_data_end;
-
-/* Local Function Declaration
- *********************************************************************
- */
-static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status);
-static void coex_schm_status_bit_clear_wrapper(uint32_t type, uint32_t status);
-static int task_create_wrapper(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id);
-static void task_delete_wrapper(void *task_handle);
-#if CONFIG_BT_LE_HCI_INTERFACE_USE_UART
-static void hci_uart_start_tx_wrapper(int uart_no);
-static int hci_uart_init_cbs_wrapper(int uart_no, hci_uart_tx_char tx_func,
-                                     hci_uart_tx_done tx_done, hci_uart_rx_char rx_func, void *arg);
-static int hci_uart_config_wrapper(int uart_no, int32_t speed, uint8_t databits, uint8_t stopbits,
-                                   uart_parity_t parity, uart_hw_flowcontrol_t flow_ctl);
-static int hci_uart_close_wrapper(int uart_no);
-static void hci_uart_blocking_tx_wrapper(int port, uint8_t data);
-static int hci_uart_init_wrapper(int uart_no, void *cfg);
-#endif
-static int esp_intr_alloc_wrapper(int source, int flags, intr_handler_t handler, void *arg, void **ret_handle_in);
-static int esp_intr_free_wrapper(void **ret_handle);
-static void osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2);
-static uint32_t osi_random_wrapper(void);
-
-static void esp_reset_rpa_moudle(void);
-
-
-/* Local variable definition
- ***************************************************************************
- */
-
-/* Static variable declare */
-static DRAM_ATTR esp_bt_controller_status_t ble_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
-
-/* This variable tells if BLE is running */
-static bool s_ble_active = false;
-#ifdef CONFIG_PM_ENABLE
-static DRAM_ATTR esp_pm_lock_handle_t s_pm_lock = NULL;
-
-#define BTDM_MIN_TIMER_UNCERTAINTY_US      (200)
-#endif /* #ifdef CONFIG_PM_ENABLE */
-
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-#define BLE_RTC_DELAY_US                    (1100)
-#endif
-
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-#define BLE_RTC_DELAY_US                    (0)
-static void ble_sleep_timer_callback(void *arg);
-static DRAM_ATTR esp_timer_handle_t s_ble_sleep_timer = NULL;
-#endif
-
-
-static const struct osi_coex_funcs_t s_osi_coex_funcs_ro = {
-    ._magic = OSI_COEX_MAGIC_VALUE,
-    ._version = OSI_COEX_VERSION,
-    ._coex_wifi_sleep_set = NULL,
-    ._coex_core_ble_conn_dyn_prio_get = NULL,
-    ._coex_schm_status_bit_set = coex_schm_status_bit_set_wrapper,
-    ._coex_schm_status_bit_clear = coex_schm_status_bit_clear_wrapper,
-};
-
-struct ext_funcs_t ext_funcs_ro = {
-    .ext_version = EXT_FUNC_VERSION,
-    ._esp_intr_alloc = esp_intr_alloc_wrapper,
-    ._esp_intr_free = esp_intr_free_wrapper,
-    ._malloc = bt_osi_mem_malloc_internal,
-    ._free = bt_osi_mem_free,
-#if CONFIG_BT_LE_HCI_INTERFACE_USE_UART
-    ._hal_uart_start_tx     =  hci_uart_start_tx_wrapper,
-    ._hal_uart_init_cbs     =  hci_uart_init_cbs_wrapper,
-    ._hal_uart_config       =  hci_uart_config_wrapper,
-    ._hal_uart_close        =  hci_uart_close_wrapper,
-    ._hal_uart_blocking_tx  =  hci_uart_blocking_tx_wrapper,
-    ._hal_uart_init         =  hci_uart_init_wrapper,
-#endif //CONFIG_BT_LE_HCI_INTERFACE_USE_UART
-    ._task_create = task_create_wrapper,
-    ._task_delete = task_delete_wrapper,
-    ._osi_assert = osi_assert_wrapper,
-    ._os_random = osi_random_wrapper,
-    ._ecc_gen_key_pair = ble_sm_alg_gen_key_pair,
-    ._ecc_gen_dh_key = ble_sm_alg_gen_dhkey,
-    ._esp_reset_rpa_moudle = esp_reset_rpa_moudle,
-    .magic = EXT_FUNC_MAGIC_VALUE,
-};
-
-static void IRAM_ATTR esp_reset_rpa_moudle(void)
-{
-    DPORT_SET_PERI_REG_MASK(SYSTEM_MODEM_RST_EN_REG, SYSTEM_BLE_SEC_BAH_RST);
-    DPORT_CLEAR_PERI_REG_MASK(SYSTEM_MODEM_RST_EN_REG, SYSTEM_BLE_SEC_BAH_RST);
-
-}
-
-static void IRAM_ATTR osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2)
-{
-    BT_ASSERT_PRINT("BLE assert: line %d in function %s, param: 0x%x, 0x%x", ln, fn, param1, param2);
-    assert(0);
-}
-
-static uint32_t IRAM_ATTR osi_random_wrapper(void)
-{
-    return esp_random();
-}
-
-static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status)
-{
-#if CONFIG_SW_COEXIST_ENABLE
-    coex_schm_status_bit_set(type, status);
-#endif
-}
-
-static void coex_schm_status_bit_clear_wrapper(uint32_t type, uint32_t status)
-{
-#if CONFIG_SW_COEXIST_ENABLE
-    coex_schm_status_bit_clear(type, status);
-#endif
-}
-#ifdef CONFIG_BT_BLUEDROID_ENABLED
-
-bool esp_vhci_host_check_send_available(void)
-{
-    if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
-        return false;
-    }
-    return true;
-}
-
-/**
- * Allocates an mbuf for use by the nimble host.
- */
-static struct os_mbuf *ble_hs_mbuf_gen_pkt(uint16_t leading_space)
-{
-    struct os_mbuf *om;
-    int rc;
-
-    om = os_msys_get_pkthdr(0, 0);
-    if (om == NULL) {
-        return NULL;
-    }
-
-    if (om->om_omp->omp_databuf_len < leading_space) {
-        rc = os_mbuf_free_chain(om);
-        assert(rc == 0);
-        return NULL;
-    }
-
-    om->om_data += leading_space;
-
-    return om;
-}
-
-/**
- * Allocates an mbuf suitable for an HCI ACL data packet.
- *
- * @return                  An empty mbuf on success; null on memory
- *                              exhaustion.
- */
-struct os_mbuf *ble_hs_mbuf_acl_pkt(void)
-{
-    return ble_hs_mbuf_gen_pkt(4 + 1);
-}
-
-void esp_vhci_host_send_packet(uint8_t *data, uint16_t len)
-{
-    if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
-        return;
-    }
-
-    if (*(data) == DATA_TYPE_COMMAND) {
-        struct ble_hci_cmd *cmd = NULL;
-        cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
-        memcpy((uint8_t *)cmd, data + 1, len - 1);
-        ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
-    }
-
-    if (*(data) == DATA_TYPE_ACL) {
-        struct os_mbuf *om = os_msys_get_pkthdr(len, ACL_DATA_MBUF_LEADINGSPCAE);
-        assert(om);
-        assert(os_mbuf_append(om, &data[1], len - 1) == 0);
-        ble_hci_trans_hs_acl_tx(om);
-    }
-
-}
-
-esp_err_t esp_vhci_host_register_callback(const esp_vhci_host_callback_t *callback)
-{
-    if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
-        return ESP_FAIL;
-    }
-
-    ble_hci_trans_cfg_hs(ble_hs_hci_rx_evt, NULL, ble_hs_rx_data, NULL);
-
-    return ESP_OK;
-}
-
-#endif
-static int task_create_wrapper(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id)
-{
-    return (uint32_t)xTaskCreatePinnedToCore(task_func, name, stack_depth, param, prio, task_handle, (core_id < portNUM_PROCESSORS ? core_id : tskNO_AFFINITY));
-}
-
-static void task_delete_wrapper(void *task_handle)
-{
-    vTaskDelete(task_handle);
-}
-
-#ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART
-static void hci_uart_start_tx_wrapper(int uart_no)
-{
-    hci_uart_start_tx(uart_no);
-}
-
-static int hci_uart_init_cbs_wrapper(int uart_no, hci_uart_tx_char tx_func,
-                                     hci_uart_tx_done tx_done, hci_uart_rx_char rx_func, void *arg)
-{
-    int rc = -1;
-    rc = hci_uart_init_cbs(uart_no, tx_func, tx_done, rx_func, arg);
-    return rc;
-}
-
-
-static int hci_uart_config_wrapper(int port_num, int32_t baud_rate, uint8_t data_bits, uint8_t stop_bits,
-                                   uart_parity_t parity, uart_hw_flowcontrol_t flow_ctl)
-{
-    int rc = -1;
-    rc = hci_uart_config(port_num, baud_rate, data_bits, stop_bits, parity, flow_ctl);
-    return rc;
-}
-
-static int hci_uart_close_wrapper(int uart_no)
-{
-    int rc = -1;
-    rc = hci_uart_close(uart_no);
-    return rc;
-}
-
-static void hci_uart_blocking_tx_wrapper(int port, uint8_t data)
-{
-    //This function is nowhere to use.
-}
-
-static int hci_uart_init_wrapper(int uart_no, void *cfg)
-{
-    //This function is nowhere to use.
-    return 0;
-}
-
-#endif //CONFIG_BT_LE_HCI_INTERFACE_USE_UART
-
-static int ble_hci_unregistered_hook(void*, void*)
-{
-    ESP_LOGD(NIMBLE_PORT_LOG_TAG,"%s ble hci rx_evt is not registered.",__func__);
-    return 0;
-}
-
-static int esp_intr_alloc_wrapper(int source, int flags, intr_handler_t handler, void *arg, void **ret_handle_in)
-{
-    int rc = esp_intr_alloc(source, flags | ESP_INTR_FLAG_IRAM, handler, arg, (intr_handle_t *)ret_handle_in);
-    return rc;
-}
-
-static int esp_intr_free_wrapper(void **ret_handle)
-{
-    int rc = 0;
-    rc = esp_intr_free((intr_handle_t) * ret_handle);
-    *ret_handle = NULL;
-    return rc;
-}
-
-IRAM_ATTR void controller_sleep_cb(uint32_t enable_tick, void *arg)
-{
-    if (!s_ble_active) {
-        return;
-    }
-#ifdef CONFIG_PM_ENABLE
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-    uint32_t delta_tick;
-    uint32_t us_to_sleep;
-    uint32_t sleep_tick;
-    uint32_t tick_invalid = *(uint32_t*)(arg);
-    assert(arg != NULL);
-    if (!tick_invalid) {
-        sleep_tick = r_os_cputime_get32();
-        // start a timer to wake up and acquire the pm_lock before modem_sleep awakes
-        delta_tick = enable_tick - sleep_tick;
-        if (delta_tick & 0x80000000) {
-            return;
-        }
-        us_to_sleep = r_os_cputime_ticks_to_usecs(delta_tick);
-        if (us_to_sleep <= BTDM_MIN_TIMER_UNCERTAINTY_US) {
-            return;
-        }
-        esp_err_t err = esp_timer_start_once(s_ble_sleep_timer, us_to_sleep - BTDM_MIN_TIMER_UNCERTAINTY_US);
-        if (err != ESP_OK) {
-            ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ESP timer start failed\n");
-            return;
-        }
-    }
-#endif // CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-    r_ble_rtc_wake_up_state_clr();
-#endif
-    esp_pm_lock_release(s_pm_lock);
-#endif // CONFIG_PM_ENABLE
-    esp_phy_disable();
-    s_ble_active = false;
-}
-
-IRAM_ATTR void controller_wakeup_cb(void *arg)
-{
-    if (s_ble_active) {
-        return;
-    }
-    esp_phy_enable();
-    // need to check if need to call pm lock here
-#ifdef CONFIG_PM_ENABLE
-    esp_pm_lock_acquire(s_pm_lock);
-#endif //CONFIG_PM_ENABLE
-    s_ble_active = true;
-}
-
-#ifdef CONFIG_PM_ENABLE
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-static void ble_sleep_timer_callback(void * arg)
-{
-
-}
-
-#endif // CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-#endif // CONFIG_PM_ENABLE
-
-esp_err_t controller_sleep_init(void)
-{
-    esp_err_t rc = 0;
-#ifdef CONFIG_BT_LE_SLEEP_ENABLE
-    ESP_LOGW(NIMBLE_PORT_LOG_TAG, "BLE modem sleep is enabled\n");
-    r_ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0, 500 + BLE_RTC_DELAY_US);
-
-#ifdef CONFIG_PM_ENABLE
-    esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON);
-#endif // CONFIG_PM_ENABLE
-
-#endif // CONFIG_BT_LE_SLEEP_ENABLE
-
-    // enable light sleep
-#ifdef CONFIG_PM_ENABLE
-    rc = esp_pm_lock_create(ESP_PM_CPU_FREQ_MAX, 0, "bt", &s_pm_lock);
-    if (rc != ESP_OK) {
-        goto error;
-    }
-    esp_pm_lock_acquire(s_pm_lock);
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-    esp_timer_create_args_t create_args = {
-        .callback = ble_sleep_timer_callback,
-        .arg = NULL,
-        .name = "btSlp"
-    };
-    rc = esp_timer_create(&create_args, &s_ble_sleep_timer);
-    if (rc != ESP_OK) {
-        goto error;
-    }
-    ESP_LOGW(NIMBLE_PORT_LOG_TAG, "Enable light sleep, the wake up source is ESP timer");
-#endif //CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-    esp_sleep_enable_bt_wakeup();
-    ESP_LOGW(NIMBLE_PORT_LOG_TAG, "Enable light sleep, the wake up source is BLE timer");
-#endif // CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-
-    return rc;
-
-error:
-    /*lock should release first and then delete*/
-    if (s_pm_lock != NULL) {
-        esp_pm_lock_release(s_pm_lock);
-        esp_pm_lock_delete(s_pm_lock);
-        s_pm_lock = NULL;
-    }
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-    if (s_ble_sleep_timer != NULL) {
-        esp_timer_stop(s_ble_sleep_timer);
-        esp_timer_delete(s_ble_sleep_timer);
-        s_ble_sleep_timer = NULL;
-    }
-#endif // CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-    esp_sleep_disable_bt_wakeup();
-#endif // CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-
-#endif //CONFIG_PM_ENABLE
-    return rc;
-}
-
-void controller_sleep_deinit(void)
-{
-#ifdef CONFIG_PM_ENABLE
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-    r_ble_rtc_wake_up_state_clr();
-    esp_sleep_disable_bt_wakeup();
-#endif //CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
-    esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_AUTO);
-
-    /*lock should release first and then delete*/
-    if (s_ble_active) {
-        esp_pm_lock_release(s_pm_lock);
-    }
-
-    esp_pm_lock_delete(s_pm_lock);
-    s_pm_lock = NULL;
-#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-    if (s_ble_sleep_timer != NULL) {
-        esp_timer_stop(s_ble_sleep_timer);
-        esp_timer_delete(s_ble_sleep_timer);
-        s_ble_sleep_timer = NULL;
-    }
-#endif //CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
-#endif //CONFIG_PM_ENABLE
-}
-
-#if CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_2
-void periph_module_etm_active(void)
-{
-    /*This part for esp32h4 beta2*/
-    REG_SET_BIT(SYSTEM_MODCLK_CONF_REG, SYSTEM_ETM_CLK_SEL | SYSTEM_ETM_CLK_ACTIVE ); //Active ETM clock
-}
-#endif
-
-esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
-{
-    esp_err_t ret = ESP_OK;
-    ble_npl_count_info_t npl_info;
-    memset(&npl_info, 0, sizeof(ble_npl_count_info_t));
-
-    if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state");
-        return ESP_ERR_INVALID_STATE;
-    }
-
-    if (!cfg) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "cfg is NULL");
-        return ESP_ERR_INVALID_ARG;
-    }
-
-    ret = esp_register_ext_funcs(&ext_funcs_ro);
-    if (ret != ESP_OK) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "register extend functions failed");
-        return ret;
-    }
-
-    /* Initialize the function pointers for OS porting */
-    npl_freertos_funcs_init();
-    struct npl_funcs_t *p_npl_funcs = npl_freertos_funcs_get();
-    if (!p_npl_funcs) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "npl functions get failed");
-        return ESP_ERR_INVALID_ARG;
-    }
-
-    ret = esp_register_npl_funcs(p_npl_funcs);
-    if (ret != ESP_OK) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "npl functions register failed");
-        goto free_mem;
-    }
-
-    ble_get_npl_element_info(cfg, &npl_info);
-    npl_freertos_set_controller_npl_info(&npl_info);
-    if (npl_freertos_mempool_init() != 0) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "npl mempool init failed");
-        ret = ESP_ERR_INVALID_ARG;
-        goto free_mem;
-    }
-
-    /* Initialize the global memory pool */
-    ret = os_msys_buf_alloc();
-    if (ret != ESP_OK) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "os msys alloc failed");
-        goto free_mem;
-    }
-
-    os_msys_init();
-#if CONFIG_BT_NIMBLE_ENABLED
-    // ble_npl_eventq_init() need to use npl function in rom and must be called after esp_bt_controller_init()
-    /* Initialize default event queue */
-    ble_npl_eventq_init(nimble_port_get_dflt_eventq());
-#endif
-
-    periph_module_enable(PERIPH_BT_MODULE);
-#if CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_2
-    // only use for esp32h4 beta2
-    periph_module_etm_active();
-#endif
-
-    // init phy
-    esp_phy_enable();
-    esp_btbb_enable();
-    s_ble_active = true;
-    // set bb delay
-    bt_bb_set_le_tx_on_delay(50);
-
-    if (ble_osi_coex_funcs_register((struct osi_coex_funcs_t *)&s_osi_coex_funcs_ro) != 0) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "osi coex funcs reg failed");
-        ret = ESP_ERR_INVALID_ARG;
-        goto free_controller;
-    }
-
-#if CONFIG_SW_COEXIST_ENABLE
-    coex_init();
-#endif
-    ret = ble_controller_init(cfg);
-    if (ret != ESP_OK) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_init failed %d", ret);
-        goto free_controller;
-    }
-
-    ret = controller_sleep_init();
-    if (ret != ESP_OK) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "controller_sleep_init failed %d", ret);
-        goto free_controller;
-    }
-
-    uint8_t mac[6];
-    ESP_ERROR_CHECK(esp_read_mac((uint8_t *)mac, ESP_MAC_BT));
-
-    swap_in_place(mac, 6);
-
-    esp_ble_ll_set_public_addr(mac);
-
-    ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
-
-    ble_hci_trans_cfg_hs((ble_hci_trans_rx_cmd_fn *)ble_hci_unregistered_hook,NULL,
-                         (ble_hci_trans_rx_acl_fn *)ble_hci_unregistered_hook,NULL);
-    return ESP_OK;
-free_controller:
-    controller_sleep_deinit();
-    ble_controller_deinit();
-    esp_btbb_disable();
-    esp_phy_disable();
-#if CONFIG_BT_NIMBLE_ENABLED
-    ble_npl_eventq_deinit(nimble_port_get_dflt_eventq());
-#endif // CONFIG_BT_NIMBLE_ENABLED
-free_mem:
-    os_msys_buf_free();
-    npl_freertos_mempool_deinit();
-    esp_unregister_npl_funcs();
-    npl_freertos_funcs_deinit();
-    esp_unregister_ext_funcs();
-    return ret;
-}
-
-esp_err_t esp_bt_controller_deinit(void)
-{
-    if ((ble_controller_status < ESP_BT_CONTROLLER_STATUS_INITED) || (ble_controller_status >= ESP_BT_CONTROLLER_STATUS_ENABLED)) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state");
-        return ESP_FAIL;
-    }
-
-    controller_sleep_deinit();
-
-    esp_btbb_disable();
-
-    if (s_ble_active) {
-        esp_phy_disable();
-        s_ble_active = false;
-    }
-
-    ble_controller_deinit();
-
-#if CONFIG_BT_NIMBLE_ENABLED
-    /* De-initialize default event queue */
-    ble_npl_eventq_deinit(nimble_port_get_dflt_eventq());
-#endif
-    os_msys_buf_free();
-
-    esp_unregister_npl_funcs();
-
-    esp_unregister_ext_funcs();
-
-    /* De-initialize npl functions */
-    npl_freertos_funcs_deinit();
-
-    npl_freertos_mempool_deinit();
-
-    ble_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
-
-    return ESP_OK;
-}
-
-esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
-{
-    if (mode != ESP_BT_MODE_BLE) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller mode");
-        return ESP_FAIL;
-    }
-    if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_INITED) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state");
-        return ESP_FAIL;
-    }
-#if CONFIG_SW_COEXIST_ENABLE
-    coex_enable();
-#endif
-    if (ble_controller_enable(mode) != 0) {
-        return ESP_FAIL;
-    }
-    ble_controller_status = ESP_BT_CONTROLLER_STATUS_ENABLED;
-    return ESP_OK;
-}
-
-esp_err_t esp_bt_controller_disable(void)
-{
-    if (ble_controller_status < ESP_BT_CONTROLLER_STATUS_ENABLED) {
-        ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state");
-        return ESP_FAIL;
-    }
-    if (ble_controller_disable() != 0) {
-        return ESP_FAIL;
-    }
-    ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
-    return ESP_OK;
-}
-
-esp_err_t esp_bt_controller_mem_release(esp_bt_mode_t mode)
-{
-    ESP_LOGD(NIMBLE_PORT_LOG_TAG, "%s not implemented, return OK", __func__);
-    return ESP_OK;
-}
-
-static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end)
-{
-    /* TODO */
-    int ret = ESP_ERR_INVALID_SIZE;
-    /* heap_caps_add_region() returns ESP_ERR_INVALID_SIZE if the memory region is
-     * is too small to fit a heap. This cannot be termed as a fatal error and hence
-     * we replace it by ESP_OK
-     */
-    if (ret == ESP_ERR_INVALID_SIZE) {
-        return ESP_OK;
-    }
-    return ret;
-}
-
-esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
-{
-     intptr_t mem_start, mem_end;
-
-    if (mode & ESP_BT_MODE_BLE) {
-        mem_start = (intptr_t)&_bt_bss_start;
-        mem_end = (intptr_t)&_bt_bss_end;
-        if (mem_start != mem_end) {
-            ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT BSS [0x%08x] - [0x%08x]", mem_start, mem_end);
-            ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
-        }
-
-        mem_start = (intptr_t)&_bt_data_start;
-        mem_end = (intptr_t)&_bt_data_end;
-        if (mem_start != mem_end) {
-            ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT Data [0x%08x] - [0x%08x]", mem_start, mem_end);
-            ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
-        }
-
-        mem_start = (intptr_t)&_nimble_bss_start;
-        mem_end = (intptr_t)&_nimble_bss_end;
-        if (mem_start != mem_end) {
-            ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release NimBLE BSS [0x%08x] - [0x%08x]", mem_start, mem_end);
-            ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
-        }
-
-        mem_start = (intptr_t)&_nimble_data_start;
-        mem_end = (intptr_t)&_nimble_data_end;
-        if (mem_start != mem_end) {
-            ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release NimBLE Data [0x%08x] - [0x%08x]", mem_start, mem_end);
-            ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
-        }
-    }
-
-    return ESP_OK;
-}
-
-
-esp_bt_controller_status_t esp_bt_controller_get_status(void)
-{
-    return ble_controller_status;
-}
-
-/* extra functions */
-esp_err_t esp_ble_tx_power_set(esp_ble_power_type_t power_type, esp_power_level_t power_level)
-{
-    esp_err_t stat = ESP_FAIL;
-
-    switch (power_type) {
-    case ESP_BLE_PWR_TYPE_DEFAULT:
-    case ESP_BLE_PWR_TYPE_ADV:
-    case ESP_BLE_PWR_TYPE_SCAN:
-        if (ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0, power_level) == 0) {
-            stat = ESP_OK;
-        }
-        break;
-    case ESP_BLE_PWR_TYPE_CONN_HDL0:
-    case ESP_BLE_PWR_TYPE_CONN_HDL1:
-    case ESP_BLE_PWR_TYPE_CONN_HDL2:
-    case ESP_BLE_PWR_TYPE_CONN_HDL3:
-    case ESP_BLE_PWR_TYPE_CONN_HDL4:
-    case ESP_BLE_PWR_TYPE_CONN_HDL5:
-    case ESP_BLE_PWR_TYPE_CONN_HDL6:
-    case ESP_BLE_PWR_TYPE_CONN_HDL7:
-    case ESP_BLE_PWR_TYPE_CONN_HDL8:
-        if (ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_CONN, power_type, power_level) == 0) {
-            stat = ESP_OK;
-        }
-        break;
-    default:
-        stat = ESP_ERR_NOT_SUPPORTED;
-        break;
-    }
-
-    return stat;
-}
-
-esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle, esp_power_level_t power_level)
-{
-    esp_err_t stat = ESP_FAIL;
-    switch (power_type) {
-    case ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT:
-    case ESP_BLE_ENHANCED_PWR_TYPE_SCAN:
-    case ESP_BLE_ENHANCED_PWR_TYPE_INIT:
-        if (ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0, power_level) == 0) {
-            stat = ESP_OK;
-        }
-        break;
-    case ESP_BLE_ENHANCED_PWR_TYPE_ADV:
-    case ESP_BLE_ENHANCED_PWR_TYPE_CONN:
-        if (ble_txpwr_set(power_type, handle, power_level) == 0) {
-            stat = ESP_OK;
-        }
-        break;
-    default:
-        stat = ESP_ERR_NOT_SUPPORTED;
-        break;
-    }
-
-    return stat;
-}
-
-esp_power_level_t esp_ble_tx_power_get(esp_ble_power_type_t power_type)
-{
-    int tx_level = 0;
-
-    switch (power_type) {
-    case ESP_BLE_PWR_TYPE_ADV:
-    case ESP_BLE_PWR_TYPE_SCAN:
-    case ESP_BLE_PWR_TYPE_DEFAULT:
-        tx_level = ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0);
-        break;
-    case ESP_BLE_PWR_TYPE_CONN_HDL0:
-    case ESP_BLE_PWR_TYPE_CONN_HDL1:
-    case ESP_BLE_PWR_TYPE_CONN_HDL2:
-    case ESP_BLE_PWR_TYPE_CONN_HDL3:
-    case ESP_BLE_PWR_TYPE_CONN_HDL4:
-    case ESP_BLE_PWR_TYPE_CONN_HDL5:
-    case ESP_BLE_PWR_TYPE_CONN_HDL6:
-    case ESP_BLE_PWR_TYPE_CONN_HDL7:
-    case ESP_BLE_PWR_TYPE_CONN_HDL8:
-        tx_level = ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_CONN, power_type);
-        break;
-    default:
-        return ESP_PWR_LVL_INVALID;
-    }
-
-    if (tx_level < 0) {
-        return ESP_PWR_LVL_INVALID;
-    }
-
-    return (esp_power_level_t)tx_level;
-}
-
-esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle)
-{
-    int tx_level = 0;
-
-    switch (power_type) {
-    case ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT:
-    case ESP_BLE_ENHANCED_PWR_TYPE_SCAN:
-    case ESP_BLE_ENHANCED_PWR_TYPE_INIT:
-        tx_level = ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0);
-        break;
-    case ESP_BLE_ENHANCED_PWR_TYPE_ADV:
-    case ESP_BLE_ENHANCED_PWR_TYPE_CONN:
-        tx_level = ble_txpwr_get(power_type, handle);
-        break;
-    default:
-        return ESP_PWR_LVL_INVALID;
-    }
-
-    if (tx_level < 0) {
-       return ESP_PWR_LVL_INVALID;
-    }
-
-    return (esp_power_level_t)tx_level;
-}
-
-
-#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED == true)
-
-#define BLE_SM_KEY_ERR 0x17
-
-#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
-#include "mbedtls/aes.h"
-
-#if CONFIG_BT_LE_SM_SC
-#include "mbedtls/cipher.h"
-#include "mbedtls/entropy.h"
-#include "mbedtls/ctr_drbg.h"
-#include "mbedtls/cmac.h"
-#include "mbedtls/ecdh.h"
-#include "mbedtls/ecp.h"
-#endif
-
-#else
-#include "tinycrypt/aes.h"
-#include "tinycrypt/constants.h"
-#include "tinycrypt/utils.h"
-
-#if CONFIG_BT_LE_SM_SC
-#include "tinycrypt/cmac_mode.h"
-#include "tinycrypt/ecc_dh.h"
-#endif
-
-#endif
-
-#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
-#if CONFIG_BT_LE_SM_SC
-static mbedtls_ecp_keypair keypair;
-#endif
-#endif
-
-int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
-                         const uint8_t *our_priv_key, uint8_t *out_dhkey)
-{
-    uint8_t dh[32];
-    uint8_t pk[64];
-    uint8_t priv[32];
-    int rc = BLE_SM_KEY_ERR;
-
-    swap_buf(pk, peer_pub_key_x, 32);
-    swap_buf(&pk[32], peer_pub_key_y, 32);
-    swap_buf(priv, our_priv_key, 32);
-
-#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
-    struct mbedtls_ecp_point pt = {0}, Q = {0};
-    mbedtls_mpi z = {0}, d = {0};
-    mbedtls_ctr_drbg_context ctr_drbg = {0};
-    mbedtls_entropy_context entropy = {0};
-
-    uint8_t pub[65] = {0};
-    /* Hardcoded first byte of pub key for MBEDTLS_ECP_PF_UNCOMPRESSED */
-    pub[0] = 0x04;
-    memcpy(&pub[1], pk, 64);
-
-    /* Initialize the required structures here */
-    mbedtls_ecp_point_init(&pt);
-    mbedtls_ecp_point_init(&Q);
-    mbedtls_ctr_drbg_init(&ctr_drbg);
-    mbedtls_entropy_init(&entropy);
-    mbedtls_mpi_init(&d);
-    mbedtls_mpi_init(&z);
-
-    /* Below 3 steps are to validate public key on curve secp256r1 */
-    if (mbedtls_ecp_group_load(&keypair.MBEDTLS_PRIVATE(grp), MBEDTLS_ECP_DP_SECP256R1) != 0) {
-        goto exit;
-    }
-
-    if (mbedtls_ecp_point_read_binary(&keypair.MBEDTLS_PRIVATE(grp), &pt, pub, 65) != 0) {
-        goto exit;
-    }
-
-    if (mbedtls_ecp_check_pubkey(&keypair.MBEDTLS_PRIVATE(grp), &pt) != 0) {
-        goto exit;
-    }
-
-    /* Set PRNG */
-    if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
-                                    NULL, 0)) != 0) {
-        goto exit;
-    }
-
-    /* Prepare point Q from pub key */
-    if (mbedtls_ecp_point_read_binary(&keypair.MBEDTLS_PRIVATE(grp), &Q, pub, 65) != 0) {
-        goto exit;
-    }
-
-    if (mbedtls_mpi_read_binary(&d, priv, 32) != 0) {
-        goto exit;
-    }
-
-    rc = mbedtls_ecdh_compute_shared(&keypair.MBEDTLS_PRIVATE(grp), &z, &Q, &d,
-                                     mbedtls_ctr_drbg_random, &ctr_drbg);
-    if (rc != 0) {
-        goto exit;
-    }
-
-    rc = mbedtls_mpi_write_binary(&z, dh, 32);
-    if (rc != 0) {
-        goto exit;
-    }
-
-exit:
-    mbedtls_ecp_point_free(&pt);
-    mbedtls_mpi_free(&z);
-    mbedtls_mpi_free(&d);
-    mbedtls_ecp_point_free(&Q);
-    mbedtls_entropy_free(&entropy);
-    mbedtls_ctr_drbg_free(&ctr_drbg);
-    if (rc != 0) {
-        return BLE_SM_KEY_ERR;
-    }
-
-#else
-    if (uECC_valid_public_key(pk, &curve_secp256r1) < 0) {
-        return BLE_SM_KEY_ERR;
-    }
-
-    rc = uECC_shared_secret(pk, priv, dh, &curve_secp256r1);
-    if (rc == TC_CRYPTO_FAIL) {
-        return BLE_SM_KEY_ERR;
-    }
-#endif
-
-    swap_buf(out_dhkey, dh, 32);
-    return 0;
-}
-
-/* based on Core Specification 4.2 Vol 3. Part H 2.3.5.6.1 */
-static const uint8_t ble_sm_alg_dbg_priv_key[32] = {
-    0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3,
-    0xd2, 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99,
-    0x58, 0x99, 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd
-};
-
-#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
-static int mbedtls_gen_keypair(uint8_t *public_key, uint8_t *private_key)
-{
-    int rc = BLE_SM_KEY_ERR;
-    mbedtls_entropy_context entropy = {0};
-    mbedtls_ctr_drbg_context ctr_drbg = {0};
-
-    mbedtls_entropy_init(&entropy);
-    mbedtls_ctr_drbg_init(&ctr_drbg);
-    mbedtls_ecp_keypair_init(&keypair);
-
-    if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
-                                    NULL, 0)) != 0) {
-        goto exit;
-    }
-
-    if ((rc = mbedtls_ecp_gen_key(MBEDTLS_ECP_DP_SECP256R1, &keypair,
-                                  mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
-        goto exit;
-    }
-
-    if ((rc = mbedtls_mpi_write_binary(&keypair.MBEDTLS_PRIVATE(d), private_key, 32)) != 0) {
-        goto exit;
-    }
-
-    size_t olen = 0;
-    uint8_t pub[65] = {0};
-
-    if ((rc = mbedtls_ecp_point_write_binary(&keypair.MBEDTLS_PRIVATE(grp), &keypair.MBEDTLS_PRIVATE(Q), MBEDTLS_ECP_PF_UNCOMPRESSED,
-              &olen, pub, 65)) != 0) {
-        goto exit;
-    }
-
-    memcpy(public_key, &pub[1], 64);
-
-exit:
-    mbedtls_ctr_drbg_free(&ctr_drbg);
-    mbedtls_entropy_free(&entropy);
-    if (rc != 0) {
-        mbedtls_ecp_keypair_free(&keypair);
-        return BLE_SM_KEY_ERR;
-    }
-
-    return 0;
-}
-#endif
-
-/**
- * pub: 64 bytes
- * priv: 32 bytes
- */
-int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv)
-{
-#if CONFIG_BT_LE_SM_SC_DEBUG_KEYS
-    swap_buf(pub, ble_sm_alg_dbg_pub_key, 32);
-    swap_buf(&pub[32], &ble_sm_alg_dbg_pub_key[32], 32);
-    swap_buf(priv, ble_sm_alg_dbg_priv_key, 32);
-#else
-    uint8_t pk[64];
-
-    do {
-
-#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
-        if (mbedtls_gen_keypair(pk, priv) != 0) {
-            return BLE_SM_KEY_ERR;
-        }
-#else
-        if (uECC_make_key(pk, priv, &curve_secp256r1) != TC_CRYPTO_SUCCESS) {
-            return BLE_SM_KEY_ERR;
-        }
-#endif
-
-        /* Make sure generated key isn't debug key. */
-    } while (memcmp(priv, ble_sm_alg_dbg_priv_key, 32) == 0);
-
-    swap_buf(pub, pk, 32);
-    swap_buf(&pub[32], &pk[32], 32);
-    swap_in_place(priv, 32);
-#endif
-
-    return 0;
-}
-
-#endif

+ 1 - 1
components/driver/test_apps/ledc/main/test_ledc.c

@@ -467,7 +467,7 @@ TEST_CASE("LEDC multi fade test", "[ledc]")
 }
 #endif // SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED
 
-#if SOC_PCNT_SUPPORTED // Note. C3, C2, H4 do not have PCNT peripheral, the following test cases cannot be tested
+#if SOC_PCNT_SUPPORTED // Note. C3, C2 do not have PCNT peripheral, the following test cases cannot be tested
 
 #include "driver/pulse_cnt.h"
 

+ 1 - 1
components/driver/test_apps/spi/master/main/test_spi_bus_lock.c

@@ -33,7 +33,7 @@
 
 #endif
 
-// H4 and C2 will not support external flash.
+// H2 and C2 will not support external flash.
 #define TEST_FLASH_FREQ_MHZ      5
 
 typedef struct {

+ 1 - 1
components/driver/test_apps/spi/slave/main/test_spi_slave.c

@@ -273,7 +273,7 @@ TEST_CASE("test slave send unaligned", "[spi]")
 /********************************************************************************
  *      Test By Master & Slave (2 boards)
  *
- * Master (C3, C2, H4) && Slave (C3, C2, H4):
+ * Master (C3, C2, H2) && Slave (C3, C2, H2):
  *      PIN | Master     | Slave      |
  *      ----| ---------  | ---------  |
  *      CS  | 10         | 10         |

+ 1 - 1
components/driver/test_apps/spi/slave_hd/main/test_spi_slave_hd.c

@@ -583,7 +583,7 @@ TEST_CASE("test spi slave hd segment mode, master too long", "[spi][spi_slv_hd]"
 /********************************************************************************
  *      Test By Master & Slave (2 boards)
  *
- * Master (C3, C2, H4) && Slave (C3, C2, H4):
+ * Master (C3, C2, H2) && Slave (C3, C2, H2):
  *      PIN | Master     | Slave      |
  *      ----| ---------  | ---------  |
  *      CS  | 10         | 10         |

+ 1 - 1
components/efuse/efuse_table_gen.py

@@ -498,7 +498,7 @@ def main():
 
     parser = argparse.ArgumentParser(description='ESP32 eFuse Manager')
     parser.add_argument('--idf_target', '-t', help='Target chip type', choices=['esp32', 'esp32s2', 'esp32s3', 'esp32c3',
-                        'esp32h4', 'esp32c2', 'esp32c6', 'esp32h2'], default='esp32')
+                        'esp32c2', 'esp32c6', 'esp32h2'], default='esp32')
     parser.add_argument('--quiet', '-q', help="Don't print non-critical status messages to stderr", action='store_true')
     parser.add_argument('--debug', help='Create header file with debug info', default=False, action='store_false')
     parser.add_argument('--info', help='Print info about range of used bits', default=False, action='store_true')

+ 3 - 18
components/esp_coex/CMakeLists.txt

@@ -8,17 +8,8 @@ if(CONFIG_ESP_COEX_SW_COEXIST_ENABLE OR CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE)
         set(link_binary_libs 1)
         set(ldfragments "linker.lf")
     endif()
-
-    # TODO: need to remove these logic when unsupport esp32h4.
-    if(IDF_TARGET STREQUAL "esp32h4")
-        set(srcs
-        "src/coexist.c"
-        "esp32h2/esp_coex_adapter.c")
-    else()
-        set(srcs
-            "src/coexist.c"
-            "${idf_target}/esp_coex_adapter.c")
-    endif()
+    set(srcs "src/coexist.c"
+             "${idf_target}/esp_coex_adapter.c")
 endif()
 
 if(CONFIG_ESP_WIFI_ENABLED)
@@ -38,14 +29,8 @@ if(CONFIG_ESP_COEX_SW_COEXIST_ENABLE OR CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE)
 
     if(link_binary_libs)
         set(blob coexist)
-        # TODO: need to remove these logic when unsupport esp32h4.
-        if(IDF_TARGET STREQUAL "esp32h4")
-            add_prebuilt_library(${blob} "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32h2/lib${blob}.a"
+        add_prebuilt_library(${blob} "${CMAKE_CURRENT_SOURCE_DIR}/lib/${target_name}/lib${blob}.a"
                                 REQUIRES ${COMPONENT_NAME})
-        else()
-            add_prebuilt_library(${blob} "${CMAKE_CURRENT_SOURCE_DIR}/lib/${target_name}/lib${blob}.a"
-                                    REQUIRES ${COMPONENT_NAME})
-        endif()
         target_link_libraries(${COMPONENT_LIB} PUBLIC ${blob})
     endif()
 

+ 1 - 10
components/esp_phy/CMakeLists.txt

@@ -47,16 +47,7 @@ idf_component_register(SRCS "${srcs}"
                     )
 
 set(target_name "${idf_target}")
-if(IDF_TARGET STREQUAL "esp32h4")
-    if(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_2)
-        target_link_directories(${COMPONENT_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32h4/rev2")
-    endif()
-    if(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_1)
-        target_link_directories(${COMPONENT_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32h4/rev1")
-    endif()
-else()
-    target_link_directories(${COMPONENT_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/lib/${target_name}")
-endif()
+target_link_directories(${COMPONENT_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/lib/${target_name}")
 
 # Override functions in PHY lib with the functions in 'phy_override.c'
 target_link_libraries(${COMPONENT_LIB} INTERFACE "-u include_esp_phy_override")

+ 2 - 2
components/esp_phy/src/phy_init_esp32hxx.c

@@ -54,10 +54,10 @@ void esp_phy_enable(void)
     s_phy_access_ref++;
 
     _lock_release(&s_phy_access_lock);
-    // ESP32H4-TODO: enable common clk.
+    // ESP32H2-TODO: enable common clk.
 }
 
 void esp_phy_disable(void)
 {
-    // ESP32H4-TODO: close rf and disable clk for modem sleep and light sleep
+    // ESP32H2-TODO: close rf and disable clk for modem sleep and light sleep
 }

+ 0 - 1
components/esp_pm/include/esp_pm.h

@@ -33,7 +33,6 @@ typedef esp_pm_config_t esp_pm_config_esp32_t   __attribute__((deprecated("pleas
 typedef esp_pm_config_t esp_pm_config_esp32s2_t __attribute__((deprecated("please use esp_pm_config_t instead")));
 typedef esp_pm_config_t esp_pm_config_esp32s3_t __attribute__((deprecated("please use esp_pm_config_t instead")));
 typedef esp_pm_config_t esp_pm_config_esp32c3_t __attribute__((deprecated("please use esp_pm_config_t instead")));
-typedef esp_pm_config_t esp_pm_config_esp32h4_t __attribute__((deprecated("please use esp_pm_config_t instead")));
 typedef esp_pm_config_t esp_pm_config_esp32c2_t __attribute__((deprecated("please use esp_pm_config_t instead")));
 typedef esp_pm_config_t esp_pm_config_esp32c6_t __attribute__((deprecated("please use esp_pm_config_t instead")));
 

+ 0 - 2
components/esp_pm/pm_impl.c

@@ -73,8 +73,6 @@
 #define REF_CLK_DIV_MIN 2         // TODO: IDF-5660
 #elif CONFIG_IDF_TARGET_ESP32C3
 #define REF_CLK_DIV_MIN 2
-#elif CONFIG_IDF_TARGET_ESP32H4
-#define REF_CLK_DIV_MIN 2
 #elif CONFIG_IDF_TARGET_ESP32C2
 #define REF_CLK_DIV_MIN 2
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 1 - 1
components/esp_pm/pm_trace.c

@@ -15,7 +15,7 @@
  * Feel free to change when debugging.
  */
 static const int DRAM_ATTR s_trace_io[] = {
-#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32H4) && !defined(CONFIG_IDF_TARGET_ESP32C2)
+#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2)
     BIT(4),  BIT(5),  // ESP_PM_TRACE_IDLE
     BIT(16), BIT(17), // ESP_PM_TRACE_TICK
     BIT(18), BIT(18), // ESP_PM_TRACE_FREQ_SWITCH

+ 0 - 2
components/esp_pm/test_apps/esp_pm/main/test_pm.c

@@ -67,8 +67,6 @@ static const int test_freqs[] = {40, CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, 80, 40, 80
 #elif CONFIG_IDF_TARGET_ESP32C2
 static const int test_freqs[] = {CONFIG_XTAL_FREQ, CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, 80, CONFIG_XTAL_FREQ, 80,
                                  CONFIG_XTAL_FREQ / 2, CONFIG_XTAL_FREQ}; // C2 xtal has 40/26MHz option
-#elif CONFIG_IDF_TARGET_ESP32H4
-static const int test_freqs[] = {32, CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, 32} // TODO: IDF-3786
 #else
 static const int test_freqs[] = {240, 40, 160, 240, 80, 40, 240, 40, 80, 10, 80, 20, 40};
 #endif

+ 1 - 22
components/esp_rom/CMakeLists.txt

@@ -51,15 +51,7 @@ idf_component_register(SRCS ${sources}
                        PRIV_REQUIRES ${private_required_comp}
                        LDFRAGMENTS linker.lf)
 
-if(target STREQUAL "esp32h4")
-    if(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_1)
-        set(ld_folder "ld/rev1")
-    elseif(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_2)
-        set(ld_folder "ld/rev2")
-    endif()
-else()
-    set(ld_folder "ld")
-endif()
+set(ld_folder "ld")
 
 # Append a target linker script at the target-specific path,
 # only the 'name' part is different for each script
@@ -108,9 +100,6 @@ if(BOOTLOADER_BUILD)
     elseif(target STREQUAL "esp32c3")
         rom_linker_script("newlib")
 
-    elseif(target STREQUAL "esp32h4")
-        rom_linker_script("newlib")
-
     elseif(target STREQUAL "esp32c2")
         rom_linker_script("newlib")
         rom_linker_script("mbedtls")
@@ -215,16 +204,6 @@ else() # Regular app build
             rom_linker_script("eco3")
         endif()
 
-    elseif(target STREQUAL "esp32h4")
-        rom_linker_script("newlib")
-        rom_linker_script("version")
-
-        if(CONFIG_NEWLIB_NANO_FORMAT AND time_t_size EQUAL 4)
-            # nano formatting functions in ROM are built for 32-bit time_t,
-            # only link them if the toolchain is also using 32-bit time_t and nano formatting was requested.
-            rom_linker_script("newlib-nano")
-        endif()
-
     elseif(target STREQUAL "esp32c2")
         rom_linker_script("newlib")
         rom_linker_script("version")

+ 0 - 2
components/esp_rom/README.md

@@ -17,8 +17,6 @@ When using ROM functions in esp-idf, the including convention is `<target>/rom/<
 #include "esp32c3/rom/uart.h"
 #elif CONFIG_IDF_TARGET_ESP32S3
 #include "esp32s3/rom/uart.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/uart.h"
 ...
 ```
 

+ 1 - 2
components/esp_system/Kconfig

@@ -99,7 +99,6 @@ menu "ESP System Settings"
         default y if IDF_TARGET_ESP32S2
         default y if IDF_TARGET_ESP32C3
         default y if IDF_TARGET_ESP32S3
-        default y if IDF_TARGET_ESP32H4
         default y if IDF_TARGET_ESP32C6
         default n if IDF_TARGET_ESP32H2 # IDF-5667
         depends on SOC_RTC_FAST_MEM_SUPPORTED
@@ -280,7 +279,7 @@ menu "ESP System Settings"
 
     config ESP_CONSOLE_MULTIPLE_UART
         bool
-        default y if !IDF_TARGET_ESP32C3 && !IDF_TARGET_ESP32H4 && !IDF_TARGET_ESP32C2
+        default y if !IDF_TARGET_ESP32C3 && !IDF_TARGET_ESP32C2
 
     choice ESP_CONSOLE_UART_NUM
         prompt "UART peripheral to use for console output (0-1)"

+ 4 - 4
components/esp_system/crosscore_int.c

@@ -29,7 +29,7 @@
 #define REASON_FREQ_SWITCH      BIT(1)
 #define REASON_GDB_CALL         BIT(3)
 
-#if !CONFIG_IDF_TARGET_ESP32C3 && !CONFIG_IDF_TARGET_ESP32H4 && !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C6
+#if !CONFIG_IDF_TARGET_ESP32C3 && !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C6
 #define REASON_PRINT_BACKTRACE  BIT(2)
 #define REASON_TWDT_ABORT       BIT(4)
 #endif
@@ -66,7 +66,7 @@ static void IRAM_ATTR esp_crosscore_isr(void *arg) {
     } else {
         WRITE_PERI_REG(SYSTEM_CPU_INTR_FROM_CPU_1_REG, 0);
     }
-#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H4 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
+#elif CONFIG_IDF_TARGET_ESP32C3|| CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     WRITE_PERI_REG(SYSTEM_CPU_INTR_FROM_CPU_0_REG, 0);
 #endif
 
@@ -147,7 +147,7 @@ static void IRAM_ATTR esp_crosscore_int_send(int core_id, uint32_t reason_mask)
     } else {
         WRITE_PERI_REG(SYSTEM_CPU_INTR_FROM_CPU_1_REG, SYSTEM_CPU_INTR_FROM_CPU_1);
     }
-#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H4 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
+#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     WRITE_PERI_REG(SYSTEM_CPU_INTR_FROM_CPU_0_REG, SYSTEM_CPU_INTR_FROM_CPU_0);
 #endif
 }
@@ -167,7 +167,7 @@ void IRAM_ATTR esp_crosscore_int_send_gdb_call(int core_id)
     esp_crosscore_int_send(core_id, REASON_GDB_CALL);
 }
 
-#if !CONFIG_IDF_TARGET_ESP32C3 && !CONFIG_IDF_TARGET_ESP32H4 && !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C6 && !CONFIG_IDF_TARGET_ESP32H2
+#if !CONFIG_IDF_TARGET_ESP32C3 && !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C6 && !CONFIG_IDF_TARGET_ESP32H2
 void IRAM_ATTR esp_crosscore_int_send_print_backtrace(int core_id)
 {
     esp_crosscore_int_send(core_id, REASON_PRINT_BACKTRACE);

+ 0 - 4
components/esp_system/fpga_overrides.c

@@ -17,8 +17,6 @@
 #include "esp32s3/rom/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rom/rtc.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C6
@@ -47,8 +45,6 @@ void bootloader_clock_configure(void)
     uint32_t xtal_freq_mhz = 40;
 #ifdef CONFIG_IDF_TARGET_ESP32S2
     uint32_t apb_freq_hz = 20000000;
-#elif CONFIG_IDF_TARGET_ESP32H4
-    uint32_t apb_freq_hz = 32000000;
 #else
     uint32_t apb_freq_hz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ * 1000000;
 #endif // CONFIG_IDF_TARGET_ESP32S2

+ 2 - 2
components/esp_system/include/esp_private/crosscore_int.h

@@ -50,7 +50,7 @@ void esp_crosscore_int_send_freq_switch(int core_id);
 
 void esp_crosscore_int_send_gdb_call(int core_id);
 
-#if !CONFIG_IDF_TARGET_ESP32C3 && !CONFIG_IDF_TARGET_ESP32H4 && !CONFIG_IDF_TARGET_ESP32C2 && !CONFIG_IDF_TARGET_ESP32C6 && !CONFIG_IDF_TARGET_ESP32H2
+#if !CONFIG_IDF_TARGET_ESP32C3 && !CONFIG_IDF_TARGET_ESP32C2 && !CONFIG_IDF_TARGET_ESP32C6 && !CONFIG_IDF_TARGET_ESP32H2
 /**
  * Send an interrupt to a CPU indicating it should print its current backtrace
  *
@@ -75,7 +75,7 @@ void esp_crosscore_int_send_print_backtrace(int core_id);
 void esp_crosscore_int_send_twdt_abort(int core_id);
 
 #endif // CONFIG_ESP_TASK_WDT_EN
-#endif // !CONFIG_IDF_TARGET_ESP32C3 && !CONFIG_IDF_TARGET_ESP32H4 && !CONFIG_IDF_TARGET_ESP32C2 && !CONFIG_IDF_TARGET_ESP32C6
+#endif // !CONFIG_IDF_TARGET_ESP32C3 && !CONFIG_IDF_TARGET_ESP32C2 && !CONFIG_IDF_TARGET_ESP32C6
 
 #ifdef __cplusplus
 }

+ 0 - 5
components/esp_system/port/cpu_start.c

@@ -56,11 +56,6 @@
 #include "esp32h2/rtc.h"
 #include "esp32h2/rom/cache.h"
 #include "esp_memprot.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rtc.h"
-#include "esp32h4/rom/cache.h"
-#include "esp32h4/rom/secure_boot.h"
-#include "esp_memprot.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rtc.h"
 #include "esp32c2/rom/cache.h"

+ 0 - 2
components/esp_system/system_time.c

@@ -21,8 +21,6 @@
 #include "esp32s3/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rtc.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 1 - 1
components/esp_system/test_apps/esp_system_unity_tests/main/test_reset_reason.c

@@ -43,7 +43,7 @@
 #define BROWNOUT            "BROWN_OUT_RST"
 #define STORE_ERROR         "StoreProhibited"
 
-#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H4 || CONFIG_IDF_TARGET_ESP32C2
+#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2
 #define DEEPSLEEP           "DSLEEP"
 #define LOAD_STORE_ERROR    "Store access fault"
 #define RESET               "RTC_SW_CPU_RST"

+ 0 - 2
components/esp_timer/src/esp_timer.c

@@ -31,8 +31,6 @@
 #include "esp32s3/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rtc.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 0 - 2
components/esp_timer/src/ets_timer_legacy.c

@@ -32,8 +32,6 @@
 #include "esp32c3/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/ets_sys.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32C6
 #include "esp32c6/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32H2

+ 0 - 2
components/esp_timer/src/system_time.c

@@ -25,8 +25,6 @@
 #include "esp32s3/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rtc.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 1 - 3
components/esp_timer/test_apps/main/test_ets_timer.c

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -23,8 +23,6 @@
 #include "esp32s3/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rom/ets_sys.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 0 - 1
components/esp_wifi/Kconfig

@@ -1,6 +1,5 @@
 
 menu "Wi-Fi"
-    visible if !IDF_TARGET_ESP32H4
 
     config ESP_WIFI_ENABLED
         bool

+ 0 - 1
components/esptool_py/Kconfig.projbuild

@@ -91,7 +91,6 @@ menu "Serial flasher config"
         default ESPTOOLPY_FLASHFREQ_40M if IDF_TARGET_ESP32
         default ESPTOOLPY_FLASHFREQ_80M if ESPTOOLPY_FLASHFREQ_80M_DEFAULT
         default ESPTOOLPY_FLASHFREQ_60M if IDF_TARGET_ESP32C2
-        default ESPTOOLPY_FLASHFREQ_48M if IDF_TARGET_ESP32H4
         config ESPTOOLPY_FLASHFREQ_120M
             bool "120 MHz"
             select SPI_FLASH_HPM_ENABLE

+ 0 - 8
components/esptool_py/project_include.cmake

@@ -6,14 +6,6 @@ idf_build_get_property(python PYTHON)
 idf_build_get_property(idf_path IDF_PATH)
 
 set(chip_model ${target})
-# TODO: remove this if block when esp32h4 beta1 is no longer supported and we have h4 target in esptool
-if(target STREQUAL "esp32h4")
-    if(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_1)
-        set(chip_model esp32h2beta1)
-    elseif(CONFIG_IDF_TARGET_ESP32H4_BETA_VERSION_2)
-        set(chip_model esp32h2beta2)
-    endif()
-endif()
 
 set(ESPTOOLPY ${python} "$ENV{ESPTOOL_WRAPPER}" "${CMAKE_CURRENT_LIST_DIR}/esptool/esptool.py" --chip ${chip_model})
 set(ESPSECUREPY ${python} "${CMAKE_CURRENT_LIST_DIR}/esptool/espsecure.py")

+ 1 - 1
components/freertos/Kconfig

@@ -366,7 +366,7 @@ menu "FreeRTOS"
         config FREERTOS_TICK_SUPPORT_SYSTIMER
             bool
             default y if !FREERTOS_TICK_SUPPORT_CORETIMER
-            # ESP32-S3, ESP32-C3 and ESP32-H4 can use Systimer for FreeRTOS SysTick
+            # ESP32-S3 and ESP32-C3 can use Systimer for FreeRTOS SysTick
             # ESP32S2 also has SYSTIMER but it can not be used for the FreeRTOS SysTick because:
             # - It has only one counter, which already in use esp_timer.
             #   A counter for SysTick should be stall in debug mode but work esp_timer.

+ 0 - 2
components/heap/port/memory_layout_utils.c

@@ -15,8 +15,6 @@
 #include "esp32c3/rom/rom_layout.h"
 #elif CONFIG_IDF_TARGET_ESP32S3
 #include "esp32s3/rom/rom_layout.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/rom_layout.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/rom_layout.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 0 - 2
components/mbedtls/port/esp_ds/esp_rsa_sign_alt.c

@@ -12,8 +12,6 @@
 #include "esp32s2/rom/digital_signature.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rom/digital_signature.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/digital_signature.h"
 #elif CONFIG_IDF_TARGET_ESP32S3
 #include "esp32s3/rom/digital_signature.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 0 - 2
components/mbedtls/port/sha/dma/sha.c

@@ -54,8 +54,6 @@
 #include "esp32s3/rom/cache.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32s3/rom/cache.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/cache.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/cache.h"
 #endif

+ 2 - 4
components/newlib/newlib_init.c

@@ -29,8 +29,6 @@
 #include "esp32s3/rom/libc_stubs.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rom/libc_stubs.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/libc_stubs.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/libc_stubs.h"
 #elif CONFIG_IDF_TARGET_ESP32C6
@@ -113,7 +111,7 @@ static struct syscall_stub_table s_stub_table = {
     ._printf_float = NULL,
     ._scanf_float = NULL,
 #endif
-#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H4 \
+#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 \
     || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     /* TODO IDF-2570 : mark that this assert failed in ROM, to avoid confusion between IDF & ROM
        assertion failures (as function names & source file names will be similar)
@@ -137,7 +135,7 @@ void esp_newlib_init(void)
     syscall_table_ptr_pro = syscall_table_ptr_app = &s_stub_table;
 #elif CONFIG_IDF_TARGET_ESP32S2
     syscall_table_ptr_pro = &s_stub_table;
-#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H4 \
+#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 \
     || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     syscall_table_ptr = &s_stub_table;
 #endif

+ 0 - 3
components/newlib/port/esp_time_impl.c

@@ -33,9 +33,6 @@
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rom/rtc.h"
 #include "esp32c3/rtc.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/rtc.h"
-#include "esp32h4/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/rtc.h"
 #include "esp32c2/rtc.h"

+ 2 - 2
components/newlib/test/test_newlib.c

@@ -139,7 +139,7 @@ TEST_CASE("check if ROM or Flash is used for functions", "[newlib]")
     TEST_ASSERT_FALSE(fn_in_rom(vfprintf));
 #endif // CONFIG_NEWLIB_NANO_FORMAT || ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT
 
-#if (CONFIG_NEWLIB_NANO_FORMAT && (CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32H4)) || ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT
+#if (CONFIG_NEWLIB_NANO_FORMAT && (CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2)) || ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT
     TEST_ASSERT(fn_in_rom(sscanf));
 #else
     TEST_ASSERT_FALSE(fn_in_rom(sscanf));
@@ -148,7 +148,7 @@ TEST_CASE("check if ROM or Flash is used for functions", "[newlib]")
 #if defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_SPIRAM)
     TEST_ASSERT(fn_in_rom(atoi));
     TEST_ASSERT(fn_in_rom(strtol));
-#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32H4)\
+#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3) \
     || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C6)
     /* S3 and C3 always use these from ROM */
     TEST_ASSERT(fn_in_rom(atoi));

+ 0 - 2
components/newlib/test/test_time.c

@@ -35,8 +35,6 @@
 #include "esp32s3/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C3
 #include "esp32c3/rtc.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rtc.h"
 #elif CONFIG_IDF_TARGET_ESP32C6

+ 0 - 12
components/openthread/port/esp_openthread_radio.c

@@ -298,9 +298,6 @@ otError otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
 
     aFrame->mPsdu[-1] = aFrame->mLength; // lenth locates one byte before the psdu (esp_openthread_radio_tx_psdu);
 
-// TODO: remove this macro check when esp32h4 unsupported.
-#if !CONFIG_IDF_TARGET_ESP32H4
-    // esp32h4 do not support tx security
     if (otMacFrameIsSecurityEnabled(aFrame) && !aFrame->mInfo.mTxInfo.mIsSecurityProcessed) {
         otMacFrameSetFrameCounter(aFrame, s_mac_frame_counter++);
         if (otMacFrameIsKeyIdMode1(aFrame)) {
@@ -314,12 +311,10 @@ otError otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
         esp_ieee802154_set_transmit_security(&aFrame->mPsdu[-1], s_security_key, s_security_addr);
     }
 
-    // esp32h4 do not support transmit at
     if (aFrame->mInfo.mTxInfo.mTxDelay != 0) {
         esp_ieee802154_transmit_at(&aFrame->mPsdu[-1], aFrame->mInfo.mTxInfo.mCsmaCaEnabled,
                                    (aFrame->mInfo.mTxInfo.mTxDelayBaseTime + aFrame->mInfo.mTxInfo.mTxDelay));
     } else
-#endif
     {
         esp_ieee802154_transmit(&aFrame->mPsdu[-1], aFrame->mInfo.mTxInfo.mCsmaCaEnabled);
     }
@@ -342,22 +337,15 @@ int8_t otPlatRadioGetRssi(otInstance *aInstance)
 otRadioCaps otPlatRadioGetCaps(otInstance *aInstance)
 {
     return (otRadioCaps)(OT_RADIO_CAPS_ENERGY_SCAN |
-// TODO: remove this macro check when esp32h4 unsupported.
-#if !CONFIG_IDF_TARGET_ESP32H4
                         OT_RADIO_CAPS_TRANSMIT_SEC | OT_RADIO_CAPS_RECEIVE_TIMING | OT_RADIO_CAPS_TRANSMIT_TIMING |
-#endif
                         OT_RADIO_CAPS_ACK_TIMEOUT | OT_RADIO_CAPS_SLEEP_TO_TX);
 }
 
-// TODO: remove this macro check when esp32h4 unsupported.
-#if !CONFIG_IDF_TARGET_ESP32H4
-// esp32h4 do not support receive at
 otError otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
 {
     esp_ieee802154_receive_at((aStart + aDuration));
     return OT_ERROR_NONE;
 }
-#endif
 
 bool otPlatRadioGetPromiscuous(otInstance *aInstance)
 {

+ 5 - 5
components/spi_flash/cache_utils.c

@@ -417,7 +417,7 @@ void IRAM_ATTR spi_flash_restore_cache(uint32_t cpuid, uint32_t saved_state)
 #elif CONFIG_IDF_TARGET_ESP32S3
     Cache_Resume_DCache(saved_state & 0xffff);
     Cache_Resume_ICache(saved_state >> 16);
-#elif CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2
+#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2
     Cache_Resume_ICache(saved_state >> 16);
 #elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     Cache_Resume_ICache(saved_state);
@@ -434,7 +434,7 @@ IRAM_ATTR bool spi_flash_cache_enabled(void)
 #endif
 #elif CONFIG_IDF_TARGET_ESP32S2
     bool result = (REG_GET_BIT(EXTMEM_PRO_ICACHE_CTRL_REG, EXTMEM_PRO_ICACHE_ENABLE) != 0);
-#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2
+#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2
     bool result = (REG_GET_BIT(EXTMEM_ICACHE_CTRL_REG, EXTMEM_ICACHE_ENABLE) != 0);
 #elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     bool result = s_cache_enabled;
@@ -551,7 +551,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable, bool dcache_wrap_enable
     int i;
     bool flash_spiram_wrap_together, flash_support_wrap = true, spiram_support_wrap = true;
     uint32_t drom0_in_icache = 1;//always 1 in esp32s2
-#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
+#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
     drom0_in_icache = 0;
 #endif
 
@@ -938,7 +938,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable, bool dcache_wrap_enable
 }
 #endif
 
-#if CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2
+#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2
 
 static IRAM_ATTR void esp_enable_cache_flash_wrap(bool icache)
 {
@@ -979,7 +979,7 @@ esp_err_t esp_enable_cache_wrap(bool icache_wrap_enable)
     }
     return ESP_OK;
 }
-#endif // CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2
+#endif // CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2
 
 void IRAM_ATTR spi_flash_enable_cache(uint32_t cpuid)
 {

+ 3 - 3
components/spi_flash/spi_flash_os_func_noos.c

@@ -40,7 +40,7 @@ typedef struct {
 } spi_noos_arg_t;
 
 static DRAM_ATTR spi_noos_arg_t spi_arg = { 0 };
-#elif CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
+#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
 typedef struct {
     uint32_t icache_autoload;
 } spi_noos_arg_t;
@@ -57,7 +57,7 @@ static IRAM_ATTR esp_err_t start(void *arg)
     spi_noos_arg_t *spi_arg = arg;
     spi_arg->icache_autoload = Cache_Suspend_ICache();
     spi_arg->dcache_autoload = Cache_Suspend_DCache();
-#elif CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
+#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     spi_noos_arg_t *spi_arg = arg;
     spi_arg->icache_autoload = Cache_Suspend_ICache();
 #endif
@@ -74,7 +74,7 @@ static IRAM_ATTR esp_err_t end(void *arg)
     Cache_Invalidate_ICache_All();
     Cache_Resume_ICache(spi_arg->icache_autoload);
     Cache_Resume_DCache(spi_arg->dcache_autoload);
-#elif CONFIG_IDF_TARGET_ESP32C3  || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
+#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
     spi_noos_arg_t *spi_arg = arg;
     Cache_Invalidate_ICache_All();
     Cache_Resume_ICache(spi_arg->icache_autoload);

+ 0 - 2
components/wpa_supplicant/src/utils/includes.h

@@ -69,8 +69,6 @@
 #include "esp32c3/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32C2
 #include "esp32c2/rom/ets_sys.h"
-#elif CONFIG_IDF_TARGET_ESP32H4
-#include "esp32h4/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32C6
 #include "esp32c6/rom/ets_sys.h"
 #elif CONFIG_IDF_TARGET_ESP32H2

+ 4 - 4
docs/en/api-guides/openthread.rst

@@ -11,12 +11,12 @@ OpenThread can run under the following modes on Espressif chips:
 Standalone node
 +++++++++++++++
 
-The full OpenThread stack and the application layer runs on the same chip. This mode is available on chips with 15.4 radio such as ESP32-H4.
+The full OpenThread stack and the application layer runs on the same chip. This mode is available on chips with 15.4 radio such as ESP32-H2.
 
 Radio Co-Processor (RCP)
 ++++++++++++++++++++++++
 
-The chip will be connected to another host running the OpenThread IP stack. It will send and received 15.4 packets on behalf of the host. This mode is available on chips with 15.4 radio such as ESP32-H4. The underlying transport between the chip and the host can be SPI or UART. For sake of latency, we recommend to use SPI as the underlying transport.
+The chip will be connected to another host running the OpenThread IP stack. It will send and received 15.4 packets on behalf of the host. This mode is available on chips with 15.4 radio such as ESP32-H2. The underlying transport between the chip and the host can be SPI or UART. For sake of latency, we recommend to use SPI as the underlying transport.
 
 OpenThread host
 +++++++++++++++
@@ -38,8 +38,8 @@ For chips without 15.4 radio, it can be connected to an RCP and run OpenThread u
 
         # node labels
         HOST_NODE [label="OpenThread \nhost\n(ESP32)", fontsize=14];
-        RCP [label="Radio \nCo-Processor\n(ESP32-H4)", fontsize=14];
-        STANDALONE [label="Standalone \nnode\n (ESP32-H4)", fontsize=14];
+        RCP [label="Radio \nCo-Processor\n(ESP32-H2)", fontsize=14];
+        STANDALONE [label="Standalone \nnode\n (ESP32-H2)", fontsize=14];
 
         # node connections + labels
         RCP -> STANDALONE [label="15.4 radio", dir=both, style=dashed];

+ 1 - 20
docs/en/api-reference/peripherals/ledc.rst

@@ -189,25 +189,6 @@ The source clock can also limit the PWM frequency. The higher the source clock f
          - 32 MHz
          - Dynamic Frequency Scaling compatible
 
-.. only:: esp32h2
-
-    .. list-table:: Characteristics of {IDF_TARGET_NAME} LEDC source clocks
-       :widths: 15 15 30
-       :header-rows: 1
-
-       * - Clock name
-         - Clock freq
-         - Clock capabilities
-       * - APB_CLK
-         - 96 MHz
-         - /
-       * - RC_FAST_CLK
-         - ~8 MHz
-         - Dynamic Frequency Scaling compatible, Light sleep compatible
-       * - XTAL_CLK
-         - 32 MHz
-         - Dynamic Frequency Scaling compatible
-
 .. note::
 
     .. only:: SOC_CLK_RC_FAST_SUPPORT_CALIBRATION
@@ -220,7 +201,7 @@ The source clock can also limit the PWM frequency. The higher the source clock f
 
     .. only:: not SOC_LEDC_HAS_TIMER_SPECIFIC_MUX
 
-        2. For {IDF_TARGET_NAME}, all timers share one clock source. In other words, it is impossible to use different clock sources for different timers.
+        1. For {IDF_TARGET_NAME}, all timers share one clock source. In other words, it is impossible to use different clock sources for different timers.
 
 When a timer is no longer needed by any channel, it can be deconfigured by calling the same function :cpp:func:`ledc_timer_config`. The configuration structure :cpp:type:`ledc_timer_config_t` passes in should be:
 

+ 1 - 20
docs/zh_CN/api-reference/peripherals/ledc.rst

@@ -189,25 +189,6 @@ LED PWM 控制器可在无需 CPU 干预的情况下自动改变占空比,实
          - 32 MHz
          - 支持动态调频(DFS)功能
 
-.. only:: esp32h2
-
-    .. list-table:: {IDF_TARGET_NAME} LEDC 时钟源特性
-       :widths: 10 10 30
-       :header-rows: 1
-
-       * - 时钟名称
-         - 时钟频率
-         - 时钟功能
-       * - APB_CLK
-         - 96 MHz
-         - /
-       * - RC_FAST_CLK
-         - ~8 MHz
-         - 支持动态调频(DFS)功能,支持Light-sleep模式
-       * - XTAL_CLK
-         - 32 MHz
-         - 支持动态调频(DFS)功能
-
 .. note::
 
     .. only:: SOC_CLK_RC_FAST_SUPPORT_CALIBRATION
@@ -220,7 +201,7 @@ LED PWM 控制器可在无需 CPU 干预的情况下自动改变占空比,实
 
     .. only:: not SOC_LEDC_HAS_TIMER_SPECIFIC_MUX
 
-        2. {IDF_TARGET_NAME} 的所有定时器共用一个时钟源。因此 {IDF_TARGET_NAME} 不支持给不同的定时器配置不同的时钟源。
+        1. {IDF_TARGET_NAME} 的所有定时器共用一个时钟源。因此 {IDF_TARGET_NAME} 不支持给不同的定时器配置不同的时钟源。
 
 当一个定时器不再被任何通道所需要时,可以通过调用相同的函数 :cpp:func:`ledc_timer_config` 来重置这个定时器。此时,函数入参的配置结构体需要指定:
 

+ 33 - 33
examples/bluetooth/.build-test-rules.yml

@@ -2,31 +2,31 @@
 
 examples/bluetooth/bluedroid/ble:
   enable:
-    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/bluedroid/ble_50:
   enable:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/bluedroid/ble_50/multi-adv:
   enable:
-    - if: IDF_TARGET in ["esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -44,11 +44,11 @@ examples/bluetooth/bluedroid/coex/a2dp_gatts_coex:
 
 examples/bluetooth/bluedroid/coex/gattc_gatts_coex:
   enable:
-    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6", "esp32h2"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -58,7 +58,7 @@ examples/bluetooth/blufi:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -68,7 +68,7 @@ examples/bluetooth/esp_ble_mesh:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -78,7 +78,7 @@ examples/bluetooth/esp_ble_mesh/aligenie_demo:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -88,7 +88,7 @@ examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -138,23 +138,23 @@ examples/bluetooth/nimble:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/ble_l2cap_coc:
   enable:
-    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2", "esp32h4" ]
+    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2" , "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2" , "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/ble_multi_adv:
   enable:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32h4", "esp32s3"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3"]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
@@ -164,61 +164,61 @@ examples/bluetooth/nimble/ble_multi_adv:
 
 examples/bluetooth/nimble/ble_periodic_adv:
   enable:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2", "esp32h4" ]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/ble_periodic_sync:
   enable:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2", "esp32h4" ]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/ble_phy:
   enable:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32h4", "esp32s3" ]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/ble_spp:
   enable:
-    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32h4", "esp32s3" ]
+    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/blecent:
   enable:
-    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2", "esp32h4" ]
+    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/blehr:
   enable:
-    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2", "esp32h4" ]
+    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -228,17 +228,17 @@ examples/bluetooth/nimble/blemesh:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
 examples/bluetooth/nimble/bleprph:
   enable:
-    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2", "esp32h4" ]
+    - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6" , "esp32s3", "esp32h2" ]
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h2", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -248,7 +248,7 @@ examples/bluetooth/nimble/bleprph_wifi_coex:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet
 
@@ -258,6 +258,6 @@ examples/bluetooth/nimble/hci:
       temporary: true
       reason: the other targets are not tested yet
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32h4", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s3", "esp32c6"]
       temporary: true
       reason: The runner doesn't support yet

+ 3 - 3
examples/bluetooth/bluedroid/ble/ble_ancs/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF BLE ANCS Example
 
@@ -28,7 +28,7 @@ All these characteristics require authorization for access.
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-H4/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-H2/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/ble_compatibility_test/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF BLE Compatibility Test Example
 
@@ -23,7 +23,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H4/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/ble_eddystone/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Eddystone Example
 
@@ -20,7 +20,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-H4/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-H2/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/ble_hid_device_demo/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF BLE HID Example
 
@@ -23,7 +23,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-H4/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-H2/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 2 - 2
examples/bluetooth/bluedroid/ble/ble_ibeacon/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF iBeacon demo
 

+ 2 - 2
examples/bluetooth/bluedroid/ble/ble_spp_client/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF SPP GATT CLIENT demo
 

+ 3 - 3
examples/bluetooth/bluedroid/ble/ble_spp_server/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 ## ESP-IDF GATT SERVER SPP Example
 
@@ -15,7 +15,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-S3/ESP32-C2/ESP32-H4 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-S3/ESP32-C2/ESP32-H2 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF BLE throughput GATT CLIENT Test
 
@@ -27,7 +27,7 @@ please set: `idf.py menuconfig --> Component config --> Example 'GATT CLIENT THR
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H4/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF BLE throughput GATT SERVER Test
 
@@ -26,7 +26,7 @@ please set: `idf.py menuconfig --> Component config --> Example 'GATT CLIENT THR
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H4/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/gatt_client/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Gatt Client Example
 
@@ -21,7 +21,7 @@ Please, check this [tutorial](tutorial/Gatt_Client_Example_Walkthrough.md) for m
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-H4/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-H2/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/gatt_security_client/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Gatt Security Client Example
 
@@ -24,7 +24,7 @@ Please, check this [tutorial](tutorial/Gatt_Security_Client_Example_Walkthrough.
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H4/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/gatt_security_server/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Gatt Security Server Example
 
@@ -23,7 +23,7 @@ There are some important points for this demo:
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H4/ESP32-S3 Soc (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H2/ESP32-S3 Soc (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/gatt_server/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Gatt Server Example
 
@@ -23,7 +23,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H4/ESP-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H2/ESP-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/gatt_server_service_table/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Gatt Server Service Table Example
 
@@ -17,7 +17,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-H4/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-H2/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble/gattc_multi_connect/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Gatt Client Multi Connection Example
 
@@ -21,7 +21,7 @@ The code can be modified to connect to more devices (up to 4 devices by default)
 
 ### Hardware Required
 
-* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H4/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
+* A development board with ESP32/ESP32-C3/ESP32-C2/ESP32-H2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble_50/ble50_security_client/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Gatt Security Client Example
 
@@ -26,7 +26,7 @@ Please, check this [tutorial](tutorial/ble50_security_client_Example_Walkthrough
 
 ### Hardware Required
 
-* A development board with ESP32-C3 SoC, ESP32-S3 SoC, ESP32-C2/ESP32-H4 SoC and BT5.0 supported chip (e.g., ESP32-C3-DevKitC-1 etc.)
+* A development board with ESP32-C3 SoC, ESP32-S3 SoC, ESP32-C2/ESP32-H2 SoC and BT5.0 supported chip (e.g., ESP32-C3-DevKitC-1 etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble_50/ble50_security_server/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF BLE50 Security Server Example
 
@@ -24,7 +24,7 @@ There are some important points for this demo:
 
 ### Hardware Required
 
-* A development board with ESP32-C3 SoC, ESP32-S3, ESP32-C2/ESP32-H4 SoC and BLE5.0 supoorted chips. (e.g., ESP32-C3-DevKitC-1, etc.)
+* A development board with ESP32-C3 SoC, ESP32-S3, ESP32-C2/ESP32-H2 SoC and BLE5.0 supoorted chips. (e.g., ESP32-C3-DevKitC-1, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble_50/multi-adv/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- |
 
 #ESP-IDF Multi Adv Example
 
@@ -17,7 +17,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32-C3 SoC,ESP32-S3/ESP32-H4/ESP32-C2 SoC and BLE5.0 supported chips (e.g., ESP32-C3-DevKitC, etc.)
+* A development board with ESP32-C3 SoC,ESP32-S3/ESP32-H2/ESP32-C2 SoC and BLE5.0 supported chips (e.g., ESP32-C3-DevKitC, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble_50/peroidic_adv/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP_IDF Periodic Adv Example
 
@@ -21,7 +21,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32-C3 SoC, ESP32-S3, ESP32-C2, ESP32-H4 and  BLE5.0 supported chips (e.g., ESP32-C3-DevKitC-1, etc.)
+* A development board with ESP32-C3 SoC, ESP32-S3, ESP32-C2, ESP32-H2 and  BLE5.0 supported chips (e.g., ESP32-C3-DevKitC-1, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 3 - 3
examples/bluetooth/bluedroid/ble_50/peroidic_sync/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-IDF Periodic Sync Example
 
@@ -19,7 +19,7 @@ idf.py set-target <chip_name>
 
 ### Hardware Required
 
-* A development board with ESP32-C3 SoC, ESP32-S3, ESP32-C2, ESP32-H4 and  BLE5.0 supported chips (e.g., ESP32-C3-DevKitC-1, etc.)
+* A development board with ESP32-C3 SoC, ESP32-S3, ESP32-C2, ESP32-H2 and  BLE5.0 supported chips (e.g., ESP32-C3-DevKitC-1, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 2 - 2
examples/bluetooth/bluedroid/coex/gattc_gatts_coex/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 ESP-IDF Gattc and Gatts Coexistence example
 ==============================================

+ 0 - 2
examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_main.c

@@ -63,8 +63,6 @@ void app_main(void)
     repl_config.prompt = "esp32c3>";
 #elif CONFIG_IDF_TARGET_ESP32S3
     repl_config.prompt = "esp32s3>";
-#elif CONFIG_IDF_TARGET_ESP32H4
-    repl_config.prompt = "esp32h4>";
 #else
     repl_config.prompt = "esp32>";
 #endif

+ 2 - 2
examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Central L2CAP COC Example
 

+ 2 - 2
examples/bluetooth/nimble/ble_l2cap_coc/coc_bleprph/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Central L2CAP COC Example
 

+ 3 - 3
examples/bluetooth/nimble/ble_multi_adv/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Multi Adv Example
 
@@ -34,7 +34,7 @@ To configure number of advertising instances:
 
 ### Hardware Required
 
-* A development board with ESP32-C3 SoC,ESP32-S3/ESP32-H4/ESP32-C2 SoC and BLE5.0 supported chips (e.g., ESP32-C3-DevKitC, etc.)
+* A development board with ESP32-C3 SoC,ESP32-S3/ESP32-H2/ESP32-C2 SoC and BLE5.0 supported chips (e.g., ESP32-C3-DevKitC, etc.)
 * A USB cable for Power supply and programming
 
 See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it.

+ 5 - 5
examples/bluetooth/nimble/ble_periodic_adv/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Periodic Advertiser Example
 
@@ -30,7 +30,7 @@ idf.py set-target <chip_name>
 
 ### Configure the project
 
-Open the project configuration menu: 
+Open the project configuration menu:
 
 ```bash
 idf.py menuconfig
@@ -60,9 +60,9 @@ I (353) system_api: read default base MAC address from EFUSE
 I (353) BTDM_INIT: Bluetooth MAC: 84:f7:03:08:14:8e
 
 I (363) NimBLE_BLE_PERIODIC_ADV: BLE Host Task Started
-I (373) NimBLE: Device Address: 
+I (373) NimBLE: Device Address:
 I (373) NimBLE: d0:42:3a:95:84:05
-I (373) NimBLE: 
+I (373) NimBLE:
 
 I (383) NimBLE: instance 1 started (periodic)
 ```

+ 8 - 8
examples/bluetooth/nimble/ble_periodic_sync/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Periodic Sync Example
 
@@ -37,7 +37,7 @@ See [Development Boards](https://www.espressif.com/en/products/devkits) for more
 
 ### Configure the Project
 
-Open the project configuration menu: 
+Open the project configuration menu:
 
 ```bash
 idf.py menuconfig
@@ -67,15 +67,15 @@ I (351) system_api: read default base MAC address from EFUSE
 I (351) BTDM_INIT: Bluetooth MAC: 84:f7:03:08:14:8e
 
 I (361) NimBLE_BLE_PERIODIC_SYNC: BLE Host Task Started
-I (941) NimBLE: Periodic sync event : 
+I (941) NimBLE: Periodic sync event :
 
-I (941) NimBLE: Periodic adv report event: 
+I (941) NimBLE: Periodic adv report event:
 
-I (4241) NimBLE: Periodic adv report event: 
+I (4241) NimBLE: Periodic adv report event:
 
-I (7541) NimBLE: Periodic adv report event: 
+I (7541) NimBLE: Periodic adv report event:
 
-I (10841) NimBLE: Periodic adv report event: 
+I (10841) NimBLE: Periodic adv report event:
 ```
 
 

+ 2 - 2
examples/bluetooth/nimble/ble_phy/phy_cent/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Central PHY Example
 

+ 2 - 2
examples/bluetooth/nimble/ble_phy/phy_prph/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Peripheral PHY Example
 

+ 3 - 3
examples/bluetooth/nimble/ble_spp/spp_client/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE SPP central example
 
@@ -108,7 +108,7 @@ I (487) NimBLE_SPP_BLE_CENT: BLE Host Task Started
 GAP procedure initiated: stop advertising.
 GAP procedure initiated: discovery; own_addr_type=0 filter_policy=0 passive=1 limited=0 filter_duplicates=1 duration=forever
 GAP procedure initiated: connect; peer_addr_type=0 peer_addr=7c:df:a1:40:3e:fa scan_itvl=16 scan_window=16 itvl_min=24 itvl_max=40 latency=0 supervision_timeout=256 min_ce_len=0 max_ce_len=0 own_addr_type=0
-Connection established 
+Connection established
 GATT procedure initiated: discover all services
 GATT procedure initiated: discover all characteristics; start_handle=1 end_handle=5
 GATT procedure initiated: discover all characteristics; start_handle=6 end_handle=9

+ 3 - 3
examples/bluetooth/nimble/ble_spp/spp_server/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE SPP peripheral example
 
@@ -106,7 +106,7 @@ GAP procedure initiated: advertise; disc_mode=2 adv_channel_map=0 own_addr_type=
 connection established; status=0 handle=1 our_ota_addr_type=0 our_ota_addr=7c:df:a1:40:3e:fa our_id_addr_type=0 our_id_addr=7c:df:a1:40:3e:fa peer_ota_addr_type=0 peer_ota_addr=7c:df:a1:c2:19:92 peer_id_addr_type=0 peer_id_addr=7c:df:a1:c2:19:92 conn_itvl=40 conn_latency=0 supervision_timeout=256 encrypted=0 authenticated=0 bonded=0
 
 I (6924) NimBLE_SPP_BLE_PRPH: Data received in write event,conn_handle = 1,attr_handle = 11
-1b5b41I 
+1b5b41I
 (10824) NimBLE_SPP_BLE_PRPH: Notification sent successfully
 
 ```

+ 4 - 4
examples/bluetooth/nimble/blecent/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Central Example
 
@@ -31,7 +31,7 @@ This example aims at understanding BLE service discovery, connection, encryption
 
 To test this demo, use any BLE GATT server app that advertises support for the Alert Notification service (0x1811) and includes it in the GATT database.
 
-A Python based utility `blecent_test.py` is also provided (which will run as a BLE GATT server) and can be used to test this example.   
+A Python based utility `blecent_test.py` is also provided (which will run as a BLE GATT server) and can be used to test this example.
 
 Note :
 
@@ -55,7 +55,7 @@ See [Development Boards](https://www.espressif.com/en/products/devkits) for more
 
 ### Configure the Project
 
-Open the project configuration menu: 
+Open the project configuration menu:
 
 ```bash
 idf.py menuconfig

+ 3 - 3
examples/bluetooth/nimble/blehr/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Heart Rate Measurement Example
 
@@ -13,7 +13,7 @@ This example aims at understanding notification subscriptions and sending notifi
 
 To test this demo, any BLE scanner app can be used.
 
-A Python based utility `blehr_test.py` is also provided (which will run as a BLE GATT Client) and can be used to test this example.   
+A Python based utility `blehr_test.py` is also provided (which will run as a BLE GATT Client) and can be used to test this example.
 
 Note :
 

+ 3 - 3
examples/bluetooth/nimble/bleprph/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
 
 # BLE Peripheral Example
 
@@ -34,7 +34,7 @@ idf.py set-target <chip_name>
 
 ### Configure the project
 
-Open the project configuration menu: 
+Open the project configuration menu:
 
 ```bash
 idf.py menuconfig

+ 1 - 8
examples/ethernet/basic/components/ethernet_init/Kconfig.projbuild

@@ -142,7 +142,6 @@ menu "Example Ethernet Configuration"
             default 14 if IDF_TARGET_ESP32
             default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
             default 6 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
-            default 4 if IDF_TARGET_ESP32H4
             help
                 Set the GPIO number used by SPI SCLK.
 
@@ -152,7 +151,6 @@ menu "Example Ethernet Configuration"
             default 13 if IDF_TARGET_ESP32
             default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
             default 7 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
-            default 5 if IDF_TARGET_ESP32H4
             help
                 Set the GPIO number used by SPI MOSI.
 
@@ -162,14 +160,13 @@ menu "Example Ethernet Configuration"
             default 12 if IDF_TARGET_ESP32
             default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
             default 2 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
-            default 0 if IDF_TARGET_ESP32H4
             help
                 Set the GPIO number used by SPI MISO.
 
         config EXAMPLE_ETH_SPI_CLOCK_MHZ
             int "SPI clock speed (MHz)"
             range 5 80
-            default 12 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32H4
+            default 12 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
             default 36 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
             help
                 Set the clock speed (MHz) of SPI interface.
@@ -179,7 +176,6 @@ menu "Example Ethernet Configuration"
             range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
             default 15 if IDF_TARGET_ESP32
             default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C2
-            default 1 if IDF_TARGET_ESP32H4
             help
                 Set the GPIO number used by SPI CS0, i.e. Chip Select associated with the first SPI Eth module).
 
@@ -191,7 +187,6 @@ menu "Example Ethernet Configuration"
             default 7 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
             default 8 if IDF_TARGET_ESP32C3
             default 3 if IDF_TARGET_ESP32C2
-            default 11 if IDF_TARGET_ESP32H4
             help
                 Set the GPIO number used by SPI CS1, i.e. Chip Select associated with the second SPI Eth module.
 
@@ -200,7 +195,6 @@ menu "Example Ethernet Configuration"
             range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
             default 4 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
             default 4 if IDF_TARGET_ESP32C2
-            default 9 if IDF_TARGET_ESP32H4
             help
                 Set the GPIO number used by the first SPI Ethernet module interrupt line.
 
@@ -210,7 +204,6 @@ menu "Example Ethernet Configuration"
             range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
             default 33 if IDF_TARGET_ESP32
             default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C2
-            default 10 if IDF_TARGET_ESP32H4
             help
                 Set the GPIO number used by the second SPI Ethernet module interrupt line.
 

+ 0 - 5
examples/ethernet/enc28j60/main/Kconfig.projbuild

@@ -15,7 +15,6 @@ menu "Example Configuration"
         default 14 if IDF_TARGET_ESP32
         default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
         default 6 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
-        default 4 if IDF_TARGET_ESP32H4
         help
             Set the GPIO number used by SPI SCLK.
 
@@ -25,7 +24,6 @@ menu "Example Configuration"
         default 13 if IDF_TARGET_ESP32
         default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
         default 7 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
-        default 5 if IDF_TARGET_ESP32H4
         help
             Set the GPIO number used by SPI MOSI.
 
@@ -35,7 +33,6 @@ menu "Example Configuration"
         default 12 if IDF_TARGET_ESP32
         default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
         default 2 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
-        default 0 if IDF_TARGET_ESP32H4
         help
             Set the GPIO number used by SPI MISO.
 
@@ -44,7 +41,6 @@ menu "Example Configuration"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
         default 15 if IDF_TARGET_ESP32
         default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C2
-        default 1 if IDF_TARGET_ESP32H4
         help
             Set the GPIO number used by SPI CS.
 
@@ -60,7 +56,6 @@ menu "Example Configuration"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
         default 4 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
         default 4 if IDF_TARGET_ESP32C2
-        default 9 if IDF_TARGET_ESP32H4
         help
             Set the GPIO number used by ENC28J60 interrupt.
 

+ 3 - 3
examples/openthread/README.md

@@ -6,8 +6,8 @@ See the [README.md](../README.md) file in the upper level [examples](../) direct
 
 In this folder, it contains following OpenThread examples:
 
-* [ot_cli](ot_cli) is an OpenThread Command Line example, in addition to the features listed in [OpenThread CLI](https://github.com/openthread/openthread/blob/master/src/cli/README.md), it supports some additional features such as TCP, UDP and Iperf over lwIP. It runs on an 802.15.4 SoC like ESP32-H4.
+* [ot_cli](ot_cli) is an OpenThread Command Line example, in addition to the features listed in [OpenThread CLI](https://github.com/openthread/openthread/blob/master/src/cli/README.md), it supports some additional features such as TCP, UDP and Iperf over lwIP. It runs on an 802.15.4 SoC like ESP32-H2.
 
-* [ot_rcp](ot_rcp) is an [OpenThread RCP](https://openthread.io/platforms/co-processor) example. It runs on an 802.15.4 SoC like ESP32-H4, to extend 802.15.4 radio.
+* [ot_rcp](ot_rcp) is an [OpenThread RCP](https://openthread.io/platforms/co-processor) example. It runs on an 802.15.4 SoC like ESP32-H2, to extend 802.15.4 radio.
 
-* [ot_br](ot_br) is an [OpenThread Border Router](https://openthread.io/guides/border-router) example. It runs on a Wi-Fi SoC such as ESP32, ESP32-C3 and ESP32-S3. It needs an 802.15.4 SoC like ESP32-H4 running [ot_rcp](ot_rcp) example to provide 802.15.4 radio.
+* [ot_br](ot_br) is an [OpenThread Border Router](https://openthread.io/guides/border-router) example. It runs on a Wi-Fi SoC such as ESP32, ESP32-C3 and ESP32-S3. It needs an 802.15.4 SoC like ESP32-H2 running [ot_rcp](ot_rcp) example to provide 802.15.4 radio.

+ 1 - 1
examples/openthread/ot_cli/sdkconfig.defaults

@@ -19,7 +19,7 @@ CONFIG_PARTITION_TABLE_MD5=y
 #
 # mbedTLS
 #
-# ESP32H4-TODO: enable HW acceleration
+# ESP32H2-TODO: enable HW acceleration
 CONFIG_MBEDTLS_HARDWARE_AES=n
 CONFIG_MBEDTLS_HARDWARE_MPI=n
 CONFIG_MBEDTLS_HARDWARE_SHA=n

+ 3 - 3
examples/peripherals/i2s/i2s_codec/i2s_es8311/main/example_config.h

@@ -26,12 +26,12 @@
 #if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
 #define I2C_SCL_IO      (GPIO_NUM_16)
 #define I2C_SDA_IO      (GPIO_NUM_17)
+#elif CONFIG_IDF_TARGET_ESP32C3
+#define I2C_SCL_IO      (GPIO_NUM_6)
+#define I2C_SDA_IO      (GPIO_NUM_7)
 #elif CONFIG_IDF_TARGET_ESP32H2
 #define I2C_SCL_IO      (GPIO_NUM_8)
 #define I2C_SDA_IO      (GPIO_NUM_9)
-#else
-#define I2C_SCL_IO      (GPIO_NUM_6)
-#define I2C_SDA_IO      (GPIO_NUM_7)
 #endif
 
 /* I2S port and GPIOs */

+ 1 - 1
examples/storage/ext_flash_fatfs/main/ext_flash_fatfs_example_main.c

@@ -22,7 +22,7 @@
 #include "esp_system.h"
 #include "soc/spi_pins.h"
 
-// h4 and c2 will not support external flash
+// h2 and c2 will not support external flash
 #define EXAMPLE_FLASH_FREQ_MHZ      40
 
 static const char *TAG = "example";

+ 1 - 1
examples/storage/semihost_vfs/README.md

@@ -73,7 +73,7 @@ openocd -c "set ESP_SEMIHOST_BASEDIR %IDF_PATH%/examples/storage/semihost_vfs/da
 
 The above command will set `ESP_SEMIHOST_BASEDIR` variable to `examples/storage/semihost_vfs/data` subdirectory of ESP-IDF. With that, it is not necessary to run OpenOCD from that specific directory.
 
-> Note: This feature is not available for RISC-V based SoCs (ESP32-C3, ESP32-H4). To set the semihosting base directory, change into the required directory before running `openocd` command.
+> Note: This feature is not available for RISC-V based SoCs (ESP32-C3, ESP32-H2). To set the semihosting base directory, change into the required directory before running `openocd` command.
 
 ## Example output
 

+ 2 - 4
examples/system/deep_sleep/main/Kconfig.projbuild

@@ -60,11 +60,9 @@ menu "Example Configuration"
 
         config EXAMPLE_GPIO_WAKEUP_PIN
             int "Enable wakeup from GPIO"
-            default 0 if !IDF_TARGET_ESP32H4_BETA_VERSION_2
-            default 7 if IDF_TARGET_ESP32H4_BETA_VERSION_2
+            default 0
             range 0 7 if IDF_TARGET_ESP32C6
-            range 0 5 if !IDF_TARGET_ESP32H4_BETA_VERSION_2
-            range 7 12 if IDF_TARGET_ESP32H4_BETA_VERSION_2
+            range 0 5
 
         config EXAMPLE_GPIO_WAKEUP_HIGH_LEVEL
             bool "Enable GPIO high-level wakeup"

+ 0 - 1
examples/system/esp_timer/sdkconfig.ci.rtc

@@ -7,4 +7,3 @@ CONFIG_ESP32S2_TIME_SYSCALL_USE_RTC=y
 CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC=y
 CONFIG_ESP32C2_TIME_SYSCALL_USE_RTC=y
 CONFIG_ESP32C3_TIME_SYSCALL_USE_RTC=y
-CONFIG_ESP32H4_TIME_SYSCALL_USE_RTC=y

+ 1 - 1
examples/system/gcov/main/Kconfig.projbuild

@@ -5,7 +5,7 @@ menu "Example Configuration"
     config BLINK_GPIO
         int "Blink GPIO number"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
-        default 8 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32H4 || IDF_TARGET_ESP32C2
+        default 8 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
         default 18 if IDF_TARGET_ESP32S2
         default 48 if IDF_TARGET_ESP32S3
         default 5

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.