Ver Fonte

esp32h2: add build test

Cao Sen Miao há 3 anos atrás
pai
commit
94120b82c2
100 ficheiros alterados com 394 adições e 210 exclusões
  1. 49 0
      .gitlab/ci/build.yml
  2. 3 1
      .gitlab/ci/default-build-test-rules.yml
  3. 114 0
      .gitlab/ci/rules.yml
  4. 2 2
      components/app_update/.build-test-rules.yml
  5. 2 2
      components/bootloader_support/.build-test-rules.yml
  6. 1 1
      components/bootloader_support/src/flash_encryption/flash_encrypt.c
  7. 2 2
      components/bootloader_support/test_apps/bootloader_support/README.md
  8. 2 2
      components/bootloader_support/test_apps/rtc_custom_section/README.md
  9. 2 2
      components/console/test_apps/console/README.md
  10. 8 0
      components/driver/.build-test-rules.yml
  11. 2 2
      components/driver/test/test_i2c.c
  12. 11 1
      components/driver/test_apps/components/esp_serial_slave_link/CMakeLists.txt
  13. 1 1
      components/driver/test_apps/components/test_driver_utils/include/test_spi_utils.h
  14. 2 2
      components/driver/test_apps/gpio/README.md
  15. 2 2
      components/driver/test_apps/gpio/main/test_gpio.c
  16. 2 2
      components/driver/test_apps/gpio/main/test_gpio.h
  17. 1 1
      components/driver/test_apps/gpio/main/test_rtcio.c
  18. 2 2
      components/driver/test_apps/gpio_extensions/README.md
  19. 4 1
      components/driver/test_apps/gpio_extensions/pytest_gpio_extensions.py
  20. 2 2
      components/driver/test_apps/gptimer/README.md
  21. 2 2
      components/driver/test_apps/legacy_timer_driver/README.md
  22. 2 2
      components/driver/test_apps/rs485/README.md
  23. 1 1
      components/driver/test_apps/spi/master/main/test_spi_bus_lock.c
  24. 2 2
      components/driver/test_apps/spi/param/README.md
  25. 2 2
      components/driver/test_apps/spi/slave_hd/README.md
  26. 2 2
      components/driver/test_apps/uart/README.md
  27. 2 2
      components/efuse/test_apps/README.md
  28. 2 1
      components/efuse/test_apps/pytest_efuse.py
  29. 2 2
      components/esp-tls/test_apps/README.md
  30. 2 2
      components/esp_app_format/test_apps/README.md
  31. 2 2
      components/esp_common/test_apps/esp_common/README.md
  32. 2 2
      components/esp_http_client/test_apps/README.md
  33. 2 2
      components/esp_http_server/test_apps/README.md
  34. 5 1
      components/esp_hw_support/.build-test-rules.yml
  35. 2 2
      components/esp_hw_support/test_apps/dma/README.md
  36. 2 1
      components/esp_hw_support/test_apps/dma/pytest_dma.py
  37. 2 2
      components/esp_hw_support/test_apps/security_support/esp_hw_support_unity_tests/README.md
  38. 8 0
      components/esp_lcd/.build-test-rules.yml
  39. 2 2
      components/esp_netif/.build-test-rules.yml
  40. 2 2
      components/esp_netif/test/test_esp_netif.c
  41. 1 1
      components/esp_phy/test/test_phy_rtc.c
  42. 1 1
      components/esp_pm/.build-test-rules.yml
  43. 2 2
      components/esp_pm/Kconfig
  44. 2 2
      components/esp_rom/test_apps/README.md
  45. 2 1
      components/esp_rom/test_apps/pytest_esp_rom.py
  46. 2 2
      components/esp_system/test/test_sleep.c
  47. 5 5
      components/esp_system/test/test_task_wdt.c
  48. 1 1
      components/esp_timer/.build-test-rules.yml
  49. 2 0
      components/esp_wifi/.build-test-rules.yml
  50. 2 2
      components/espcoredump/test_apps/README.md
  51. 4 0
      components/fatfs/.build-test-rules.yml
  52. 2 2
      components/fatfs/test_apps/flash_ro/README.md
  53. 2 2
      components/fatfs/test_apps/flash_wl/README.md
  54. 2 2
      components/freertos/test_apps/freertos/README.md
  55. 1 1
      components/freertos/test_apps/freertos/pytest_freertos.py
  56. 6 1
      components/hal/esp32h2/include/hal/gpio_ll.h
  57. 1 1
      components/hal/test/test_mpu.c
  58. 2 2
      components/heap/test_apps/README.md
  59. 2 2
      components/lwip/test_afl_host/README.md
  60. 2 2
      components/lwip/test_apps/README.md
  61. 2 2
      components/mbedtls/test_apps/README.md
  62. 3 3
      components/mqtt/test/test_mqtt5.c
  63. 3 3
      components/newlib/test/test_newlib.c
  64. 2 2
      components/newlib/test_apps/README.md
  65. 2 2
      components/protocomm/test_apps/README.md
  66. 2 2
      components/pthread/test_apps/pthread_unity_tests/README.md
  67. 1 1
      components/sdmmc/test/test_sd.c
  68. 0 24
      components/soc/esp32h2/include/soc/Kconfig.soc_caps.in
  69. 6 6
      components/soc/esp32h2/include/soc/soc_caps.h
  70. 5 5
      components/spi_flash/.build-test-rules.yml
  71. 2 2
      components/spi_flash/test/test_cache_disabled.c
  72. 2 3
      components/spi_flash/test/test_esp_flash.c
  73. 2 2
      components/spi_flash/test/test_read_write.c
  74. 2 2
      components/spi_flash/test_apps/esp_flash/main/test_esp_flash_def.h
  75. 2 2
      components/spi_flash/test_apps/flash_encryption/README.md
  76. 2 2
      components/spiffs/test_apps/README.md
  77. 2 2
      components/wpa_supplicant/test/test_crypto.c
  78. 2 0
      components/wpa_supplicant/test/test_eloop.c
  79. 1 1
      components/wpa_supplicant/test/test_offchannel.c
  80. 2 1
      conftest.py
  81. 1 1
      examples/build_system/.build-test-rules.yml
  82. 2 2
      examples/build_system/cmake/component_manager/README.md
  83. 2 2
      examples/build_system/cmake/idf_as_lib/README.md
  84. 2 2
      examples/build_system/cmake/import_lib/README.md
  85. 2 2
      examples/build_system/cmake/import_prebuilt/README.md
  86. 2 2
      examples/build_system/cmake/multi_config/README.md
  87. 2 2
      examples/build_system/cmake/plugins/README.md
  88. 2 2
      examples/build_system/wrappers/README.md
  89. 2 2
      examples/custom_bootloader/bootloader_hooks/README.md
  90. 2 2
      examples/custom_bootloader/bootloader_override/README.md
  91. 4 4
      examples/cxx/.build-test-rules.yml
  92. 2 2
      examples/cxx/exceptions/README.md
  93. 2 2
      examples/cxx/experimental/blink_cxx/README.md
  94. 2 2
      examples/cxx/experimental/esp_event_async_cxx/README.md
  95. 2 2
      examples/cxx/experimental/esp_event_cxx/README.md
  96. 2 2
      examples/cxx/experimental/esp_timer_cxx/README.md
  97. 2 0
      examples/cxx/experimental/experimental_cpp_component/gpio_cxx.cpp
  98. 1 1
      examples/cxx/experimental/experimental_cpp_component/test/test_cxx_exceptions.cpp
  99. 5 13
      examples/cxx/experimental/experimental_cpp_component/test/test_esp_timer.cpp
  100. 2 2
      examples/cxx/experimental/experimental_cpp_component/test/test_i2c.cpp

