aboutsummaryrefslogtreecommitdiff
path: root/configs/sandbox_defconfig
diff options
context:
space:
mode:
authorRasmus Villemoes2022-09-27 11:54:04 +0200
committerStefan Roese2022-10-24 11:10:21 +0200
commit10107efedd5ffe68b36a7d79bd561ee966cbb2f8 (patch)
tree28447d0025e3208adffdc591953ffcc45d9e7262 /configs/sandbox_defconfig
parent27836705839c4751ac28239ee6fa1f3984e46d4d (diff)
sandbox: add SIGALRM-based watchdog device
In order to test that U-Boot actually maintains the watchdog device(s) during long-running busy-loops, such as those where we wait for the user to stop autoboot, we need a watchdog device that actually does something during those loops; we cannot test that behaviour via the DM test framework. So introduce a relatively simple watchdog device which is simply based on calling the host OS' alarm() function; that has the nice property that a new call to alarm() simply sets a new deadline, and alarm(0) cancels any existing alarm. These properties are precisely what we need to implement start/reset/stop. We install our own handler so that we get a known message printed if and when the watchdog fires, and by just invoking that handler directly, we get expire_now for free. The actual calls to the various OS functions (alarm, signal, raise) need to be done in os.c, and since the driver code cannot get access to the values of SIGALRM or SIG_DFL (that would require including a host header, and that's only os.c which can do that), we cannot simply do trivial wrappers for signal() and raise(), but instead create specialized functions just for use by this driver. Apart from enabling this driver for sandbox{,64}_defconfig, also enable the wdt command which was useful for hand-testing this new driver (especially with running u-boot under strace). Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Diffstat (limited to 'configs/sandbox_defconfig')
-rw-r--r--configs/sandbox_defconfig2
1 files changed, 2 insertions, 0 deletions
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index e18e666f126..34e90674eec 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -80,6 +80,7 @@ CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_SPI=y
CONFIG_CMD_TEMPERATURE=y
CONFIG_CMD_USB=y
+CONFIG_CMD_WDT=y
CONFIG_CMD_AXI=y
CONFIG_CMD_CAT=y
CONFIG_CMD_SETEXPR_FMT=y
@@ -314,6 +315,7 @@ CONFIG_W1_EEPROM_SANDBOX=y
CONFIG_WDT=y
CONFIG_WDT_GPIO=y
CONFIG_WDT_SANDBOX=y
+CONFIG_WDT_ALARM_SANDBOX=y
CONFIG_FS_CBFS=y
CONFIG_FS_CRAMFS=y
CONFIG_ADDR_MAP=y