comparison target-utils/flash-boot-test/watchdog.c @ 490:3d7b546c710c

target-utils/flash-boot-test: more watchdog experimentation commands
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 21 May 2019 23:48:26 +0000
parents cd900b885eb2
children
comparison
equal deleted inserted replaced
489:9fce32cc6220 490:3d7b546c710c
1 #include <sys/types.h>
1 #include "types.h" 2 #include "types.h"
2 3
3 void 4 void
4 cmd_watchdog_disable() 5 cmd_wd()
5 { 6 {
6 /* stop/disable the watchdog timer */ 7 /* stop/disable the watchdog timer */
7 *(volatile u16 *)0xFFFFF804 = 0xF5; 8 *(volatile u16 *)0xFFFFF804 = 0xF5;
8 *(volatile u16 *)0xFFFFF804 = 0xA0; 9 *(volatile u16 *)0xFFFFF804 = 0xA0;
9 } 10 }
11
12 void
13 cmd_we()
14 {
15 /* watchdog enable */
16 *(volatile u16 *)0xFFFFF804 = 0x8000;
17 }
18
19 void
20 cmd_wr()
21 {
22 /* read and display watchdog downcount register */
23 printf("%04X\n", *(volatile u16 *)0xFFFFF802);
24 }
25
26 void
27 cmd_ww(argbulk)
28 char *argbulk;
29 {
30 /* single or double write to WATCHDOG_TIM_MODE */
31 char *argv[3];
32 u_long w1, w2;
33
34 if (parse_args(argbulk, 1, 2, argv, 0) < 0)
35 return;
36 if (parse_hexarg(argv[0], 4, &w1) < 0) {
37 printf("ERROR: arg1 must be a valid 16-bit hex value\n");
38 return;
39 }
40 if (argv[1] && parse_hexarg(argv[1], 4, &w2) < 0) {
41 printf("ERROR: arg2 must be a valid 16-bit hex value\n");
42 return;
43 }
44 /* do it */
45 *(volatile u16 *)0xFFFFF804 = w1;
46 if (argv[1])
47 *(volatile u16 *)0xFFFFF804 = w2;
48 }