+ 49 - 0
.gitlab/ci/build.yml

@@ -250,6 +250,14 @@ build_pytest_examples_esp32c6:
     IDF_TARGET: esp32c6
     TEST_DIR: examples
 
+build_pytest_examples_esp32h2:
+  extends:
+    - .build_pytest_template
+    - .rules:build:example_test-esp32h2
+  variables:
+    IDF_TARGET: esp32h2
+    TEST_DIR: examples
+
 build_pytest_components_esp32:
   extends:
     - .build_pytest_template
@@ -304,6 +312,14 @@ build_pytest_components_esp32c6:
     IDF_TARGET: esp32c6
     TEST_DIR: components
 
+build_pytest_components_esp32h2:
+  extends:
+    - .build_pytest_template
+    - .rules:build:component_ut-esp32h2
+  variables:
+    IDF_TARGET: esp32h2
+    TEST_DIR: components
+
 build_non_test_components_apps:
   extends:
     - .build_cmake_template
@@ -391,6 +407,14 @@ build_pytest_test_apps_esp32c6:
     IDF_TARGET: esp32c6
     TEST_DIR: tools/test_apps
 
+build_pytest_test_apps_esp32h2:
+  extends:
+    - .build_pytest_test_apps_template
+    - .rules:build:custom_test-esp32h2
+  variables:
+    IDF_TARGET: esp32h2
+    TEST_DIR: tools/test_apps
+
 .build_template_app_template:
   extends:
     - .build_template
@@ -562,6 +586,13 @@ build_esp_idf_tests_cmake_esp32c6:
   variables:
     IDF_TARGET: esp32c6
 
+build_esp_idf_tests_cmake_esp32h2:
+  extends:
+    - .build_esp_idf_tests_cmake_template
+    - .rules:build:unit_test-esp32h2
+  variables:
+    IDF_TARGET: esp32h2
+
 build_examples_cmake_esp32:
   extends:
     - .build_cmake_template
@@ -624,6 +655,16 @@ build_examples_cmake_esp32c6:
     IDF_TARGET: esp32c6
     TEST_DIR: examples
 
+build_examples_cmake_esp32h2:
+  extends:
+    - .build_cmake_template
+    - .rules:build:example_test-esp32h2
+  parallel: 2
+  variables:
+    IDF_TARGET: esp32h2
+    TEST_DIR: examples
+
+
 build_test_apps_esp32:
   extends:
     - .build_cmake_template
@@ -676,6 +717,14 @@ build_test_apps_esp32c6:
     IDF_TARGET: esp32c6
     TEST_DIR: tools/test_apps
 
+build_test_apps_esp32h2:
+  extends:
+    - .build_cmake_template
+    - .rules:build:custom_test-esp32h2
+  variables:
+    IDF_TARGET: esp32h2
+    TEST_DIR: tools/test_apps
+
 build_clang_test_apps_esp32:
   extends:
     - .build_cmake_clang_template

+ 3 - 1
.gitlab/ci/default-build-test-rules.yml

@@ -8,8 +8,10 @@
 # This file should ONLY be used during bringup. Should be reset to empty after the bringup process
 extra_default_build_targets:
  - esp32c6
+ - esp32h2
 
-# bypass_check_test_targets:
+bypass_check_test_targets:
+ - esp32h2
 #  - esp32c6
 #
 # These lines would

+ 114 - 0
.gitlab/ci/rules.yml

@@ -702,6 +702,34 @@
     - <<: *if-dev-push
       changes: *patterns-target_test-wifi
 
+.rules:build:component_ut-esp32h2:
+  rules:
+    - <<: *if-revert-branch
+      when: never
+    - <<: *if-protected
+    - <<: *if-label-build
+    - <<: *if-label-component_ut
+    - <<: *if-label-component_ut_esp32h2
+    - <<: *if-label-target_test
+    - <<: *if-label-unit_test
+    - <<: *if-label-unit_test_esp32h2
+    - <<: *if-dev-push
+      changes: *patterns-build_components
+    - <<: *if-dev-push
+      changes: *patterns-build_system
+    - <<: *if-dev-push
+      changes: *patterns-component_ut
+    - <<: *if-dev-push
+      changes: *patterns-component_ut-usb
+    - <<: *if-dev-push
+      changes: *patterns-downloadable-tools
+    - <<: *if-dev-push
+      changes: *patterns-target_test-adc
+    - <<: *if-dev-push
+      changes: *patterns-target_test-i154
+    - <<: *if-dev-push
+      changes: *patterns-target_test-wifi
+
 .rules:build:component_ut-esp32h4:
   rules:
     - <<: *if-revert-branch
@@ -915,6 +943,30 @@
     - <<: *if-dev-push
       changes: *patterns-target_test-wifi
 
+.rules:build:custom_test-esp32h2:
+  rules:
+    - <<: *if-revert-branch
+      when: never
+    - <<: *if-protected
+    - <<: *if-label-build
+    - <<: *if-label-custom_test
+    - <<: *if-label-custom_test_esp32h2
+    - <<: *if-label-target_test
+    - <<: *if-dev-push
+      changes: *patterns-build_components
+    - <<: *if-dev-push
+      changes: *patterns-build_system
+    - <<: *if-dev-push
+      changes: *patterns-custom_test
+    - <<: *if-dev-push
+      changes: *patterns-downloadable-tools
+    - <<: *if-dev-push
+      changes: *patterns-target_test-adc
+    - <<: *if-dev-push
+      changes: *patterns-target_test-i154
+    - <<: *if-dev-push
+      changes: *patterns-target_test-wifi
+
 .rules:build:custom_test-esp32h4:
   rules:
     - <<: *if-revert-branch
@@ -1195,6 +1247,42 @@
     - <<: *if-dev-push
       changes: *patterns-target_test-wifi
 
