blob: bbb390a75f8f0a9feb5be8a948ef3b73f302d51b [file] [log] [blame]
OPAL <--> BMC interactions
==========================
This document provides information about some of the user-visible interactions
that skiboot performs with the BMC.
IPMI sensors
------------
OPAL will interact with a few IPMI sensors during the boot process. These
are:
* Boot Count [type 0xc3: OEM reserved]
* FW Boot progress [type 0x0f: System Firmware Progress]
Boot Count: assertion type. When OPAL reaches a late stage of boot, it sets the
boot count sensor to 0x02. This is intended to allow the BMC detect a failed
or aborted boot, for switching to a known-good firmware image.
FW Boot Progress: assertion type. During boot, skiboot will update this sensor
to one of the IPMI-defined progress codes. The codes use by skiboot are:
* PCI Resource configuration (0x01)
* asserted as the PCI devices have been probed and resources allocated
* Motherboard init (0x14)
* asserted as the platform-specific components have been initialised
* OS boot (0x13)
* asserted after skiboot has loaded the PAYLOAD image, and is about to
boot it.
Chassis control messages
------------------------
OPAL uses chassis control messages to instruct the BMC to remove power from
the host. These messages are sent during graceful reboot and shutdown processes
initiated by the host.
For a BMC-initiated graceful power-down (or reboot), the BMC is expected to send
an OEM-defined SEL message, using a SMS_ATN to trigger a BMC-to-host
notification. This SEL has a type of 0xc0, and command of 0x04. The data0 field
of the SEL indicates shutdown (0x0) or reboot (0x1).
Watchdog support
----------------
OPAL supports a BMC watchdog during the boot process. This will be disabled
before entering the OS.
Real-time clock
---------------
On platforms where a real-time-clock is not available, skiboot may use the
IPMI SEL Time as a real-time-clock device.