blob: ba5f18e969e0364bba3e6d9cb6b85a3307831b94 [file] [log] [blame]
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2022 Intel Corporation
mainmenu "Timer Behavior Test"
config SYS_CLOCK_TICKS_PER_SEC
default 8192 if NRF_RTC_TIMER && TICKLESS_KERNEL
source "Kconfig.zephyr"
config TIMER_TEST_SAMPLES
int "The number of timer samples to gather for statistics"
default 1000 if (SRAM_SIZE < 24)
default 2000 if (SRAM_SIZE < 32)
default 3000 if (SRAM_SIZE < 48)
default 5000 if (SRAM_SIZE < 64)
default 7000 if (SRAM_SIZE < 96)
default 10000
config TIMER_TEST_PERIOD
int "The number of microseconds to for the timer period"
default 1000
config TIMER_TEST_MAX_STDDEV
int "Maximum standard deviation in microseconds allowed"
default 33 if NPCX_ITIM_TIMER
default 10
config TIMER_TEST_MAX_DRIFT
int "Maximum drift in microseconds allowed (should be about 1 period allowance)"
default 1000
config TIMER_TEST_PERIOD_MAX_DRIFT_PERCENT
int "Maximum drift percentage for the timer period"
# Use 13% on nRF platforms using the RTC timer because one tick there is
# ~122 us (see SYS_CLOCK_TICKS_PER_SEC configuration above) and one tick
# difference in the test period is nothing unusual (it can happen for
# example if a new tick elapses right after the kernel gets the number
# of elapsed ticks when scheduling a new timeout but before the timer
# driver sets up that timeout).
default 13 if NRF_RTC_TIMER && TICKLESS_KERNEL
default 10
help
A value of 10 means 10%.
config TIMER_EXTERNAL_TEST
bool "Perform test using an external tool"
help
Toggles a GPIO pin, on every period, that can be used by an external
tool (such as a logic analyzer) to gather timing data. A pytest harness
is used to get the data collected by the tool and evaluate it.
if TIMER_EXTERNAL_TEST
config TIMER_EXTERNAL_TEST_MAX_DRIFT_PPM
int "Maximum drift in PPM for tests using external tool"
default 4500
help
Parts Per Million of allowed drift when using an external tool
connected to a GPIO pin is used to measure time behaviour.
config TIMER_EXTERNAL_TEST_PERIOD_MAX_DRIFT_PPM
int "Maximum timer period drift in PPM for tests using external tool"
default 100000
help
Parts Per Million of allowed period drift when using an external tool
connected to a GPIO pin is used to measure time behaviour.
config TIMER_EXTERNAL_TEST_SYNC_DELAY
int "Delay, in seconds, between tests, so that external tool can be ready"
default 3
endif # TIMER_EXTERNAL_TEST