1description: >
2    Implement the watchdog function.
3
4methods:
5    - name: ResetTimeRemaining
6      description: >
7          Resets the time remaining to the configured interval. This is
8          equivalent to reading the Interval and writing it into the
9          TimeRemaining. Optionally the watchdog can be enabled during the reset
10          process.
11      parameters:
12          - name: EnableWatchdog
13            type: boolean
14            description: >
15                If true the watchdog will be enabled when the reset is
16                performed.
17      errors:
18          - xyz.openbmc_project.Common.Error.InternalFailure
19
20properties:
21    - name: Initialized
22      type: boolean
23      description: >
24          Whether the host has configured the watchdog yet.
25      default: false
26    - name: Enabled
27      type: boolean
28      description: >
29          The watchdog is enabled or not.
30      default: false
31    - name: LogTimeout
32      type: boolean
33      description: >
34          This property is used for configuring whether an event will be logged
35          on watchdog expiration.
36      default: true
37    - name: ExpireAction
38      type: enum[self.Action]
39      description: >
40          The action the watchdog should perform when it expires.
41      default: "HardReset"
42    - name: Interval
43      type: uint64
44      description: >
45          Time interval to arm the watchdog, in milli-second.
46      default: 30000
47    - name: TimeRemaining
48      type: uint64
49      description: >
50          Time remaining before timeout, in milli-second. Setting this property
51          can re-arm the watchdog.
52      default: 0
53    - name: CurrentTimerUse
54      type: enum[self.TimerUse]
55      description: >
56          The host defined user of this timer.
57      default: "Reserved"
58    - name: ExpiredTimerUse
59      type: enum[self.TimerUse]
60      description: >
61          The timer user at the time of expiration.
62      default: "Reserved"
63
64enumerations:
65    - name: Action
66      description: >
67          The type of action to perform.
68      values:
69          - name: "None"
70            description: >
71                Do nothing.
72          - name: "HardReset"
73            description: >
74                Perform a reset of the system.
75          - name: "PowerOff"
76            description: >
77                Perform a power off of the system.
78          - name: "PowerCycle"
79            description: >
80                Perform a power cycle of the system.
81
82    - name: TimerUse
83      description: >
84          The type of timer use.
85      values:
86          - name: "Reserved"
87            description: >
88                Reserved.
89          - name: "BIOSFRB2"
90            description: >
91                BIOS FRB2.
92          - name: "BIOSPOST"
93            description: >
94                BIOS POST.
95          - name: "OSLoad"
96            description: >
97                OS Load.
98          - name: SMSOS
99            description: >
100                SMS OS.
101          - name: "OEM"
102            description: >
103                OEM.
104
105signals:
106    - name: Timeout
107      description: >
108          Watchdog timeout event signal
109      properties:
110          - name: Action
111            type: enum[self.Action]
112            description: >
113                The action taken during the watchdog timeout event.
114