[PATCH linux dev-5.10 0/7] Rework use of KCS devices for P10 platforms

Andrew Jeffery andrew at aj.id.au
Fri Jun 18 13:58:51 AEST 2021


This is a bit of a cleanup series mostly specific to the OpenBMC kernel
tree, though there are some exceptions which I'll get to in a moment.

Firstly, v4 of the KCS series has been applied upstream by Corey, and this has
been backported by Joel into dev-5.10. There was a fix sent by Colin for a
signedness issue that was discovered, which is patch 1 in this series.

Patch 2 adds a raw KCS driver that was one of the original motivations for the
upstream series. This raw driver replaces the hacky mctp-lpc driver we've been
carrying in the OpenBMC tree. The mctp-lpc driver only worked with one of the
Aspeed BMC KCS devices and didn't integrate at all with the existing kcs_bmc
framework; the raw KCS driver fixes that by working with any of the KCS devices
on either the Aspeed or Nuvoton SoCs. For IBM's purposes, this allows us to
migrate the MCTP LPC binding between KCS devices on the Aspeed SoCs.

The raw KCS driver is a stopgap solution until we have Jeremy's in-kernel,
socket-based MCTP work merged, at which point we'll migrate the LPC MCTP binding
implementation into the kernel and drop the raw KCS driver altogether. Its
temporary nature is why I didn't push on getting it merged upstream.

>From there we clean up the Rainier devicetree by removing the hacky
openbmc,mctp-lpc compatible node and replace it with the standard KCS 4 node
from aspeed-g6.dtsi in patch 4. Once that's removed, we drop the obsolete driver
in patch 5.

>From there it's a clear run to switch the KCS device we use for MCTP from
channel 4 to channel 3 in patch 6 to avoid some conflicts with the reset state
of the status bits, and finally enable KCS channel 2 on Rainier which we're
using for the debug-trigger application.

Shortly I'll send upstream the patches to enable KCS channels 2 and 3 for

Please review!


Andrew Jeffery (6):
  ipmi: kcs_bmc: Add a "raw" character device interface
  ARM: configs: Enable IPMI KCS raw chardev
  ARM: dts: rainier: Drop the openbmc,mctp-lpc node
  misc: Remove obsolete mctp-lpc chardev
  ARM: dts: rainier: Switch to KCS 3 for MCTP binding
  ARM: dts: rainier: Enable KCS channel 2

Colin Ian King (1):
  ipmi: kcs_bmc_aspeed: Fix less than zero comparison of a unsigned int

 Documentation/ABI/testing/dev-raw-kcs        |  25 ++
 arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts |  16 +-
 arch/arm/configs/aspeed_g5_defconfig         |   2 +-
 drivers/char/ipmi/Kconfig                    |  17 +
 drivers/char/ipmi/Makefile                   |   1 +
 drivers/char/ipmi/kcs_bmc_aspeed.c           |   8 +-
 drivers/char/ipmi/kcs_bmc_cdev_raw.c         | 441 ++++++++++++++++++
 drivers/misc/Kconfig                         |   7 -
 drivers/misc/Makefile                        |   1 -
 drivers/misc/mctp-lpc.c                      | 443 -------------------
 10 files changed, 501 insertions(+), 460 deletions(-)
 create mode 100644 Documentation/ABI/testing/dev-raw-kcs
 create mode 100644 drivers/char/ipmi/kcs_bmc_cdev_raw.c
 delete mode 100644 drivers/misc/mctp-lpc.c


More information about the openbmc mailing list