1description: >
2    Implementation of BMC state management.  When rebooting we are in
3    transition.  When Ready all services required are running
4    successfully.  When we are Not Ready this implies not all services have
5    started that are required to be.
6
7properties:
8    - name: RequestedBMCTransition
9      type: enum[self.Transition]
10      default: "None"
11      description: >
12          The desired BMC transition
13
14    - name: CurrentBMCState
15      type: enum[self.BMCState]
16      description: >
17          The current state of the BMC and is a read-only property.
18
19    - name: LastRebootTime
20      type: uint64
21      description: >
22          The last time at which the BMC came out of a reboot as determined by
23          its uptime, in epoch time, in milliseconds.
24
25    - name: LastRebootCause
26      type: enum[self.RebootCause]
27      default: "Unknown"
28      description: >
29          The last BMC reboot cause
30
31enumerations:
32    - name: Transition
33      description: >
34          The desired transition for the BMC firmware
35      values:
36          - name: "Reboot"
37            description: >
38                BMC system should be rebooted
39          - name: "HardReboot"
40            description: >
41                BMC system should be non-gracefully rebooted.
42          - name: "None"
43            description: >
44                No transition is in progress
45
46    - name: BMCState
47      description: >
48          The current state of the BMC firmware
49      values:
50          - name: "Ready"
51            description: >
52                Ready implies all services started and are running successfully
53          - name: "NotReady"
54            description: >
55                Not ready implies not all services have started or are not
56                running successfully
57          - name: "UpdateInProgress"
58            description: >
59                UpdateInProgress implies BMC is in firmware update mode.
60                CurrentBMCState will be set to "UpdateInProgress" while starting
61                image download and reset to Ready, once activation is done or
62                error case during update process.
63          - name: "Quiesced"
64            description: >
65                BMC firmware is quiesced. The BMC firmware is enabled but either
66                unresponsive or only processing a restricted set of commands.
67                This state may be the result of a service within the BMC going
68                into a failed state.
69
70    - name: RebootCause
71      description: >
72          The recorded reboot cause of the BMC
73      values:
74          - name: "POR"
75            description: >
76                Last reboot is caused by Power-On-Reset
77          - name: "PinholeReset"
78            description: >
79                Last reboot is caused by pinhole reset
80          - name: "Watchdog"
81            description: >
82                Last reboot is caused by Watchdog
83          - name: "Unknown"
84            description: >
85                Last reboot is caused by Unknown
86
87paths:
88    - namespace: /xyz/openbmc_project/state
89      segments:
90          - name: BMC
91            description: >
92                The object representing _this_ BMC is always at bmc0.
93            value: bmc0
94