diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.c index 804bd203b0..387cf811bc 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.c @@ -18,7 +18,7 @@ #include "sd_pwr_ctrl.h" #include "sd_pwr_ctrl_by_on_chip_ldo.h" -void sdmmc_test_sd_skip_if_board_incompatible(int slot, int width, int freq_khz, int ddr) +void sdmmc_test_sd_skip_if_board_incompatible(int slot, int width, int freq_khz, int ddr, int is_emmc) { sdmmc_host_t config = SDMMC_HOST_DEFAULT(); sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT(); @@ -26,6 +26,13 @@ void sdmmc_test_sd_skip_if_board_incompatible(int slot, int width, int freq_khz, if (!sdmmc_test_board_has_slot(slot)) { TEST_IGNORE_MESSAGE("Board doesn't have the required slot"); } + + if (is_emmc) { + if (!sdmmc_test_board_slot_is_emmc(slot)) { + TEST_IGNORE_MESSAGE("Board doesn't have the emmc card inserted"); + } + } + sdmmc_test_board_get_config_sdmmc(slot, &config, &slot_config); int board_max_freq_khz = sdmmc_test_board_get_slot_info(slot)->max_freq_khz; diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.h b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.h index 1120781185..42d02494af 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.h +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_begin_end_sd.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,8 @@ extern "C" { #define SLOT_1 1 #define NO_DDR 0 #define WITH_DDR 1 +#define NO_EMMC 0 +#define IS_EMMC 1 /* Helper functions to initialize/deinintalize the host (SDMMC/SDSPI) inside the test */ @@ -28,8 +30,9 @@ extern "C" { * @param width Slot width (1, 4 or 8) * @param freq_khz Bus frequency in kHz * @param ddr Whether to use DDR mode (NO_DDR or WITH_DDR) + * @param is_emmc Is emmc or not */ -void sdmmc_test_sd_skip_if_board_incompatible(int slot, int width, int freq_khz, int ddr); +void sdmmc_test_sd_skip_if_board_incompatible(int slot, int width, int freq_khz, int ddr, int is_emmc); /** * @brief Helper function to initialize the SDMMC host and slot for the test using the given settings diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_cd_wp_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_cd_wp_sd.c index 80e9e01730..fcd1dcb788 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_cd_wp_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_cd_wp_sd.c @@ -8,6 +8,7 @@ #include "sdmmc_cmd.h" #include "driver/sdmmc_host.h" #include "sdmmc_test_cd_wp_common.h" +#include "sdmmc_test_begin_end_sd.h" #include "sdmmc_test_board.h" #include "sd_pwr_ctrl.h" #include "sd_pwr_ctrl_by_on_chip_ldo.h" @@ -16,6 +17,7 @@ TEST_CASE("CD input works in SD mode", "[sdmmc]") { sdmmc_host_t config = SDMMC_HOST_DEFAULT(); sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT(); + sdmmc_test_sd_skip_if_board_incompatible(SDMMC_HOST_SLOT_1, 0, SDMMC_FREQ_PROBING, NO_DDR, NO_EMMC); sdmmc_test_board_get_config_sdmmc(SDMMC_HOST_SLOT_1, &config, &slot_config); const int test_gpio = sdmmc_test_board_get_slot_info(SDMMC_HOST_SLOT_1)->unused_pin; slot_config.gpio_cd = test_gpio; @@ -48,6 +50,7 @@ TEST_CASE("WP input works in SD mode", "[sdmmc]") sdmmc_test_board_card_power_set(true); sdmmc_host_t config = SDMMC_HOST_DEFAULT(); sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT(); + sdmmc_test_sd_skip_if_board_incompatible(SDMMC_HOST_SLOT_1, 0, SDMMC_FREQ_PROBING, NO_DDR, NO_EMMC); sdmmc_test_board_get_config_sdmmc(SDMMC_HOST_SLOT_1, &config, &slot_config); const int test_gpio = sdmmc_test_board_get_slot_info(SDMMC_HOST_SLOT_1)->unused_pin; slot_config.gpio_wp = test_gpio; diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_discard_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_discard_sd.c index b0211b73d9..392c8cec04 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_discard_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_discard_sd.c @@ -43,7 +43,7 @@ static void test_discard_blocks(sdmmc_card_t* card, int slot) static void do_one_mmc_discard_test(int slot, int width, int freq_khz, int ddr) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, IS_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); test_discard_blocks(&card, slot); diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_erase_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_erase_sd.c index 9212c61a8c..9a40351d82 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_erase_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_erase_sd.c @@ -15,7 +15,7 @@ static void do_one_sdmmc_erase_test(int slot, int width, int freq_khz, int ddr) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, NO_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); sdmmc_test_sd_erase_blocks(&card); diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_probe_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_probe_sd.c index ce4ab53fc4..f10d8d68a4 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_probe_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_probe_sd.c @@ -13,7 +13,7 @@ static void do_one_sdmmc_probe_test(int slot, int width, int freq_khz, int ddr) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, NO_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); uint8_t* buffer = heap_caps_calloc(512, 1, MALLOC_CAP_DMA); diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_rw_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_rw_sd.c index 942bae84b7..3a07056213 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_rw_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_rw_sd.c @@ -15,7 +15,7 @@ static void do_one_sdmmc_perf_test(int slot, int width, int freq_khz, int ddr, FILE* perf_log) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, NO_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); sdmmc_test_rw_performance(&card, perf_log); @@ -68,7 +68,7 @@ TEST_CASE("sdmmc read/write performance, slot 1, 4-bit DDR", "[sdmmc]") static void do_one_sdmmc_rw_test_with_offset(int slot, int width, int freq_khz, int ddr) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, NO_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); sdmmc_test_rw_with_offset(&card); @@ -90,7 +90,7 @@ TEST_CASE("sdmmc read/write performance with offset, slot 1, 4-bit", "[sdmmc]") static void do_one_sdmmc_rw_test_unaligned_buffer(int slot, int width, int freq_khz, int ddr) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, NO_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); sdmmc_test_rw_unaligned_buffer(&card); diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_sanitize_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_sanitize_sd.c index 4fc434fbb5..45492e76b7 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_sanitize_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_sanitize_sd.c @@ -35,7 +35,7 @@ static void test_mmc_sanitize_blocks(sdmmc_card_t* card) static void do_one_mmc_sanitize_test(int slot, int width, int freq_khz, int ddr) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, IS_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); test_mmc_sanitize_blocks(&card); diff --git a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_trim_sd.c b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_trim_sd.c index 8f277b8066..6a02d8bc63 100644 --- a/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_trim_sd.c +++ b/components/esp_driver_sdmmc/test_apps/sdmmc/components/sdmmc_tests/sdmmc_test_trim_sd.c @@ -33,7 +33,7 @@ static void test_mmc_trim_blocks(sdmmc_card_t* card) static void do_one_mmc_trim_test(int slot, int width, int freq_khz, int ddr) { sdmmc_card_t card; - sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr); + sdmmc_test_sd_skip_if_board_incompatible(slot, width, freq_khz, ddr, IS_EMMC); sdmmc_test_sd_begin(slot, width, freq_khz, ddr, &card); sdmmc_card_print_info(stdout, &card); test_mmc_trim_blocks(&card);