"ipmi_kcs3" name is not respected by default "channel_config.json" file

Konstantin Aladyshev aladyshev22 at gmail.com
Sat Oct 24 10:32:46 AEDT 2020


The current code in kcsbridged creates a Dbus object
"xyz.openbmc_project.Ipmi.Channel.ipmi_kcs3". And this name can't be
handled in ipmid with the default "channel_config.json" file.
Look at the code from the
https://github.com/openbmc/phosphor-host-ipmid/blob/master/user_channel/channel_mgmt.cpp
:

int ChannelConfig::convertToChannelNumberFromChannelName(
    const std::string& chName)
{
    for (const auto& it : channelData)
    {
        if (it.chName == chName)
        {
            return it.chID;
        }
    }

This code compares "ipmi_kcs3" string to every channel name in the
"channel_config.json" file. And by default the channel for the kcs
interface is named 'SMS' in this file, so there would'n be any match
(https://github.com/openbmc/meta-phosphor/blob/master/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json).
To use KCS interface I had to change the name for the channel 15 to
"ipmi_kcs3" like this:
  "15" : {
    "name" : "ipmi_kcs3",
    "is_valid" : true,
    "active_sessions" : 0,
    "channel_info" : {
      "medium_type" : "system-interface",
      "protocol_type" : "kcs",
      "session_supported" : "session-less",
      "is_ipmi" : true
    }

Is the override for 'channel_config.json' a correct solution, or it
should be dealt in another way?
Does any board have a working KCS interface? How does others deal with
this situation?

Best regards,
Konstantin Aladyshev


More information about the openbmc mailing list