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