Lines Matching full:host
1 # BMC Reset with Host Booted
13 host is up and running, there needs to be a process by which the two synchronize
14 with each other and the BMC gets itself into a state that matches with the host.
21 dealing with both IPMI and PLDM communication to the host as well as desired
22 behavior when unable to talk with the host.
25 it then checks the host to see if it is up and alive. If the power is on and the
26 host is running, then files are created in the filesystem to indicate this:
29 - /run/openbmc/host@0-on
32 and multi-host systems, the framework is there to build on.
36 implementation is done for the host via `phosphor-reset-host-check@.service` and
37 the file /run/openbmc/host@%i-on.
39 If chassis power is on and the host is up, then `obmc-chassis-poweron@.target`
40 and `obmc-host-start@.target` are started.
43 not when the chassis and host targets are started. For example, if the chassis
44 is already powered on and the host is running, there is no need to actually turn
45 power on, or start the host. The behavior wanted is that these services "start"
50 - `ConditionPathExists=!/run/openbmc/host@%i-on`
53 of the chassis and host without any special software checks.
56 when the chassis power is on, but the host is unreachable. This design needs to
59 systems want to recover automatically (i.e. reboot the host) for the user. Some
60 systems have a hybrid approach where depending on where the host was in its
65 - Support both IPMI and PLDM as mechanisms to determine if the host is running.
68 communicate with the host
69 - Both IPMI and PLDM stacks will give the host a set amount of time to respond.
76 determine if the host is running.
80 - IPMI will continue to utilize the SMS_ATN command to indicate to the host that
81 a "Get Message Flags Command" is requested. Upon the host issuing that
86 - PLDM will utilize a GetTID command to the host to determine if it is running
88 different host firmware stacks
89 - For example, on IBM systems there is a difference between the hostboot (host
90 initialization) firmware and Hypervisor firmware stacks. Both are host
103 that a host is running then create file and start host target.
104 - Otherwise, check host via any custom mechanisms
105 - Execute automated recovery of host if desired
110 discover if the host is running. Based on the response from these queries the
112 the /run files and starting the chassis and host targets or entering into
113 recovery of the host.
120 - `obmc-host-reset@.target.requires`
122 ### Automated Recovery when host does not respond
126 host has failed to respond to any of the different mechanisms to communicate
130 - And host is off (!ConditionPathExists=!/run/openbmc/host@%i-on)
132 - Then (assume host was booting before BMC reboot)
134 - Move host to Quiesce and allow automated recovery to kick in
141 If the chassis power is on but the BMC is unable to communicate with the host
144 The Host code will write `0xA5000001` to this register to indicate when it has
147 the host as-is, even if it is unable to communicate with the host over IPMI or
148 PLDM. It will log an error indicating it was unable to communicate with the host
149 but it will also show the host state as `Running`.
152 mechanisms are defined for when the host has a failure (most likely a reboot of
153 the host).
155 It is the responsibility of the host firmware to set this register as applicable
156 during the boot of the system. Host firmware will clear this register in
157 shutdown scenarios. To handle different host crash scenarios, the register will
168 own custom host-detection applications in.
177 reboot the BMC. Verify the BMC chassis and host states are correct and verify
178 the host continued to run without issue throughout the BMC reset.
182 - Reboot the BMC while the host is booting, but before it's in a state where it
185 actions for the host.
186 - Reboot the BMC when the host is up and running but disable the IPMI/PLDM stack
187 on the host so it does not respond to the BMC when it comes back from its
192 https://github.com/openbmc/phosphor-state-manager#bmc-reset-with-host-andor-chassis-on