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.

Add initial BMC interactions document
doc: Add initial BMC interactions document

This change adds a minimal document to describe some of the OPAL <-->
BMC interactions supported by skiboot.

Signed-off-by: Jeremy Kerr <68a658b44bbaefab3ef5cd231967195fc0ff9d69@ozlabs.org>
Reviewed-by: Joel Stanley <4816dabf8db1bc6cac35b3a24cab2ff844b5b0c7@jms.id.au>
Signed-off-by: Stewart Smith <ec31ab75ddf977353c8f660f92ea8b23f64aef25@linux.vnet.ibm.com>