+.rules:build:example_test-esp32h2:
+  rules:
+    - <<: *if-revert-branch
+      when: never
+    - <<: *if-protected
+    - <<: *if-label-build
+    - <<: *if-label-example_test
+    - <<: *if-label-example_test_esp32h2
+    - <<: *if-label-target_test
+    - <<: *if-dev-push
+      changes: *patterns-build-example_test
+    - <<: *if-dev-push
+      changes: *patterns-build_components
+    - <<: *if-dev-push
+      changes: *patterns-build_system
+    - <<: *if-dev-push
+      changes: *patterns-downloadable-tools
+    - <<: *if-dev-push
+      changes: *patterns-example_test
+    - <<: *if-dev-push
+      changes: *patterns-example_test-bt
+    - <<: *if-dev-push
+      changes: *patterns-example_test-ethernet
+    - <<: *if-dev-push
+      changes: *patterns-example_test-i154
+    - <<: *if-dev-push
+      changes: *patterns-example_test-usb
+    - <<: *if-dev-push
+      changes: *patterns-example_test-wifi
+    - <<: *if-dev-push
+      changes: *patterns-target_test-adc
+    - <<: *if-dev-push
+      changes: *patterns-target_test-i154
+    - <<: *if-dev-push
+      changes: *patterns-target_test-wifi
+
 .rules:build:example_test-esp32h4:
   rules:
     - <<: *if-revert-branch
@@ -1567,6 +1655,32 @@
     - <<: *if-dev-push
       changes: *patterns-unit_test-sdio
 
+.rules:build:unit_test-esp32h2:
+  rules:
+    - <<: *if-revert-branch
+      when: never
+    - <<: *if-protected
+    - <<: *if-label-build
+    - <<: *if-label-target_test
+    - <<: *if-label-unit_test
+    - <<: *if-label-unit_test_esp32h2
+    - <<: *if-dev-push
+      changes: *patterns-build_components
+    - <<: *if-dev-push
+      changes: *patterns-build_system
+    - <<: *if-dev-push
+      changes: *patterns-downloadable-tools
+    - <<: *if-dev-push
+      changes: *patterns-target_test-adc
+    - <<: *if-dev-push
+      changes: *patterns-target_test-i154
+    - <<: *if-dev-push
+      changes: *patterns-target_test-wifi
+    - <<: *if-dev-push
+      changes: *patterns-unit_test
+    - <<: *if-dev-push
+      changes: *patterns-unit_test-sdio
+
 .rules:build:unit_test-esp32s2:
   rules:
     - <<: *if-revert-branch

+ 2 - 2
components/app_update/.build-test-rules.yml

@@ -2,6 +2,6 @@
 
 components/app_update/test_apps:
   disable:
-    - if: IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2"
       temporary: true
-      reason: target esp32c6 is not supported yet
+      reason: target esp32c6, esp32h2 is not supported yet

+ 2 - 2
components/bootloader_support/.build-test-rules.yml

@@ -6,6 +6,6 @@ components/bootloader_support/test_apps/rtc_custom_section:
       temporary: false
       reason: esp32c2 does not have RTC memory
   disable_test:
-    - if: IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2"
       temporary: true
-      reason: target esp32c6 is not supported yet
+      reason: target esp32c6/esp32h2 is not supported yet

+ 1 - 1
components/bootloader_support/src/flash_encryption/flash_encrypt.c

@@ -433,7 +433,7 @@ esp_err_t esp_flash_encrypt_region(uint32_t src_addr, size_t data_length)
         return ESP_FAIL;
     }
 
-#if CONFIG_IDF_TARGET_ESP32C6 // TODO: IDF-5653
+#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 // TODO: IDF-5653
     wdt_hal_context_t rtc_wdt_ctx = {.inst = WDT_RWDT, .rwdt_dev = &LP_WDT};
 #else
     wdt_hal_context_t rtc_wdt_ctx = {.inst = WDT_RWDT, .rwdt_dev = &RTCCNTL};

+ 2 - 2
components/bootloader_support/test_apps/bootloader_support/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/bootloader_support/test_apps/rtc_custom_section/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/console/test_apps/console/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 8 - 0
components/driver/.build-test-rules.yml

@@ -84,6 +84,14 @@ components/driver/test_apps/sdio:
       temporary: true
       reason: Not supported.
 
+components/driver/test_apps/spi/master:
+  disable:
+    - if: SOC_GPSPI_SUPPORTED != 1
+
+components/driver/test_apps/spi/slave:
+  disable:
+    - if: SOC_GPSPI_SUPPORTED != 1
+
 components/driver/test_apps/temperature_sensor:
   disable:
     - if: SOC_TEMP_SENSOR_SUPPORTED != 1

+ 2 - 2
components/driver/test/test_i2c.c

@@ -25,7 +25,7 @@
 #include "hal/gpio_hal.h"
 #include "hal/uart_ll.h"
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 #if SOC_I2C_SUPPORT_SLAVE // i2c test can't work without slave
 
 #define DATA_LENGTH          512  /*!<Data buffer length for test buffer*/
@@ -731,4 +731,4 @@ TEST_CASE("I2C SCL freq test (local test)", "[i2c][ignore]")
 }
 
 #endif // SOC_I2C_SUPPORT_SLAVE
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)

+ 11 - 1
components/driver/test_apps/components/esp_serial_slave_link/CMakeLists.txt

@@ -1,5 +1,15 @@
+set(srcs "essl.c")
+
+if(CONFIG_SOC_GPSPI_SUPPORTED)
+    list(APPEND srcs "essl_spi.c")
+endif()
+
+if(CONFIG_SOC_SDIO_SLAVE_SUPPORTED)
+    list(APPEND srcs "essl_sdio.c")
+endif()
+
 idf_component_register(
-    SRCS "essl.c" "essl_sdio.c" "essl_spi.c"
+    SRCS "${srcs}"
     INCLUDE_DIRS "include"
     PRIV_INCLUDE_DIRS "." "include/esp_serial_slave_link"
     REQUIRES sdmmc driver

+ 1 - 1
components/driver/test_apps/components/test_driver_utils/include/test_spi_utils.h

@@ -116,7 +116,7 @@
 #define ESP_SPI_SLAVE_TV        0
 #define WIRE_DELAY              12.5
 
-#elif CONFIG_IDF_TARGET_ESP32C6
+#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
 #define TEST_SPI_HOST           SPI2_HOST
 #define TEST_SLAVE_HOST         SPI2_HOST
 

+ 2 - 2
components/driver/test_apps/gpio/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/driver/test_apps/gpio/main/test_gpio.c

@@ -844,7 +844,7 @@ TEST_CASE("GPIO_USB_DP_pin_pullup_disable_test", "[gpio]")
 }
 #endif //SOC_USB_SERIAL_JTAG_SUPPORTED
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6) // TODO: IDF-5348 Remove when light sleep is supported on ESP32C6
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2) // TODO: IDF-5348 Remove when light sleep is supported on ESP32C6
 // Ignored in CI because it needs manually connect TEST_GPIO_INPUT_LEVEL_LOW_PIN to 3.3v to wake up from light sleep
 TEST_CASE("GPIO_light_sleep_wake_up_test", "[gpio][ignore]")
 {
@@ -861,4 +861,4 @@ TEST_CASE("GPIO_light_sleep_wake_up_test", "[gpio][ignore]")
     printf("Waked up from light sleep\n");
     TEST_ASSERT(esp_sleep_get_wakeup_cause() == ESP_SLEEP_WAKEUP_GPIO);
 }
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)

