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.