[Skiboot] [RFC PATCH 0/6] Add and integrate an ipmi-flash implmementation
andrew at aj.id.au
Thu Sep 6 16:40:09 AEST 2018
This is an RFC series hacking and slashing our way to using IPMI as a transport
for the protocol formerly known as "mbox". The bikeshed^Wprotocol has been
tentatively renamed to the "hiomap" protocol ("Host I/O Map").
Along the way several changes were required to some core parts of skiboot,
including SEL handler registration, and some deadlock avoidance in core/flash
while we are in polling mode during initialisation.
For the moment pnor_init() is implemented such that it will prefer ipmi-flash,
but fall back to mbox-flash if the appropriate IPMI command isn't available.
This has been tested on a Witherspoon system with a swathe of BMC patches
(below) and some yet-to-be published Hostboot changes.
openpower-host-ipmi-flash plugin for phosphor-host-ipmid:
Changes to the reference implementation of the protocol formerly known as mbox:
Still to do:
* Remove the separate 'read' and 'write' struct lpc_window members from the
ipmi-flash context struct, there isn't a need for them to be independent but
I stole that part of the design from mbox-flash
* Clean up the devicetree (replace the "mbox" property or add and test for
"hiomap" as well?)
* Deal with some concurrency issues around events that reset the window state.
I've sent this out now as an RFC in-case people find bigger fish to fry than
what's on the todo list. Please review!
Andrew Jeffery (6):
ipmi: Introduce registration for SEL command handlers
core/lock: Use try_lock_caller() in lock_caller() to capture owner
core/flash: Only lock around flashes update in flash_register()
core/flash: Unlock around blocklevel calls in NVRAM accessors
libflash: Add ipmi-flash implementation
astbmc: Prefer ipmi-flash for PNOR access
core/flash.c | 19 +-
core/lock.c | 2 +-
hw/ast-bmc/ast-io.c | 10 +-
hw/ipmi/ipmi-sel.c | 110 ++++--
include/ast.h | 11 +-
include/ipmi.h | 5 +
include/platform.h | 1 +
libflash/Makefile.inc | 2 +-
libflash/ipmi-flash.c | 792 ++++++++++++++++++++++++++++++++++++++
libflash/ipmi-flash.h | 29 ++
platforms/astbmc/common.c | 9 +-
platforms/astbmc/pnor.c | 35 +-
12 files changed, 971 insertions(+), 54 deletions(-)
create mode 100644 libflash/ipmi-flash.c
create mode 100644 libflash/ipmi-flash.h
More information about the Skiboot