# HG changeset patch # User Mychaela Falconia # Date 1558482506 0 # Node ID 3d7b546c710c2768c8e89f36ca0cfeaa0da02e63 # Parent 9fce32cc62201f4a241f2bbb8586afe7ec885b50 target-utils/flash-boot-test: more watchdog experimentation commands diff -r 9fce32cc6220 -r 3d7b546c710c target-utils/flash-boot-test/cmdtab.c --- a/target-utils/flash-boot-test/cmdtab.c Tue May 21 21:25:07 2019 +0000 +++ b/target-utils/flash-boot-test/cmdtab.c Tue May 21 23:48:26 2019 +0000 @@ -11,7 +11,11 @@ extern void cmd_w32(); extern void cmd_memdump_human(); -extern void cmd_watchdog_disable(); + +extern void cmd_wd(); +extern void cmd_we(); +extern void cmd_wr(); +extern void cmd_ww(); extern void abb_init(); extern void abb_power_off(); @@ -29,6 +33,9 @@ {"w8", cmd_w8}, {"w16", cmd_w16}, {"w32", cmd_w32}, - {"wd", cmd_watchdog_disable}, + {"wd", cmd_wd}, + {"we", cmd_we}, + {"wr", cmd_wr}, + {"ww", cmd_ww}, {0, 0} }; diff -r 9fce32cc6220 -r 3d7b546c710c target-utils/flash-boot-test/watchdog.c --- a/target-utils/flash-boot-test/watchdog.c Tue May 21 21:25:07 2019 +0000 +++ b/target-utils/flash-boot-test/watchdog.c Tue May 21 23:48:26 2019 +0000 @@ -1,9 +1,48 @@ +#include #include "types.h" void -cmd_watchdog_disable() +cmd_wd() { /* stop/disable the watchdog timer */ *(volatile u16 *)0xFFFFF804 = 0xF5; *(volatile u16 *)0xFFFFF804 = 0xA0; } + +void +cmd_we() +{ + /* watchdog enable */ + *(volatile u16 *)0xFFFFF804 = 0x8000; +} + +void +cmd_wr() +{ + /* read and display watchdog downcount register */ + printf("%04X\n", *(volatile u16 *)0xFFFFF802); +} + +void +cmd_ww(argbulk) + char *argbulk; +{ + /* single or double write to WATCHDOG_TIM_MODE */ + char *argv[3]; + u_long w1, w2; + + if (parse_args(argbulk, 1, 2, argv, 0) < 0) + return; + if (parse_hexarg(argv[0], 4, &w1) < 0) { + printf("ERROR: arg1 must be a valid 16-bit hex value\n"); + return; + } + if (argv[1] && parse_hexarg(argv[1], 4, &w2) < 0) { + printf("ERROR: arg2 must be a valid 16-bit hex value\n"); + return; + } + /* do it */ + *(volatile u16 *)0xFFFFF804 = w1; + if (argv[1]) + *(volatile u16 *)0xFFFFF804 = w2; +}