diff --git a/components/esp_system/test_apps/.build-test-rules.yml b/components/esp_system/test_apps/.build-test-rules.yml index 8f79155fb3..1eebf6ca17 100644 --- a/components/esp_system/test_apps/.build-test-rules.yml +++ b/components/esp_system/test_apps/.build-test-rules.yml @@ -3,10 +3,6 @@ components/esp_system/test_apps/esp_system_unity_tests: disable: - if: CONFIG_NAME == "psram" and SOC_SPIRAM_SUPPORTED != 1 - disable_test: - - if: IDF_TARGET == "esp32p4" - temporary: true - reason: test not pass, should be re-enable # TODO: IDF-8978 components/esp_system/test_apps/linux_apis: enable: diff --git a/components/esp_system/test_apps/esp_system_unity_tests/main/test_reset_reason.c b/components/esp_system/test_apps/esp_system_unity_tests/main/test_reset_reason.c index 860b9f8706..396c8dde03 100644 --- a/components/esp_system/test_apps/esp_system_unity_tests/main/test_reset_reason.c +++ b/components/esp_system/test_apps/esp_system_unity_tests/main/test_reset_reason.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -14,6 +14,9 @@ #if CONFIG_IDF_TARGET_ARCH_RISCV #include "riscv/rv_utils.h" #endif +#if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE +#include "hal/cache_ll.h" +#endif #define RTC_BSS_ATTR __attribute__((section(".rtc.bss"))) @@ -131,6 +134,12 @@ static void setup_values(void) s_rtc_force_fast_val = CHECK_VALUE; s_rtc_force_slow_val = CHECK_VALUE; #endif //CHECK_RTC_MEM + +#if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE + /* If internal data is behind a cache it might not be written to the physical memory when we crash + force a full writeback here to ensure this */ + cache_ll_writeback_all(CACHE_LL_LEVEL_INT_MEM, CACHE_TYPE_DATA, CACHE_LL_ID_ALL); +#endif } #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32P4) // TODO IDF-7529 @@ -166,7 +175,7 @@ TEST_CASE_MULTIPLE_STAGES("reset reason ESP_RST_DEEPSLEEP", "[reset_reason][rese static void do_exception(void) { setup_values(); - *(int*) (0x40000001) = 0; + *(int*) (0x0) = 0; } static void do_abort(void) diff --git a/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py b/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py index a0d329287f..a646795589 100644 --- a/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py +++ b/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py @@ -5,14 +5,13 @@ import pytest from pytest_embedded import Dut -@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8978 @pytest.mark.generic @pytest.mark.parametrize( 'config', [ pytest.param('default', marks=[pytest.mark.supported_targets]), pytest.param('pd_vddsdio', marks=[pytest.mark.supported_targets]), - pytest.param('psram', marks=[pytest.mark.esp32, pytest.mark.esp32s2, pytest.mark.esp32s3]), + pytest.param('psram', marks=[pytest.mark.esp32, pytest.mark.esp32s2, pytest.mark.esp32s3, pytest.mark.esp32p4]), pytest.param('single_core_esp32', marks=[pytest.mark.esp32]), ] ) @@ -20,7 +19,6 @@ def test_esp_system(dut: Dut) -> None: dut.run_all_single_board_cases() -@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8978 @pytest.mark.generic @pytest.mark.parametrize( 'config',