BIOS/UEFI host firmware interfaces into OpenBMC (x86)

Jeremy Kerr jk at codeconstruct.com.au
Sun Mar 7 12:31:51 AEDT 2021


Hi Mike,

> We could add the vendor specific support we need into our OpenBMC
> port to handle our UEFI firmware’s POST-time data transfers, but
> would prefer to first understand if there’s an emerging consensus
> on what replaces IPMI over KCS for x86.

We've implemented a PLDM-over-MCTP stack for host-firmware-to-BMC
communication:

 https://github.com/openbmc/docs/blob/master/designs/mctp/mctp.md

for the PLDM specifics:

 https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md


> From what I can tell from reading, the Open Power folks are going
> with PLDM over MCTP over some interface (KCS or BT?) to enable host
> firmware to BMC comms.

This isn't really OpenPOWER-specific; you should be able to do the same
on x86, where just the hardware channel can be platform-specific.

In the implementations I've been working on, the hardware binding is a
hybrid of the KCS channel (for synchronisation) plus the AST2x00
hardware-based LPC memory-map (for the data transfers):

  https://github.com/openbmc/libmctp/blob/master/astlpc.c

- where that same code can be used on both the host-firmware and BMC
sides, and should be fine for x86.

We have a serial MCTP binding implemented too, and there's also some
development happening on an i2c binding, if either of those are a
better fit.

Cheers,


Jeremy



More information about the openbmc mailing list