diff --git a/components/driver/test_apps/components/test_driver_utils/include/test_spi_utils.h b/components/driver/test_apps/components/test_driver_utils/include/test_spi_utils.h index a487424ff71..4567cb7c3f2 100644 --- a/components/driver/test_apps/components/test_driver_utils/include/test_spi_utils.h +++ b/components/driver/test_apps/components/test_driver_utils/include/test_spi_utils.h @@ -36,6 +36,13 @@ #define PIN_NUM_CS 10 //the IOMUX pin of SPI2 CS0&CS1 is Pin_16&17 which conflict with UART Tx&Rx Pin #define PIN_NUM_WP SPI2_IOMUX_PIN_NUM_WP #define PIN_NUM_HD SPI2_IOMUX_PIN_NUM_HD +#elif CONFIG_IDF_TARGET_ESP32H4 +#define PIN_NUM_MISO SPI2_IOMUX_PIN_NUM_MISO +#define PIN_NUM_MOSI 21 //the mosi iomux pin 17 for h4 is straping pin and don't connected on burger runner +#define PIN_NUM_CLK SPI2_IOMUX_PIN_NUM_CLK +#define PIN_NUM_CS SPI2_IOMUX_PIN_NUM_CS +#define PIN_NUM_WP SPI2_IOMUX_PIN_NUM_WP +#define PIN_NUM_HD SPI2_IOMUX_PIN_NUM_HD #else #define PIN_NUM_MISO SPI2_IOMUX_PIN_NUM_MISO #define PIN_NUM_MOSI SPI2_IOMUX_PIN_NUM_MOSI @@ -45,6 +52,17 @@ #define PIN_NUM_HD SPI2_IOMUX_PIN_NUM_HD #endif +// dummy cs pins for add device test, which are available pins but different from PIN_NUM_CS +#if CONFIG_IDF_TARGET_ESP32 +#define DUMMY_CS_PINS() {25, 26, 27} +#elif CONFIG_IDF_TARGET_ESP32H2 +#define DUMMY_CS_PINS() {9, 10, 11, 12, 22, 25} +#elif CONFIG_IDF_TARGET_ESP32P4 || CONFIG_IDF_TARGET_ESP32H4 +#define DUMMY_CS_PINS() {0, 1, 2, 3, 4, 5} +#else +#define DUMMY_CS_PINS() {0, 1, 4, 5, 8, 9} +#endif //CONFIG_IDF_TARGET_ESP32 + #if (TEST_SPI_PERIPH_NUM >= 2) // esp32, s2, s3 #define TEST_SPI_HOST SPI2_HOST #define TEST_SLAVE_HOST SPI3_HOST diff --git a/components/esp_driver_i2c/test_apps/i2c_test_apps/pytest_i2c.py b/components/esp_driver_i2c/test_apps/i2c_test_apps/pytest_i2c.py index ac48dbb624e..a7b632e8de2 100644 --- a/components/esp_driver_i2c/test_apps/i2c_test_apps/pytest_i2c.py +++ b/components/esp_driver_i2c/test_apps/i2c_test_apps/pytest_i2c.py @@ -31,8 +31,6 @@ def test_i2c(dut: Dut) -> None: indirect=True, ) @idf_parametrize('target', soc_filtered_targets('SOC_I2C_SUPPORTED == 1'), indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of s31 multi-device runner # TODO: IDFCI-10334') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner # TODO: IDFCI-10702') def test_i2c_multi_device(case_tester) -> None: # type: ignore case_tester.run_all_multi_dev_cases(reset=True) diff --git a/components/esp_driver_i2s/test_apps/.build-test-rules.yml b/components/esp_driver_i2s/test_apps/.build-test-rules.yml index ce34031d0bf..e658b62effd 100644 --- a/components/esp_driver_i2s/test_apps/.build-test-rules.yml +++ b/components/esp_driver_i2s/test_apps/.build-test-rules.yml @@ -20,15 +20,9 @@ components/esp_driver_i2s/test_apps/i2s_multi_dev: - if: SOC_I2S_SUPPORTED != 1 - if: SOC_I2S_HW_VERSION_2 != 1 disable_test: - - if: IDF_TARGET in ["esp32c61"] # TODO: [ESP32C61] IDF-11442 + - if: IDF_TARGET in ["esp32h4", "esp32s31"] temporary: true - reason: lack of runners - - if: IDF_TARGET in ["esp32s31"] - temporary: true - reason: lack of s31 multi-device runner - - if: IDF_TARGET in ["esp32h4"] # TODO: IDFCI-10702 - temporary: true - reason: lack of runner + reason: cannot pass # TODO: IDF-15609 depends_components: - esp_driver_i2s - esp_driver_dma diff --git a/components/esp_driver_i2s/test_apps/i2s_multi_dev/main/test_i2s_multi_dev.c b/components/esp_driver_i2s/test_apps/i2s_multi_dev/main/test_i2s_multi_dev.c index f39c4463516..95093c585da 100644 --- a/components/esp_driver_i2s/test_apps/i2s_multi_dev/main/test_i2s_multi_dev.c +++ b/components/esp_driver_i2s/test_apps/i2s_multi_dev/main/test_i2s_multi_dev.c @@ -31,7 +31,7 @@ static const char *TAG = "i2s_multi_dev_test"; #define TEST_I2S_MCK_IO (GPIO_NUM_1) #define TEST_I2S_BCK_IO (GPIO_NUM_4) #define TEST_I2S_WS_IO (GPIO_NUM_5) -#if CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32H4 #define TEST_I2S_DO_IO (GPIO_NUM_2) #define TEST_I2S_DI_IO (GPIO_NUM_3) // DI and DO gpio will be reversed on slave runner #else diff --git a/components/esp_driver_i2s/test_apps/i2s_multi_dev/pytest_i2s_multi_dev.py b/components/esp_driver_i2s/test_apps/i2s_multi_dev/pytest_i2s_multi_dev.py index 4e9975fa715..399246cdfc0 100644 --- a/components/esp_driver_i2s/test_apps/i2s_multi_dev/pytest_i2s_multi_dev.py +++ b/components/esp_driver_i2s/test_apps/i2s_multi_dev/pytest_i2s_multi_dev.py @@ -6,10 +6,9 @@ from pytest_embedded_idf.utils import soc_filtered_targets @pytest.mark.generic_multi_device -@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='p4 rev3 migration # TODO: IDF-11442') -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of s31 multi-device runner # TODO: IDFCI-10334') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner # TODO: IDFCI-10702') @pytest.mark.parametrize('count', [2], indirect=True) +@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15609 +@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='cannot pass') # TODO: IDF-15609 @idf_parametrize('target', soc_filtered_targets('SOC_I2S_SUPPORTS_TDM == 1'), indirect=['target']) def test_i2s_multi_dev(case_tester) -> None: # type: ignore case_tester.run_all_multi_dev_cases(reset=True, timeout=30) diff --git a/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py b/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py index 84e2be2efff..352fbfc0313 100644 --- a/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py +++ b/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py @@ -66,6 +66,8 @@ def test_ledc_psram(dut: IdfDut) -> None: @pytest.mark.temp_skip_ci(targets=['esp32s3'], reason='s3 multi device runner has no psram') +@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15610 +@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='cannot pass') # TODO: IDF-15610 @pytest.mark.generic_multi_device @pytest.mark.parametrize( 'count, config', @@ -76,7 +78,5 @@ def test_ledc_psram(dut: IdfDut) -> None: indirect=True, ) @idf_parametrize('target', ['supported_targets'], indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='TODO: IDFCI-10334 no runner yet') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner # TODO: IDFCI-10702') def test_ledc_multi_device(case_tester) -> None: # type: ignore case_tester.run_all_multi_dev_cases(reset=True) diff --git a/components/esp_driver_spi/test_apps/.build-test-rules.yml b/components/esp_driver_spi/test_apps/.build-test-rules.yml index 89afe43237b..01095bb9d1c 100644 --- a/components/esp_driver_spi/test_apps/.build-test-rules.yml +++ b/components/esp_driver_spi/test_apps/.build-test-rules.yml @@ -12,36 +12,20 @@ components/esp_driver_spi/test_apps/master: disable: - if: SOC_GPSPI_SUPPORTED != 1 - disable_test: - - if: IDF_TARGET in ["esp32h4"] - temporary: true - reason: cannot pass # TODO: IDF-15615 <<: *spi_depends_default components/esp_driver_spi/test_apps/param: disable: - if: SOC_GPSPI_SUPPORTED != 1 - disable_test: - - if: IDF_TARGET in ["esp32h4"] - temporary: true - reason: cannot pass # TODO: IDF-15615 <<: *spi_depends_default components/esp_driver_spi/test_apps/slave: disable: - if: SOC_GPSPI_SUPPORTED != 1 - disable_test: - - if: IDF_TARGET in ["esp32h4"] - temporary: true - reason: cannot pass # TODO: IDF-15615 <<: *spi_depends_default components/esp_driver_spi/test_apps/slave_hd: disable: - if: SOC_GPSPI_SUPPORTED != 1 - if: SOC_SPI_SUPPORT_SLAVE_HD_VER2 != 1 - disable_test: - - if: IDF_TARGET in ["esp32h4"] - temporary: true - reason: cannot pass # TODO: IDF-15615 <<: *spi_depends_default diff --git a/components/esp_driver_spi/test_apps/master/main/test_spi_master.c b/components/esp_driver_spi/test_apps/master/main/test_spi_master.c index 9900bba71a1..b324dfe49d7 100644 --- a/components/esp_driver_spi/test_apps/master/main/test_spi_master.c +++ b/components/esp_driver_spi/test_apps/master/main/test_spi_master.c @@ -1592,18 +1592,6 @@ TEST_CASE("spi_speed", "[spi]") //****************************************spi master add device test************************************// #define SPI_MAX_DEVICE_NUM SPI_LL_PERIPH_CS_NUM(TEST_SPI_HOST) -//add dummy devices first -#if CONFIG_IDF_TARGET_ESP32 -#define DUMMY_CS_PINS() {25, 26, 27} -#elif CONFIG_IDF_TARGET_ESP32H2 -#define DUMMY_CS_PINS() {9, 10, 11, 12, 22, 25} -#elif CONFIG_IDF_TARGET_ESP32P4 -#define DUMMY_CS_PINS() {20, 21, 22, 23, 24, 25} -#else -#define DUMMY_CS_PINS() {0, 1, 4, 5, 8, 9} -#endif //CONFIG_IDF_TARGET_ESP32 - -#define CS_REAL_DEV PIN_NUM_CS #define TEST_TRANS_LEN 48 void test_add_device_master(void) @@ -1639,7 +1627,7 @@ void test_add_device_master(void) //3. free devs[i] after transaction to release the real CS pin for using again by another dev, //So it will loop to check every gpio_signal one by one use one physical pin spi_bus_remove_device(devs[i]); - dev_cfg.spics_io_num = CS_REAL_DEV; + dev_cfg.spics_io_num = PIN_NUM_CS; TEST_ESP_OK(spi_bus_add_device(TEST_SPI_HOST, &dev_cfg, &devs[i])); memset(master_recvbuf, 0, sizeof(master_recvbuf)); @@ -1673,7 +1661,7 @@ void test_add_device_slave(void) spi_bus_config_t bus_cfg = SPI_BUS_TEST_DEFAULT_CONFIG(); spi_slave_interface_config_t slvcfg = { - .spics_io_num = CS_REAL_DEV, + .spics_io_num = PIN_NUM_CS, .queue_size = 3, }; TEST_ESP_OK(spi_slave_initialize(TEST_SPI_HOST, &bus_cfg, &slvcfg, SPI_DMA_CH_AUTO)); diff --git a/components/esp_driver_spi/test_apps/master/pytest_spi_master.py b/components/esp_driver_spi/test_apps/master/pytest_spi_master.py index ea771c08ae5..b15889bbd7b 100644 --- a/components/esp_driver_spi/test_apps/master/pytest_spi_master.py +++ b/components/esp_driver_spi/test_apps/master/pytest_spi_master.py @@ -86,7 +86,5 @@ def test_master_esp_flash(case_tester) -> None: # type: ignore indirect=True, ) @idf_parametrize('target', ['supported_targets'], indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner') # TODO: IDFCI-10702 def test_master_multi_dev(case_tester) -> None: # type: ignore case_tester.run_all_multi_dev_cases(reset=True) diff --git a/components/esp_driver_spi/test_apps/master/sdkconfig.ci.release.esp32c5 b/components/esp_driver_spi/test_apps/master/sdkconfig.ci.release.esp32c5 index cc641ea6033..db575808cf9 100644 --- a/components/esp_driver_spi/test_apps/master/sdkconfig.ci.release.esp32c5 +++ b/components/esp_driver_spi/test_apps/master/sdkconfig.ci.release.esp32c5 @@ -1 +1,2 @@ CONFIG_SPIRAM=y +CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0 diff --git a/components/esp_driver_spi/test_apps/master/sdkconfig.defaults.esp32c5 b/components/esp_driver_spi/test_apps/master/sdkconfig.defaults.esp32c5 deleted file mode 100644 index db575808cf9..00000000000 --- a/components/esp_driver_spi/test_apps/master/sdkconfig.defaults.esp32c5 +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_SPIRAM=y -CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0 diff --git a/components/esp_driver_spi/test_apps/param/pytest_spi_param.py b/components/esp_driver_spi/test_apps/param/pytest_spi_param.py index 5c30abcef16..b213ad30b94 100644 --- a/components/esp_driver_spi/test_apps/param/pytest_spi_param.py +++ b/components/esp_driver_spi/test_apps/param/pytest_spi_param.py @@ -14,7 +14,5 @@ def test_param_single_dev(case_tester) -> None: # type: ignore @pytest.mark.generic_multi_device @pytest.mark.parametrize('count', [2], indirect=True) @idf_parametrize('target', ['supported_targets'], indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702 def test_param_multi_dev(case_tester) -> None: # type: ignore case_tester.run_all_multi_dev_cases(reset=True) diff --git a/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py b/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py index 1c65bd0d132..3c4bfd7b53d 100644 --- a/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py +++ b/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py @@ -35,8 +35,5 @@ def test_slave_single_dev_esp32c5_rev1(case_tester) -> None: # type: ignore @pytest.mark.generic_multi_device @pytest.mark.parametrize('count, config', [(2, 'release'), (2, 'iram_safe')], indirect=True) @idf_parametrize('target', ['supported_targets'], indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702 -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='s31 bringup on this module is not done') def test_slave_multi_dev(case_tester) -> None: # type: ignore case_tester.run_all_multi_dev_cases(reset=True) diff --git a/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py b/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py index ecf7560774a..72533c9cc0b 100644 --- a/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py +++ b/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py @@ -29,7 +29,5 @@ def test_slave_hd_single_dev_esp32c5_rev1(case_tester) -> None: # type: ignore @pytest.mark.generic_multi_device @pytest.mark.parametrize('count, config', [(2, 'release')], indirect=True) @idf_parametrize('target', soc_filtered_targets('SOC_SPI_SUPPORT_SLAVE_HD_VER2 == 1'), indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702 def test_slave_hd_multi_dev(case_tester) -> None: # type: ignore case_tester.run_all_multi_dev_cases(reset=True) diff --git a/components/esp_driver_uart/test_apps/.build-test-rules.yml b/components/esp_driver_uart/test_apps/.build-test-rules.yml index 03280b4ea03..835eacb6696 100644 --- a/components/esp_driver_uart/test_apps/.build-test-rules.yml +++ b/components/esp_driver_uart/test_apps/.build-test-rules.yml @@ -17,10 +17,6 @@ components/esp_driver_uart/test_apps/rs485: components/esp_driver_uart/test_apps/uart: disable: - if: SOC_UART_SUPPORTED != 1 - disable_test: - - if: IDF_TARGET in ["esp32h4"] - temporary: true - reason: cannot pass # TODO: IDF-15619 depends_components: - esp_driver_uart - esp_hal_uart diff --git a/components/esp_driver_uart/test_apps/uart/pytest_uart.py b/components/esp_driver_uart/test_apps/uart/pytest_uart.py index ba534640e28..eda9df15400 100644 --- a/components/esp_driver_uart/test_apps/uart/pytest_uart.py +++ b/components/esp_driver_uart/test_apps/uart/pytest_uart.py @@ -83,10 +83,9 @@ def test_uart_single_dev_psram(case_tester) -> None: # type: ignore # ESP32 only supports uart wakeup if signal routes through IOMUX # ESP32S3 multi device runner has no psram IDF-12837, @pytest.mark.temp_skip_ci(targets=['esp32', 'esp32s3'], reason='no multi-dev runner') +@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='cannot pass') # TODO: IDF-15619 @pytest.mark.generic_multi_device @idf_parametrize('target', ['supported_targets'], indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='s31 bringup on this module is not done') -@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702 @pytest.mark.parametrize( 'config', [ diff --git a/examples/bluetooth/.build-test-rules.yml b/examples/bluetooth/.build-test-rules.yml index 42be6c88a6e..f780bf2bf67 100644 --- a/examples/bluetooth/.build-test-rules.yml +++ b/examples/bluetooth/.build-test-rules.yml @@ -23,7 +23,7 @@ examples/bluetooth/bluedroid/ble: - if: IDF_TARGET == "esp32s31" temporary: true reason: lack of runners - - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702 + - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner depends_components+: @@ -59,7 +59,7 @@ examples/bluetooth/bluedroid/ble/ble_throughput: - if: IDF_TARGET == "esp32s31" temporary: true reason: lack of runners - - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702 + - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner depends_components+: @@ -78,7 +78,7 @@ examples/bluetooth/bluedroid/ble_50: - if: IDF_TARGET == "esp32s31" temporary: true reason: lack of runners - - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702 + - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner depends_components+: @@ -393,7 +393,7 @@ examples/bluetooth/nimble/blecent: - if: IDF_TARGET == "esp32s31" temporary: true reason: lack of runners - - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702 + - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner depends_components+: @@ -442,7 +442,7 @@ examples/bluetooth/nimble/power_save: - if: IDF_TARGET == "esp32s31" temporary: true reason: lack of runners, and light sleep not supported yet - - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702 + - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner depends_components+: diff --git a/examples/peripherals/.build-test-rules.yml b/examples/peripherals/.build-test-rules.yml index c508cf29594..8160ca6bd6c 100644 --- a/examples/peripherals/.build-test-rules.yml +++ b/examples/peripherals/.build-test-rules.yml @@ -790,9 +790,9 @@ examples/peripherals/uart/uart_dma_ota: - if: IDF_TARGET in ["esp32s31"] temporary: true reason: Lack runners - - if: IDF_TARGET in ["esp32h4"] # TODO: IDFCI-10702 + - if: IDF_TARGET in ["esp32h4"] # TODO: IDFCI-10703 temporary: true - reason: lack of runner + reason: lack of usj runner depends_components: - esp_driver_uart - esp_driver_dma