[Skiboot] [PATCH 0/6] Add and integrate an IPMI flash implmementation

Andrew Jeffery andrew at aj.id.au
Thu Sep 20 23:38:50 AEST 2018


This is a follow-up to the RFC series I sent out earlier[1], addressing the
issues that I outlined in the cover letter and Stewart's comments.

In summary the series provides an alternative implementation of the "MBOX"
protocol, where it instead routes the messages over the IPMI BT interface. As
the AST LPC mailbox is no-longer involved "MBOX" is now a poor name, so it has
been renamed to the "Host I/O Mapping" (hiomap) protocol (with some potential
to manage more than just the LPC FW space / flash access).

The series has been tested on a Witherspoon system using both the IPMI and MBOX
transports (i.e. it correctly falls-back to MBOX when the IPMI command is

Please review!


Since the RFC:

* Check for duplicate SEL command registrations
* Consolidated the 'read' and 'write' struct lpc_window members in the
  ipmi-hiomap context struct
* Clarified and fixed the locking
* Sequence number verification
* Clean up command data packing
* Add tests to ensure we're reading inside window bounds

[1] https://lists.ozlabs.org/pipermail/skiboot/2018-September/012192.html

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-hiomap
  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        | 118 ++++--
 include/ast.h             |   4 +-
 include/hiomap.h          |  66 +++
 include/ipmi.h            |   5 +
 include/lpc-mbox.h        |  35 +-
 include/platform.h        |   1 +
 libflash/Makefile.inc     |   2 +-
 libflash/ipmi-hiomap.c    | 852 ++++++++++++++++++++++++++++++++++++++
 libflash/ipmi-hiomap.h    |  28 ++
 platforms/astbmc/common.c |   9 +-
 platforms/astbmc/pnor.c   |  42 +-
 14 files changed, 1122 insertions(+), 71 deletions(-)
 create mode 100644 include/hiomap.h
 create mode 100644 libflash/ipmi-hiomap.c
 create mode 100644 libflash/ipmi-hiomap.h


More information about the Skiboot mailing list