diff options
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor/ipmi')
6 files changed, 136 insertions, 52 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0002-Fixed-issue-in-setLan-command-for-IP-source.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0002-Fixed-issue-in-setLan-command-for-IP-source.patch new file mode 100644 index 000000000..6f080a4f4 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0002-Fixed-issue-in-setLan-command-for-IP-source.patch @@ -0,0 +1,62 @@ +From 12ebdc2d53a18d286e34abf0f1553ca423ca6ca5 Mon Sep 17 00:00:00 2001 +From: Rajashekar Gade Reddy <raja.sekhar.reddy.gade@linux.intel.com> +Date: Wed, 18 Dec 2019 12:01:36 +0530 +Subject: [PATCH] Fixed issue in setLan command for IP source. + +Issue: returns success completion code for multiple requests which +is not correct as per IPMI spec. + +Fix: Added proper conditional checks + +Tested: +//IP Address Source: 0x0 (unspecified) +ipmitool -I lanplus -U root -P 0penBmc -H <ip_addr> raw 0x0c 0x01 0x03 0x04 0x0 +0xCC// Invalid data field in request + +//IP Address Source: 0x1 (static address) +ipmitool -I lanplus -U root -P 0penBmc -H <ip_addr> raw 0x0c 0x01 0x03 0x04 0x1 +0x00 //Success + +//IP Address Source: 0x2 (address obtained by BMC running DHCP) +ipmitool -I lanplus -U root -P 0penBmc -H <ip_addr> raw 0x0c 0x01 0x03 0x04 0x2 +0x00 //Success + +//IP Address Source: 0x3 (address loaded by the BIOS or system software) +ipmitool -I lanplus -U root -P 0penBmc -H <ip_addr> raw 0x0c 0x01 0x03 0x04 0x3 +0xCC// Invalid data field in request + +//IP Address Source: 0x4 (address obtained by BMC running other address assignment protocol) +ipmitool -I lanplus -U root -P 0penBmc -H <ip_addr> raw 0x0c 0x01 0x03 0x04 0x4 +0xCC// Invalid data field in request + +ipmitool -I lanplus -U root -P 0penBmc -H <ip_addr> raw 0x0c 0x01 0x03 0x04 0x5 +0x80 // param not supported + +Signed-off-by: Rajashekar Gade Reddy <raja.sekhar.reddy.gade@linux.intel.com> + +%% original patch: 0002-Fixed-issue-in-setLan-command-for-IP-source.patch +--- + transporthandler.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/transporthandler.cpp b/transporthandler.cpp +index 7407396..2df3e45 100644 +--- a/transporthandler.cpp ++++ b/transporthandler.cpp +@@ -1453,9 +1453,12 @@ RspType<> setLan(uint4_t channelBits, uint4_t, uint8_t parameter, + return responseSuccess(); + } + case IPSrc::Unspecified: +- case IPSrc::Static: + case IPSrc::BIOS: + case IPSrc::BMC: ++ { ++ return responseInvalidFieldRequest(); ++ } ++ case IPSrc::Static: + { + channelCall<setDHCPProperty>(channel, dhcpoff); + return responseSuccess(); +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0003-Fix-for-return-CC-in-setLan-command-cases.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0003-Fix-for-return-CC-in-setLan-command-cases.patch new file mode 100644 index 000000000..bab451f32 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0003-Fix-for-return-CC-in-setLan-command-cases.patch @@ -0,0 +1,69 @@ +From 8b3cb6842746d43c0cab3d32821dc5239768642f Mon Sep 17 00:00:00 2001 +From: "Joshi, Mansi" <mansi.joshi@linux.intel.com> +Date: Wed, 18 Dec 2019 15:10:25 +0530 +Subject: [PATCH] Fix for return CC in setLan command cases + +Issue: When DHCP is enabled, setting ip and setting subnet mask returns +completion code 0xff. Setting default gateway returns 0x00. + +Fix: Returns CC 0xd5 because this parameter is R/W. It is only unable +to be updated because the current state blocks it (i.e. 0xd5). + +Tested: +ipmitool raw 0x0c 0x01 0x03 0x03 0x00 0x00 0x00 0x00 //setting ip +0xd5 //Command, or request parameter, not supported in present state. + +ipmitool raw 0x0c 0x01 0x03 0x06 0xff 0xff 0xf0 0x00 //subnet mask +0xd5 //Command, or request parameter, not supported in present state. + +ipmitool raw 0x0c 0x01 0x03 0x0c 0x0a 0xfe 0xef 0x77 //default gateway +0xd5 //Command, or request parameter, not supported in present state. + +%% original patch: 0065-Fix-for-return-CC-in-setLan-command-cases.patch +--- + transporthandler.cpp | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/transporthandler.cpp b/transporthandler.cpp +index 7407396..7b9ff3d 100644 +--- a/transporthandler.cpp ++++ b/transporthandler.cpp +@@ -1423,6 +1423,11 @@ RspType<> setLan(uint4_t channelBits, uint4_t, uint8_t parameter, + } + case LanParam::IP: + { ++ std::string dhcp = channelCall<getDHCPProperty>(channel); ++ if ((dhcp == dhcpv4) || (dhcp == dhcpv4v6)) ++ { ++ return responseCommandNotAvailable(); ++ } + in_addr ip; + std::array<uint8_t, sizeof(ip)> bytes; + if (req.unpack(bytes) != 0 || !req.fullyUnpacked()) +@@ -1477,6 +1482,11 @@ RspType<> setLan(uint4_t channelBits, uint4_t, uint8_t parameter, + } + case LanParam::SubnetMask: + { ++ std::string dhcp = channelCall<getDHCPProperty>(channel); ++ if ((dhcp == dhcpv4) || (dhcp == dhcpv4v6)) ++ { ++ return responseCommandNotAvailable(); ++ } + in_addr netmask; + std::array<uint8_t, sizeof(netmask)> bytes; + if (req.unpack(bytes) != 0 || !req.fullyUnpacked()) +@@ -1490,6 +1500,11 @@ RspType<> setLan(uint4_t channelBits, uint4_t, uint8_t parameter, + } + case LanParam::Gateway1: + { ++ std::string dhcp = channelCall<getDHCPProperty>(channel); ++ if ((dhcp == dhcpv4) || (dhcp == dhcpv4v6)) ++ { ++ return responseCommandNotAvailable(); ++ } + in_addr gateway; + std::array<uint8_t, sizeof(gateway)> bytes; + if (req.unpack(bytes) != 0 || !req.fullyUnpacked()) +-- +2.7.4 + 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 c6bc80202..ba148779f 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 @@ -2,7 +2,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" PROJECT_SRC_DIR := "${THISDIR}/${PN}" SRC_URI = "git://github.com/openbmc/phosphor-host-ipmid" -SRCREV = "225dec858e52f0e8319acfe72d7b3630adcc7a0d" +SRCREV = "ebc53cb165ea26aa48f0bbf01d9bce0e4abb0b7d" SRC_URI += "file://phosphor-ipmi-host.service \ file://host-ipmid-whitelist.conf \ @@ -15,6 +15,8 @@ SRC_URI += "file://phosphor-ipmi-host.service \ file://0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch \ file://0064-Update-provisioning-mode-filter-logic.patch \ file://0001-Modify-Get-Lan-Configuration-IP-Address-Source-to-us.patch \ + file://0002-Fixed-issue-in-setLan-command-for-IP-source.patch \ + file://0003-Fix-for-return-CC-in-setLan-command-cases.patch \ " EXTRA_OECONF_append = " --disable-i2c-whitelist-check" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0012-Do-not-stop-session-in-deactivate-payload.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0012-Do-not-stop-session-in-deactivate-payload.patch deleted file mode 100644 index 6430a6928..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0012-Do-not-stop-session-in-deactivate-payload.patch +++ /dev/null @@ -1,48 +0,0 @@ -From cf8c0e1bf18334fe4a8f76c1e9b34ccfdc82f6f9 Mon Sep 17 00:00:00 2001 -From: Yong Li <yong.b.li@linux.intel.com> -Date: Fri, 15 Nov 2019 18:34:04 +0800 -Subject: [PATCH] Do not stop session in deactivate payload - -IPMI spec defines that: -The Deactivate Payload command does not cause the session to be terminated; - -Also during SOL looptest, there is only one time startSession call, -but multiple stopSessions calls, -This causes the looptest will fail if there is any new sessions comes in, -needs to remove the stopSession call. - -Tested: -Start the loop test in a terminal: -ipmitool -H $BMCIP -Uroot -P 0penBmc -I lanplus sol looptest 500 200 - -Then start a new session in another terminal: -ipmitool -H $BMCIP -Uroot -P 0penBmc -I lanplus raw 6 1 - -The looptest still works - -Signed-off-by: Yong Li <yong.b.li@linux.intel.com> ---- - command/payload_cmds.cpp | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/command/payload_cmds.cpp b/command/payload_cmds.cpp -index f558781..363b843 100644 ---- a/command/payload_cmds.cpp -+++ b/command/payload_cmds.cpp -@@ -176,13 +176,6 @@ std::vector<uint8_t> deactivatePayload(const std::vector<uint8_t>& inPayload, - */ - return outPayload; - } -- -- auto check = -- std::get<session::Manager&>(singletonPool).stopSession(sessionID); -- if (!check) -- { -- response->completionCode = IPMI_CC_UNSPECIFIED_ERROR; -- } - } - catch (std::exception& e) - { --- -2.7.4 - 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 b488e6d8e..614133645 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 = "0f63e01ce6bb11920d78d999267558500ca9a272" +SRCREV = "46bec0f60a201a644c1f3af4cec2f31da58a0595" USERADD_PACKAGES = "${PN}" # add a group called ipmi @@ -22,6 +22,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += " file://0006-Modify-dbus-namespace-of-chassis-control-for-guid.patch \ file://0009-Add-dbus-interface-for-sol-commands.patch \ file://0011-Remove-Get-SOL-Config-Command-from-Netipmid.patch \ - file://0012-Do-not-stop-session-in-deactivate-payload.patch \ " 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 635f2d3a4..9f657e39b 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://github.com/Intel-BMC/node-manager;protocol=ssh" -SRCREV = "13c62849bce28161fc58134c52920e0c494745f9" +SRCREV = "ddba32d5ac94cdd8db19e18215535d7fe86675e6" PV = "0.1+git${SRCPV}" LICENSE = "Apache-2.0" |