9 #include "sw/device/lib/testing/aon_timer_testutils.h"
10 #include "sw/device/lib/testing/clkmgr_testutils.h"
11 #include "sw/device/lib/testing/pwrmgr_testutils.h"
12 #include "sw/device/lib/testing/sensor_ctrl_testutils.h"
13 #include "sw/device/lib/testing/test_framework/check.h"
18 OTTF_DEFINE_TEST_CONFIG();
47 kMeasurementsPerRound = 100,
50 static dif_clkmgr_t clkmgr;
51 static dif_pwrmgr_t pwrmgr;
55 static void test_clock_frequencies_with_jitter_enabled(uint32_t delay_micros) {
56 LOG_INFO(
"Testing frequencies with jitter enabled");
57 CHECK_STATUS_OK(clkmgr_testutils_enable_clock_counts_with_expected_thresholds(
62 CHECK_STATUS_OK(clkmgr_testutils_check_measurement_counts(&clkmgr));
63 CHECK_STATUS_OK(clkmgr_testutils_disable_clock_counts(&clkmgr));
67 clkmgr_testutils_enable_clock_counts_with_expected_thresholds(
68 &clkmgr,
false,
false,
73 CHECK(err_codes != 0);
75 CHECK_STATUS_OK(clkmgr_testutils_disable_clock_counts(&clkmgr));
78 LOG_INFO(
"Testing with jitter enabled but no-jitter thresholds %s",
79 "is not viable for FPGAs");
83 static void test_clock_frequencies_with_jitter_disabled(uint32_t delay_micros) {
84 LOG_INFO(
"Testing frequencies with jitter disabled");
85 CHECK_STATUS_OK(clkmgr_testutils_enable_clock_counts_with_expected_thresholds(
86 &clkmgr,
false,
false,
90 CHECK_STATUS_OK(clkmgr_testutils_check_measurement_counts(&clkmgr));
91 CHECK_STATUS_OK(clkmgr_testutils_disable_clock_counts(&clkmgr));
93 CHECK_STATUS_OK(clkmgr_testutils_enable_clock_counts_with_expected_thresholds(
97 LOG_INFO(
"Checking measurement counts");
98 CHECK_STATUS_OK(clkmgr_testutils_check_measurement_counts(&clkmgr));
102 dif_sensor_ctrl_t sensor_ctrl;
104 uint32_t delay_micros = 0;
105 CHECK_STATUS_OK(aon_timer_testutils_get_us_from_aon_cycles(
106 kMeasurementsPerRound, &delay_micros));
108 CHECK_DIF_OK(dif_clkmgr_init(
110 CHECK_DIF_OK(dif_sensor_ctrl_init(
113 CHECK_DIF_OK(dif_pwrmgr_init(
116 LOG_INFO(
"TEST: wait for ast init");
117 IBEX_SPIN_FOR(sensor_ctrl_ast_init_done(&sensor_ctrl), 1000);
120 CHECK(UNWRAP(pwrmgr_testutils_is_wakeup_reason(&pwrmgr, 0)) ==
true);
128 test_clock_frequencies_with_jitter_enabled(delay_micros);
130 test_clock_frequencies_with_jitter_disabled(delay_micros);
134 test_clock_frequencies_with_jitter_enabled(delay_micros);
136 test_clock_frequencies_with_jitter_disabled(delay_micros);