diff options
author | Jason M. Bills <jason.m.bills@linux.intel.com> | 2019-10-23 00:01:54 +0300 |
---|---|---|
committer | Jason M. Bills <jason.m.bills@linux.intel.com> | 2019-10-23 00:48:48 +0300 |
commit | 456380bb272d3a301c887eee513a3937cc1f48e1 (patch) | |
tree | 124399167d539582befbe35ad28377eaea6cc8bc /meta-openbmc-mods/meta-common/recipes-phosphor/ipmi | |
parent | 9722c6ee87766a45a337c094d1293de81cdcb106 (diff) | |
download | openbmc-456380bb272d3a301c887eee513a3937cc1f48e1.tar.xz |
Update to internal 10-22-19
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor/ipmi')
11 files changed, 372 insertions, 446 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json index 92731f439..dc9c2ce20 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json @@ -44,12 +44,12 @@ } }, "4" : { - "name" : "EMP", + "name" : "RESERVED", "is_valid" : true, "active_sessions" : 0, "channel_info" : { - "medium_type" : "ipmb", - "protocol_type" : "ipmb-1.0", + "medium_type" : "reserved", + "protocol_type" : "na", "session_supported" : "session-less", "is_ipmi" : true } diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0009-IPv6-Network-changes.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0009-IPv6-Network-changes.patch index b54b22213..c862a306a 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0009-IPv6-Network-changes.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0009-IPv6-Network-changes.patch @@ -17,11 +17,11 @@ Change-Id: If5528d3b7294c5f8c17db5919439235d0fad0446 transporthandler.hpp | 50 +++ 4 files changed, 713 insertions(+), 1 deletion(-) -diff --git a/include/ipmid/types.hpp b/include/ipmid/types.hpp -index 57c5873..c06fd8c 100644 ---- a/include/ipmid/types.hpp -+++ b/include/ipmid/types.hpp -@@ -224,6 +224,7 @@ constexpr auto ADDR_TYPE_FORMAT = "%hhx"; +Index: phosphor-host-ipmid.clean/include/ipmid/types.hpp +=================================================================== +--- phosphor-host-ipmid.clean.orig/include/ipmid/types.hpp ++++ phosphor-host-ipmid.clean/include/ipmid/types.hpp +@@ -224,6 +224,7 @@ constexpr auto ADDR_TYPE_FORMAT = "%hhx" constexpr auto IPV4_ADDRESS_SIZE_BYTE = 4; constexpr auto IPV6_ADDRESS_SIZE_BYTE = 16; @@ -50,10 +50,10 @@ index 57c5873..c06fd8c 100644 + } // namespace network } // namespace ipmi -diff --git a/include/ipmid/utils.hpp b/include/ipmid/utils.hpp -index 9ef1488..8b91b12 100644 ---- a/include/ipmid/utils.hpp -+++ b/include/ipmid/utils.hpp +Index: phosphor-host-ipmid.clean/include/ipmid/utils.hpp +=================================================================== +--- phosphor-host-ipmid.clean.orig/include/ipmid/utils.hpp ++++ phosphor-host-ipmid.clean/include/ipmid/utils.hpp @@ -256,6 +256,7 @@ namespace network constexpr auto ROOT = "/xyz/openbmc_project/network"; constexpr auto SERVICE = "xyz.openbmc_project.Network"; @@ -62,11 +62,11 @@ index 9ef1488..8b91b12 100644 constexpr auto IPV4_PREFIX = "169.254"; constexpr auto IPV6_PREFIX = "fe80"; constexpr auto IP_INTERFACE = "xyz.openbmc_project.Network.IP"; -diff --git a/transporthandler.cpp b/transporthandler.cpp -index 8172cc4..12d224a 100644 ---- a/transporthandler.cpp -+++ b/transporthandler.cpp -@@ -30,6 +30,12 @@ std::unique_ptr<phosphor::Timer> networkTimer = nullptr; +Index: phosphor-host-ipmid.clean/transporthandler.cpp +=================================================================== +--- phosphor-host-ipmid.clean.orig/transporthandler.cpp ++++ phosphor-host-ipmid.clean/transporthandler.cpp +@@ -29,6 +29,12 @@ std::unique_ptr<phosphor::Timer> network const int SIZE_MAC = 18; // xx:xx:xx:xx:xx:xx constexpr auto ipv4Protocol = "xyz.openbmc_project.Network.IP.Protocol.IPv4"; @@ -79,29 +79,23 @@ index 8172cc4..12d224a 100644 std::map<int, std::unique_ptr<struct ChannelConfig_t>> channelConfig; -@@ -389,7 +395,6 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - ipmi_context_t context) - { - ipmi_ret_t rc = IPMI_CC_OK; -- *data_len = 0; - - using namespace std::chrono_literals; - -@@ -403,6 +408,9 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - auto reqptr = reinterpret_cast<const set_lan_t*>(request); - sdbusplus::bus::bus bus(ipmid_get_sd_bus_connection()); - -+ size_t reqLen = *data_len; -+ *data_len = 0; +@@ -445,6 +451,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n + { + case LanParam::IP: + { ++ if (reqLen != lanParamIPSize) ++ { ++ return IPMI_CC_REQ_DATA_LEN_INVALID; ++ } + - // channel number is the lower nibble - int channel = reqptr->channel & CHANNEL_MASK; - auto ethdevice = ipmi::getChannelName(channel); -@@ -426,6 +434,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, + std::snprintf(ipaddr, INET_ADDRSTRLEN, + ipmi::network::IP_ADDRESS_FORMAT, reqptr->data[0], + reqptr->data[1], reqptr->data[2], reqptr->data[3]); +@@ -455,6 +466,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n case LanParam::IPSRC: { -+ if (reqLen != LAN_PARAM_IPSRC_SIZE) ++ if (reqLen != lanParamIPSrcSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -109,11 +103,11 @@ index 8172cc4..12d224a 100644 uint8_t ipsrc{}; std::memcpy(&ipsrc, reqptr->data, ipmi::network::IPSRC_SIZE_BYTE); channelConf->ipsrc = static_cast<ipmi::network::IPOrigin>(ipsrc); -@@ -434,6 +447,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -463,6 +479,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n case LanParam::MAC: { -+ if (reqLen != LAN_PARAM_MAC_SIZE) ++ if (reqLen != lanParamMACSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -121,11 +115,11 @@ index 8172cc4..12d224a 100644 char mac[SIZE_MAC]; std::snprintf(mac, SIZE_MAC, ipmi::network::MAC_ADDRESS_FORMAT, -@@ -454,6 +472,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -483,6 +504,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n case LanParam::SUBNET: { -+ if (reqLen != LAN_PARAM_SUBNET_SIZE) ++ if (reqLen != lanParamSubnetSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -133,11 +127,11 @@ index 8172cc4..12d224a 100644 std::snprintf(netmask, INET_ADDRSTRLEN, ipmi::network::IP_ADDRESS_FORMAT, reqptr->data[0], reqptr->data[1], reqptr->data[2], reqptr->data[3]); -@@ -463,6 +486,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -492,6 +518,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n case LanParam::GATEWAY: { -+ if (reqLen != LAN_PARAM_GATEWAY_SIZE) ++ if (reqLen != lanParamGatewaySize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -145,23 +139,11 @@ index 8172cc4..12d224a 100644 std::snprintf(gateway, INET_ADDRSTRLEN, ipmi::network::IP_ADDRESS_FORMAT, reqptr->data[0], reqptr->data[1], reqptr->data[2], reqptr->data[3]); -@@ -472,6 +500,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - - case LanParam::VLAN: - { -+ if (reqLen != LAN_PARAM_VLAN_SIZE) -+ { -+ return IPMI_CC_REQ_DATA_LEN_INVALID; -+ } -+ - uint16_t vlan{}; - std::memcpy(&vlan, reqptr->data, ipmi::network::VLAN_SIZE_BYTE); - // We are not storing the enable bit -@@ -484,6 +517,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -522,6 +553,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n case LanParam::INPROGRESS: { -+ if (reqLen != LAN_PARAM_INPROGRESS_SIZE) ++ if (reqLen != lanParamInProgressSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -169,13 +151,13 @@ index 8172cc4..12d224a 100644 if (reqptr->data[0] == SET_COMPLETE) { channelConf->lan_set_in_progress = SET_COMPLETE; -@@ -512,6 +550,122 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -540,6 +576,122 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n } break; + case LanParam::IPV6_AND_IPV4_ENABLES: + { -+ if (reqLen != LAN_PARAM_IPV6_AND_IPV4_ENABLES_SIZE) ++ if (reqLen != lanParamIPv6AndIPv4EnablesSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -186,7 +168,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_STATIC_ADDRESSES: + { -+ if (reqLen != LAN_PARAM_IPV6_STATIC_ADDRESSES_SIZE) ++ if (reqLen != lanParamIPv6StaticAddressesSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -202,7 +184,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_ROUTER_ADDRESS_CONF_CTRL: + { -+ if (reqLen != LAN_PARAM_IPV6_ROUTER_ADDRESS_CONF_CTRL_SIZE) ++ if (reqLen != lanParamIPv6RouterAddressConfCtrlSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -213,7 +195,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_STATIC_ROUTER_1_IP_ADDR: + { -+ if (reqLen != LAN_PARAM_IPV6_STATIC_ROUTER_1_IP_ADDR_SIZE) ++ if (reqLen != lanParamIPv6StaticRouter1IPAddrSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -227,7 +209,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_STATIC_ROUTER_1_PREFIX_LEN: + { -+ if (reqLen != LAN_PARAM_IPV6_STATIC_ROUTER_1_PREFIX_LEN_SIZE) ++ if (reqLen != lanParamIPv6StaticRouter1PrefixLenSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -238,7 +220,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_STATIC_ROUTER_1_PREFIX_VAL: + { -+ if (reqLen != LAN_PARAM_IPV6_STATIC_ROUTER_1_PREFIX_VAL_SIZE) ++ if (reqLen != lanParamIPv6StaticRouter1PrefixValSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -252,7 +234,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_STATIC_ROUTER_2_IP_ADDR: + { -+ if (reqLen != LAN_PARAM_IPV6_STATIC_ROUTER_2_IP_ADDR_SIZE) ++ if (reqLen != lanParamIPv6StaticRouter2IPAddrSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -266,7 +248,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_STATIC_ROUTER_2_PREFIX_LEN: + { -+ if (reqLen != LAN_PARAM_IPV6_STATIC_ROUTER_2_PREFIX_LEN_SIZE) ++ if (reqLen != lanParamIPv6StaticRouter2PrefixLenSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -277,7 +259,7 @@ index 8172cc4..12d224a 100644 + + case LanParam::IPV6_STATIC_ROUTER_2_PREFIX_VAL: + { -+ if (reqLen != LAN_PARAM_IPV6_STATIC_ROUTER_2_PREFIX_VAL_SIZE) ++ if (reqLen != lanParamIPv6StaticRouter2PrefixValSize) + { + return IPMI_CC_REQ_DATA_LEN_INVALID; + } @@ -292,7 +274,7 @@ index 8172cc4..12d224a 100644 default: { rc = IPMI_CC_PARM_NOT_SUPPORTED; -@@ -538,6 +692,7 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -568,6 +720,7 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_n ipmi_ret_t rc = IPMI_CC_OK; *data_len = 0; const uint8_t current_revision = 0x11; // Current rev per IPMI Spec 2.0 @@ -300,7 +282,7 @@ index 8172cc4..12d224a 100644 get_lan_t* reqptr = (get_lan_t*)request; // channel number is the lower nibble -@@ -676,6 +831,476 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -713,6 +866,476 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_n static_cast<uint8_t>(cipherList.size()); break; } @@ -777,7 +759,7 @@ index 8172cc4..12d224a 100644 default: log<level::ERR>("Unsupported parameter", entry("PARAMETER=0x%x", reqptr->parameter)); -@@ -921,6 +1546,16 @@ void applyChanges(int channel) +@@ -957,6 +1580,16 @@ void applyChanges(int channel) ipaddress, prefix); } @@ -794,7 +776,7 @@ index 8172cc4..12d224a 100644 if (!gateway.empty()) { ipmi::setDbusProperty(bus, systemObject.second, -@@ -928,7 +1563,24 @@ void applyChanges(int channel) +@@ -964,7 +1597,24 @@ void applyChanges(int channel) ipmi::network::SYSTEMCONFIG_INTERFACE, "DefaultGateway", std::string(gateway)); } @@ -817,42 +799,41 @@ index 8172cc4..12d224a 100644 + ipmi::network::ETHERNET_INTERFACE, "IPv6AcceptRA", + (bool)channelConf->ipv6RouterAddressConfigControl); } - catch (InternalFailure& e) + catch (sdbusplus::exception::exception& e) { -diff --git a/transporthandler.hpp b/transporthandler.hpp -index 04d4673..bd23391 100644 ---- a/transporthandler.hpp -+++ b/transporthandler.hpp -@@ -79,6 +79,28 @@ enum class LanParam : uint8_t +Index: phosphor-host-ipmid.clean/transporthandler.hpp +=================================================================== +--- phosphor-host-ipmid.clean.orig/transporthandler.hpp ++++ phosphor-host-ipmid.clean/transporthandler.hpp +@@ -79,8 +79,27 @@ enum class LanParam : uint8_t IPV6_NEIGHBOR_TIMING_CONFIGURATION = 80, }; -+// Data length of parameters -+constexpr size_t LAN_PARAM_INPROGRESS_SIZE = 3; -+constexpr size_t LAN_PARAM_IP_SIZE = 6; -+constexpr size_t LAN_PARAM_IPSRC_SIZE = 3; -+constexpr size_t LAN_PARAM_MAC_SIZE = 8; -+constexpr size_t LAN_PARAM_SUBNET_SIZE = 6; -+constexpr size_t LAN_PARAM_GATEWAY_SIZE = 6; -+constexpr size_t LAN_PARAM_VLAN_SIZE = 4; -+constexpr size_t LAN_PARAM_IPV6_AND_IPV4_ENABLES_SIZE = 3; -+constexpr size_t LAN_PARAM_IPV6_STATIC_ADDRESSES_SIZE = 23; -+constexpr size_t LAN_PARAM_IPV6_ROUTER_ADDRESS_CONF_CTRL_SIZE = 3; -+constexpr size_t LAN_PARAM_IPV6_STATIC_ROUTER_1_IP_ADDR_SIZE = 18; -+constexpr size_t LAN_PARAM_IPV6_STATIC_ROUTER_1_PREFIX_LEN_SIZE = 3; -+constexpr size_t LAN_PARAM_IPV6_STATIC_ROUTER_1_PREFIX_VAL_SIZE = 19; -+constexpr size_t LAN_PARAM_IPV6_STATIC_ROUTER_2_IP_ADDR_SIZE = 18; -+constexpr size_t LAN_PARAM_IPV6_STATIC_ROUTER_2_PREFIX_LEN_SIZE = 3; -+constexpr size_t LAN_PARAM_IPV6_STATIC_ROUTER_2_PREFIX_VAL_SIZE = 19; -+ +constexpr uint8_t DUID_LEN = 10; +constexpr uint8_t DUID_LL_TYPE = 3; +constexpr uint8_t DUIC_ETH_HW_TYPE = 1; + + // Data length of parameters + constexpr size_t lanParamVLANSize = 4; ++constexpr size_t lanParamInProgressSize = 3; ++constexpr size_t lanParamIPSize = 6; ++constexpr size_t lanParamIPSrcSize = 3; ++constexpr size_t lanParamMACSize = 8; ++constexpr size_t lanParamSubnetSize = 6; ++constexpr size_t lanParamGatewaySize = 6; ++constexpr size_t lanParamIPv6AndIPv4EnablesSize = 3; ++constexpr size_t lanParamIPv6StaticAddressesSize = 23; ++constexpr size_t lanParamIPv6RouterAddressConfCtrlSize = 3; ++constexpr size_t lanParamIPv6StaticRouter1IPAddrSize = 18; ++constexpr size_t lanParamIPv6StaticRouter1PrefixLenSize = 3; ++constexpr size_t lanParamIPv6StaticRouter1PrefixValSize = 19; ++constexpr size_t lanParamIPv6StaticRouter2IPAddrSize = 18; ++constexpr size_t lanParamIPv6StaticRouter2PrefixLenSize = 3; ++constexpr size_t lanParamIPv6StaticRouter2PrefixValSize = 19; constexpr uint8_t SET_COMPLETE = 0; constexpr uint8_t SET_IN_PROGRESS = 1; constexpr uint8_t SET_COMMIT_WRITE = 2; // Optional -@@ -101,6 +123,20 @@ struct ChannelConfig_t +@@ -103,6 +122,20 @@ struct ChannelConfig_t uint8_t lan_set_in_progress = SET_COMPLETE; bool flush = false; @@ -873,7 +854,7 @@ index 04d4673..bd23391 100644 void clear() { ipaddr.clear(); -@@ -111,6 +147,20 @@ struct ChannelConfig_t +@@ -113,6 +146,20 @@ struct ChannelConfig_t ipsrc = ipmi::network::IPOrigin::UNSPECIFIED; lan_set_in_progress = SET_COMPLETE; flush = false; @@ -894,6 +875,3 @@ index 04d4673..bd23391 100644 } }; --- -2.17.1 - diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0057-Add-timer-use-actions-support.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0057-Add-timer-use-actions-support.patch index a96707d44..f091b31fa 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0057-Add-timer-use-actions-support.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0057-Add-timer-use-actions-support.patch @@ -1,6 +1,6 @@ -From 6e37e02a4f200507627a82f6dba00a9c9d877cb2 Mon Sep 17 00:00:00 2001 +From 3c69c94eed1a0c6eecfd53e739fade6596c6f3e5 Mon Sep 17 00:00:00 2001 From: Yong Li <yong.b.li@linux.intel.com> -Date: Mon, 18 Mar 2019 23:05:16 +0800 +Date: Thu, 12 Sep 2019 17:37:05 +0800 Subject: [PATCH] Add timer use/actions support Based on IPMI spec, add timer use/actions support, @@ -8,188 +8,24 @@ and add input data checking Signed-off-by: Yong Li <yong.b.li@linux.intel.com> --- - app/watchdog.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++----- - app/watchdog_service.cpp | 8 +++++++ - app/watchdog_service.hpp | 8 +++++++ - 3 files changed, 72 insertions(+), 6 deletions(-) + app/watchdog.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/watchdog.cpp b/app/watchdog.cpp -index 1a5d19c..3b61055 100644 +index c4e594d..18e7e3a 100644 --- a/app/watchdog.cpp +++ b/app/watchdog.cpp -@@ -89,6 +89,13 @@ static constexpr uint8_t wd_dont_stop = 0x1 << 6; - static constexpr uint8_t wd_timeout_action_mask = 0x3; +@@ -251,8 +251,8 @@ ipmi::RspType<> ipmiSetWatchdogTimer( + return ipmi::responseInvalidFieldRequest(); + } - static constexpr uint8_t wdTimerUseMask = 0x7; -+static constexpr uint8_t wdTimerUseResTimer1 = 0x0; -+static constexpr uint8_t wdTimerUseResTimer2 = 0x6; -+static constexpr uint8_t wdTimerUseResTimer3 = 0x7; -+static constexpr uint8_t wdTimerUseRes = 0x38; -+ -+static constexpr uint8_t wdTimerActionMask = 0xcc; -+static constexpr uint8_t wdTimerUseExpMask = 0xc1; +- timerLogFlags = static_cast<uint8_t>(dontLog); +- timerActions &= static_cast<uint8_t>(timeoutAction) | ++ timerLogFlags = (static_cast<uint8_t>(dontLog)) << 7; ++ timerActions = static_cast<uint8_t>(timeoutAction) | + static_cast<uint8_t>(preTimeoutInterrupt) << 4; - enum class IpmiAction : uint8_t - { -@@ -186,6 +193,11 @@ static_assert(sizeof(wd_set_req) == 6, "wd_set_req has invalid size."); - static_assert(sizeof(wd_set_req) <= MAX_IPMI_BUFFER, - "wd_get_res can't fit in request buffer."); - -+static uint8_t timerLogFlags = 0; -+static uint8_t timerActions = 0; -+ -+static uint8_t timerUseExpirationFlags = 0; -+ - ipmi_ret_t ipmi_app_watchdog_set(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - ipmi_request_t request, - ipmi_response_t response, -@@ -203,6 +215,24 @@ ipmi_ret_t ipmi_app_watchdog_set(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - req.initial_countdown = le16toh(req.initial_countdown); - *data_len = 0; - -+ if (((req.timer_use & wdTimerUseMask) == wdTimerUseResTimer1) || -+ ((req.timer_use & wdTimerUseMask) == wdTimerUseResTimer2) || -+ ((req.timer_use & wdTimerUseMask) == wdTimerUseResTimer3) || -+ (req.timer_use & wdTimerUseRes) || -+ (req.timer_action & wdTimerActionMask) || -+ (req.expire_flags & wdTimerUseExpMask)) -+ { -+ return IPMI_CC_INVALID_FIELD_REQUEST; -+ } -+ -+ if (req.pretimeout > (req.initial_countdown / 10)) -+ { -+ return IPMI_CC_INVALID_FIELD_REQUEST; -+ } -+ -+ timerLogFlags = req.timer_use & 0x80; -+ timerActions = req.timer_action; -+ try - { - WatchdogService wd_service; -@@ -221,6 +251,10 @@ ipmi_ret_t ipmi_app_watchdog_set(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - static_cast<IpmiTimerUse>(req.timer_use & wdTimerUseMask); - wd_service.setTimerUse(ipmiTimerUseToWdTimerUse(ipmiTimerUse)); - -+ wd_service.setExpiredTimerUse(WatchdogService::TimerUse::Reserved); -+ -+ timerUseExpirationFlags &= ~req.expire_flags; -+ - // Set the new interval and the time remaining deci -> mill seconds - const uint64_t interval = req.initial_countdown * 100; - wd_service.setInterval(interval); -@@ -339,7 +373,6 @@ static_assert(sizeof(wd_get_res) == 8, "wd_get_res has invalid size."); - static_assert(sizeof(wd_get_res) <= MAX_IPMI_BUFFER, - "wd_get_res can't fit in response buffer."); - --static constexpr uint8_t wd_dont_log = 0x1 << 7; - static constexpr uint8_t wd_running = 0x1 << 6; - - ipmi_ret_t ipmi_app_watchdog_get(ipmi_netfn_t netfn, ipmi_cmd_t cmd, -@@ -358,20 +391,37 @@ ipmi_ret_t ipmi_app_watchdog_get(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - - // Build and return the response - wd_get_res res; -- res.timer_use = wd_dont_log; -- res.timer_action = -- static_cast<uint8_t>(wdActionToIpmiAction(wd_prop.expireAction)); -+ res.timer_use |= timerLogFlags; -+ res.timer_action = timerActions; - - // Interval and timeRemaining need converted from milli -> deci seconds - res.initial_countdown = htole16(wd_prop.interval / 100); -+ -+ if (wd_prop.expiredTimerUse != WatchdogService::TimerUse::Reserved) -+ { -+ timerUseExpirationFlags |= -+ 1 << static_cast<uint8_t>( -+ wdTimerUseToIpmiTimerUse(wd_prop.expiredTimerUse)); -+ } -+ - if (wd_prop.enabled) - { - res.timer_use |= wd_running; - res.present_countdown = htole16(wd_prop.timeRemaining / 100); -+ res.expire_flags = 0; - } - else - { -- res.present_countdown = res.initial_countdown; -+ if (wd_prop.expiredTimerUse == WatchdogService::TimerUse::Reserved) -+ { -+ res.present_countdown = res.initial_countdown; -+ res.expire_flags = 0; -+ } -+ else -+ { -+ res.present_countdown = 0; -+ res.expire_flags = timerUseExpirationFlags; -+ } - } - - res.timer_use |= -@@ -379,7 +429,7 @@ ipmi_ret_t ipmi_app_watchdog_get(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - - // TODO: Do something about having pretimeout support - res.pretimeout = 0; -- res.expire_flags = 0; -+ - memcpy(response, &res, sizeof(res)); - *data_len = sizeof(res); - lastCallSuccessful = true; -diff --git a/app/watchdog_service.cpp b/app/watchdog_service.cpp -index e65ea63..8b1aa47 100644 ---- a/app/watchdog_service.cpp -+++ b/app/watchdog_service.cpp -@@ -83,6 +83,9 @@ WatchdogService::Properties WatchdogService::getProperties() - wd_prop.timerUse = Watchdog::convertTimerUseFromString( - std::get<std::string>(properties.at("CurrentTimerUse"))); - -+ wd_prop.expiredTimerUse = Watchdog::convertTimerUseFromString( -+ std::get<std::string>(properties.at("ExpiredTimerUse"))); -+ - wd_prop.interval = std::get<uint64_t>(properties.at("Interval")); - wd_prop.timeRemaining = - std::get<uint64_t>(properties.at("TimeRemaining")); -@@ -187,6 +190,11 @@ void WatchdogService::setTimerUse(TimerUse timerUse) - setProperty("CurrentTimerUse", convertForMessage(timerUse)); - } - -+void WatchdogService::setExpiredTimerUse(TimerUse timerUse) -+{ -+ setProperty("ExpiredTimerUse", convertForMessage(timerUse)); -+} -+ - void WatchdogService::setInterval(uint64_t interval) - { - setProperty("Interval", interval); -diff --git a/app/watchdog_service.hpp b/app/watchdog_service.hpp -index 75afc1e..d0cc1a8 100644 ---- a/app/watchdog_service.hpp -+++ b/app/watchdog_service.hpp -@@ -36,6 +36,7 @@ class WatchdogService - bool enabled; - Action expireAction; - TimerUse timerUse; -+ TimerUse expiredTimerUse; - uint64_t interval; - uint64_t timeRemaining; - }; -@@ -79,6 +80,13 @@ class WatchdogService - */ - void setTimerUse(TimerUse timerUse); - -+ /** @brief Sets the value of the ExpiredTimerUse property on the host -+ * watchdog -+ * -+ * @param[in] timerUse - The new timerUse value -+ */ -+ void setExpiredTimerUse(TimerUse timerUse); -+ - /** @brief Sets the value of the interval property on the host watchdog - * - * @param[in] interval - The new interval value -- 2.7.4 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0059-Move-Set-SOL-config-parameter-to-host-ipmid.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0059-Move-Set-SOL-config-parameter-to-host-ipmid.patch index 5623d246d..2dad2fc16 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0059-Move-Set-SOL-config-parameter-to-host-ipmid.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0059-Move-Set-SOL-config-parameter-to-host-ipmid.patch @@ -1,6 +1,6 @@ -From 55db62a92dff4bfc3d34c590b33d9da4e7706b9d Mon Sep 17 00:00:00 2001 +From 27b94aa1df83abad63cbba69525273194b14ab9c Mon Sep 17 00:00:00 2001 From: Cheng C Yang <cheng.c.yang@intel.com> -Date: Wed, 3 Jul 2019 06:12:55 +0800 +Date: Wed, 16 Oct 2019 14:24:20 +0800 Subject: [PATCH] Move Set SOL config parameter to host-ipmid Move Set SOL config parameter command from net-ipmid to host-ipmid, @@ -23,15 +23,14 @@ to 0 and other properties will not reset to default value. Signed-off-by: Cheng C Yang <cheng.c.yang@intel.com> --- host-ipmid-whitelist.conf | 1 + - transporthandler.cpp | 289 ++++++++++++++++++++++++++++++++++++++++++++++ - transporthandler.hpp | 33 ++++++ - 3 files changed, 323 insertions(+) + transporthandler.cpp | 322 ++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 323 insertions(+) diff --git a/host-ipmid-whitelist.conf b/host-ipmid-whitelist.conf -index 2b72d23..856588e 100644 +index e8df7c7..f030ef4 100644 --- a/host-ipmid-whitelist.conf +++ b/host-ipmid-whitelist.conf -@@ -42,6 +42,7 @@ +@@ -41,6 +41,7 @@ 0x0A:0x48 //<Storage>:<Get SEL Time> 0x0A:0x49 //<Storage>:<Set SEL Time> 0x0C:0x02 //<Transport>:<Get LAN Configuration Parameters> @@ -40,22 +39,17 @@ index 2b72d23..856588e 100644 0x2C:0x01 //<Group Extension>:<Get DCMI Capabilities> 0x2C:0x02 //<Group Extension>:<Get Power Reading> diff --git a/transporthandler.cpp b/transporthandler.cpp -index bb624c4..25062ae 100644 +index e88eb63..4a42e7b 100644 --- a/transporthandler.cpp +++ b/transporthandler.cpp -@@ -36,6 +36,9 @@ static const std::array<std::string, 3> ipAddressEnablesType = { - "xyz.openbmc_project.Network.EthernetInterface.IPAllowed.IPv6Only", - "xyz.openbmc_project.Network.EthernetInterface.IPAllowed.IPv4AndIPv6"}; +@@ -1168,8 +1168,323 @@ RspType<message::Payload> getLan(uint4_t channelBits, uint3_t, bool revOnly, + } // namespace transport + } // namespace ipmi +constexpr const char* solInterface = "xyz.openbmc_project.Ipmi.SOL"; +constexpr const char* solPath = "/xyz/openbmc_project/ipmi/sol/"; + - std::map<int, std::unique_ptr<struct ChannelConfig_t>> channelConfig; - - using namespace phosphor::logging; -@@ -1631,6 +1634,285 @@ void createNetworkTimer() - } - } + void register_netfn_transport_functions() __attribute__((constructor)); +static std::string + getSOLService(std::shared_ptr<sdbusplus::asio::connection> dbus, @@ -194,6 +188,37 @@ index bb624c4..25062ae 100644 + +} // namespace ipmi + ++namespace sol ++{ ++enum class Parameter ++{ ++ progress, //!< Set In Progress. ++ enable, //!< SOL Enable. ++ authentication, //!< SOL Authentication. ++ accumulate, //!< Character Accumulate Interval & Send Threshold. ++ retry, //!< SOL Retry. ++ nvbitrate, //!< SOL non-volatile bit rate. ++ vbitrate, //!< SOL volatile bit rate. ++ channel, //!< SOL payload channel. ++ port, //!< SOL payload port. ++}; ++ ++enum class Privilege : uint8_t ++{ ++ highestPriv, ++ callbackPriv, ++ userPriv, ++ operatorPriv, ++ adminPriv, ++ oemPriv, ++}; ++ ++} // namespace sol ++ ++constexpr uint8_t progressMask = 0x03; ++constexpr uint8_t enableMask = 0x01; ++constexpr uint8_t retryMask = 0x07; ++ +ipmi::RspType<> setSOLConfParams(ipmi::Context::ptr ctx, uint4_t chNum, + uint4_t reserved, uint8_t paramSelector, + uint8_t configParamData1, @@ -312,8 +337,10 @@ index bb624c4..25062ae 100644 + { + return ipmi::responseReqDataLenInvalid(); + } -+ if ((setSOLParameter("RetryCount", (configParamData1 & 0x7), -+ channelNum) < 0) || ++ if ((setSOLParameter( ++ "RetryCount", ++ static_cast<uint8_t>(configParamData1 & retryMask), ++ channelNum) < 0) || + (setSOLParameter("RetryIntervalMS", *configParamData2, + channelNum) < 0)) + { @@ -338,74 +365,19 @@ index bb624c4..25062ae 100644 + void register_netfn_transport_functions() { - // As this timer is only for transport handler -@@ -1648,5 +1930,12 @@ void register_netfn_transport_functions() - ipmi_register_callback(NETFUN_TRANSPORT, IPMI_CMD_GET_LAN, NULL, - ipmi_transport_get_lan, PRIVILEGE_OPERATOR); - + ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnTransport, +@@ -1178,4 +1493,11 @@ void register_netfn_transport_functions() + ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnTransport, + ipmi::transport::cmdGetLanConfigParameters, + ipmi::Privilege::Admin, ipmi::transport::getLan); ++ + ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnTransport, + ipmi::transport::cmdSetSolConfigParameters, + ipmi::Privilege::Admin, setSOLConfParams); + + // Initialize dbus property progress to 0 every time sol manager restart. + initializeSOLInProgress(); -+ - return; } -diff --git a/transporthandler.hpp b/transporthandler.hpp -index bd23391..1237658 100644 ---- a/transporthandler.hpp -+++ b/transporthandler.hpp -@@ -1,5 +1,6 @@ - #pragma once - -+#include <ipmid/api-types.hpp> - #include <ipmid/types.hpp> - #include <string> - // IPMI commands for Transport net functions. -@@ -8,6 +9,8 @@ enum ipmi_netfn_storage_cmds - // Get capability bits - IPMI_CMD_SET_LAN = 0x01, - IPMI_CMD_GET_LAN = 0x02, -+ IPMI_CMD_SET_SOL_CONF_PARAMS = 0x21, -+ IPMI_CMD_GET_SOL_CONF_PARAMS = 0x22, - }; - - // Command specific completion codes -@@ -186,3 +189,33 @@ void commitNetworkChanges(); - * @param[in] channel: channel number. - */ - void applyChanges(int channel); -+ -+namespace sol -+{ -+enum class Parameter -+{ -+ progress, //!< Set In Progress. -+ enable, //!< SOL Enable. -+ authentication, //!< SOL Authentication. -+ accumulate, //!< Character Accumulate Interval & Send Threshold. -+ retry, //!< SOL Retry. -+ nvbitrate, //!< SOL non-volatile bit rate. -+ vbitrate, //!< SOL volatile bit rate. -+ channel, //!< SOL payload channel. -+ port, //!< SOL payload port. -+}; -+ -+enum class Privilege : uint8_t -+{ -+ highestPriv, -+ callbackPriv, -+ userPriv, -+ operatorPriv, -+ adminPriv, -+ oemPriv, -+}; -+ -+} // namespace sol -+ -+constexpr uint8_t progressMask = 0x03; -+constexpr uint8_t enableMask = 0x01; -- 2.7.4 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch index 685e7c39d..aac0850ea 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch @@ -85,8 +85,8 @@ index 2ffaae3..e9b7a9c 100644 + // pretimeOutAction + const auto ipmiPreTimeoutInterrupt = -+ static_cast<IpmiPreTimeoutInterrupt>((req.timer_action >> 4) & -+ wdPreTimeoutInterruptMask); ++ static_cast<IpmiPreTimeoutInterrupt>(wdPreTimeoutInterruptMask & ++ (static_cast<uint8_t>(preTimeoutInterrupt))); + wd_service.setPreTimeoutInterrupt( + ipmiPreTimeoutInterruptToWdAction(ipmiPreTimeoutInterrupt)); + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0064-Enable-watchdog-to-save-useflag-after-host-power-off.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0064-Enable-watchdog-to-save-useflag-after-host-power-off.patch index 6a7b056ab..4ee28bb5c 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0064-Enable-watchdog-to-save-useflag-after-host-power-off.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0064-Enable-watchdog-to-save-useflag-after-host-power-off.patch @@ -1,29 +1,66 @@ +From e7b86ade7db1e9ae86ea39a957bead9090f4ccbf Mon Sep 17 00:00:00 2001 +From: Yong Li <yong.b.li@linux.intel.com> +Date: Thu, 12 Sep 2019 13:18:42 +0800 +Subject: [PATCH] Enable watchdog to save useflag after host power off + +Get the right useflag after host power off. + +Tested: +Set a watchdog (Timer action is none and Time Use is BIOS FRB2) +ipmitool raw 0x06 0x24 0x01 0x00 0x00 0x00 0x40 0x00 +Get watchdog +ipmitool mc watchdog get +Start watchdog +ipmitool mc watchdog reset +Get watchdog +ipmitool mc watchdog get +After timer is stop, set a watchdog again +(Timer action is none and Time Use is BIOS/POST) +ipmitool raw 0x06 0x24 0x02 0x00 0x00 0x00 0x40 0x00 +Start watchdog and wait until timer is stop, +Get watchdog +ipmitool mc watchdog get +Timer Expiration Flags should be 0x06(BIOS FRB2, BIOS/POST) +Power down the Host +Ipmitool chassis power off +Check the Timer Expiration Flags(User Flags) +ipmitool mc watchdog get +Timer Expiration Flags should be 0x06(BIOS FRB2, BIOS/POST) + +Signed-off-by: Yong Li <yong.b.li@linux.intel.com> +--- + app/watchdog.cpp | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + diff --git a/app/watchdog.cpp b/app/watchdog.cpp -index 2938d23..bc5df29 100644 +index 4650d89..1562f5e 100644 --- a/app/watchdog.cpp +++ b/app/watchdog.cpp -@@ -445,23 +445,21 @@ ipmi_ret_t ipmi_app_watchdog_get(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +@@ -435,23 +435,21 @@ ipmi::RspType<uint8_t, // timerUse wdTimerUseToIpmiTimerUse(wd_prop.expiredTimerUse)); } -+ res.expire_flags = timerUseExpirationFlags; ++ expireFlags = timerUseExpirationFlags; if (wd_prop.enabled) { - res.timer_use |= wd_running; - res.present_countdown = htole16(wd_prop.timeRemaining / 100); -- res.expire_flags = 0; + timerUse |= wd_running; + presentCountdown = htole16(wd_prop.timeRemaining / 100); +- expireFlags = 0; } else { if (wd_prop.expiredTimerUse == WatchdogService::TimerUse::Reserved) { - res.present_countdown = res.initial_countdown; -- res.expire_flags = 0; + presentCountdown = initialCountdown; +- expireFlags = 0; } else { - res.present_countdown = 0; -- res.expire_flags = timerUseExpirationFlags; + presentCountdown = 0; +- expireFlags = timerUseExpirationFlags; } } +-- +2.7.4 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0066-Valid-VLANID-should-be-1-4095-as-in-802.1VLAN-spec.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0066-Valid-VLANID-should-be-1-4095-as-in-802.1VLAN-spec.patch deleted file mode 100644 index f8f71338a..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0066-Valid-VLANID-should-be-1-4095-as-in-802.1VLAN-spec.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 07caf4cc516601c93d12bbe89b4afb0284201dff Mon Sep 17 00:00:00 2001 -From: Suryakanth Sekar <suryakanth.sekar@linux.intel.com> -Date: Fri, 2 Aug 2019 14:18:31 +0530 -Subject: [PATCH] Valid VLANID should be 1-4095 as in 802.1VLAN spec - -Added the VLAN ID checking condition in Set LAN configuration - -Unit test: -Verified VLAN ID 1-4095 is allowed and CC returns for 0 & > 4095 - -Change-Id: I1737986ed7adb727758dedb84b851ba2c208cea3 -Signed-off-by: Suryakanth Sekar <suryakanth.sekar@linux.intel.com> ---- - transporthandler.cpp | 4 ++++ - transporthandler.hpp | 1 + - 2 files changed, 5 insertions(+) - -diff --git a/transporthandler.cpp b/transporthandler.cpp -index 44ddcef..ede6472 100644 ---- a/transporthandler.cpp -+++ b/transporthandler.cpp -@@ -536,6 +536,10 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - // We assume that ipmitool always send enable - // bit as 1. - vlan = le16toh(vlan); -+ if (vlan == 0 || vlan > maxValidVLANIDValue) -+ { -+ return IPMI_CC_INVALID_FIELD_REQUEST; -+ } - channelConf->vlanID = vlan; - } - break; -diff --git a/transporthandler.hpp b/transporthandler.hpp -index 1237658..d8805e1 100644 ---- a/transporthandler.hpp -+++ b/transporthandler.hpp -@@ -219,3 +219,4 @@ enum class Privilege : uint8_t - - constexpr uint8_t progressMask = 0x03; - constexpr uint8_t enableMask = 0x01; -+constexpr uint16_t maxValidVLANIDValue = 4095; --- -2.7.4 - diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/host-ipmid-whitelist.conf b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/host-ipmid-whitelist.conf index deed53b0b..f3218d8d8 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/host-ipmid-whitelist.conf +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/host-ipmid-whitelist.conf @@ -1,50 +1,196 @@ -#<NetFn>:<Command -0x00:0x00 //<Chassis>:<Chassis Capabiliti> +#<NetFn>:<Command> +#IPMI whitelist command list version 9b +0x00:0x00 //<Chassis>:<Get Chassis Capabiliti> 0x00:0x01 //<Chassis>:<Get Chassis Status> +0x00:0x04 //<Chassis>:<Chassis Identify> 0x00:0x07 //<Chassis>:<Get System Restart Cause> 0x00:0x09 //<Chassis>:<Get System Boot Options> -0x00:0x0F //<Chassis>:<Get POH Counter Command> -0x04:0x02 //<Sensor/Event>:<Platform event> -0x04:0x2D //<Sensor/Event>:<Get Sensor Reading> +0x00:0x0A //<Chassis>:<Set Front Panel Enables> +0x00:0x0F //<Chassis>:<Get POH Counter> +0x04:0x01 //<Sensor/Event>:<Get Event Receiver> +0x04:0x02 //<Sensor/Event>:<SEL Platform event> +0x04:0x10 //<Sensor/Event>:<PEF Get Capabilities> +0x04:0x13 //<Sensor/Event>:<PEF Get Configuration Parameters> +0x04:0x15 //<Sensor/Event>:<PEF Get Processed EventID> +0x04:0x20 //<Sensor/Event>:<Get Device SDR Info> +0x04:0x21 //<Sensor/Event>:<Get Device SDR> +0x04:0x23 //<Sensor/Event>:<Get Sensor Reading Factors> +0x04:0x25 //<Sensor/Event>:<Get Sensor Hysteresis> +0x04:0x27 //<Sensor/Event>:<Get Sensor Threshold> +0x04:0x29 //<Sensor/Event>:<Get SensorEvent Enable> +0x04:0x2B //<Sensor/Event>:<Get SensorEvent Status> +0x04:0x2D //<Sensor/Event>:<Get SensorReading> 0x04:0x2F //<Sensor/Event>:<Get Sensor Type> 0x06:0x01 //<App>:<Get Device ID> -0x06:0x04 //<App>:<Get Self Test Results> +0x06:0x04 //<App>:<Get Self Test> +0x06:0x06 //<App>:<Set ACPI Power State> 0x06:0x07 //<App>:<Get ACPI Power State> 0x06:0x08 //<App>:<Get Device GUID> 0x06:0x22 //<App>:<Reset Watchdog Timer> 0x06:0x24 //<App>:<Set Watchdog Timer> 0x06:0x25 //<App>:<Get Watchdog Timer> 0x06:0x2F //<App>:<Get BMC Global Enables> +0x06:0x30 //<App>:<Clear Message Flags> 0x06:0x31 //<App>:<Get Message Flags> +0x06:0x33 //<App>:<Get Message> 0x06:0x35 //<App>:<Read Event Message Buffer> -0x06:0x36 //<App>:<Get BT Interface Capabilities> 0x06:0x37 //<App>:<Get System GUID> -0x06:0x42 //<App>:<Get Channel Info Command> +0x06:0x38 //<App>:<Get Channel Authentication Capability> +0x06:0x39 //<App>:<Get Session Challenge> +0x06:0x3D //<App>:<Get Channel Session Info> +0x06:0x3F //<App>:<Get Authentication Code> +0x06:0x41 //<App>:<Get Channel Access> +0x06:0x42 //<App>:<Get Channel Info> +0x06:0x44 //<App>:<Get User Access> +0x06:0x46 //<App>:<Get User Name> +0x06:0x4A //<App>:<Get Payload Activation Status> +0x06:0x4B //<App>:<Get Payload Instance Info> +0x06:0x4D //<App>:<Get User Payload Access> 0x06:0x4E //<App>:<Get Channel Payload Support> +0x06:0x4F //<App>:<Get Channel Payload Version> +0x06:0x50 //<App>:<Get Channel OEM Payload Info> 0x06:0x54 //<App>:<Get Channel Cipher Suites> +0x06:0x57 //<App>:<Get System Interface Capabilities> +0x08:0x20 //<Firmware>:<Get Version Information> +0x08:0x21 //<Firmware>:<Security Version Information> +0x08:0x22 //<Firmware>:<Firmware Update Channel Information> +0x08:0x23 //<Firmware>:<BMC Execution Context> +0x08:0x24 //<Firmware>:<Get Boot Certificate Info> +0x08:0x25 //<Firmware>:<Get Boot Certificate Data> +0x08:0x26 //<Firmware>:<Firmware Random Number Update> +0x08:0x27 //<Firmware>:<Set Firmware Update Mode> +0x08:0x28 //<Firmware>:<Exit Firmware Update Mode> +0x08:0x29 //<Firmware>:<Firmware Update Control> +0x08:0x2A //<Firmware>:<Get Firmware Update Status> +0x08:0x2B //<Firmware>:<Set Firmware Update Options> +0x08:0x2C //<Firmware>:<Write Firmware Image> +0x08:0x2D //<Firmware>:<Get Firmware Update Status Code Message> +0x08:0xE0 //<Firmware>:<Get Firmware Update Error Code Message> 0x0A:0x10 //<Storage>:<Get FRU Inventory Area Info> 0x0A:0x11 //<Storage>:<Read FRU Data> 0x0A:0x20 //<Storage>:<Get SDR Repository Info> -0x0A:0x22 //<Storage>:<Reserve SDR Repository> +0x0A:0x21 //<Storage>:<Get SDR Alloc Info> 0x0A:0x23 //<Storage>:<Get SDR> +0x0A:0x28 //<Storage>:<SEL Get Time> 0x0A:0x40 //<Storage>:<Get SEL Info> -0x0A:0x42 //<Storage>:<Reserve SEL> -0x0A:0x44 //<Storage>:<Add SEL Entry> +0x0A:0x41 //<Storage>:<Get SEL Alloc Info> +0x0A:0x43 //<Storage>:<Get SEL Entry> 0x0A:0x48 //<Storage>:<Get SEL Time> -0x0A:0x49 //<Storage>:<Set SEL Time> +0x0A:0x5A //<Storage>:<Get SEL Auxiliary Log Status> +0x0A:0x5C //<Storage>:<Get SEL Time UTC Offset> 0x0C:0x02 //<Transport>:<Get LAN Configuration Parameters> +0x0C:0x04 //<Transport>:<Get IPUDPRMCP Statistics> +0x0C:0x11 //<Transport>:<Get Serial Modem Configuration> 0x0C:0x22 //<Transport>:<Get SOL Configuration Parameters> -0x2C:0x00 //<Group Extension>:<Group Extension Command> -0x2C:0x01 //<Group Extension>:<Get DCMI Capabilities> -0x2C:0x02 //<Group Extension>:<Get Power Reading> -0x2C:0x03 //<Group Extension>:<Get Power Limit> -0x2C:0x06 //<Group Extension>:<Get Asset Tag> -0x2C:0x07 //<Group Extension>:<Get Sensor Info> -0x2C:0x10 //<Group Extension>:<Get Temperature Readings> -0x30:0x27 //<OEM>:<Get Device Info> -0x30:0x31 //<OEM>:<Get AIC card FRU> -0x30:0x55 //<OEM>:<Get Power Restore Delay> -0x30:0x9A //<OEM>:<Get Processor Error Config> -0x30:0xB0 //<OEM>:<Get LED Status> -0x30:0xE9 //<OEM>:<Get BIOS Post Codes> - +0x2C:0x1F //<Group Extension>:<Get CPU PECI Package Config Data> +0x2C:0x20 //<Group Extension>:<Get MDR Data Region Status> +0x2C:0x21 //<Group Extension>:<Get MDR Region Update Complete> +0x2C:0x22 //<Group Extension>:<Read MDR Region> +0x2C:0x23 //<Group Extension>:<Write MDR Region> +0x2C:0x24 //<Group Extension>:<Get MDR Region Lock> +0x2C:0x25 //<Group Extension>:<Get System Mode> +0x2C:0x29 //<Group Extension>:<Get TPM Configuration> +0x2C:0x37 //<Group Extension>:<Read PCIe Cable EEPROM Data> +0x30:0x04 //<Intel General Application>:<Get NW Switch MIB> +0x30:0x05 //<Intel General Application>:<Get PDB FW Version> +0x30:0x09 //<Intel General Application>:<Get BMC Config> +0x30:0x14 //<Intel General Application>:<Get SM Signal> +0x30:0x19 //<Intel General Application>:<Read LAN Channel Port Value> +0x30:0x1A //<Intel General Application>:<Get NIC Info> +0x30:0x1B //<Intel General Application>:<Get LAN Available> +0x30:0x1D //<Intel General Application>:<Get Master MAC> +0x30:0x1F //<Intel General Application>:<Get Secure Mode> +0x30:0x20 //<Intel General Application>:<OEM Get SEL info> +0x30:0x21 //<Intel General Application>:<OEM Get SEL Allocation Info> +0x30:0x22 //<Intel General Application>:<OEM Platform Event Message> +0x30:0x23 //<Intel General Application>:<OEM Get SEL Entry> +0x30:0x26 //<Intel General Application>:<Set BIOS ID> +0x30:0x27 //<Intel General Application>:<Get OEM Device Information> +0x30:0x2E //<Intel General Application>:<Get Cold Redundancy Configuration> +0x30:0x30 //<Intel General Application>:<Get Sensor Severity> +0x30:0x31 //<Intel General Application>:<Get AIC Slot FRU ID SLOT POS Records> +0x30:0x33 //<Intel General Application>:<Get Controller Status> +0x30:0x38 //<Intel General Application>:<Get Satellite Firmware update status> +0x30:0x39 //<Intel General Application>:<HSBP Get Owner> +0x30:0x3C //<Intel General Application>:<Get AIC MAC> +0x30:0x41 //<Intel General Application>:<Set System GUID> +0x30:0x43 //<Intel General Application>:<Get BMC Reset Disables> +0x30:0x44 //<Intel General Application>:<Send Embedded Firmware Update Status> +0x30:0x47 //<Intel General Application>:<HSBP Get Version> +0x30:0x55 //<Intel General Application>:<Get Power Restore Delay> +0x30:0x58 //<Intel General Application>:<Get DIMM Fault Status> +0x30:0x62 //<Intel General Application>:<Get Shutdown Policy> +0x30:0x63 //<Intel General Application>:<Get Node Slot Presence> +0x30:0x65 //<Intel General Application>:<Get HDD Drive Fault LED State> +0x30:0x66 //<Intel General Application>:<Get Buffer Size> +0x30:0x71 //<Intel General Application>:<Get Advanced Support> +0x30:0x73 //<Intel General Application>:<Get EFI Payload> +0x30:0x74 //<Intel General Application>:<Get RMM Status> +0x30:0x75 //<Intel General Application>:<Get Voltage Name> +0x30:0x80 //<Intel General Application>:<HSBP Get Register From Memory> +0x30:0x81 //<Intel General Application>:<Get Power State> +0x30:0x82 //<Intel General Application>:<Get ACPI Config> +0x30:0x85 //<Intel General Application>:<Get SF PWM> +0x30:0x8A //<Intel General Application>:<Get Fan Control Configuration> +0x30:0x8B //<Intel General Application>:<Auto Fan Detect> +0x30:0x8D //<Intel General Application>:<Get fan speed offset> +0x30:0x8F //<Intel General Application>:<Get DIMM offset> +0x30:0x91 //<Intel General Application>:<Get FSC Parameter> +0x30:0x92 //<Intel General Application>:<Get Chassis Identifier> +0x30:0x93 //<Intel General Application>:<Read Base Board Product ID> +0x30:0x94 //<Intel General Application>:<Get BMC Revision ID> +0x30:0x95 //<Intel General Application>:<Get Is AP CPU> +0x30:0x9A //<Intel General Application>:<Get Processor Error Configuration and Status> +0x30:0x9D //<Intel General Application>:<Get Fan PWM Limit> +0x30:0xB0 //<Intel General Application>:<Get LED Status> +0x30:0xB2 //<Intel General Application>:<Get BMC Service Status> +0x30:0xB3 //<Intel General Application>:<Get BMC Security Control Mode> +0x30:0xBB //<Intel General Application>:<Get CPLD Revision ID> +0x30:0xC2 //<Intel General Application>:<Get OEM Extended Sys Info> +0x30:0xC6 //<Intel General Application>:<Get Partition Config> +0x30:0xC7 //<Intel General Application>:<Get Zone Information> +0x30:0xC9 //<Intel General Application>:<Get Configuration Status> +0x30:0xCA //<Intel General Application>:<Get Fabric Information> +0x30:0xCB //<Intel General Application>:<Get EndPoints Information> +0x30:0xCC //<Intel General Application>:<Get Switches Information> +0x30:0xCD //<Intel General Application>:<Get Switch Collection Information> +0x30:0xD0 //<Intel General Application>:<Get NVMe Drive Data> +0x30:0xD1 //<Intel General Application>:<HSBP Statistics> +0x30:0xD4 //<Intel General Application>:<Get BIOS Capsule (OOB Update)> +0x30:0xE2 //<Intel General Application>:<OEM Get Reading> +0x30:0xE5 //<Intel General Application>:<Get NMI Source> +0x30:0xE8 //<Intel General Application>:<Get PCIe SMBus Slot Card Info> +0x30:0xE9 //<Intel General Application>:<Get BIOS POST CODE> +0x30:0xF9 //<Intel General Application>:<Get POST Progress Codes> +0x30:0xFD //<Intel General Application>:<Get Riser Presence> +0x32:0x60 //<Intel OEM Platform>:<Get PM Bus Information> +0x32:0x63 //<Intel OEM Platform>:<Get Tach Information> +0x32:0x8D //<Intel OEM Platform>:<Get SSD Power> +0x3E:0x02 //<Intel Managed Data Region>:<BMC Data Region Update Event Message> +0x3E:0x20 //<Intel Managed Data Region>:<BMC Region Status> +0x3E:0x21 //<Intel Managed Data Region>:<BMC Region Update Complete> +0x3E:0x22 //<Intel Managed Data Region>:<MDR Event> +0x3E:0x23 //<Intel Managed Data Region>:<BMC Region Read> +0x3E:0x24 //<Intel Managed Data Region>:<BMC Region Write> +0x3E:0x25 //<Intel Managed Data Region>:<BMC Region Lock> +0x3E:0x28 //<Intel Managed Data Region>:<Get DIMM information> +0x3E:0x30 //<Intel Managed Data Region>:<MDR2 Status> +0x3E:0x31 //<Intel Managed Data Region>:<MDR2 GET Direction> +0x3E:0x32 //<Intel Managed Data Region>:<MDR2 Get Data Set Info> +0x3E:0x33 //<Intel Managed Data Region>:<MDR2 Lock Data> +0x3E:0x34 //<Intel Managed Data Region>:<MDR2 Unlock Data> +0x3E:0x35 //<Intel Managed Data Region>:<MDR2 Dget Data Block> +0x3E:0x38 //<Intel Managed Data Region>:<MDR2 Send Direction> +0x3E:0x39 //<Intel Managed Data Region>:<MDR2 Data Info Offer> +0x3E:0x3A //<Intel Managed Data Region>:<MDR2 Data Info> +0x3E:0x3B //<Intel Managed Data Region>:<MDR2 Data Start> +0x3E:0x3C //<Intel Managed Data Region>:<MDR2 Data Done> +0x3E:0x3D //<Intel Managed Data Region>:<MDR2 Data Block> +0x3E:0x41 //<Intel Managed Data Region>:<Enter Platform Debug Log file transfer mode> +0x3E:0x42 //<Intel Managed Data Region>:<Read Platform Debug Log file> +0x3E:0x43 //<Intel Managed Data Region>:<Status of the Platform Debug Log file transfer mode> +0x3E:0x44 //<Intel Managed Data Region>:<Exit Platform Debug Log file transfer mode> +0x3E:0x50 //<Intel Managed Data Region>:<Node IPMB slave address> +0x3E:0x51 //<Intel Managed Data Region>:<Slot IPMB> +0x3E:0x52 //<Intel Managed Data Region>:<Slot I2C Master Write Read> +0x3E:0x75 //<Intel Managed Data Region>:<Get Remote Log IP> diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend index 16bd9f757..a50d5fd7f 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend @@ -1,13 +1,11 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -# TODO: This should be removed, once up-stream bump up -# issue is resolved -#SRC_URI = "git://github.com/openbmc/phosphor-host-ipmid" -SRCREV = "9da3a75091e0bf0849e2555447e64a70f1dc3bfb" +#todo yong unpin this +SRC_URI = "git://github.com/openbmc/phosphor-host-ipmid;nobranch=1" +SRCREV = "c514d874e4ce3ed1f747cfcb4bab5990393c55e8" SRC_URI += "file://phosphor-ipmi-host.service \ file://host-ipmid-whitelist.conf \ - file://0009-IPv6-Network-changes.patch \ file://0010-fix-get-system-GUID-ipmi-command.patch \ file://0013-ipmi-add-set-bios-id-to-whitelist.patch \ file://0039-ipmi-add-oem-command-get-AIC-FRU-to-whitelist.patch \ @@ -21,9 +19,12 @@ SRC_URI += "file://phosphor-ipmi-host.service \ file://0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch \ file://0064-Enable-watchdog-to-save-useflag-after-host-power-off.patch \ file://0064-Update-provisioning-mode-filter-logic.patch \ - file://0066-Valid-VLANID-should-be-1-4095-as-in-802.1VLAN-spec.patch \ " +EXTRA_OECONF_append = " --disable-i2c-whitelist-check" + +RDEPENDS_${PN}_remove = "clear-once" + # remove the softpoweroff service since we do not need it SYSTEMD_SERVICE_${PN}_remove += " \ xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend index 24037a4cb..7f7d89105 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend @@ -3,7 +3,7 @@ inherit useradd # TODO: This should be removed, once up-stream bump up # issue is resolved SRC_URI += "git://github.com/openbmc/phosphor-net-ipmid" -SRCREV = "35ca150beb7d5faf2fe0ca44c87bc7b0ade0aee7" +SRCREV = "dafe36444fa438030fdf27089b0e94d8d88411dc" USERADD_PACKAGES = "${PN}" # add a group called ipmi diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-node-manager-proxy_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-node-manager-proxy_git.bb index b27961109..fd0a6562b 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-node-manager-proxy_git.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-node-manager-proxy_git.bb @@ -3,7 +3,7 @@ DESCRIPTION = "The Node Manager Proxy provides a simple interface for communicat with Management Engine via IPMB" SRC_URI = "git://git@github.com/Intel-BMC/node-manager;protocol=ssh" -SRCREV = "06e8a1072b05d42e63cf70e2ceac7390578c051d" +SRCREV = "cceeff9cd35aa548cba039b8ad47c20c5870fa27" PV = "0.1+git${SRCPV}" LICENSE = "Apache-2.0" |