+ 2 - 2
components/driver/test_apps/gpio/main/test_gpio.h

@@ -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
  */
@@ -31,7 +31,7 @@ extern "C" {
 #define TEST_GPIO_EXT_IN_IO                (21)
 #define TEST_GPIO_INPUT_LEVEL_LOW_PIN      (1)
 #define TEST_GPIO_SIGNAL_IDX               (SIG_IN_FUNC208_IDX)
-#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
+#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
 #define TEST_GPIO_EXT_OUT_IO               (2)
 #define TEST_GPIO_EXT_IN_IO                (3)
 #define TEST_GPIO_INPUT_LEVEL_LOW_PIN      (1)

+ 1 - 1
components/driver/test_apps/gpio/main/test_rtcio.c

@@ -375,5 +375,5 @@ static void rtcio_deep_sleep_hold_test_second_stage(void)
 TEST_CASE_MULTIPLE_STAGES("RTCIO_deep_sleep_output_hold_test", "[rtcio]",
                          rtcio_deep_sleep_hold_test_first_stage,
                          rtcio_deep_sleep_hold_test_second_stage)
-#endif  // !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif  // !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 #endif  // #if SOC_RTCIO_HOLD_SUPPORTED

+ 2 - 2
components/driver/test_apps/gpio_extensions/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 4 - 1
components/driver/test_apps/gpio_extensions/pytest_gpio_extensions.py

@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
 # SPDX-License-Identifier: CC0-1.0
 
 import pytest
@@ -13,6 +13,7 @@ CONFIGS = [
 @pytest.mark.esp32
 @pytest.mark.esp32c3
 @pytest.mark.esp32c6
+@pytest.mark.esp32h2
 @pytest.mark.esp32s2
 @pytest.mark.esp32s3
 @pytest.mark.generic
@@ -24,6 +25,7 @@ def test_sdm(dut: IdfDut) -> None:
 @pytest.mark.esp32c2
 @pytest.mark.esp32c3
 @pytest.mark.esp32c6
+@pytest.mark.esp32h2
 @pytest.mark.esp32s2
 @pytest.mark.esp32s3
 @pytest.mark.generic
@@ -35,6 +37,7 @@ def test_gpio_filter(dut: IdfDut) -> None:
 @pytest.mark.esp32c2
 @pytest.mark.esp32c3
 @pytest.mark.esp32c6
+@pytest.mark.esp32h2
 @pytest.mark.esp32s2
 @pytest.mark.esp32s3
 @pytest.mark.generic

+ 2 - 2
components/driver/test_apps/gptimer/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/driver/test_apps/legacy_timer_driver/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/driver/test_apps/rs485/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

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

@@ -296,7 +296,7 @@ TEST_CASE("spi bus lock","[spi]")
     test_bus_lock(false);
 }
 
-#if !DISABLED_FOR_TARGETS(ESP32S2, ESP32C3, ESP32S3, ESP32C2, ESP32H4, ESP32C6)
+#if !SOC_MEMSPI_IS_INDEPENDENT
 //disable, SPI1 is not available for GPSPI usage on chips later than ESP32
 static IRAM_ATTR esp_err_t test_polling_send(spi_device_handle_t handle)
 {

+ 2 - 2
components/driver/test_apps/spi/param/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/driver/test_apps/spi/slave_hd/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/driver/test_apps/uart/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/efuse/test_apps/README.md

@@ -1,3 +1,3 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 

+ 2 - 1
components/efuse/test_apps/pytest_efuse.py

@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
 # SPDX-License-Identifier: Unlicense OR CC0-1.0
 
 from time import sleep
@@ -11,6 +11,7 @@ from pytest_embedded import Dut
 @pytest.mark.esp32c2
 @pytest.mark.esp32c3
 @pytest.mark.esp32c6
+@pytest.mark.esp32h2
 @pytest.mark.generic
 def test_efuse(dut: Dut) -> None:
     dut.expect_exact('Press ENTER to see the list of tests')

+ 2 - 2
components/esp-tls/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/esp_app_format/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/esp_common/test_apps/esp_common/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/esp_http_client/test_apps/README.md

@@ -1,3 +1,3 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 

+ 2 - 2
components/esp_http_server/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 5 - 1
components/esp_hw_support/.build-test-rules.yml

@@ -6,13 +6,17 @@ components/esp_hw_support/test_apps/dma:
       temporary: false
       reason: Neither GDMA nor CPDMA is supported on ESP32
 
+components/esp_hw_support/test_apps/esp_hw_support_unity_tests:
+  disable:
+    - if: SOC_GPSPI_SUPPORTED != 1
+
 components/esp_hw_support/test_apps/etm:
   disable:
     - if: SOC_ETM_SUPPORTED != 1
 
 components/esp_hw_support/test_apps/rtc_clk:
   disable:
-    - if: IDF_TARGET in ["esp32c6"]
+    - if: IDF_TARGET in ["esp32c6", "esp32h2"]
       temporary: true
       reason: Unsupported on C6 for now. TODO IDF-5645
 

+ 2 - 2
components/esp_hw_support/test_apps/dma/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 1
components/esp_hw_support/test_apps/dma/pytest_dma.py

@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
 # SPDX-License-Identifier: CC0-1.0
 
 import pytest
@@ -10,6 +10,7 @@ from pytest_embedded import Dut
 @pytest.mark.esp32c2
 @pytest.mark.esp32c3
 @pytest.mark.esp32c6
+@pytest.mark.esp32h2
 @pytest.mark.generic
 @pytest.mark.parametrize(
     'config',

+ 2 - 2
components/esp_hw_support/test_apps/security_support/esp_hw_support_unity_tests/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 8 - 0
components/esp_lcd/.build-test-rules.yml

@@ -1,5 +1,9 @@
 # Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
 
+components/esp_lcd/test_apps/i2c_lcd:
+  disable:
+    - if: SOC_I2C_SUPPORTED != 1
+
 components/esp_lcd/test_apps/i80_lcd:
   disable:
     - if: SOC_LCD_I80_SUPPORTED != 1
@@ -7,3 +11,7 @@ components/esp_lcd/test_apps/i80_lcd:
 components/esp_lcd/test_apps/rgb_lcd:
   disable:
     - if: SOC_LCD_RGB_SUPPORTED != 1
+
+components/esp_lcd/test_apps/spi_lcd:
+  disable:
+    - if: SOC_GPSPI_SUPPORTED != 1

+ 2 - 2
components/esp_netif/.build-test-rules.yml

@@ -2,9 +2,9 @@
 
 components/esp_netif/test_apps/test_app_esp_netif:
   disable:
-    - if: IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2" # IDF-6704
       temporary: true
-      reason: target esp32c6 is not supported yet
+      reason: target esp32c6, esp32h2 is not supported yet
   disable_test:
     - if: IDF_TARGET not in ["esp32s2", "esp32c3"]
       temporary: false

+ 2 - 2
components/esp_netif/test/test_esp_netif.c

@@ -76,7 +76,7 @@ TEST_CASE("esp_netif: create and delete multiple netifs", "[esp_netif][leaks=0]"
 }
 
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 //IDF-5047
 
 TEST_CASE("esp_netif: test dhcp client state transitions for wifi station", "[esp_netif]")
@@ -328,7 +328,7 @@ TEST_CASE("esp_netif: convert ip address from string", "[esp_netif]")
     TEST_ASSERT_EQUAL(ESP_ERR_INVALID_ARG, esp_netif_str_to_ip6(ipv6_src[0], NULL));
 }
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 //IDF-5047
 TEST_CASE("esp_netif: create and destroy default wifi interfaces", "[esp_netif][leaks=0]")
 {

+ 1 - 1
components/esp_phy/test/test_phy_rtc.c

@@ -13,7 +13,7 @@
 #include "soc/soc_caps.h"
 #include "esp_private/wifi.h"
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 //IDF-5046
 
 #include "esp_phy_init.h"

+ 1 - 1
components/esp_pm/.build-test-rules.yml

@@ -2,6 +2,6 @@
 
 components/esp_pm/test_apps/esp_pm:
   disable:
-    - if: IDF_TARGET in ["esp32c6"]
+    - if: IDF_TARGET in ["esp32c6", "esp32h2"]
       temporary: true
       reason: Not supported yet

+ 2 - 2
components/esp_pm/Kconfig

@@ -2,10 +2,10 @@ menu "Power Management"
     config PM_ENABLE
         bool "Support for power management"
         # SMP FreeRTOS currently does not support power management IDF-4997
-        # ESP32C6 currently does not support power management IDF-5347
+        # ESP32C6 currently does not support power management IDF-5347 IDF-6270
         # Note. Disabling this option for C6 will also cause all sdkconfig.release test cases run without pm enabled
         # ORed with  __DOXYGEN__ to pass C6 docs build, need to remove when pm is supported on C6
-        depends on (!FREERTOS_SMP && !IDF_TARGET_ESP32C6) || __DOXYGEN__
+        depends on (!FREERTOS_SMP && !IDF_TARGET_ESP32C6 && !IDF_TARGET_ESP32H2) || __DOXYGEN__
         default n
         help
             If enabled, application is compiled with support for power management.

+ 2 - 2
components/esp_rom/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 1
components/esp_rom/test_apps/pytest_esp_rom.py

@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
 # SPDX-License-Identifier: CC0-1.0
 
 import pytest
@@ -9,6 +9,7 @@ from pytest_embedded import Dut
 @pytest.mark.esp32s2
 @pytest.mark.esp32s3
 @pytest.mark.esp32c6
+@pytest.mark.esp32h2
 @pytest.mark.generic
 @pytest.mark.nightly_run
 def test_esp_rom(dut: Dut) -> None:

+ 2 - 2
components/esp_system/test/test_sleep.c

@@ -34,7 +34,7 @@
 
 __attribute__((unused)) static struct timeval tv_start, tv_stop;
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 #ifndef CONFIG_FREERTOS_UNICORE
 static void deep_sleep_task(void *arg)
 {
@@ -590,4 +590,4 @@ TEST_CASE("wake up using GPIO (2 or 4 low)", "[deepsleep][ignore]")
 }
 #endif // SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
 #endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6) TODO: IDF-5348, IDF-5349
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2) TODO: IDF-5348, IDF-5349

+ 5 - 5
components/esp_system/test/test_task_wdt.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: Unlicense OR CC0-1.0
  */
@@ -23,7 +23,7 @@ void esp_task_wdt_isr_user_handler(void)
     timeout_flag = true;
 }
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 TEST_CASE("Task WDT task timeout", "[task_wdt]")
 {
     timeout_flag = false;
@@ -94,7 +94,7 @@ TEST_CASE("Task WDT can be reconfigured", "[task_wdt]")
     TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_delete(NULL));
     TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit());
 }
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 
 TEST_CASE("Task WDT task feed", "[task_wdt]")
 {
@@ -115,7 +115,7 @@ TEST_CASE("Task WDT task feed", "[task_wdt]")
     TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit());
 }
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 TEST_CASE("Task WDT user timeout", "[task_wdt]")
 {
     const char *user_name = "test_user";
@@ -134,7 +134,7 @@ TEST_CASE("Task WDT user timeout", "[task_wdt]")
     TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_delete_user(user_handle));
     TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit());
 }
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 
 TEST_CASE("Task WDT user feed", "[task_wdt]")
 {

+ 1 - 1
components/esp_timer/.build-test-rules.yml

@@ -2,6 +2,6 @@
 
 components/esp_timer/test_apps:
   disable:
-    - if: IDF_TARGET in ["esp32c6"]
+    - if: IDF_TARGET in ["esp32c6", "esp32h2"] # Sleep support IDF-6267
       temporary: true
       reason: Not supported yet

+ 2 - 0
components/esp_wifi/.build-test-rules.yml

@@ -1,6 +1,8 @@
 # Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
 
 components/esp_wifi/test_apps/wifi_connect:
+  disable:
+    - if: SOC_WIFI_SUPPORTED != 1
   disable_test:
     - if: IDF_TARGET not in ["esp32", "esp32c3", "esp32s3", "esp32c2"]
       reason: leak of runner

+ 2 - 2
components/espcoredump/test_apps/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP Core Dump Tests
 

+ 4 - 0
components/fatfs/.build-test-rules.yml

@@ -5,3 +5,7 @@ components/fatfs/test_apps/sdcard:
     - if: IDF_TARGET in ["esp32s3", "esp32c2", "esp32c6"]
       temporary: true
       reason: No sdspi runners for these targets
+  disable:
+    - if: IDF_TARGET == "esp32h2" #wait for SDSPI IDF-6244
+      temporary: true
+      reason: esp32h2 not supported

+ 2 - 2
components/fatfs/test_apps/flash_ro/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 This test app runs a few FATFS test cases in a read-only FAT partition.
 

+ 2 - 2
components/fatfs/test_apps/flash_wl/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 This test app runs a few FATFS test cases in a wear levelling FAT partition.
 

+ 2 - 2
components/freertos/test_apps/freertos/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 1 - 1
components/freertos/test_apps/freertos/pytest_freertos.py

@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
 # SPDX-License-Identifier: Apache-2.0
 
 import pytest

+ 6 - 1
components/hal/esp32h2/include/hal/gpio_ll.h

@@ -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
  */
@@ -109,6 +109,7 @@ static inline void gpio_ll_set_intr_type(gpio_dev_t *hw, gpio_num_t gpio_num, gp
   * @param core_id interrupt core id
   * @param status interrupt status
   */
+__attribute__((always_inline))
 static inline void gpio_ll_get_intr_status(gpio_dev_t *hw, uint32_t core_id, uint32_t *status)
 {
     *status = hw->pcpu_int.val;
@@ -121,6 +122,7 @@ static inline void gpio_ll_get_intr_status(gpio_dev_t *hw, uint32_t core_id, uin
   * @param core_id interrupt core id
   * @param status interrupt status high
   */
+__attribute__((always_inline))
 static inline void gpio_ll_get_intr_status_high(gpio_dev_t *hw, uint32_t core_id, uint32_t *status)
 {
     *status = 0; // Less than 32 GPIOs in ESP32-H2
@@ -132,6 +134,7 @@ static inline void gpio_ll_get_intr_status_high(gpio_dev_t *hw, uint32_t core_id
   * @param hw Peripheral GPIO hardware instance address.
   * @param mask interrupt status clear mask
   */
+__attribute__((always_inline))
 static inline void gpio_ll_clear_intr_status(gpio_dev_t *hw, uint32_t mask)
 {
     // hw->status_w1tc = mask;
@@ -143,6 +146,7 @@ static inline void gpio_ll_clear_intr_status(gpio_dev_t *hw, uint32_t mask)
   * @param hw Peripheral GPIO hardware instance address.
   * @param mask interrupt status high clear mask
   */
+__attribute__((always_inline))
 static inline void gpio_ll_clear_intr_status_high(gpio_dev_t *hw, uint32_t mask)
 {
     // Not supported on H2
@@ -257,6 +261,7 @@ static inline void gpio_ll_od_enable(gpio_dev_t *hw, gpio_num_t gpio_num)
  * @param  gpio_num GPIO number. If you want to set the output level of e.g. GPIO16, gpio_num should be GPIO_NUM_16 (16);
  * @param  level Output level. 0: low ; 1: high
  */
+__attribute__((always_inline))
 static inline void gpio_ll_set_level(gpio_dev_t *hw, gpio_num_t gpio_num, uint32_t level)
 {
     // if (level) {

+ 1 - 1
components/hal/test/test_mpu.c

@@ -10,7 +10,7 @@
 // LL still not implemented
 
 #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C3)
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6, ESP32H2)
 //IDF-5058
 
 volatile static int RTC_NOINIT_ATTR access = 0;

+ 2 - 2
components/heap/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/lwip/test_afl_host/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 ## Introduction
 This test uses [american fuzzy lop](http://lcamtuf.coredump.cx/afl/) to mangle real dns, dhcp client, dhcp server packets and look for exceptions caused by the parser.

+ 2 - 2
components/lwip/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/mbedtls/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 3 - 3
components/mqtt/test/test_mqtt5.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
  */
@@ -19,7 +19,7 @@
 #include "esp_mac.h"
 #include "esp_partition.h"
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 static esp_mqtt5_user_property_item_t user_property_arr[3] = {
     {"board", "esp32"},
     {"u", "user"},
@@ -151,4 +151,4 @@ TEST_CASE("mqtt5 broker tests", "[mqtt5][test_env=UT_T2_Ethernet]")
     connect_test_fixture_teardown();
 }
 #endif // SOC_EMAC_SUPPORTED
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)

+ 3 - 3
components/newlib/test/test_newlib.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: Unlicense OR CC0-1.0
  */
@@ -122,7 +122,7 @@ TEST_CASE("test asctime", "[newlib]")
     TEST_ASSERT_EQUAL_STRING(buf, time_str);
 }
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 static bool fn_in_rom(void *fn)
 {
     const int fnaddr = (int)fn;
@@ -158,7 +158,7 @@ TEST_CASE("check if ROM or Flash is used for functions", "[newlib]")
     TEST_ASSERT_FALSE(fn_in_rom(strtol));
 #endif // defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_SPIRAM)
 }
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 
 #ifndef CONFIG_NEWLIB_NANO_FORMAT
 TEST_CASE("test 64bit int formats", "[newlib]")

+ 2 - 2
components/newlib/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/protocomm/test_apps/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 2 - 2
components/pthread/test_apps/pthread_unity_tests/README.md

@@ -1,2 +1,2 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

+ 1 - 1
components/sdmmc/test/test_sd.c

@@ -32,7 +32,7 @@
 // Currently no runners for S3
 #define WITH_SD_TEST    (SOC_SDMMC_HOST_SUPPORTED && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3))
 // Currently, no runners for S3, C2, and C6
-#define WITH_SDSPI_TEST (!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3, ESP32C2, ESP32C6))
+#define WITH_SDSPI_TEST (!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3, ESP32C2, ESP32C6, ESP32H2))
 // Can't test eMMC (slot 0) and PSRAM together
 #define WITH_EMMC_TEST  (SOC_SDMMC_HOST_SUPPORTED && !CONFIG_SPIRAM && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3))
 

+ 0 - 24
components/soc/esp32h2/include/soc/Kconfig.soc_caps.in

@@ -251,10 +251,6 @@ config SOC_I2C_FIFO_LEN
     int
     default 32
 
-config SOC_I2C_SUPPORT_SLAVE
-    bool
-    default y
-
 config SOC_I2C_SUPPORT_HW_CLR_BUS
     bool
     default y
@@ -283,10 +279,6 @@ config SOC_I2S_SUPPORTS_PCM
     bool
     default y
 
-config SOC_I2S_SUPPORTS_PDM
-    bool
-    default y
-
 config SOC_I2S_SUPPORTS_PDM_TX
     bool
     default y
@@ -295,10 +287,6 @@ config SOC_I2S_PDM_MAX_TX_LINES
     int
     default 2
 
-config SOC_I2S_SUPPORTS_TDM
-    bool
-    default y
-
 config SOC_LEDC_SUPPORT_PLL_DIV_CLOCK
     bool
     default y
@@ -395,14 +383,6 @@ config SOC_RMT_SUPPORT_TX_ASYNC_STOP
     bool
     default y
 
-config SOC_RMT_SUPPORT_TX_LOOP_COUNT
-    bool
-    default y
-
-config SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP
-    bool
-    default y
-
 config SOC_RMT_SUPPORT_TX_SYNCHRO
     bool
     default y
@@ -663,10 +643,6 @@ config SOC_TIMER_GROUP_TOTAL_TIMERS
     int
     default 2
 
-config SOC_TIMER_SUPPORT_ETM
-    bool
-    default y
-
 config SOC_TWAI_CONTROLLER_NUM
     bool
     default y

+ 6 - 6
components/soc/esp32h2/include/soc/soc_caps.h

@@ -176,7 +176,7 @@
 #define SOC_I2C_NUM                 (1U)
 
 #define SOC_I2C_FIFO_LEN            (32) /*!< I2C hardware FIFO depth */
-#define SOC_I2C_SUPPORT_SLAVE       (1)
+// #define SOC_I2C_SUPPORT_SLAVE       (1)
 
 // FSM_RST only resets the FSM, not using it. So SOC_I2C_SUPPORT_HW_FSM_RST not defined.
 #define SOC_I2C_SUPPORT_HW_CLR_BUS  (1)
@@ -190,10 +190,10 @@
 #define SOC_I2S_HW_VERSION_2        (1)
 #define SOC_I2S_SUPPORTS_XTAL       (1)
 #define SOC_I2S_SUPPORTS_PCM        (1)
-#define SOC_I2S_SUPPORTS_PDM        (1)
+// #define SOC_I2S_SUPPORTS_PDM        (1)
 #define SOC_I2S_SUPPORTS_PDM_TX     (1)
 #define SOC_I2S_PDM_MAX_TX_LINES    (2)
-#define SOC_I2S_SUPPORTS_TDM        (1)
+// #define SOC_I2S_SUPPORTS_TDM        (1)
 
 // TODO: IDF-6235 (Copy from esp32c6, need check)
 /*-------------------------- LEDC CAPS ---------------------------------------*/
@@ -230,8 +230,8 @@
 #define SOC_RMT_SUPPORT_RX_PINGPONG           1  /*!< Support Ping-Pong mode on RX path */
 #define SOC_RMT_SUPPORT_RX_DEMODULATION       1  /*!< Support signal demodulation on RX path (i.e. remove carrier) */
 #define SOC_RMT_SUPPORT_TX_ASYNC_STOP         1  /*!< Support stop transmission asynchronously */
-#define SOC_RMT_SUPPORT_TX_LOOP_COUNT         1  /*!< Support transmit specified number of cycles in loop mode */
-#define SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP     1  /*!< Hardware support of auto-stop in loop mode */
+// #define SOC_RMT_SUPPORT_TX_LOOP_COUNT         1  /*!< Support transmit specified number of cycles in loop mode */
+// #define SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP     1  /*!< Hardware support of auto-stop in loop mode */
 #define SOC_RMT_SUPPORT_TX_SYNCHRO            1  /*!< Support coordinate a group of TX channels to start simultaneously */
 #define SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY  1  /*!< TX carrier can be modulated to data phase only */
 #define SOC_RMT_SUPPORT_XTAL                  1  /*!< Support set XTAL clock as the RMT clock source */
@@ -351,7 +351,7 @@
 #define SOC_TIMER_GROUP_SUPPORT_PLL_F48M  (1)
 // #define SOC_TIMER_GROUP_SUPPORT_RC_FAST   (1) // TODO: IDF-6265
 #define SOC_TIMER_GROUP_TOTAL_TIMERS      (2)
-#define SOC_TIMER_SUPPORT_ETM             (1)
+// #define SOC_TIMER_SUPPORT_ETM             (1)
 
 // TODO: IDF-6217 (Copy from esp32c6, need check)
 /*-------------------------- TWAI CAPS ---------------------------------------*/

+ 5 - 5
components/spi_flash/.build-test-rules.yml

@@ -2,18 +2,18 @@
 
 components/spi_flash/test_apps/esp_flash:
   disable:
-    - if: IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2"
       temporary: true
-      reason: target esp32c6 cannot pass atomic build
+      reason: target esp32c6 cannot pass atomic build, target esp32h2 currently doesn't support GPSPI.
 
 components/spi_flash/test_apps/flash_encryption:
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32s2", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32s2", "esp32c6", "esp32h2"]
       temporary: true
       reason: No runners # IDF-5634
 
 components/spi_flash/test_apps/flash_mmap:
   disable:
-    - if: IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2"
       temporary: true
-      reason: target esp32c6 is not supported yet
+      reason: target esp32c6, esp32h2 is not supported yet

+ 2 - 2
components/spi_flash/test/test_cache_disabled.c

@@ -19,7 +19,7 @@
 
 #include "esp_private/cache_utils.h"
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 static QueueHandle_t result_queue;
 
 static IRAM_ATTR void cache_test_task(void *arg)
@@ -107,4 +107,4 @@ TEST_CASE("invalid access to cache raises panic (APP CPU)", "[spi_flash][reset="
 
 #endif // !CONFIG_FREERTOS_UNICORE
 #endif // !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2)
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)

+ 2 - 3
components/spi_flash/test/test_esp_flash.c

@@ -124,7 +124,7 @@
 #define HSPI_PIN_NUM_CS     FSPI_PIN_NUM_CS
 #endif
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 #define TEST_CONFIG_NUM (sizeof(config_list)/sizeof(flashtest_config_t))
 
 typedef void (*flash_test_func_t)(const esp_partition_t *part);
@@ -651,5 +651,4 @@ TEST_CASE("Test esp_flash read/write performance", "[esp_flash][test_env=UT_T1_E
 #endif
 
 TEST_CASE_MULTI_FLASH("Test esp_flash read/write performance", test_flash_read_write_performance);
-
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)

+ 2 - 2
components/spi_flash/test/test_read_write.c

@@ -144,7 +144,7 @@ TEST_CASE("Test spi_flash_read", "[spi_flash][esp_flash]")
 
 extern void spi_common_set_dummy_output(esp_rom_spiflash_read_mode_t mode);
 extern void spi_dummy_len_fix(uint8_t spi, uint8_t freqdiv);
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 static void IRAM_ATTR fix_rom_func(void)
 {
     uint32_t freqdiv = 0;
@@ -305,7 +305,7 @@ TEST_CASE("Test esp_flash_write", "[spi_flash][esp_flash]")
     ESP_ERROR_CHECK(esp_flash_write(NULL, (char *) 0x40080000, start, 16));
 #endif
 }
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 
 #ifdef CONFIG_SPIRAM
 

+ 2 - 2
components/spi_flash/test_apps/esp_flash/main/test_esp_flash_def.h

@@ -88,7 +88,7 @@
 #define HSPI_PIN_NUM_WP     FSPI_PIN_NUM_WP
 #define HSPI_PIN_NUM_CS     FSPI_PIN_NUM_CS
 
-#elif CONFIG_IDF_TARGET_ESP32C6
+#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
 
 #define FSPI_PIN_NUM_MOSI   7
 #define FSPI_PIN_NUM_MISO   2
@@ -244,7 +244,7 @@ flashtest_config_t config_list[] = {
         .input_delay_ns = 0,
     },
 };
-#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
+#else
 flashtest_config_t config_list[] = {
     /* No SPI1 CS1 flash on esp32c3 test */
     {

+ 2 - 2
components/spi_flash/test_apps/flash_encryption/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 ## Prepare runner
 

+ 2 - 2
components/spiffs/test_apps/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 This is a test app for spiffs component.
 

+ 2 - 2
components/wpa_supplicant/test/test_crypto.c

@@ -315,7 +315,7 @@ TEST_CASE("Test crypto lib bignum apis", "[wpa_crypto]")
 
 #endif /* bits in mbedtls_mpi_uint */
 
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)
 //IDF-5046
 /*
@@ -541,5 +541,5 @@ TEST_CASE("Test crypto lib ECC apis", "[wpa_crypto]")
     }
 
 }
+#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6, ESP32H2)
 #endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)
-#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)

+ 2 - 0
components/wpa_supplicant/test/test_eloop.c

@@ -18,6 +18,7 @@
 #include "memory_checks.h"
 #include <time.h>
 
+#if SOC_WIFI_SUPPORTED
 uint32_t timeouts_usec[6] = { 10000, 1000, 10000, 5000, 15000, 1000 };
 uint32_t timeouts_sec[6] = { 10, 1, 10, 5, 15, 1 };
 int executed_order[6];
@@ -82,3 +83,4 @@ TEST_CASE("Test eloop timers run", "[eloop]")
 	TEST_ESP_OK(esp_wifi_deinit());
 	os_sleep(3, 0);
 }
+#endif //SOC_WIFI_SUPPORTED

+ 1 - 1
components/wpa_supplicant/test/test_offchannel.c

@@ -32,7 +32,7 @@
 #define TEST_LISTEN_CHANNEL     6
 
 /* No runners */
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3, ESP32C2, ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3, ESP32C2, ESP32C6, ESP32H2)
 //IDF-5046
 static const char *TAG = "test_offchan";
 esp_netif_t *wifi_netif;

+ 2 - 1
conftest.py

@@ -49,7 +49,7 @@ except ImportError:
     sys.path.append(os.path.join(os.path.dirname(__file__), 'tools', 'ci', 'python_packages'))
     import common_test_methods  # noqa: F401
 
-SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6']
+SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2']
 PREVIEW_TARGETS = ['esp32h4']  # this PREVIEW_TARGETS excludes 'linux' target
 DEFAULT_SDKCONFIG = 'default'
 
@@ -61,6 +61,7 @@ TARGET_MARKERS = {
     'esp32c2': 'support esp32c2 target',
     'esp32c6': 'support esp32c6 target',
     'esp32h4': 'support esp32h4 target',
+    'esp32h2': 'support esp32h2 target',
     'linux': 'support linux target',
 }
 

+ 1 - 1
examples/build_system/.build-test-rules.yml

@@ -2,7 +2,7 @@
 
 examples/build_system/cmake/import_lib:
   disable_test:
-    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s2", "esp32s3", "esp32c6"]
+    - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s2", "esp32s3", "esp32c6", "esp32h2"]
       temporary: true
       reason: lack of runners
 

+ 2 - 2
examples/build_system/cmake/component_manager/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Using the component manager for downloading dependencies
 

+ 2 - 2
examples/build_system/cmake/idf_as_lib/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H4 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Using ESP-IDF in Custom CMake Projects
 

+ 2 - 2
examples/build_system/cmake/import_lib/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Import Third-Party CMake Library Example
 

+ 2 - 2
examples/build_system/cmake/import_prebuilt/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Import Prebuilt Library Example
 

+ 2 - 2
examples/build_system/cmake/multi_config/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Multiple Build Configurations Example
 

+ 2 - 2
examples/build_system/cmake/plugins/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Link Time Plugins Registration
 

+ 2 - 2
examples/build_system/wrappers/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Using wrapper to redefine IDF functions
 

+ 2 - 2
examples/custom_bootloader/bootloader_hooks/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Bootloader hooks
 

+ 2 - 2
examples/custom_bootloader/bootloader_override/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Bootloader override
 

+ 4 - 4
examples/cxx/.build-test-rules.yml

@@ -14,13 +14,13 @@ examples/cxx/experimental/esp_modem_cxx:
 
 examples/cxx/experimental/esp_mqtt_cxx/ssl:
   disable:
-    - if: IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2"
       temporary: true
       reason: target esp32c6 is not supported yet
 
 examples/cxx/experimental/esp_mqtt_cxx/tcp:
   disable:
-    - if: IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2"
       temporary: true
       reason: target esp32c6 is not supported yet
 
@@ -31,13 +31,13 @@ examples/cxx/experimental/experimental_cpp_component/host_test:
 
 examples/cxx/experimental/simple_i2c_rw_example:
   disable:
-    - if: IDF_TARGET == "esp32c2" or IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET in ["esp32c2", "esp32c6", "esp32h2"]
       temporary: true
       reason: target(s) not supported yet
 
 examples/cxx/experimental/simple_spi_rw_example:
   disable:
-    - if: IDF_TARGET == "esp32c2" or IDF_TARGET == "esp32c6"
+    - if: IDF_TARGET in ["esp32c2", "esp32c6", "esp32h2"]
       temporary: true
       reason: target(s) not supported yet
 

+ 2 - 2
examples/cxx/exceptions/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Example: C++ exception handling
 

+ 2 - 2
examples/cxx/experimental/blink_cxx/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Example: Blink C++ example
 

+ 2 - 2
examples/cxx/experimental/esp_event_async_cxx/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP-Event asynchronous example
 

+ 2 - 2
examples/cxx/experimental/esp_event_cxx/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # ESP Event synchronous example
 

+ 2 - 2
examples/cxx/experimental/esp_timer_cxx/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Example: ESPTimer C++ class
 

+ 2 - 0
examples/cxx/experimental/experimental_cpp_component/gpio_cxx.cpp

@@ -29,6 +29,8 @@ constexpr std::array<uint32_t, 0> INVALID_GPIOS = {};
 constexpr std::array<uint32_t, 0> INVALID_GPIOS = {};
 #elif CONFIG_IDF_TARGET_ESP32C6
 constexpr std::array<uint32_t, 0> INVALID_GPIOS = {};
+#elif CONFIG_IDF_TARGET_ESP32H2
+constexpr std::array<uint32_t, 0> INVALID_GPIOS = {};
 #else
 #error "No GPIOs defined for the current target"
 #endif

+ 1 - 1
examples/cxx/experimental/experimental_cpp_component/test/test_cxx_exceptions.cpp

@@ -14,7 +14,7 @@ using namespace idf;
 
 #if CONFIG_IDF_TARGET_ESP32
 #define LEAKS "300"
-#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
+#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
 #define LEAKS "800"
 #else
 #error "unknown target in CXX tests, can't set leaks threshold"

+ 5 - 13
examples/cxx/experimental/experimental_cpp_component/test/test_esp_timer.cpp

@@ -1,16 +1,8 @@
-// Copyright 2020 Espressif Systems (Shanghai) PTE LTD
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//         http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+/*
+ * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
 
 #ifdef __cpp_exceptions
 

+ 2 - 2
examples/cxx/experimental/experimental_cpp_component/test/test_i2c.cpp

@@ -32,7 +32,7 @@ static constexpr I2CNumber I2C_SLAVE_NUM(I2CNumber::I2C0()); /*!<I2C port number
 #define I2C_SLAVE_SDA_IO     18    /*!<gpio number for i2c slave data */
 #endif
 
-#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
+#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
 static constexpr I2CNumber I2C_MASTER_NUM(I2CNumber::I2C0()); /*!< I2C port number for master dev */
 #define I2C_MASTER_SCL_IO     5     /*!<gpio number for i2c master clock  */
 #define I2C_MASTER_SDA_IO     6     /*!<gpio number for i2c master data */
@@ -55,7 +55,7 @@ struct MasterFixture {
 };
 
 // TODO The I2C driver tests are disabled, so disable them here, too. Probably due to no runners.
-#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C2, ESP32C6)
+#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C2, ESP32C6, ESP32H2)
 
 static void i2c_slave_read_raw_byte(void)
 {

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff