From 816d793003e93c1e5eec0a2e90fbd8b9dde9f7a5 Mon Sep 17 00:00:00 2001 From: Ed Tanous Date: Mon, 15 Apr 2019 13:42:44 -0700 Subject: Update 4-15-19 Signed-off-by: Ed Tanous --- .../configuration/entity-manager_%.bbappend | 2 +- ...003-Chassis-Power-Control-are-implemented.patch | 45 ++- ...ng-the-Session-interface-for-Host-and-LAN.patch | 104 +++--- ...0-Change-some-properties-name-in-SOL-Dbus.patch | 73 ++++ ...d-interface-suppot-for-provisioning-modes.patch | 52 +++ .../dbus/phosphor-dbus-interfaces_%.bbappend | 4 +- .../phosphor-pid-control.service | 2 +- .../fans/phosphor-pid-control_%.bbappend | 4 +- .../recipes-phosphor/gpiodaemon/gpiodaemon.bb | 2 +- .../recipes-phosphor/interfaces/bmcweb_%.bbappend | 2 +- .../0009-IPv6-Network-changes.patch | 198 +++++----- ...6-add-better-sdbusplus-exception-handling.patch | 153 -------- ...18-Catch-sdbusplus-exceptions-in-IPMI-net.patch | 49 --- ...-Implement-IPMI-Master-Write-Read-command.patch | 93 +++-- ...-LAN-Config-to-work-without-SetInProgress.patch | 142 ------- ...ed-bit-support-for-get-chassis-status-com.patch | 76 ++++ ...ve-Set-SOL-config-parameter-to-host-ipmid.patch | 415 +++++++++++++++++++++ ...ve-Get-SOL-config-parameter-to-host-ipmid.patch | 248 ++++++++++++ .../ipmi/phosphor-ipmi-host_%.bbappend | 16 +- .../ipmi/phosphor-ipmi-ipmb_%.bbappend | 2 +- .../00010-Change-Authentication-Parameter.patch | 40 ++ ...bus-namespace-of-chassis-control-for-guid.patch | 2 +- ...Adding-support-for-GetSessionInfo-command.patch | 101 +++-- ...Session-Info-cmd-based-on-Upstream-review.patch | 42 +-- .../0009-Add-dbus-interface-for-sol-commands.patch | 2 +- .../ipmi/phosphor-ipmi-net_%.bbappend | 3 +- .../ipmi/phosphor-node-manager-proxy_git.bb | 2 +- .../multi-node-manager/multi-node-manager.bb | 15 + .../packagegroups/packagegroup-obmc-apps.bbappend | 4 + .../sel-logger/phosphor-sel-logger_%.bbappend | 2 +- .../sensors/dbus-sensors_%.bbappend | 5 +- .../defaults.yaml | 30 +- .../srvcfg-manager/srvcfg-manager_git.bb | 2 +- .../recipes-phosphor/system/callback-manager.bb | 2 +- .../users/phosphor-user-manager_%.bbappend | 2 +- ...0001-Add-expiredTimerUse-property-support.patch | 28 -- ...-log-support-for-IPMI-watchdog-timeout-ac.patch | 50 +++ .../watchdog/phosphor-watchdog_%.bbappend | 2 +- ...orce-boot-to-bios-in-server-power-control.patch | 199 ++++++++++ .../0007-Fix-some-page-keeps-loading-on-IE11.patch | 68 ---- .../0008-Pull-the-latest-novnc-package.patch | 88 +++++ .../webui/phosphor-webui/config.json | 8 - .../webui/phosphor-webui_%.bbappend | 10 +- 43 files changed, 1616 insertions(+), 773 deletions(-) create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0020-Change-some-properties-name-in-SOL-Dbus.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0021-Add-interface-suppot-for-provisioning-modes.patch delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0016-add-better-sdbusplus-exception-handling.patch delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0018-Catch-sdbusplus-exceptions-in-IPMI-net.patch delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0051-Fix-Set-LAN-Config-to-work-without-SetInProgress.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0058-Add-AC-failed-bit-support-for-get-chassis-status-com.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0059-Move-Set-SOL-config-parameter-to-host-ipmid.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0060-Move-Get-SOL-config-parameter-to-host-ipmid.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/00010-Change-Authentication-Parameter.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-expiredTimerUse-property-support.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-redfish-log-support-for-IPMI-watchdog-timeout-ac.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0004-Implement-force-boot-to-bios-in-server-power-control.patch delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0007-Fix-some-page-keeps-loading-on-IE11.patch create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0008-Pull-the-latest-novnc-package.patch delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/config.json (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor') diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend index b059a35d7..2a6b5abb0 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend @@ -1,6 +1,6 @@ # this is here just to bump faster than upstream SRC_URI = "git://github.com/openbmc/entity-manager.git" -SRCREV = "4133426a04bf46e275416362205bc29c1b3c0935" +SRCREV = "a218ddb84c5cb6f6d07c3febd14bb0395ce38e5f" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Chassis-Power-Control-are-implemented.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Chassis-Power-Control-are-implemented.patch index 79d02ca9b..0e25856ac 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Chassis-Power-Control-are-implemented.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Chassis-Power-Control-are-implemented.patch @@ -1,4 +1,4 @@ -From 35271230690c5d85dc7a6502031b38d93ddd683f Mon Sep 17 00:00:00 2001 +From a20f9fa9941533b591b6bbfe6b22a74b7c0dfe64 Mon Sep 17 00:00:00 2001 From: Ed Tanous Date: Thu, 24 Jan 2019 09:29:01 -0800 Subject: [PATCH] Chassis Power Control are implemented. @@ -38,9 +38,9 @@ Power on/off: curl --noproxy -q1c cjar -b cjar -k -H "Content-Type: ap Signed-off-by: Kuiying Wang Signed-off-by: Yong Li --- - .../Chassis/Control/Chassis.interface.yaml | 94 +++++++++++++++++++ - .../Chassis/Control/Power.interface.yaml | 85 ++++++++++++++--- - 2 files changed, 166 insertions(+), 13 deletions(-) + .../Chassis/Control/Chassis.interface.yaml | 94 ++++++++++++++++++++++ + .../Chassis/Control/Power.interface.yaml | 92 ++++++++++++++++++--- + 2 files changed, 173 insertions(+), 13 deletions(-) create mode 100644 xyz/openbmc_project/Chassis/Control/Chassis.interface.yaml diff --git a/xyz/openbmc_project/Chassis/Control/Chassis.interface.yaml b/xyz/openbmc_project/Chassis/Control/Chassis.interface.yaml @@ -144,10 +144,10 @@ index 0000000..c28492a + - xyz.openbmc_project.Chassis.Common.Error.IOError + diff --git a/xyz/openbmc_project/Chassis/Control/Power.interface.yaml b/xyz/openbmc_project/Chassis/Control/Power.interface.yaml -index 082586f..e77598b 100644 +index 082586f..368beca 100644 --- a/xyz/openbmc_project/Chassis/Control/Power.interface.yaml +++ b/xyz/openbmc_project/Chassis/Control/Power.interface.yaml -@@ -1,31 +1,90 @@ +@@ -1,31 +1,97 @@ description: > - Power control service + Chassis control service @@ -206,13 +206,23 @@ index 082586f..e77598b 100644 - default: false + - name: vrd_good + type: int32 ++ default: 0 ++ description: > ++ ACPI status ++ - name: s4s5_state ++ type: int32 ++ default: 0 ++ description: > ++ ACPI status ++ - name: pgood ++ type: int32 + default: 0 description: > - PSU Power good property - It is a read-only property. - - name: State -+ ACPI status -+ - name: s4s5_state ++ pgood property ++ - name: state type: int32 default: 0 description: > @@ -222,16 +232,6 @@ index 082586f..e77598b 100644 - Setting its value to change the system state - Read its value to get the system state. \ No newline at end of file -+ ACPI status -+ - name: pgood -+ type: int32 -+ default: 0 -+ description: > -+ pgood property -+ - name: state -+ type: int32 -+ default: 0 -+ description: > + state property + - name: pgood_timeout + type: int32 @@ -245,6 +245,13 @@ index 082586f..e77598b 100644 + The current BIOS POST state, + false means not completed or system reset, + true means BIOS POST completed. ++ - name: PFail ++ type: boolean ++ default: true ++ description: > ++ The current booting status, ++ true means booting from AC loss, ++ false means not booting from AC loss. +signals: + - name: PowerGood + description: > @@ -253,5 +260,5 @@ index 082586f..e77598b 100644 + description: > + Signal for powerlost -- -2.17.1 +2.7.4 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0019-Creating-the-Session-interface-for-Host-and-LAN.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0019-Creating-the-Session-interface-for-Host-and-LAN.patch index e1208cf5b..47fab819b 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0019-Creating-the-Session-interface-for-Host-and-LAN.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0019-Creating-the-Session-interface-for-Host-and-LAN.patch @@ -1,4 +1,4 @@ -From f805522921d69eb4ea70248fe7e54557363aacea Mon Sep 17 00:00:00 2001 +From 28fac58dc6ef975e1e9283163d9f1e4c7764c3cc Mon Sep 17 00:00:00 2001 From: Suryakanth Sekar Date: Sat, 2 Mar 2019 03:31:09 +0530 Subject: [PATCH] Creating the Session interface- for Host and LAN @@ -8,23 +8,56 @@ host and also in LAN Change-Id: Ic7cccfc3333a602ee07fcd60077ec58fd8f06304 Signed-off-by: Suryakanth Sekar + +%% original patch: 0019-Creating-the-Session-interface-for-Host-and-LAN.patch --- - xyz/openbmc_project/Session/Info.interface.yaml | 56 +++++++++++++++++++++++++ - xyz/openbmc_project/Session/README.md | 38 +++++++++++++++++ - 2 files changed, 94 insertions(+) - create mode 100644 xyz/openbmc_project/Session/Info.interface.yaml - create mode 100644 xyz/openbmc_project/Session/README.md + xyz/openbmc_project/Ipmi/SESSION_README.md | 25 ++++++++++ + .../Ipmi/SessionInfo.interface.yaml | 57 ++++++++++++++++++++++ + 2 files changed, 82 insertions(+) + create mode 100644 xyz/openbmc_project/Ipmi/SESSION_README.md + create mode 100644 xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml -diff --git a/xyz/openbmc_project/Session/Info.interface.yaml b/xyz/openbmc_project/Session/Info.interface.yaml +diff --git a/xyz/openbmc_project/Ipmi/SESSION_README.md b/xyz/openbmc_project/Ipmi/SESSION_README.md +new file mode 100644 +index 0000000..c59b251 +--- /dev/null ++++ b/xyz/openbmc_project/Ipmi/SESSION_README.md +@@ -0,0 +1,25 @@ ++# Session Management ++ ++## Overview ++IPMI RMCP+ sessions are created and maintained by phosphor-ipmi-net daemon, ++whereas we need to provide details about the same using phosphor-ipmi-host. ++Hence IPMI RMCP+ session details has to be exposed through D-Bus interface, ++so that both phosphor-ipmi-host & phosphr-ipmi-net will be in sync. ++ ++ ++#### xyz.openbmc_project.Ipmi.SessionInfo interface ++##### properties ++* SessionHandle - SessionHandle,unique one-byte number to locate the session. ++* Channel - Session created channel. ++* SessionPrivilege - Privilege of the session. ++* RemoteIPAddr – Remote IP address. ++* RemotePort - Remote port address. ++* RemoteMACAddress -Remote MAC Address. ++* UserID - Session created by given user id. ++ ++ ++ ++#### xyz.openbmc_project.Object.Delete ++#### methods ++* Delete - To delete the session object in the system. ++ +diff --git a/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml b/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml new file mode 100644 -index 0000000..fbb5a45 +index 0000000..d461628 --- /dev/null -+++ b/xyz/openbmc_project/Session/Info.interface.yaml -@@ -0,0 +1,56 @@ ++++ b/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml +@@ -0,0 +1,57 @@ +description: > -+ Provides properties for session objects. -+ As communication to this service is done through authenticated -+ & authorized session, there won't be any validation for the both. ++ Provides properties for IPMI RMCP+ session objects. ++ Provides RMCP+ session information as session objects ++ with Session ID (unique identifier) as path suffix. + +properties: + - name: SessionHandle @@ -71,56 +104,13 @@ index 0000000..fbb5a45 + - xyz.openbmc_project.Common.Error.InternalFailure + - name: State + type: byte ++ default: 0 + description: > + Session state. + errors: + - xyz.openbmc_project.Common.Error.InternalFailure + +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 -diff --git a/xyz/openbmc_project/Session/README.md b/xyz/openbmc_project/Session/README.md -new file mode 100644 -index 0000000..f220885 ---- /dev/null -+++ b/xyz/openbmc_project/Session/README.md -@@ -0,0 +1,38 @@ -+# Session Management -+ -+## Overview -+Session Manager service exposes D-Bus methods for session management operations. -+ -+### Session Manager Interface -+Session manager interface `xyz.openbmc_project.Session.Manager` provides following -+methods, properties and signals. -+ -+#### xyz.openbmc_project.Session.Manager interface -+##### methods -+* CreateSession - To create new session object to the system. -+ -+##### properties -+* MaxSessionSupported - To list all the groups supported in the system. -+* ActiveSessionCount - To hold the no of active sessions. -+ -+Session manager service will create session objects for every session -+in the system under object path `/xyz/openbmc_project/session/`. -+Each session object can be handled through 'org.freedesktop.DBus.ObjectManager'. -+session object will expose following properties and methods. -+ -+#### xyz.openbmc_project.Session.Info interface -+##### properties -+* SessionID - Session ID,random unique number to locate the session. -+* Channel - Session created Channel. -+* SessionPrivilege - Privilege of the session. -+* RemoteIPAddr – Remote IP address. -+* RemotePort - Remote Port address. -+* RemoteMACAddress -Remote MAC Address. -+* UserID - Session created by given user id. -+ -+ -+ -+#### xyz.openbmc_project.Object.Delete -+#### methods -+* Delete - To delete the session object in the system. -+ -- 2.7.4 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0020-Change-some-properties-name-in-SOL-Dbus.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0020-Change-some-properties-name-in-SOL-Dbus.patch new file mode 100644 index 000000000..9fe383fda --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0020-Change-some-properties-name-in-SOL-Dbus.patch @@ -0,0 +1,73 @@ +From 2e265e85777345a318084c2f1f3b684f7e7ff4a4 Mon Sep 17 00:00:00 2001 +From: Cheng C Yang +Date: Thu, 28 Mar 2019 18:06:54 +0800 +Subject: [PATCH] Change some properties name in SOL Dbus + +Change some properties name in SOL D-Bus interface to make the meaning +of the properties more clearly. + +Signed-off-by: Cheng C Yang +--- + xyz/openbmc_project/Ipmi/SOL.interface.yaml | 25 +++++++++++++++++-------- + 1 file changed, 17 insertions(+), 8 deletions(-) + +diff --git a/xyz/openbmc_project/Ipmi/SOL.interface.yaml b/xyz/openbmc_project/Ipmi/SOL.interface.yaml +index 94db59f..96c8c87 100644 +--- a/xyz/openbmc_project/Ipmi/SOL.interface.yaml ++++ b/xyz/openbmc_project/Ipmi/SOL.interface.yaml +@@ -2,8 +2,8 @@ description: > + SOL properties use for Get/Set SOL config parameter command in host-ipmid + sending config to SOL process in net-ipmid. + Since some platforms need to access Get/Set SOL config parameter command +- through KCS, and current sol manager is implemented in net-ipmid and +- cannot be accessed by host-ipmid, add a dbus interface for host-ipmid ++ through KCS, and current SOL manager is implemented in net-ipmid and ++ cannot be accessed by host-ipmid, add a D-Bus interface for host-ipmid + command to transfer properties to net-ipmid. + This interface will be implemented in phosphor-settings. + properties: +@@ -17,12 +17,20 @@ properties: + description: > + SOL Enable property, this controls whether the SOL payload type + can be activated. +- - name: Authentication ++ - name: ForceEncryption ++ type: boolean ++ description: > ++ If SOL enable Force Payload Encryption. ++ - name: ForceAuthentication ++ type: boolean ++ description: > ++ If SOL enable Force Payload Authentication ++ - name: Privilege + type: byte + description: > +- If SOL enable Force Payload Encryption and Authenticaton. +- And the minimun operating privilege level SOL required. +- - name: Accumulate ++ Sets the minimum operating privilege level that is required to ++ be able to activate SOL by Activate Payload command. ++ - name: AccumulateIntervalMS + type: byte + description: > + Character Accumulate Interval in 5ms increments. +@@ -31,13 +39,14 @@ properties: + type: byte + description: > + BMC will automatically send an SOL character data packet containing +- this number of characters. ++ this number of characters as soon as this number of characters ++ (or greater) has been accepted from the baseboard serial controller. + - name: RetryCount + type: byte + description: > + Packet will be dropped if no ACK/NACK received by time retries + expire. +- - name: RetryInterval ++ - name: RetryIntervalMS + type: byte + description: > + Retry Interval in 10ms increments. +-- +2.16.2 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0021-Add-interface-suppot-for-provisioning-modes.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0021-Add-interface-suppot-for-provisioning-modes.patch new file mode 100644 index 000000000..f6e200cab --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0021-Add-interface-suppot-for-provisioning-modes.patch @@ -0,0 +1,52 @@ +From 94fb1ac5dd4d54ea5a6d49597e1f15c384be7fd6 Mon Sep 17 00:00:00 2001 +From: Richard Marian Thomaiyar +Date: Mon, 8 Apr 2019 11:48:22 +0530 +Subject: [PATCH] Add interface suppot for provisioning modes + +Support for provisioning modes are added in +RestrictionMode.interface.yaml + +Tested: +1. Verified build, and verified specified modes are available +and able to set / get the same using busctl command + +Signed-off-by: Richard Marian Thomaiyar +--- + .../Security/RestrictionMode.interface.yaml | 24 ++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml b/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml +index 8e4fd8d..d328dac 100644 +--- a/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml ++++ b/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml +@@ -21,3 +21,27 @@ enumerations: + - name: Blacklist + description: > + Prevent, if in the blacklist. ++ - name: Provisioning ++ description: > ++ Indicate that system is in provisioning mode ++ and all commands are allowed in KCS inteface ++ in both pre and post BIOS boot. ++ - name: ProvisionedKCSWhiteList ++ description: > ++ Commands in the whitelist will only be executed ++ through KCS interface after BIOS POST complete. ++ All KCS commands are supported before POST complete. ++ - name: ProvisionedKCSDisabled ++ description: > ++ Commands through KCS interface are executed only ++ till BIOS POST complete notification, after ++ which no KCS commands will be executed(other ++ than BIOS SMI based ones). ++ - name: ValidationUnsecure ++ description: > ++ To indicate that BMC is in unsecure mode, and many ++ operations which are not meant for end-user will be ++ allowed in this mode. Interface which sets this ++ property has to make sure due diligence is made ++ as in this mode, many security intrinsic commands ++ can be executed. +-- +2.7.4 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend index a2eb6649c..e46c06bcd 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend @@ -1,5 +1,5 @@ SRC_URI = "git://github.com/openbmc/phosphor-dbus-interfaces.git" -SRCREV = "5515c34fded4c217e3cc07f551d59d34cd3329c5" +SRCREV = "4623908c8c0e82d5831fca562c6f5a8430d494c8" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" @@ -17,4 +17,6 @@ SRC_URI += "file://0002-Modify-Dbus-for-IPv6.patch \ file://0017-Add-shutdown-policy-interface-for-get-set-shutdown-p.patch \ file://0018-Define-post-code-interfaces-for-post-code-manager.patch \ file://0019-Creating-the-Session-interface-for-Host-and-LAN.patch \ + file://0020-Change-some-properties-name-in-SOL-Dbus.patch \ + file://0021-Add-interface-suppot-for-provisioning-modes.patch \ " diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service index f4ffa17a0..99494717f 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service @@ -3,7 +3,7 @@ Description=Phosphor-Pid-Control Margin-based Fan Control Daemon [Service] Restart=always -ExecStart={sbindir}/swampd +ExecStart={bindir}/swampd RestartSec=5 StartLimitInterval=0 Type=simple diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend index 0c56a8fe5..efaccb590 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend @@ -5,4 +5,6 @@ SYSTEMD_SERVICE_${PN} = "phosphor-pid-control.service" EXTRA_OECONF = "--enable-configure-dbus=yes" SRC_URI = "git://github.com/openbmc/phosphor-pid-control.git" -SRCREV = "90e9dbcae6c1df3127dd3de41f9d1e1b5a438828" +SRCREV = "5782ab81367e22e87d719c9fef6e85ecdc6cf95e" + +FILES_${PN} = "${bindir}/swampd ${bindir}/setsensor" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb index c04069fb9..7347fe483 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh" -SRCREV = "f4d4bfc3296cb27feb17aa5d1d93b3061b56ce10" +SRCREV = "785f19b128794611574ea6c18805740fb851ecff" inherit cmake systemd SYSTEMD_SERVICE_${PN} = "gpiodaemon.service" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend index fe09e6da2..3ff46cdc9 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend @@ -1,5 +1,5 @@ SRC_URI = "git://github.com/openbmc/bmcweb.git" -SRCREV = "b01bf2991955ef267ce2be8e7a18eac984990de8" +SRCREV = "0e7de46f9b6365bad4e79a3933112750c5bf7853" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 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 3d9179ce5..b54b22213 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 @@ -1,6 +1,6 @@ -From cd4bc9e4291771f638f66efa205bf8fbec518546 Mon Sep 17 00:00:00 2001 +From c20bc8eb6a08d177d951012eb91b37398b15d81d Mon Sep 17 00:00:00 2001 From: Vernon Mauery -Date: Mon, 4 Feb 2019 10:30:12 -0800 +Date: Tue, 27 Nov 2018 11:01:15 -0800 Subject: [PATCH] IPv6 Network changes Allow IPv6 IPMI set/get commands @@ -11,17 +11,62 @@ Signed-off-by: Vernon Mauery Change-Id: If5528d3b7294c5f8c17db5919439235d0fad0446 --- - transporthandler.cpp | 667 ++++++++++++++++++++++++++++++++++++++++++- - transporthandler.hpp | 68 +++++ - types.hpp | 9 + - utils.hpp | 1 + - 4 files changed, 744 insertions(+), 1 deletion(-) + include/ipmid/types.hpp | 9 + + include/ipmid/utils.hpp | 1 + + transporthandler.cpp | 654 +++++++++++++++++++++++++++++++++++++++- + transporthandler.hpp | 50 +++ + 4 files changed, 713 insertions(+), 1 deletion(-) -Index: phosphor-host-ipmid.clean/transporthandler.cpp -=================================================================== ---- phosphor-host-ipmid.clean.orig/transporthandler.cpp -+++ phosphor-host-ipmid.clean/transporthandler.cpp -@@ -41,6 +41,12 @@ extern std::unique_ptr +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"; + + constexpr auto IPV4_ADDRESS_SIZE_BYTE = 4; + constexpr auto IPV6_ADDRESS_SIZE_BYTE = 16; ++constexpr auto IPV6_ADDRESS_STATUS_SIZE = 22; + + constexpr auto DEFAULT_MAC_ADDRESS = "00:00:00:00:00:00"; + constexpr auto DEFAULT_ADDRESS = "0.0.0.0"; +@@ -235,6 +236,7 @@ constexpr auto BITS_32 = 32; + constexpr auto MASK_32_BIT = 0xFFFFFFFF; + constexpr auto VLAN_ID_MASK = 0x00000FFF; + constexpr auto VLAN_ENABLE_MASK = 0x8000; ++constexpr auto IPV6_DUID_SIZE = 18; + + enum class IPOrigin : uint8_t + { +@@ -243,5 +245,12 @@ enum class IPOrigin : uint8_t + DHCP = 2, + }; + ++enum class AddressingEnables : uint8_t ++{ ++ IPv4Only = 0, ++ IPv6Only = 1, ++ IPv4AndIPv6 = 2, ++}; ++ + } // 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 +@@ -256,6 +256,7 @@ namespace network + constexpr auto ROOT = "/xyz/openbmc_project/network"; + constexpr auto SERVICE = "xyz.openbmc_project.Network"; + constexpr auto IP_TYPE = "ipv4"; ++constexpr auto IPV6_TYPE = "ipv6"; + 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 networkTimer = nullptr; const int SIZE_MAC = 18; // xx:xx:xx:xx:xx:xx constexpr auto ipv4Protocol = "xyz.openbmc_project.Network.IP.Protocol.IPv4"; @@ -34,7 +79,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp std::map> channelConfig; -@@ -400,7 +406,6 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -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; @@ -42,7 +87,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp using namespace std::chrono_literals; -@@ -414,6 +419,9 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -403,6 +408,9 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, auto reqptr = reinterpret_cast(request); sdbusplus::bus::bus bus(ipmid_get_sd_bus_connection()); @@ -51,8 +96,8 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp + // channel number is the lower nibble int channel = reqptr->channel & CHANNEL_MASK; - auto ethdevice = ipmi::network::ChanneltoEthernet(channel); -@@ -437,6 +445,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n + auto ethdevice = ipmi::getChannelName(channel); +@@ -426,6 +434,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, case LanParam::IPSRC: { @@ -64,7 +109,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp uint8_t ipsrc{}; std::memcpy(&ipsrc, reqptr->data, ipmi::network::IPSRC_SIZE_BYTE); channelConf->ipsrc = static_cast(ipsrc); -@@ -445,6 +458,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -434,6 +447,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, case LanParam::MAC: { @@ -76,7 +121,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp char mac[SIZE_MAC]; std::snprintf(mac, SIZE_MAC, ipmi::network::MAC_ADDRESS_FORMAT, -@@ -465,6 +483,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -454,6 +472,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, case LanParam::SUBNET: { @@ -88,7 +133,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp std::snprintf(netmask, INET_ADDRSTRLEN, ipmi::network::IP_ADDRESS_FORMAT, reqptr->data[0], reqptr->data[1], reqptr->data[2], reqptr->data[3]); -@@ -474,6 +497,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -463,6 +486,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, case LanParam::GATEWAY: { @@ -100,7 +145,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp std::snprintf(gateway, INET_ADDRSTRLEN, ipmi::network::IP_ADDRESS_FORMAT, reqptr->data[0], reqptr->data[1], reqptr->data[2], reqptr->data[3]); -@@ -483,6 +511,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -472,6 +500,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, case LanParam::VLAN: { @@ -112,7 +157,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp uint16_t vlan{}; std::memcpy(&vlan, reqptr->data, ipmi::network::VLAN_SIZE_BYTE); // We are not storing the enable bit -@@ -495,6 +528,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -484,6 +517,11 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, case LanParam::INPROGRESS: { @@ -124,7 +169,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp if (reqptr->data[0] == SET_COMPLETE) { channelConf->lan_set_in_progress = SET_COMPLETE; -@@ -523,6 +561,122 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n +@@ -512,6 +550,122 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, } break; @@ -247,7 +292,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp default: { rc = IPMI_CC_PARM_NOT_SUPPORTED; -@@ -549,6 +703,7 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_n +@@ -538,6 +692,7 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, ipmi_ret_t rc = IPMI_CC_OK; *data_len = 0; const uint8_t current_revision = 0x11; // Current rev per IPMI Spec 2.0 @@ -255,7 +300,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp get_lan_t* reqptr = (get_lan_t*)request; // channel number is the lower nibble -@@ -687,6 +842,489 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_n +@@ -676,6 +831,476 @@ ipmi_ret_t ipmi_transport_get_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, static_cast(cipherList.size()); break; } @@ -327,12 +372,10 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp + networkInterfacePath = networkInterfaceObject.first; + } + -+ std::string ipEnables = -+ sdbusplus::message::variant_ns::get( -+ ipmi::getDbusProperty(bus, ipmi::network::SERVICE, -+ networkInterfacePath, -+ ipmi::network::ETHERNET_INTERFACE, -+ "IPAddressEnables")); ++ ipmi::Value ipEnablesProp = ipmi::getDbusProperty( ++ bus, ipmi::network::SERVICE, networkInterfacePath, ++ ipmi::network::ETHERNET_INTERFACE, "IPAddressEnables"); ++ std::string ipEnables = std::get(ipEnablesProp); + + // check if on off ipv4 ipv6, etc. + bool found = false; @@ -392,20 +435,14 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp + bus, ipObjectInfo.second, ipObjectInfo.first, + ipmi::network::IP_INTERFACE); + -+ std::string origin = -+ sdbusplus::message::variant_ns::get( -+ properties["Origin"]); -+ if (sdbusplus::message::variant_ns::get( -+ properties["Origin"]) == ++ if (std::get(properties["Origin"]) == + "xyz.openbmc_project.Network.IP.AddressOrigin.Static") + { + ipaddress = -+ sdbusplus::message::variant_ns::get( -+ properties["Address"]); ++ std::get(properties["Address"]); + ipv6AddressSource = 0x81; // Looking at bit 0 and bit 7 + prefixLength = -+ sdbusplus::message::variant_ns::get( -+ properties["PrefixLength"]); ++ std::get(properties["PrefixLength"]); + status = 0; + } + } @@ -458,8 +495,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp + bus, macObjectInfo.second, macObjectInfo.first, + ipmi::network::MAC_INTERFACE, "MACAddress"); + -+ macAddress = -+ sdbusplus::message::variant_ns::get(variant); ++ macAddress = std::get(variant); + } + else if (channelConf->lan_set_in_progress == SET_IN_PROGRESS) + { @@ -505,17 +541,14 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp + bus, ipObjectInfo.second, ipObjectInfo.first, + ipmi::network::IP_INTERFACE); + -+ if (sdbusplus::message::variant_ns::get( -+ properties["Origin"]) == ++ if (std::get(properties["Origin"]) == + "xyz.openbmc_project.Network.IP.AddressOrigin.DHCP") + { + ipaddress = -+ sdbusplus::message::variant_ns::get( -+ properties["Address"]); ++ std::get(properties["Address"]); + ipv6AddressSource = 0x81; // Looking at bit 0 and bit 7 + prefixLength = -+ sdbusplus::message::variant_ns::get( -+ properties["PrefixLength"]); ++ std::get(properties["PrefixLength"]); + status = 0; + } + else @@ -574,8 +607,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp + bus, macObjectInfo.second, macObjectInfo.first, + ipmi::network::MAC_INTERFACE, "MACAddress"); + -+ macAddress = -+ sdbusplus::message::variant_ns::get(variant); ++ macAddress = std::get(variant); + } + else if (channelConf->lan_set_in_progress == SET_IN_PROGRESS) + { @@ -661,7 +693,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp + auto variant = ipmi::getDbusProperty( + bus, ipmi::network::SERVICE, networkInterfacePath, + ipmi::network::ETHERNET_INTERFACE, "IPv6AcceptRA"); -+ dynamicRA = sdbusplus::message::variant_ns::get(variant); ++ dynamicRA = std::get(variant); + } + else + { @@ -745,7 +777,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp default: log("Unsupported parameter", entry("PARAMETER=0x%x", reqptr->parameter)); -@@ -932,6 +1570,16 @@ void applyChanges(int channel) +@@ -921,6 +1546,16 @@ void applyChanges(int channel) ipaddress, prefix); } @@ -762,7 +794,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp if (!gateway.empty()) { ipmi::setDbusProperty(bus, systemObject.second, -@@ -939,7 +1587,24 @@ void applyChanges(int channel) +@@ -928,7 +1563,24 @@ void applyChanges(int channel) ipmi::network::SYSTEMCONFIG_INTERFACE, "DefaultGateway", std::string(gateway)); } @@ -787,11 +819,11 @@ Index: phosphor-host-ipmid.clean/transporthandler.cpp } catch (InternalFailure& e) { -Index: phosphor-host-ipmid.clean/transporthandler.hpp -=================================================================== ---- phosphor-host-ipmid.clean.orig/transporthandler.hpp -+++ phosphor-host-ipmid.clean/transporthandler.hpp -@@ -80,6 +80,28 @@ enum class LanParam : uint8_t +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 IPV6_NEIGHBOR_TIMING_CONFIGURATION = 80, }; @@ -820,7 +852,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.hpp constexpr uint8_t SET_COMPLETE = 0; constexpr uint8_t SET_IN_PROGRESS = 1; constexpr uint8_t SET_COMMIT_WRITE = 2; // Optional -@@ -102,6 +124,20 @@ struct ChannelConfig_t +@@ -101,6 +123,20 @@ struct ChannelConfig_t uint8_t lan_set_in_progress = SET_COMPLETE; bool flush = false; @@ -841,7 +873,7 @@ Index: phosphor-host-ipmid.clean/transporthandler.hpp void clear() { ipaddr.clear(); -@@ -112,6 +148,20 @@ struct ChannelConfig_t +@@ -111,6 +147,20 @@ struct ChannelConfig_t ipsrc = ipmi::network::IPOrigin::UNSPECIFIED; lan_set_in_progress = SET_COMPLETE; flush = false; @@ -862,48 +894,6 @@ Index: phosphor-host-ipmid.clean/transporthandler.hpp } }; -Index: phosphor-host-ipmid.clean/types.hpp -=================================================================== ---- phosphor-host-ipmid.clean.orig/types.hpp -+++ phosphor-host-ipmid.clean/types.hpp -@@ -209,6 +209,7 @@ constexpr auto ADDR_TYPE_FORMAT = "%hhx" - - constexpr auto IPV4_ADDRESS_SIZE_BYTE = 4; - constexpr auto IPV6_ADDRESS_SIZE_BYTE = 16; -+constexpr auto IPV6_ADDRESS_STATUS_SIZE = 22; - - constexpr auto DEFAULT_MAC_ADDRESS = "00:00:00:00:00:00"; - constexpr auto DEFAULT_ADDRESS = "0.0.0.0"; -@@ -220,6 +221,7 @@ constexpr auto BITS_32 = 32; - constexpr auto MASK_32_BIT = 0xFFFFFFFF; - constexpr auto VLAN_ID_MASK = 0x00000FFF; - constexpr auto VLAN_ENABLE_MASK = 0x8000; -+constexpr auto IPV6_DUID_SIZE = 18; - - enum class IPOrigin : uint8_t - { -@@ -228,5 +230,12 @@ enum class IPOrigin : uint8_t - DHCP = 2, - }; - -+enum class AddressingEnables : uint8_t -+{ -+ IPv4Only = 0, -+ IPv6Only = 1, -+ IPv4AndIPv6 = 2, -+}; -+ - } // namespace network - } // namespace ipmi -Index: phosphor-host-ipmid.clean/utils.hpp -=================================================================== ---- phosphor-host-ipmid.clean.orig/utils.hpp -+++ phosphor-host-ipmid.clean/utils.hpp -@@ -246,6 +246,7 @@ namespace network - constexpr auto ROOT = "/xyz/openbmc_project/network"; - constexpr auto SERVICE = "xyz.openbmc_project.Network"; - constexpr auto IP_TYPE = "ipv4"; -+constexpr auto IPV6_TYPE = "ipv6"; - constexpr auto IPV4_PREFIX = "169.254"; - constexpr auto IPV6_PREFIX = "fe80"; - constexpr auto IP_INTERFACE = "xyz.openbmc_project.Network.IP"; +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0016-add-better-sdbusplus-exception-handling.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0016-add-better-sdbusplus-exception-handling.patch deleted file mode 100644 index 873eb6b16..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0016-add-better-sdbusplus-exception-handling.patch +++ /dev/null @@ -1,153 +0,0 @@ -From a445f287d4aebca68dc0321e292933311caf59ba Mon Sep 17 00:00:00 2001 -From: Yong Li -Date: Sun, 16 Sep 2018 20:14:55 +0800 -Subject: [PATCH] add better sdbusplus exception handling - -Now that sdbusplus throws, we need to catch more stuff. To compound the -problem, even though sdbusplus::exception::exception inherits from -std::exception, there is a problem that prevents the code from simply -catching std::exception. - -Change-Id: I2a330e542f5d87722a4c04e6d47de2cfb2f7d7c9 -Signed-off-by: Vernon Mauery -Signed-off-by: Yong Li - ---- - apphandler.cpp | 14 +++++++-- - ipmid.cpp | 77 +++++++++++++++++++++++++++++++++++--------------- - 2 files changed, 66 insertions(+), 25 deletions(-) - -diff --git a/apphandler.cpp b/apphandler.cpp -index 126de33..3cae6d5 100644 ---- a/apphandler.cpp -+++ b/apphandler.cpp -@@ -312,9 +312,19 @@ ipmi_ret_t ipmi_app_get_device_id(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - auto version = getActiveSoftwareVersionInfo(); - r = convert_version(version.c_str(), &rev); - } -- catch (const std::exception& e) -+ catch (sdbusplus::exception::exception& e) - { -- log(e.what()); -+ log("sdbusplus::exception", -+ entry("ERROR=%s", e.what())); -+ } -+ catch (std::exception& e) -+ { -+ log("unexpected exception", -+ entry("ERROR=%s", e.what())); -+ } -+ catch (...) -+ { -+ log("unknown exception"); - } - - if (r >= 0) -diff --git a/ipmid.cpp b/ipmid.cpp -index 2d48bfe..8d2fb37 100644 ---- a/ipmid.cpp -+++ b/ipmid.cpp -@@ -273,6 +273,10 @@ ipmi_ret_t ipmi_netfn_router(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - } - // IPMI command handlers can throw unhandled exceptions, catch those - // and return sane error code. -+ catch (sdbusplus::exception::exception& e) -+ { -+ log("sdbusplus exception", entry("EXCEPTION=%s", e.what())); -+ } - catch (const std::exception& e) - { - log(e.what(), entry("NET_FUN=0x%X", netfn), -@@ -281,6 +285,23 @@ ipmi_ret_t ipmi_netfn_router(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - *data_len = 0; - // fall through - } -+ catch (...) -+ { -+ std::exception_ptr eptr = std::current_exception(); -+ try -+ { -+ std::rethrow_exception(eptr); -+ } -+ catch (std::exception& e) -+ { -+ log("unexpected uncaught exception", -+ entry("EXCEPTION=%s", e.what()), -+ entry("NET_FUN=0x%X", netfn), -+ entry("CMD=0x%X", cmd)); -+ rc = IPMI_CC_UNSPECIFIED_ERROR; -+ *data_len = 0; -+ } -+ } - // Now copy the return code that we got from handler and pack it in first - // byte. - std::memcpy(response, &rc, IPMI_CC_LEN); -@@ -361,32 +382,42 @@ final: - void cache_restricted_mode() - { - restricted_mode = false; -- using namespace sdbusplus::xyz::openbmc_project::Control::Security::server; -- using namespace internal; -- using namespace internal::cache; -- sdbusplus::bus::bus dbus(ipmid_get_sd_bus_connection()); -- const auto& restrictionModeSetting = -- objects->map.at(restrictionModeIntf).front(); -- auto method = dbus.new_method_call( -- objects->service(restrictionModeSetting, restrictionModeIntf).c_str(), -- restrictionModeSetting.c_str(), "org.freedesktop.DBus.Properties", -- "Get"); -- method.append(restrictionModeIntf, "RestrictionMode"); -- auto resp = dbus.call(method); -- if (resp.is_method_error()) -+ try - { -- log("Error in RestrictionMode Get"); -- // Fail-safe to true. -- restricted_mode = true; -- return; -+ using namespace sdbusplus::xyz::openbmc_project::Control::Security:: -+ server; -+ using namespace internal; -+ using namespace internal::cache; -+ sdbusplus::bus::bus dbus(ipmid_get_sd_bus_connection()); -+ const auto& restrictionModeSetting = -+ objects->map.at(restrictionModeIntf).front(); -+ auto method = dbus.new_method_call( -+ objects->service(restrictionModeSetting, restrictionModeIntf) -+ .c_str(), -+ restrictionModeSetting.c_str(), "org.freedesktop.DBus.Properties", -+ "Get"); -+ method.append(restrictionModeIntf, "RestrictionMode"); -+ auto resp = dbus.call(method); -+ if (resp.is_method_error()) -+ { -+ log("Error in RestrictionMode Get"); -+ // Fail-safe to true. -+ restricted_mode = true; -+ return; -+ } -+ sdbusplus::message::variant result; -+ resp.read(result); -+ auto restrictionMode = RestrictionMode::convertModesFromString( -+ sdbusplus::message::variant_ns::get(result)); -+ if (RestrictionMode::Modes::Whitelist == restrictionMode) -+ { -+ restricted_mode = true; -+ } - } -- sdbusplus::message::variant result; -- resp.read(result); -- auto restrictionMode = RestrictionMode::convertModesFromString( -- variant_ns::get(result)); -- if (RestrictionMode::Modes::Whitelist == restrictionMode) -+ catch (sdbusplus::exception::exception& e) - { -- restricted_mode = true; -+ // restrictionModeIntf does not exist; default to not enforcing -+ log("sdbusplus exception", entry("EXCEPTION=%s", e.what())); - } - } - --- -2.17.1 - diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0018-Catch-sdbusplus-exceptions-in-IPMI-net.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0018-Catch-sdbusplus-exceptions-in-IPMI-net.patch deleted file mode 100644 index 6fa69b602..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0018-Catch-sdbusplus-exceptions-in-IPMI-net.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 4490ee7a9fd054640af7a9da3400f76195dc2880 Mon Sep 17 00:00:00 2001 -From: Yong Li -Date: Sun, 16 Sep 2018 21:03:58 +0800 -Subject: [PATCH] Catch sdbusplus exceptions in IPMI net - -Missing the correct exception was causing issues with setting the IPV4 -address - -Change-Id: Ieaaacfcbaec82a0c3b110889817a7ceb9cda8d3c -Signed-off-by: Dave Cobbley -Signed-off-by: Yong Li ---- - transporthandler.cpp | 2 +- - utils.cpp | 5 +++-- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/transporthandler.cpp b/transporthandler.cpp -index 6f4ec3f..6cb3feb 100644 ---- a/transporthandler.cpp -+++ b/transporthandler.cpp -@@ -1559,7 +1559,7 @@ void applyChanges(int channel) - ipmi::network::ETHERNET_INTERFACE, "IPv6AcceptRA", - (bool)channelConf->ipv6RouterAddressConfigControl); - } -- catch (InternalFailure& e) -+ catch (sdbusplus::exception::exception& e) - { - log( - "Failed to set network data", entry("PREFIX=%d", prefix), -diff --git a/utils.cpp b/utils.cpp -index 225b1cc..d10b5de 100644 ---- a/utils.cpp -+++ b/utils.cpp -@@ -358,9 +358,10 @@ void deleteAllDbusObjects(sdbusplus::bus::bus& bus, - "Delete"); - } - } -- catch (InternalFailure& e) -+ catch (sdbusplus::exception::exception& e) - { -- log("Unable to delete the objects having", -+ log("sdbusplus exception - Unable to delete the objects", -+ entry("ERROR=%s", e.what()), - entry("INTERFACE=%s", interface.c_str()), - entry("SERVICE=%s", serviceRoot.c_str())); - } --- -2.7.4 - diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0048-Implement-IPMI-Master-Write-Read-command.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0048-Implement-IPMI-Master-Write-Read-command.patch index 4018dbffe..542c4f667 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0048-Implement-IPMI-Master-Write-Read-command.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0048-Implement-IPMI-Master-Write-Read-command.patch @@ -1,4 +1,4 @@ -From cd25f43461b41b74d19cd1f93ce301df9c3bd4f2 Mon Sep 17 00:00:00 2001 +From a8d7429b7bd9dea33d59c6e83f17372e77fe6145 Mon Sep 17 00:00:00 2001 From: Yong Li Date: Fri, 21 Sep 2018 09:21:14 +0800 Subject: [PATCH] Implement IPMI Master Write-Read command @@ -11,31 +11,36 @@ that provide an SMBus slave interface. Signed-off-by: Yong Li --- - apphandler.cpp | 236 ++++++++++++++++++++++++++++++++++++++++++++++ + apphandler.cpp | 276 +++++++++++++++++++++++++++++++++++++- apphandler.hpp | 1 + host-ipmid-whitelist.conf | 1 + - 3 files changed, 238 insertions(+) + 3 files changed, 274 insertions(+), 4 deletions(-) diff --git a/apphandler.cpp b/apphandler.cpp -index 17aff2a..2fe79f6 100644 +index 15965ca..d8fb23d 100644 --- a/apphandler.cpp +++ b/apphandler.cpp -@@ -8,6 +8,14 @@ - #include "types.hpp" - #include "utils.hpp" - +@@ -1,6 +1,19 @@ ++#include "apphandler.hpp" ++ ++#include "app/watchdog.hpp" ++#include "sys_info_param.hpp" ++#include "transporthandler.hpp" ++ + #include +#include ++#include + #include +#include +#include + #include +#include +#include +#include -+#include -+ - #include - #include - #include -@@ -55,6 +63,8 @@ constexpr auto bmc_guid_interface = "xyz.openbmc_project.Common.UUID"; + #include + #include + +@@ -41,6 +54,8 @@ constexpr auto bmc_guid_interface = "xyz.openbmc_project.Common.UUID"; constexpr auto bmc_guid_property = "UUID"; constexpr auto bmc_guid_len = 16; @@ -44,10 +49,23 @@ index 17aff2a..2fe79f6 100644 static constexpr auto redundancyIntf = "xyz.openbmc_project.Software.RedundancyPriority"; static constexpr auto versionIntf = "xyz.openbmc_project.Software.Version"; -@@ -86,6 +96,34 @@ typedef struct - uint8_t aux[4]; - } __attribute__((packed)) ipmi_device_id_t; +@@ -59,6 +74,47 @@ using BMC = sdbusplus::xyz::openbmc_project::State::server::BMC; + namespace fs = std::filesystem; + namespace variant_ns = sdbusplus::message::variant_ns; ++// Offset in get device id command. ++typedef struct ++{ ++ uint8_t id; ++ uint8_t revision; ++ uint8_t fw[2]; ++ uint8_t ipmi_ver; ++ uint8_t addn_dev_support; ++ uint8_t manuf_id[3]; ++ uint8_t prod_id[2]; ++ uint8_t aux[4]; ++} __attribute__((packed)) ipmi_device_id_t; ++ +typedef struct +{ + uint8_t busId; @@ -79,7 +97,7 @@ index 17aff2a..2fe79f6 100644 /** * @brief Returns the Version info from primary s/w object * -@@ -1089,8 +1127,195 @@ writeResponse: +@@ -1022,6 +1078,192 @@ writeResponse: return IPMI_CC_OK; } @@ -199,7 +217,8 @@ index 17aff2a..2fe79f6 100644 + reqptr += sizeof(ipmiI2cRwReq); + std::copy(reqptr, reqptr + writeCount, outBuf.begin()); + -+ log("checking list ", entry("SIZE=%d", getWhiteList().size())); ++ log("checking list ", ++ entry("SIZE=%d", getWhiteList().size())); + // command whitelist checking + for (unsigned int i = 0; i < getWhiteList().size(); i++) + { @@ -270,16 +289,26 @@ index 17aff2a..2fe79f6 100644 + void register_netfn_app_functions() { -+ int ret = -1; -+ - // - ipmi_register_callback(NETFUN_APP, IPMI_CMD_GET_CAP_BIT, NULL, - ipmi_app_get_bt_capabilities, PRIVILEGE_USER); -@@ -1145,6 +1370,17 @@ void register_netfn_app_functions() - ipmi_app_channel_info, PRIVILEGE_USER); - #endif + // +@@ -1063,6 +1306,31 @@ void register_netfn_app_functions() + ipmi_register_callback(NETFUN_APP, IPMI_CMD_GET_ACPI, NULL, + ipmi_app_get_acpi_power_state, PRIVILEGE_ADMIN); -+ ret = loadI2CWhiteList(); ++// TODO: Below code and associated api's need to be removed later. ++// Its commented for now to avoid merge conflicts with upstream ++// changes and smooth upstream upgrades. ++#if 0 ++>>>>>>> IPMI Channel commands implementation ++ // ++ ipmi_register_callback(NETFUN_APP, IPMI_CMD_GET_CHANNEL_ACCESS, NULL, ++ ipmi_get_channel_access, PRIVILEGE_USER); ++ ++ // ++ ipmi_register_callback(NETFUN_APP, IPMI_CMD_GET_CHAN_INFO, NULL, ++ ipmi_app_channel_info, PRIVILEGE_USER); ++#endif ++ ++ int ret = loadI2CWhiteList(); + log("i2c white list is loaded", entry("RET=%d", ret), + entry("SIZE=%d", getWhiteList().size())); + if (ret == 0) @@ -306,17 +335,17 @@ index d4dd8e8..f9e5c59 100644 IPMI_CMD_SET_SYSTEM_INFO = 0x58, IPMI_CMD_GET_SYSTEM_INFO = 0x59, diff --git a/host-ipmid-whitelist.conf b/host-ipmid-whitelist.conf -index c7eb2d8..22a2a3c 100644 +index 49ff7b0..1ae79fd 100644 --- a/host-ipmid-whitelist.conf +++ b/host-ipmid-whitelist.conf -@@ -25,6 +25,7 @@ - 0x06:0x36 //: +@@ -27,6 +27,7 @@ 0x06:0x37 //: 0x06:0x42 //: + 0x06:0x4E //: +0x06:0x52 //: 0x06:0x54 //: 0x0A:0x10 //: 0x0A:0x11 //: -- -2.7.4 +2.17.1 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0051-Fix-Set-LAN-Config-to-work-without-SetInProgress.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0051-Fix-Set-LAN-Config-to-work-without-SetInProgress.patch deleted file mode 100644 index 3990c6b5c..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0051-Fix-Set-LAN-Config-to-work-without-SetInProgress.patch +++ /dev/null @@ -1,142 +0,0 @@ -From cae9e21f88e6f12c80c89402473a17a10258c843 Mon Sep 17 00:00:00 2001 -From: Richard Marian Thomaiyar -Date: Thu, 17 Jan 2019 21:22:30 +0530 -Subject: [PATCH] Fix: Set LAN Config to work without SetInProgress - -Set LAN Configuration parameters in up-stream code works -with SetInProgress (parameter selector 0), to be marked -as SET_IN_PROGRESS before fields update, and SET_COMPLETE to -make the changes effective. This is not mandatory as per -IPMI Spec, and we must support individual fields update. -Fix: -1. After SET_COMPLETE for parameter selector, changes has -to be applied immediately, and doesn't require to rely on -network timer, as purpose of this logic itself is to stage -and commit. -2. Allow individual parameter changes to take effect based -on timer. For the time being reduced the timer to 5 sec -to have quicker turn-around and group things together. - -TODO: -Still need to introduce lock between ChannelConfig variable -between Timer & Get / Set LAN Configuration command to avoid -race condition - -Unit-Test: -1. Verified the BIOS Setup page, able to set the IPV4 to static -IP, afte disabling IPV6, and configuring IPV4 to static, after -save and reset, the changes of IPV4 static is preserved. - -Change-Id: I7c2edad2861b5dba5ad1ca97cc5e39ac02871746 -Signed-off-by: Richard Marian Thomaiyar ---- - transporthandler.cpp | 54 ++++++++++++++++++++++++++++++++++++---------------- - transporthandler.hpp | 2 ++ - 2 files changed, 40 insertions(+), 16 deletions(-) - -Index: phosphor-host-ipmid.clean/transporthandler.cpp -=================================================================== ---- phosphor-host-ipmid.clean.orig/transporthandler.cpp -+++ phosphor-host-ipmid.clean/transporthandler.cpp -@@ -399,6 +399,41 @@ struct set_lan_t - uint8_t data[8]; // Per IPMI spec, not expecting more than this size - } __attribute__((packed)); - -+ipmi_ret_t checkAndUpdateNetwork(int channel) -+{ -+ auto channelConf = getChannelConfig(channel); -+ using namespace std::chrono_literals; -+ // time to wait before applying the network changes. -+ constexpr auto networkTimeout = 5000000us; // 5 sec -+ -+ if (channelConf->lan_set_in_progress == SET_COMPLETE && -+ ((channelConf->flush == false) || -+ (channelConf->updateInProgress == true))) -+ { -+ channelConf->flush = true; -+ // used to indicate that network timer update is in progress. -+ channelConf->updateInProgress = true; -+ if (!networkTimer) -+ { -+ log("Network timer is not instantiated"); -+ return IPMI_CC_UNSPECIFIED_ERROR; -+ } -+ // start/restart the timer -+ // TODO: Need to implement locking mechansim between networkTimer & -+ // get/set to avoid race condition. -+ networkTimer->start(networkTimeout); -+ } -+ else if (channelConf->lan_set_in_progress == SET_COMPLETE && -+ channelConf->flush == true && -+ channelConf->updateInProgress == false) -+ { -+ // Apply the network changes immediately, if proper SET_IN_PROGRESS, -+ // followed by SET_COMPLETE is issued. -+ applyChanges(channel); -+ } -+ return IPMI_CC_OK; -+} -+ - ipmi_ret_t ipmi_transport_set_lan(ipmi_netfn_t netfn, ipmi_cmd_t cmd, - ipmi_request_t request, - ipmi_response_t response, -@@ -406,12 +441,6 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n - ipmi_context_t context) - { - ipmi_ret_t rc = IPMI_CC_OK; -- -- using namespace std::chrono_literals; -- -- // time to wait before applying the network changes. -- constexpr auto networkTimeout = 10000000us; // 10 sec -- - char ipaddr[INET_ADDRSTRLEN]; - char netmask[INET_ADDRSTRLEN]; - char gateway[INET_ADDRSTRLEN]; -@@ -543,15 +572,6 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n - entry("ADDRESS=%s", channelConf->ipaddr.c_str()), - entry("GATEWAY=%s", channelConf->gateway.c_str()), - entry("VLAN=%d", channelConf->vlanID)); -- -- if (!networkTimer) -- { -- log("Network timer is not instantiated"); -- return IPMI_CC_UNSPECIFIED_ERROR; -- } -- -- // start/restart the timer -- networkTimer->start(networkTimeout); - } - else if (reqptr->data[0] == SET_IN_PROGRESS) // Set In Progress - { -@@ -680,8 +700,10 @@ ipmi_ret_t ipmi_transport_set_lan(ipmi_n - default: - { - rc = IPMI_CC_PARM_NOT_SUPPORTED; -+ return rc; - } - } -+ rc = checkAndUpdateNetwork(channel); - - return rc; - } -Index: phosphor-host-ipmid.clean/transporthandler.hpp -=================================================================== ---- phosphor-host-ipmid.clean.orig/transporthandler.hpp -+++ phosphor-host-ipmid.clean/transporthandler.hpp -@@ -140,6 +140,7 @@ struct ChannelConfig_t - // vlan id is in 12 bits and the 16th bit is for enable mask. - uint32_t vlanID = ipmi::network::VLAN_ID_MASK; - uint8_t lan_set_in_progress = SET_COMPLETE; -+ uint8_t updateInProgress = false; - bool flush = false; - - // IPV6 parameters -@@ -165,6 +166,7 @@ struct ChannelConfig_t - vlanID = ipmi::network::VLAN_ID_MASK; - ipsrc = ipmi::network::IPOrigin::UNSPECIFIED; - lan_set_in_progress = SET_COMPLETE; -+ updateInProgress = false; - flush = false; - - // IPv6 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0058-Add-AC-failed-bit-support-for-get-chassis-status-com.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0058-Add-AC-failed-bit-support-for-get-chassis-status-com.patch new file mode 100644 index 000000000..42bb682c4 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0058-Add-AC-failed-bit-support-for-get-chassis-status-com.patch @@ -0,0 +1,76 @@ +From f51bef8f7c5785405ee5c83a921efb1bc05e4947 Mon Sep 17 00:00:00 2001 +From: Yong Li +Date: Wed, 27 Mar 2019 16:11:25 +0800 +Subject: [PATCH] =?UTF-8?q?Add=20=E2=80=9CAC=20failed=E2=80=9D=20bit=20sup?= + =?UTF-8?q?port=20for=20get=20chassis=20status=20command?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +PFail property is provided by power control service, +ture means the booting is from AC loss. + +Tested: +Remove the AC cable and reconnect it +Ipmitool chassis status to check the status: +Last Power Event : ac-failed + +Signed-off-by: Yong Li +--- + chassishandler.cpp | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/chassishandler.cpp b/chassishandler.cpp +index 7a522ad..40d2018 100644 +--- a/chassishandler.cpp ++++ b/chassishandler.cpp +@@ -844,6 +844,7 @@ ipmi_ret_t ipmi_get_chassis_status(ipmi_netfn_t netfn, ipmi_cmd_t cmd, + sd_bus_message* reply = NULL; + int r = 0; + int pgood = 0; ++ bool pFail = true; + char* busname = NULL; + ipmi_ret_t rc = IPMI_CC_OK; + ipmi_get_chassis_status_t chassis_status{}; +@@ -904,6 +905,26 @@ ipmi_ret_t ipmi_get_chassis_status(ipmi_netfn_t netfn, ipmi_cmd_t cmd, + goto finish; + } + ++ r = sd_bus_get_property(bus, busname, objname, intf, "PFail", NULL, &reply, ++ "b"); ++ if (r < 0) ++ { ++ log("Failed to call sd_bus_get_property", ++ entry("PROPERTY=%s", "PFail"), entry("ERRNO=0x%X", -r), ++ entry("BUS=%s", busname), entry("PATH=%s", objname), ++ entry("INTERFACE=%s", intf)); ++ rc = IPMI_CC_UNSPECIFIED_ERROR; ++ goto finish; ++ } ++ ++ r = sd_bus_message_read(reply, "b", &pFail); ++ if (r < 0) ++ { ++ log("Failed to read PFail:", entry("ERRNO=0x%X", -r)); ++ rc = IPMI_CC_UNSPECIFIED_ERROR; ++ goto finish; ++ } ++ + s = dbusToIpmi.at(powerRestore); + + // Current Power State +@@ -952,6 +973,11 @@ ipmi_ret_t ipmi_get_chassis_status(ipmi_netfn_t netfn, ipmi_cmd_t cmd, + + chassis_status.last_power_event = 0; + ++ if (pFail) ++ { ++ chassis_status.last_power_event |= 1; ++ } ++ + // Misc. Chassis State + // [7] – reserved + // [6] – 1b = Chassis Identify command and state info supported (Optional) +-- +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 new file mode 100644 index 000000000..1dc55e2f4 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0059-Move-Set-SOL-config-parameter-to-host-ipmid.patch @@ -0,0 +1,415 @@ +From 1c15df9d82254286d0773086836767f23711c5d9 Mon Sep 17 00:00:00 2001 +From: Cheng C Yang +Date: Tue, 2 Apr 2019 00:34:34 +0800 +Subject: [PATCH] Move Set SOL config parameter to host-ipmid + +Move Set SOL config parameter command from net-ipmid to host-ipmid, +so that BIOS in Intel platform can enable or disable SOL through KCS. +Get SOL config parameter command will be moved later. + +Tested by: +With the related change in phospher-ipmi-net and phospher-dbus-interface, +Run commands: +ipmitool raw 0x0c 0x21 0x0e 0x00 0x01 +ipmitool raw 0x0c 0x21 0x0e 0x01 0x00 +ipmitool raw 0x0c 0x21 0x0e 0x02 0x03 +ipmitool raw 0x0c 0x21 0x0e 0x03 0x5 0x03 +ipmitool raw 0x0c 0x21 0x0e 0x04 0x5 0x03 +All these commands have correct response and all dbus interface for +sol command change to same value in above commands. +After reboot BMC, "Progress" property in dbus interface change back +to 0 and other properties will not reset to default value. + +Signed-off-by: Cheng C Yang +--- + host-ipmid-whitelist.conf | 1 + + include/ipmid/api.h | 1 + + transporthandler.cpp | 222 ++++++++++++++++++++++++++++++++++++++ + transporthandler.hpp | 97 +++++++++++++++++ + 4 files changed, 321 insertions(+) + +diff --git a/host-ipmid-whitelist.conf b/host-ipmid-whitelist.conf +index 2a83347..544b766 100644 +--- a/host-ipmid-whitelist.conf ++++ b/host-ipmid-whitelist.conf +@@ -41,6 +41,7 @@ + 0x0A:0x48 //: + 0x0A:0x49 //: + 0x0C:0x02 //: ++0x0C:0x21 //: + 0x2C:0x00 //: + 0x2C:0x01 //: + 0x2C:0x02 //: +diff --git a/include/ipmid/api.h b/include/ipmid/api.h +index f08ee11..2f366b4 100644 +--- a/include/ipmid/api.h ++++ b/include/ipmid/api.h +@@ -113,6 +113,7 @@ enum ipmi_return_codes + IPMI_DCMI_CC_NO_ACTIVE_POWER_LIMIT = 0x80, + IPMI_WDOG_CC_NOT_INIT = 0x80, + IPMI_CC_SYSTEM_INFO_PARAMETER_NOT_SUPPORTED = 0x80, ++ IPMI_CC_SET_IN_PROGRESS_ACTIVE = 0x81, + IPMI_CC_SYSTEM_INFO_PARAMETER_SET_READ_ONLY = 0x82, + IPMI_CC_BUSY = 0xC0, + IPMI_CC_INVALID = 0xC1, +diff --git a/transporthandler.cpp b/transporthandler.cpp +index 8f18b76..a693279 100644 +--- a/transporthandler.cpp ++++ b/transporthandler.cpp +@@ -36,6 +36,9 @@ static const std::array ipAddressEnablesType = { + "xyz.openbmc_project.Network.EthernetInterface.IPAllowed.IPv6Only", + "xyz.openbmc_project.Network.EthernetInterface.IPAllowed.IPv4AndIPv6"}; + ++constexpr const char* solInterface = "xyz.openbmc_project.Ipmi.SOL"; ++constexpr const char* solPath = "/xyz/openbmc_project/ipmi/sol"; ++ + std::map> channelConfig; + + using namespace phosphor::logging; +@@ -1633,6 +1636,219 @@ void createNetworkTimer() + } + } + ++static int setSOLParameter(std::string property, const ipmi::Value& value) ++{ ++ auto dbus = getSdBus(); ++ ++ static std::string solService{}; ++ if (solService.empty()) ++ { ++ try ++ { ++ solService = ipmi::getService(*dbus, solInterface, solPath); ++ } ++ catch (const sdbusplus::exception::SdBusError& e) ++ { ++ solService.clear(); ++ phosphor::logging::log( ++ "Error: get SOL service failed"); ++ return -1; ++ } ++ } ++ try ++ { ++ ipmi::setDbusProperty(*dbus, solService, solPath, solInterface, ++ property, value); ++ } ++ catch (sdbusplus::exception_t&) ++ { ++ phosphor::logging::log( ++ "Error setting sol parameter"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static int getSOLParameter(std::string property, ipmi::Value& value) ++{ ++ auto dbus = getSdBus(); ++ ++ static std::string solService{}; ++ if (solService.empty()) ++ { ++ try ++ { ++ solService = ipmi::getService(*dbus, solInterface, solPath); ++ } ++ catch (const sdbusplus::exception::SdBusError& e) ++ { ++ solService.clear(); ++ phosphor::logging::log( ++ "Error: get SOL service failed"); ++ return -1; ++ } ++ } ++ try ++ { ++ value = ipmi::getDbusProperty(*dbus, solService, solPath, solInterface, ++ property); ++ } ++ catch (sdbusplus::exception_t&) ++ { ++ phosphor::logging::log( ++ "Error getting sol parameter"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++void initializeSOLInProgress() ++{ ++ if (setSOLParameter("Progress", static_cast(0)) < 0) ++ { ++ phosphor::logging::log( ++ "Error initialize sol progress"); ++ } ++} ++ ++ipmi_ret_t setConfParams(ipmi_netfn_t netfn, ipmi_cmd_t cmd, ++ ipmi_request_t request, ipmi_response_t response, ++ ipmi_data_len_t dataLen, ipmi_context_t context) ++{ ++ auto reqData = reinterpret_cast(request); ++ ++ // Check request length first ++ switch (static_cast(reqData->paramSelector)) ++ { ++ case sol::Parameter::progress: ++ case sol::Parameter::enable: ++ case sol::Parameter::authentication: ++ { ++ if (*dataLen != sizeof(SetConfParamsRequest) - 1) ++ { ++ *dataLen = 0; ++ return IPMI_CC_REQ_DATA_LEN_INVALID; ++ } ++ break; ++ } ++ case sol::Parameter::accumulate: ++ case sol::Parameter::retry: ++ { ++ if (*dataLen != sizeof(SetConfParamsRequest)) ++ { ++ *dataLen = 0; ++ return IPMI_CC_REQ_DATA_LEN_INVALID; ++ } ++ break; ++ } ++ default: ++ break; ++ } ++ ++ *dataLen = 0; ++ ++ switch (static_cast(reqData->paramSelector)) ++ { ++ case sol::Parameter::progress: ++ { ++ uint8_t progress = reqData->value & progressMask; ++ ipmi::Value currentProgress = 0; ++ if (getSOLParameter("Progress", currentProgress) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ ++ if ((std::get(currentProgress) == 1) && (progress == 1)) ++ { ++ return IPMI_CC_SET_IN_PROGRESS_ACTIVE; ++ } ++ ++ if (setSOLParameter("Progress", progress) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ break; ++ } ++ case sol::Parameter::enable: ++ { ++ bool enable = reqData->value & enableMask; ++ if (setSOLParameter("Enable", enable) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ break; ++ } ++ case sol::Parameter::authentication: ++ { ++ // if encryption is used authentication must also be used. ++ if (reqData->auth.encrypt && !reqData->auth.auth) ++ { ++ return IPMI_CC_SYSTEM_INFO_PARAMETER_SET_READ_ONLY; ++ } ++ else if (reqData->auth.privilege < ++ static_cast(sol::Privilege::userPriv) || ++ reqData->auth.privilege > ++ static_cast(sol::Privilege::oemPriv)) ++ { ++ return IPMI_CC_INVALID_FIELD_REQUEST; ++ } ++ ++ if ((setSOLParameter("Privilege", reqData->auth.privilege) < 0) || ++ (setSOLParameter("ForceEncryption", ++ static_cast(reqData->auth.encrypt)) < ++ 0) || ++ (setSOLParameter("ForceAuthentication", ++ static_cast(reqData->auth.auth)) < 0)) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ ++ break; ++ } ++ case sol::Parameter::accumulate: ++ { ++ if (reqData->acc.threshold == 0) ++ { ++ return IPMI_CC_INVALID_FIELD_REQUEST; ++ } ++ if (setSOLParameter("AccumulateIntervalMS", reqData->acc.interval) < ++ 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ if (setSOLParameter("Threshold", reqData->acc.threshold) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ break; ++ } ++ case sol::Parameter::retry: ++ { ++ if ((setSOLParameter("RetryCount", reqData->retry.count) < 0) || ++ (setSOLParameter("RetryIntervalMS", reqData->retry.interval) < ++ 0)) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ ++ break; ++ } ++ case sol::Parameter::port: ++ { ++ return IPMI_CC_SYSTEM_INFO_PARAMETER_SET_READ_ONLY; ++ } ++ case sol::Parameter::nvbitrate: ++ case sol::Parameter::vbitrate: ++ case sol::Parameter::channel: ++ default: ++ return IPMI_CC_PARM_NOT_SUPPORTED; ++ } ++ ++ return IPMI_CC_OK; ++} ++ + void register_netfn_transport_functions() + { + // As this timer is only for transport handler +@@ -1650,5 +1866,11 @@ void register_netfn_transport_functions() + ipmi_register_callback(NETFUN_TRANSPORT, IPMI_CMD_GET_LAN, NULL, + ipmi_transport_get_lan, PRIVILEGE_OPERATOR); + ++ ipmi_register_callback(NETFUN_TRANSPORT, IPMI_CMD_SET_SOL_CONF_PARAMS, NULL, ++ setConfParams, PRIVILEGE_ADMIN); ++ ++ // Initialize dbus property progress to 0 every time sol manager restart. ++ initializeSOLInProgress(); ++ + return; + } +diff --git a/transporthandler.hpp b/transporthandler.hpp +index bd23391..3b5e9e1 100644 +--- a/transporthandler.hpp ++++ b/transporthandler.hpp +@@ -8,6 +8,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 +188,98 @@ 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; ++ ++struct Auth ++{ ++#if BYTE_ORDER == LITTLE_ENDIAN ++ uint8_t privilege : 4; //!< SOL privilege level. ++ uint8_t reserved : 2; //!< Reserved. ++ uint8_t auth : 1; //!< Force SOL payload Authentication. ++ uint8_t encrypt : 1; //!< Force SOL payload encryption. ++#endif ++ ++#if BYTE_ORDER == BIG_ENDIAN ++ uint8_t encrypt : 1; //!< Force SOL payload encryption. ++ uint8_t auth : 1; //!< Force SOL payload Authentication. ++ uint8_t reserved : 2; //!< Reserved. ++ uint8_t privilege : 4; //!< SOL privilege level. ++#endif ++} __attribute__((packed)); ++ ++struct Accumulate ++{ ++ uint8_t interval; //!< Character accumulate interval. ++ uint8_t threshold; //!< Character send threshold. ++} __attribute__((packed)); ++ ++struct Retry ++{ ++#if BYTE_ORDER == LITTLE_ENDIAN ++ uint8_t count : 3; //!< SOL retry count. ++ uint8_t reserved : 5; //!< Reserved. ++#endif ++ ++#if BYTE_ORDER == BIG_ENDIAN ++ uint8_t reserved : 5; //!< Reserved. ++ uint8_t count : 3; //!< SOL retry count. ++#endif ++ ++ uint8_t interval; //!< SOL retry interval. ++} __attribute__((packed)); ++ ++struct SetConfParamsRequest ++{ ++#if BYTE_ORDER == LITTLE_ENDIAN ++ uint8_t channelNumber : 4; //!< Channel number. ++ uint8_t reserved : 4; //!< Reserved. ++#endif ++ ++#if BYTE_ORDER == BIG_ENDIAN ++ uint8_t reserved : 4; //!< Reserved. ++ uint8_t channelNumber : 4; //!< Channel number. ++#endif ++ ++ uint8_t paramSelector; //!< Parameter selector. ++ union ++ { ++ uint8_t value; //!< Represents one byte SOL parameters. ++ struct Accumulate acc; //!< Character accumulate values. ++ struct Retry retry; //!< Retry values. ++ struct Auth auth; //!< Authentication parameters. ++ }; ++} __attribute__((packed)); ++ ++struct SetConfParamsResponse ++{ ++ uint8_t completionCode; //!< Completion code. ++} __attribute__((packed)); +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0060-Move-Get-SOL-config-parameter-to-host-ipmid.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0060-Move-Get-SOL-config-parameter-to-host-ipmid.patch new file mode 100644 index 000000000..49a2c01ba --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0060-Move-Get-SOL-config-parameter-to-host-ipmid.patch @@ -0,0 +1,248 @@ +From 973865687325c6563fd6b729a3a220661066f635 Mon Sep 17 00:00:00 2001 +From: Cheng C Yang +Date: Wed, 3 Apr 2019 15:55:04 +0800 +Subject: [PATCH] Move Get SOL config parameter to host-ipmid + +Move Get SOL config parameter command from net-ipmid to host-ipmid. + +Tested By: +Run command ipmitool sol info +Set in progress : set-complete +Enabled : true +Force Encryption : false +Force Authentication : false +Privilege Level : USER +Character Accumulate Level (ms) : 100 +Character Send Threshold : 1 +Retry Count : 3 +Retry Interval (ms) : 100 +Volatile Bit Rate (kbps) : IPMI-Over-Serial-Setting +Non-Volatile Bit Rate (kbps) : IPMI-Over-Serial-Setting +Payload Channel : 14 (0x0e) +Payload Port : 623 + +Signed-off-by: Cheng C Yang +--- + transporthandler.cpp | 139 ++++++++++++++++++++++++++++++++++++++++++++++++--- + transporthandler.hpp | 26 +++++++++- + 2 files changed, 156 insertions(+), 9 deletions(-) + +diff --git a/transporthandler.cpp b/transporthandler.cpp +index 2111acf..b18f522 100644 +--- a/transporthandler.cpp ++++ b/transporthandler.cpp +@@ -1715,11 +1715,133 @@ void initializeSOLInProgress() + } + } + +-ipmi_ret_t setConfParams(ipmi_netfn_t netfn, ipmi_cmd_t cmd, +- ipmi_request_t request, ipmi_response_t response, +- ipmi_data_len_t dataLen, ipmi_context_t context) ++// For getsetSOLConfParams, there are still three tings TODO: ++// 1. session less channel number request has to return error. ++// 2. convert 0xE channel number. ++// 3. have unique object for every session based channel. ++ipmi_ret_t getSOLConfParams(ipmi_netfn_t netfn, ipmi_cmd_t cmd, ++ ipmi_request_t request, ipmi_response_t response, ++ ipmi_data_len_t dataLen, ipmi_context_t context) + { +- auto reqData = reinterpret_cast(request); ++ auto reqData = reinterpret_cast(request); ++ std::vector outPayload; ++ ++ if (*dataLen < sizeof(GetSOLConfParamsRequest) - 2) ++ { ++ *dataLen = 0; ++ return IPMI_CC_REQ_DATA_LEN_INVALID; ++ } ++ ++ *dataLen = 0; ++ ++ outPayload.push_back(solParameterRevision); ++ if (reqData->getParamRev) ++ { ++ std::copy(outPayload.begin(), outPayload.end(), ++ static_cast(response)); ++ *dataLen = outPayload.size(); ++ return IPMI_CC_OK; ++ } ++ ++ ipmi::Value value; ++ switch (static_cast(reqData->paramSelector)) ++ { ++ case sol::Parameter::progress: ++ { ++ if (getSOLParameter("Progress", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ outPayload.push_back(std::get(value)); ++ break; ++ } ++ case sol::Parameter::enable: ++ { ++ if (getSOLParameter("Enable", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ outPayload.push_back(static_cast(std::get(value))); ++ break; ++ } ++ case sol::Parameter::authentication: ++ { ++ uint8_t authentication = 0; ++ if (getSOLParameter("Privilege", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ authentication = (std::get(value) & 0x0f); ++ ++ if (getSOLParameter("ForceAuthentication", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ authentication |= ++ (static_cast(std::get(value)) << 6); ++ ++ if (getSOLParameter("ForceEncryption", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ authentication |= ++ (static_cast(std::get(value)) << 7); ++ outPayload.push_back(authentication); ++ break; ++ } ++ case sol::Parameter::accumulate: ++ { ++ if (getSOLParameter("AccumulateIntervalMS", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ outPayload.push_back(std::get(value)); ++ ++ if (getSOLParameter("Threshold", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ outPayload.push_back(std::get(value)); ++ break; ++ } ++ case sol::Parameter::retry: ++ { ++ if (getSOLParameter("RetryCount", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ outPayload.push_back(std::get(value) & 0x03); ++ ++ if (getSOLParameter("RetryIntervalMS", value) < 0) ++ { ++ return IPMI_CC_UNSPECIFIED_ERROR; ++ } ++ outPayload.push_back(std::get(value)); ++ break; ++ } ++ case sol::Parameter::port: ++ { ++ uint16_t port = htole16(ipmiStdPort); ++ auto buffer = reinterpret_cast(&port); ++ std::copy(buffer, buffer + sizeof(port), ++ std::back_inserter(outPayload)); ++ break; ++ } ++ default: ++ return IPMI_CC_PARM_NOT_SUPPORTED; ++ } ++ std::copy(outPayload.begin(), outPayload.end(), ++ static_cast(response)); ++ *dataLen = outPayload.size(); ++ ++ return IPMI_CC_OK; ++} ++ ++ipmi_ret_t setSOLConfParams(ipmi_netfn_t netfn, ipmi_cmd_t cmd, ++ ipmi_request_t request, ipmi_response_t response, ++ ipmi_data_len_t dataLen, ipmi_context_t context) ++{ ++ auto reqData = reinterpret_cast(request); + + // Check request length first + switch (static_cast(reqData->paramSelector)) +@@ -1728,7 +1850,7 @@ ipmi_ret_t setConfParams(ipmi_netfn_t netfn, ipmi_cmd_t cmd, + case sol::Parameter::enable: + case sol::Parameter::authentication: + { +- if (*dataLen != sizeof(SetConfParamsRequest) - 1) ++ if (*dataLen != sizeof(SetSOLConfParamsRequest) - 1) + { + *dataLen = 0; + return IPMI_CC_REQ_DATA_LEN_INVALID; +@@ -1738,7 +1860,7 @@ ipmi_ret_t setConfParams(ipmi_netfn_t netfn, ipmi_cmd_t cmd, + case sol::Parameter::accumulate: + case sol::Parameter::retry: + { +- if (*dataLen != sizeof(SetConfParamsRequest)) ++ if (*dataLen != sizeof(SetSOLConfParamsRequest)) + { + *dataLen = 0; + return IPMI_CC_REQ_DATA_LEN_INVALID; +@@ -1869,7 +1991,10 @@ void register_netfn_transport_functions() + ipmi_transport_get_lan, PRIVILEGE_OPERATOR); + + ipmi_register_callback(NETFUN_TRANSPORT, IPMI_CMD_SET_SOL_CONF_PARAMS, NULL, +- setConfParams, PRIVILEGE_ADMIN); ++ setSOLConfParams, PRIVILEGE_ADMIN); ++ ++ ipmi_register_callback(NETFUN_TRANSPORT, IPMI_CMD_GET_SOL_CONF_PARAMS, NULL, ++ getSOLConfParams, PRIVILEGE_ADMIN); + + // Initialize dbus property progress to 0 every time sol manager restart. + initializeSOLInProgress(); +diff --git a/transporthandler.hpp b/transporthandler.hpp +index 3b5e9e1..7132cff 100644 +--- a/transporthandler.hpp ++++ b/transporthandler.hpp +@@ -257,7 +257,7 @@ struct Retry + uint8_t interval; //!< SOL retry interval. + } __attribute__((packed)); + +-struct SetConfParamsRequest ++struct SetSOLConfParamsRequest + { + #if BYTE_ORDER == LITTLE_ENDIAN + uint8_t channelNumber : 4; //!< Channel number. +@@ -279,7 +279,29 @@ struct SetConfParamsRequest + }; + } __attribute__((packed)); + +-struct SetConfParamsResponse ++struct SetSOLConfParamsResponse + { + uint8_t completionCode; //!< Completion code. + } __attribute__((packed)); ++ ++struct GetSOLConfParamsRequest ++{ ++#if BYTE_ORDER == LITTLE_ENDIAN ++ uint8_t channelNum : 4; //!< Channel number. ++ uint8_t reserved : 3; //!< Reserved. ++ uint8_t getParamRev : 1; //!< Get parameter or Get parameter revision ++#endif ++ ++#if BYTE_ORDER == BIG_ENDIAN ++ uint8_t getParamRev : 1; //!< Get parameter or Get parameter revision ++ uint8_t reserved : 3; //!< Reserved. ++ uint8_t channelNum : 4; //!< Channel number. ++#endif ++ ++ uint8_t paramSelector; //!< Parameter selector. ++ uint8_t setSelector; //!< Set selector. ++ uint8_t blockSelector; //!< Block selector. ++} __attribute__((packed)); ++ ++static constexpr uint16_t ipmiStdPort = 623; ++static constexpr uint8_t solParameterRevision = 0x11; +-- +2.16.2 + 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 2d47fdfff..f454f7ce9 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 @@ -3,7 +3,7 @@ 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 = "55768e3548ef7476d4fdbe7be7a3ddb4d4896f14" +SRCREV = "11df4f6906edc0dfb23089a6e297158549c19ebd" SRC_URI += "file://phosphor-ipmi-host.service \ file://0002-Modify-dbus-interface-for-power-control.patch \ @@ -13,25 +13,17 @@ SRC_URI += "file://phosphor-ipmi-host.service \ file://0012-ipmi-set-get-boot-options.patch \ file://0013-ipmi-add-set-bios-id-to-whitelist.patch \ file://0014-Enable-get-device-guid-ipmi-command.patch \ - file://0016-add-better-sdbusplus-exception-handling.patch \ - file://0018-Catch-sdbusplus-exceptions-in-IPMI-net.patch \ file://0021-Implement-IPMI-Commmand-Get-Host-Restart-Cause.patch \ file://0039-ipmi-add-oem-command-get-AIC-FRU-to-whitelist.patch \ file://0048-Implement-IPMI-Master-Write-Read-command.patch \ file://0049-Fix-Unspecified-error-on-ipmi-restart-cause-command.patch \ file://0050-enable-6-oem-commands.patch \ - file://0051-Fix-Set-LAN-Config-to-work-without-SetInProgress.patch \ file://0053-Fix-keep-looping-issue-when-entering-OS.patch \ file://0055-Implement-set-front-panel-button-enables-command.patch \ file://0056-add-SetInProgress-to-get-set-boot-option-cmd.patch \ file://0057-Add-timer-use-actions-support.patch \ + file://0058-Add-AC-failed-bit-support-for-get-chassis-status-com.patch \ + file://0059-Move-Set-SOL-config-parameter-to-host-ipmid.patch \ + file://0060-Move-Get-SOL-config-parameter-to-host-ipmid.patch \ " -do_install_append(){ - install -d ${D}${includedir}/phosphor-ipmi-host - install -d ${D}${libdir}/phosphor-ipmi-host - install -m 0644 -D ${S}/*.h ${D}${includedir}/phosphor-ipmi-host - install -m 0644 -D ${S}/*.hpp ${D}${includedir}/phosphor-ipmi-host - install -m 0644 -D ${S}/utils.cpp ${D}${libdir}/phosphor-ipmi-host - -} diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend index d5d38a0ce..694bd1fcf 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -1,2 +1,2 @@ SRC_URI = "git://github.com/openbmc/ipmbbridge.git" -SRCREV = "25e85c79257723b1cb754c20299196685373ce24" +SRCREV = "08deaa317c7ac0dd6e4202529ff17962c63df485" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/00010-Change-Authentication-Parameter.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/00010-Change-Authentication-Parameter.patch new file mode 100644 index 000000000..867b3aba6 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/00010-Change-Authentication-Parameter.patch @@ -0,0 +1,40 @@ +From 0fd38eb0a155cb11ff5a5452087f68c46d12111b Mon Sep 17 00:00:00 2001 +From: Cheng C Yang +Date: Thu, 28 Mar 2019 18:10:40 +0800 +Subject: [PATCH] Change Authentication Parameter + +Seprate D-bus interface Authentication to forceAuthentication, +forceEncryption, Privilege according to the related change in +sol-dbus-interface. + +Tested By: +ipmitool -I lanplus -H x -U x -P x raw 0x0c 0x21 0x0e 0x02 0x03 +ipmitool -I lanplus -H x -U x -P x raw 0x0c 0x21 0x0e 0x02 0xc2 +The parameters has been changed to the request data in above command. + +Signed-off-by: Cheng C Yang +--- + sol/sol_manager.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/sol/sol_manager.cpp b/sol/sol_manager.cpp +index de36723..0bd837e 100644 +--- a/sol/sol_manager.cpp ++++ b/sol/sol_manager.cpp +@@ -195,8 +195,12 @@ void Manager::updateSOLParameter() + + enable = std::get(properties["Enable"]); + ++ forceEncrypt = std::get(properties["ForceEncryption"]); ++ ++ forceAuth = std::get(properties["ForceAuthentication"]); ++ + solMinPrivilege = static_cast( +- std::get(properties["Authentication"])); ++ std::get(properties["Privilege"])); + + accumulateInterval = + std::get((properties["AccumulateIntervalMS"])) * +-- +2.16.2 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0006-Modify-dbus-namespace-of-chassis-control-for-guid.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0006-Modify-dbus-namespace-of-chassis-control-for-guid.patch index 7225c7529..0ad625a1f 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0006-Modify-dbus-namespace-of-chassis-control-for-guid.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0006-Modify-dbus-namespace-of-chassis-control-for-guid.patch @@ -24,7 +24,7 @@ Index: phosphor-net-ipmid.clean/command/guid.cpp -static constexpr auto guidObjPath = "/org/openbmc/control/chassis0"; +static constexpr auto guidObjPath = -+ "/xyz/openbmc_project/Chassis/Control/Chassis0"; ++ "/xyz/openbmc_project/Chassis/Control/Chassis0"; static constexpr auto propInterface = "org.freedesktop.DBus.Properties"; Guid getSystemGUID() diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0007-Adding-support-for-GetSessionInfo-command.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0007-Adding-support-for-GetSessionInfo-command.patch index fda7ed2ca..bbbe6ae4f 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0007-Adding-support-for-GetSessionInfo-command.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0007-Adding-support-for-GetSessionInfo-command.patch @@ -1,7 +1,7 @@ -From f5c7d30be4a097998d9390614c0faa2d77109ca5 Mon Sep 17 00:00:00 2001 +From b05fb3231810865ef1b6e627bb0452ae7a6c61f8 Mon Sep 17 00:00:00 2001 From: ssekar Date: Wed, 12 Dec 2018 16:04:15 +0530 -Subject: [PATCH] Adding support for GetSessionInfo command +Subject: [PATCH 1/2] Adding support for GetSessionInfo command Description: user can get all session info (remote ip,port, session id, priv, etc) using this command. @@ -20,14 +20,13 @@ Signed-off-by: ssekar message_handler.cpp | 1 + sessions_manager.cpp | 55 +++++++++++++++ sessions_manager.hpp | 7 ++ - socket_channel.cpp | 27 ++++++- - socket_channel.hpp | 3 +- - 8 files changed, 301 insertions(+), 2 deletions(-) + socket_channel.hpp | 17 +++++ + 7 files changed, 290 insertions(+) -Index: phosphor-net-ipmid.clean/comm_module.cpp -=================================================================== ---- phosphor-net-ipmid.clean.orig/comm_module.cpp -+++ phosphor-net-ipmid.clean/comm_module.cpp +diff --git a/comm_module.cpp b/comm_module.cpp +index acc9089..7a1a17d 100644 +--- a/comm_module.cpp ++++ b/comm_module.cpp @@ -53,6 +53,14 @@ void sessionSetupCommands() &closeSession, session::Privilege::CALLBACK, @@ -43,20 +42,14 @@ Index: phosphor-net-ipmid.clean/comm_module.cpp }; for (auto& iter : commands) -Index: phosphor-net-ipmid.clean/command/session_cmds.cpp -=================================================================== ---- phosphor-net-ipmid.clean.orig/command/session_cmds.cpp -+++ phosphor-net-ipmid.clean/command/session_cmds.cpp -@@ -5,11 +5,19 @@ - - #include - -+#include - #include - #include - +diff --git a/command/session_cmds.cpp b/command/session_cmds.cpp +index 8606ce5..4beeb6e 100644 +--- a/command/session_cmds.cpp ++++ b/command/session_cmds.cpp +@@ -8,6 +8,14 @@ namespace command { + +// Defined as per IPMI sepcification +static constexpr uint8_t searchCurrentSession = 0x00; +static constexpr uint8_t searchSessionByHandle = 0xFE; @@ -64,10 +57,11 @@ Index: phosphor-net-ipmid.clean/command/session_cmds.cpp + +static constexpr uint8_t ipmi15VerSession = 0x00; +static constexpr uint8_t ipmi20VerSession = 0x01; - ++ std::vector setSessionPrivilegeLevel(const std::vector& inPayload, -@@ -110,4 +118,143 @@ std::vector closeSession(const + const message::Handler& handler) +@@ -92,4 +100,143 @@ std::vector closeSession(const std::vector& inPayload, return outPayload; } @@ -211,10 +205,10 @@ Index: phosphor-net-ipmid.clean/command/session_cmds.cpp +} + } // namespace command -Index: phosphor-net-ipmid.clean/command/session_cmds.hpp -=================================================================== ---- phosphor-net-ipmid.clean.orig/command/session_cmds.hpp -+++ phosphor-net-ipmid.clean/command/session_cmds.hpp +diff --git a/command/session_cmds.hpp b/command/session_cmds.hpp +index 9737fdb..741de23 100644 +--- a/command/session_cmds.hpp ++++ b/command/session_cmds.hpp @@ -116,4 +116,59 @@ struct CloseSessionResponse std::vector closeSession(const std::vector& inPayload, const message::Handler& handler); @@ -275,22 +269,22 @@ Index: phosphor-net-ipmid.clean/command/session_cmds.hpp + const message::Handler& handler); + } // namespace command -Index: phosphor-net-ipmid.clean/message_handler.cpp -=================================================================== ---- phosphor-net-ipmid.clean.orig/message_handler.cpp -+++ phosphor-net-ipmid.clean/message_handler.cpp -@@ -43,6 +43,7 @@ std::shared_ptr Handler::receiv - sessionID = message->bmcSessionID; - message->rcSessionID = session->getRCSessionID(); +diff --git a/message_handler.cpp b/message_handler.cpp +index e2aafb3..b335236 100644 +--- a/message_handler.cpp ++++ b/message_handler.cpp +@@ -43,6 +43,7 @@ bool Handler::receive() + sessionID = inMessage->bmcSessionID; + inMessage->rcSessionID = session->getRCSessionID(); session->updateLastTransactionTime(); + session->channelPtr = channel; - return message; + return true; } -Index: phosphor-net-ipmid.clean/sessions_manager.cpp -=================================================================== ---- phosphor-net-ipmid.clean.orig/sessions_manager.cpp -+++ phosphor-net-ipmid.clean/sessions_manager.cpp +diff --git a/sessions_manager.cpp b/sessions_manager.cpp +index 95a8a15..9f3210b 100644 +--- a/sessions_manager.cpp ++++ b/sessions_manager.cpp @@ -88,6 +88,9 @@ std::shared_ptr } sessionID = session->getBMCSessionID(); @@ -301,7 +295,7 @@ Index: phosphor-net-ipmid.clean/sessions_manager.cpp return session; } -@@ -149,12 +152,15 @@ std::shared_ptr Manager::getSes +@@ -149,12 +152,15 @@ std::shared_ptr Manager::getSession(SessionID sessionID, void Manager::cleanStaleEntries() { @@ -371,10 +365,10 @@ Index: phosphor-net-ipmid.clean/sessions_manager.cpp + return count; +} } // namespace session -Index: phosphor-net-ipmid.clean/sessions_manager.hpp -=================================================================== ---- phosphor-net-ipmid.clean.orig/sessions_manager.hpp -+++ phosphor-net-ipmid.clean/sessions_manager.hpp +diff --git a/sessions_manager.hpp b/sessions_manager.hpp +index 9fd38b1..f6ed1c3 100644 +--- a/sessions_manager.hpp ++++ b/sessions_manager.hpp @@ -82,8 +82,15 @@ class Manager std::shared_ptr getSession(SessionID sessionID, @@ -391,14 +385,15 @@ Index: phosphor-net-ipmid.clean/sessions_manager.hpp /** * @brief Session Manager keeps the session objects as a sorted * associative container with Session ID as the unique key -Index: phosphor-net-ipmid.clean/socket_channel.hpp -=================================================================== ---- phosphor-net-ipmid.clean.orig/socket_channel.hpp -+++ phosphor-net-ipmid.clean/socket_channel.hpp -@@ -65,6 +65,23 @@ class Channel +diff --git a/socket_channel.hpp b/socket_channel.hpp +index ebe0c8f..349701e 100644 +--- a/socket_channel.hpp ++++ b/socket_channel.hpp +@@ -64,6 +64,23 @@ class Channel + return endpoint.port(); } - /** ++ /** + * @brief Return the binary representation of the remote IPv4 address + * + * getSessionInfo needs to return the remote IPv4 addresses of each session @@ -415,7 +410,9 @@ Index: phosphor-net-ipmid.clean/socket_channel.hpp + return 0; + } + -+ /** + /** * @brief Read the incoming packet * - * Reads the data available on the socket +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0008-Sync-GetSession-Info-cmd-based-on-Upstream-review.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0008-Sync-GetSession-Info-cmd-based-on-Upstream-review.patch index 1a109a571..6212c0724 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0008-Sync-GetSession-Info-cmd-based-on-Upstream-review.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0008-Sync-GetSession-Info-cmd-based-on-Upstream-review.patch @@ -1,16 +1,16 @@ -From 0ecc7c816ad4836f8f54922ba92cb527f5978d5a Mon Sep 17 00:00:00 2001 +From a413e390563205476656a9005ca447f5b626872f Mon Sep 17 00:00:00 2001 From: Suryakanth Sekar Date: Wed, 6 Mar 2019 10:35:56 +0530 -Subject: [PATCH] Sync GetSession Info cmd based on Upstream review +Subject: [PATCH 2/2] Sync GetSession Info cmd based on Upstream review Signed-off-by: Suryakanth Sekar --- - comm_module.cpp | 12 ++++---- - command/session_cmds.cpp | 72 +++++++++++++++++++++--------------------------- - sessions_manager.cpp | 10 +++---- + comm_module.cpp | 12 +++---- + command/session_cmds.cpp | 71 ++++++++++++++++++---------------------- + sessions_manager.cpp | 10 +++--- sessions_manager.hpp | 2 +- - socket_channel.hpp | 33 +++++++++++----------- - 5 files changed, 59 insertions(+), 70 deletions(-) + socket_channel.hpp | 33 ++++++++++--------- + 5 files changed, 59 insertions(+), 69 deletions(-) diff --git a/comm_module.cpp b/comm_module.cpp index 7a1a17d..2546583 100644 @@ -36,25 +36,19 @@ index 7a1a17d..2546583 100644 for (auto& iter : commands) diff --git a/command/session_cmds.cpp b/command/session_cmds.cpp -index 7563b18..fc996a4 100644 +index 4beeb6e..0c3a4ed 100644 --- a/command/session_cmds.cpp +++ b/command/session_cmds.cpp -@@ -5,13 +5,12 @@ - - #include - --#include - #include - #include - +@@ -8,7 +8,7 @@ namespace command { + -// Defined as per IPMI sepcification +// Defined as per IPMI specification static constexpr uint8_t searchCurrentSession = 0x00; static constexpr uint8_t searchSessionByHandle = 0xFE; static constexpr uint8_t searchSessionByID = 0xFF; -@@ -129,20 +128,6 @@ std::vector getSessionInfo(const std::vector& inPayload, +@@ -111,20 +111,6 @@ std::vector getSessionInfo(const std::vector& inPayload, reinterpret_cast(outPayload.data()); uint32_t reqSessionID = handler.sessionID; response->completionCode = IPMI_CC_OK; @@ -75,7 +69,7 @@ index 7563b18..fc996a4 100644 // Here we look for session info according to session index parameter switch (request->sessionIndex) -@@ -150,29 +135,22 @@ std::vector getSessionInfo(const std::vector& inPayload, +@@ -132,29 +118,22 @@ std::vector getSessionInfo(const std::vector& inPayload, // Look for current active session which this cmd is received over case searchCurrentSession: // Request data should only contain session index byte @@ -110,7 +104,7 @@ index 7563b18..fc996a4 100644 } // Retrieve session id based on session handle -@@ -186,7 +164,7 @@ std::vector getSessionInfo(const std::vector& inPayload, +@@ -168,7 +147,7 @@ std::vector getSessionInfo(const std::vector& inPayload, { response->completionCode = IPMI_CC_INVALID_FIELD_REQUEST; outPayload.resize(sizeof(response->completionCode)); @@ -119,7 +113,7 @@ index 7563b18..fc996a4 100644 } break; case searchSessionByID: -@@ -196,23 +174,38 @@ std::vector getSessionInfo(const std::vector& inPayload, +@@ -178,23 +157,38 @@ std::vector getSessionInfo(const std::vector& inPayload, { response->completionCode = IPMI_CC_REQ_DATA_LEN_INVALID; outPayload.resize(sizeof(response->completionCode)); @@ -162,7 +156,7 @@ index 7563b18..fc996a4 100644 response->sessionHandle = 0; if (reqSessionID != 0) { -@@ -225,9 +218,9 @@ std::vector getSessionInfo(const std::vector& inPayload, +@@ -207,9 +201,9 @@ std::vector getSessionInfo(const std::vector& inPayload, } catch (std::exception& e) { @@ -174,7 +168,7 @@ index 7563b18..fc996a4 100644 } response->sessionHandle = std::get(singletonPool) .getSessionHandle(reqSessionID); -@@ -236,25 +229,24 @@ std::vector getSessionInfo(const std::vector& inPayload, +@@ -218,25 +212,24 @@ std::vector getSessionInfo(const std::vector& inPayload, { response->completionCode = IPMI_CC_UNSPECIFIED_ERROR; outPayload.resize(sizeof(response->completionCode)); @@ -246,7 +240,7 @@ index 9f3210b..c6897c6 100644 uint8_t count = 0; for (const auto& it : sessionsMap) diff --git a/sessions_manager.hpp b/sessions_manager.hpp -index c4caad4..3a3825d 100644 +index f6ed1c3..3ff213e 100644 --- a/sessions_manager.hpp +++ b/sessions_manager.hpp @@ -82,7 +82,7 @@ class Manager @@ -314,5 +308,5 @@ index 349701e..8b64740 100644 /** -- -2.7.4 +2.17.1 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0009-Add-dbus-interface-for-sol-commands.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0009-Add-dbus-interface-for-sol-commands.patch index 771120120..c90cccf34 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0009-Add-dbus-interface-for-sol-commands.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net/0009-Add-dbus-interface-for-sol-commands.patch @@ -147,7 +147,7 @@ index 2046fe4..de36723 100644 #include #include #include -+#include ++#include #include +#include + 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 4b82cc21c..9dc21a3dd 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 = "7e5d38d2fb51fc746624ff2f2b3701cea245a8fb" +#SRCREV = "8af90ebcc552e243ae85aa9e9da1a00fbecab56c" USERADD_PACKAGES = "${PN}" # add a group called ipmi @@ -15,5 +15,6 @@ SRC_URI += " file://0006-Modify-dbus-namespace-of-chassis-control-for-guid.patch file://0007-Adding-support-for-GetSessionInfo-command.patch \ file://0008-Sync-GetSession-Info-cmd-based-on-Upstream-review.patch \ file://0009-Add-dbus-interface-for-sol-commands.patch \ + file://00010-Change-Authentication-Parameter.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 09d2f9c41..af83facf6 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 = "81133dd32bd0337aec9e026d1c9c2788028c7bdd" +SRCREV = "2ab90332828614c95e0ce22c0c95285734b55b65" PV = "0.1+git${SRCPV}" LICENSE = "Apache-2.0" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb new file mode 100644 index 000000000..31b9e9338 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb @@ -0,0 +1,15 @@ +SUMMARY = "Multi node manager" +DESCRIPTION = "Daemon to handle chassis level shared resources on multi-node platform" + +SRC_URI = "git://git@github.com/Intel-BMC/multi-node-manager.git;protocol=ssh" +SRCREV = "8a34c017e04dd8f327aff127f64855f6132bd318" + +PV = "0.1+git${SRCPV}" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" + +SYSTEMD_SERVICE_${PN} = "multi-node-manager.service" + +DEPENDS = "boost sdbusplus phosphor-logging i2c-tools" +inherit cmake systemd diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend new file mode 100644 index 000000000..f1be7d358 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -0,0 +1,4 @@ +${PN}-software-extras_remove = " \ + obmc-flash-bmc \ + obmc-mgr-download \ +" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend index 809d05b94..ca38bf7fb 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend @@ -1,6 +1,6 @@ # Enable downstream autobump SRC_URI = "git://github.com/openbmc/phosphor-sel-logger.git" -SRCREV = "2b9704d7eb666c945c73dd74a426a0af2292b0ea" +SRCREV = "f2552a50fde35d665b5fc3ac6852f2f6bb229cae" # Enable threshold monitoring EXTRA_OECMAKE += "-DSEL_LOGGER_MONITOR_THRESHOLD_EVENTS=ON" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend index dff1647e8..fdd62e731 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend @@ -1,4 +1,7 @@ -SRCREV = "209ec56cca898725213140fd0d1205a4d2f1c6a4" +SRCREV = "93dc2c8e7c710fd65d269ef0bf684fb7a433a602" SRC_URI = "git://github.com/openbmc/dbus-sensors.git" DEPENDS_append = " i2c-tools" + +#todo(cheng) remove this when synced upstream +SYSTEMD_SERVICE_${PN} += " xyz.openbmc_project.psusensor.service" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/settings/phosphor-settings-defaults-native/defaults.yaml b/meta-openbmc-mods/meta-common/recipes-phosphor/settings/phosphor-settings-defaults-native/defaults.yaml index 24816fb4c..d2624b606 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/settings/phosphor-settings-defaults-native/defaults.yaml +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/settings/phosphor-settings-defaults-native/defaults.yaml @@ -110,7 +110,7 @@ - Interface: xyz.openbmc_project.Control.Security.RestrictionMode Properties: RestrictionMode: - Default: RestrictionMode::Modes::None + Default: RestrictionMode::Modes::Provisioning /xyz/openbmc_project/control/host0/TPMEnable: - Interface: xyz.openbmc_project.Control.TPM.Policy @@ -179,3 +179,31 @@ Default: '"Performance"' Supported: Default: '{"Acoustic", "Performance"}' + +/xyz/openbmc_project/control/cfm_limit: + - Interface: xyz.openbmc_project.Control.CFMLimit + Properties: + Limit: + Default: 0 + +/xyz/openbmc_project/ipmi/sol: + - Interface: xyz.openbmc_project.Ipmi.SOL + Properties: + Progress: + Default: 0 + Enable: + Default: 'true' + ForceEncryption: + Default: 'true' + ForceAuthentication: + Default: 'true' + Privilege: + Default: 2 + AccumulateIntervalMS: + Default: 20 + Threshold: + Default: 1 + RetryCount: + Default: 7 + RetryIntervalMS: + Default: 10 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb index 01c93490b..6737ed7a2 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb @@ -9,7 +9,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh" -SRCREV = "f4d4bfc3296cb27feb17aa5d1d93b3061b56ce10" +SRCREV = "785f19b128794611574ea6c18805740fb851ecff" inherit cmake systemd SYSTEMD_SERVICE_${PN} = "srvcfg-manager.service" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb index 6d614590d..ace1969e5 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb @@ -7,7 +7,7 @@ inherit cmake systemd DEPENDS = "boost sdbusplus" PV = "0.1+git${SRCPV}" -SRCREV = "f4d4bfc3296cb27feb17aa5d1d93b3061b56ce10" +SRCREV = "785f19b128794611574ea6c18805740fb851ecff" S = "${WORKDIR}/git/callback-manager" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend index 1939e5ad2..4c7d3ac2d 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend @@ -1,7 +1,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" #SRC_URI = "git://github.com/openbmc/phosphor-user-manager" -SRCREV = "736648e25eb250d1e200cea961fe75bf791f1355" +SRCREV = "c3f56c50ffffe1076531eb4aad7c0a574a44841f" SRC_URI += " \ diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-expiredTimerUse-property-support.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-expiredTimerUse-property-support.patch deleted file mode 100644 index 54e459245..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-expiredTimerUse-property-support.patch +++ /dev/null @@ -1,28 +0,0 @@ -From efb3c226fc80243729901f675568b2b41142b1f9 Mon Sep 17 00:00:00 2001 -From: Yong Li -Date: Mon, 18 Mar 2019 22:54:41 +0800 -Subject: [PATCH] Add expiredTimerUse property support - -When the timer expired, set expiredTimerUse property as the timer use - -Signed-off-by: Yong Li ---- - watchdog.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/watchdog.cpp b/watchdog.cpp -index aed0443..d529746 100644 ---- a/watchdog.cpp -+++ b/watchdog.cpp -@@ -101,6 +101,8 @@ void Watchdog::timeOutHandler() - action = fallback->action; - } - -+ WatchdogInherits::expiredTimerUse(WatchdogInherits::currentTimerUse()); -+ - auto target = actionTargetMap.find(action); - if (target == actionTargetMap.end()) - { --- -2.7.4 - diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-redfish-log-support-for-IPMI-watchdog-timeout-ac.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-redfish-log-support-for-IPMI-watchdog-timeout-ac.patch new file mode 100644 index 000000000..6e057f681 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-redfish-log-support-for-IPMI-watchdog-timeout-ac.patch @@ -0,0 +1,50 @@ +From 1c0e658833ea7595b2fb42261ce5e0ce781bac98 Mon Sep 17 00:00:00 2001 +From: Yong Li +Date: Thu, 4 Apr 2019 18:24:54 +0800 +Subject: [PATCH] Add redfish log support for IPMI watchdog timeout actions + +The current plan is that only threshold sensor events +will be logged to the IPMI SEL, +and all other events will be logged to the Redfish Event Log. + +Tested: +Config IPMI watchdog: OEM hard reset after 10 seconds: +ipmitool raw 0x06 0x24 0x5 0x1 0x0 0x0 0x64 0x00 +Start watchdog: +Ipmitool mc watchdog reset +Check the redfish logs in 10 seconds: +https://BMCIP/redfish/v1/Systems/system/LogServices/EventLog/Entries + +Signed-off-by: Yong Li +--- + watchdog.cpp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/watchdog.cpp b/watchdog.cpp +index d529746..008cde5 100644 +--- a/watchdog.cpp ++++ b/watchdog.cpp +@@ -1,5 +1,7 @@ + #include "watchdog.hpp" + ++#include ++ + #include + #include + #include +@@ -115,6 +117,12 @@ void Watchdog::timeOutHandler() + entry("ACTION=%s", convertForMessage(action).c_str()), + entry("TARGET=%s", target->second.c_str())); + ++ // Log into redfish event log ++ sd_journal_send("MESSAGE=IPMIWatchdog: Timed out ACTION=%s; TARGET=%s", ++ convertForMessage(action).c_str(), ++ target->second.c_str(), "PRIORITY=%i", LOG_INFO, ++ "REDFISH_MESSAGE_ID=%s", "IPMIWatchdog", NULL); ++ + try + { + auto method = bus.new_method_call(SYSTEMD_SERVICE, SYSTEMD_ROOT, +-- +2.7.4 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend index 5f8d53976..6411c209d 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend @@ -1,6 +1,6 @@ FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" -SRC_URI += "file://0001-Add-expiredTimerUse-property-support.patch" +SRC_URI += "file://0001-Add-redfish-log-support-for-IPMI-watchdog-timeout-ac.patch" # Remove the override to keep service running after DC cycle SYSTEMD_OVERRIDE_${PN}_remove = "poweron.conf:phosphor-watchdog@poweron.service.d/poweron.conf" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0004-Implement-force-boot-to-bios-in-server-power-control.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0004-Implement-force-boot-to-bios-in-server-power-control.patch new file mode 100644 index 000000000..0e2d400a3 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0004-Implement-force-boot-to-bios-in-server-power-control.patch @@ -0,0 +1,199 @@ +From a4f948f98e9bfd8b019699b4e23281448f7b7313 Mon Sep 17 00:00:00 2001 +From: Kuiying Wang +Date: Wed, 27 Mar 2019 19:35:12 +0800 +Subject: [PATCH] Implement force to BIOS + +UI page review use below link: +https://projects.invisionapp.com/share/UER87D98GPM#/screens + +Tested: + Switch on "Boot To BIOS", could enter BIOS setup page directly + when power on system. + +Change-Id: Ib46dc5d84df51d31cc5ff8635fa0c0f52de0e194 +Signed-off-by: Kuiying Wang +--- + app/common/services/api-utils.js | 49 +++++++++++++++++++ + app/common/services/constants.js | 4 ++ + app/common/services/dataService.js | 1 + + .../power-operations-controller.html | 12 +++++ + .../power-operations-controller.js | 32 ++++++++++++ + 5 files changed, 98 insertions(+) + +diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js +index 840db8e..193c172 100644 +--- a/app/common/services/api-utils.js ++++ b/app/common/services/api-utils.js +@@ -31,6 +31,7 @@ window.angular && (function(angular) { + HOST_STATE: Constants.HOST_STATE, + LED_STATE: Constants.LED_STATE, + LED_STATE_TEXT: Constants.LED_STATE_TEXT, ++ FORCE_TO_BIOS_STATE_TEXT: Constants.FORCE_TO_BIOS_STATE_TEXT, + HOST_SESSION_STORAGE_KEY: Constants.API_CREDENTIALS.host_storage_key, + getChassisState: function() { + var deferred = $q.defer(); +@@ -451,6 +452,32 @@ window.angular && (function(angular) { + }); + return deferred.promise; + }, ++ getForceToBIOSState: function() { ++ var deferred = $q.defer(); ++ ++ if (DataService.configJson.redfishSupportEnabled == true) { ++ $http({ ++ method: 'GET', ++ url: ++ DataService.getHost() + '/redfish/v1/Systems/system', ++ withCredentials: true ++ }).then( ++ function(response) { ++ var json = JSON.stringify(response.data); ++ var content = JSON.parse(json); ++ deferred.resolve(content.Boot.BootSourceOverrideTarget); ++ }, ++ function(error) { ++ console.log(error); ++ deferred.reject(error); ++ }); ++ } else { ++ var err = "Redfish is not enabled!"; ++ console.log(err); ++ deferred.reject(err); ++ } ++ return deferred.promise; ++ }, + login: function(username, password, callback) { + $http({ + method: 'POST', +@@ -872,6 +899,28 @@ window.angular && (function(angular) { + } + }); + }, ++ setForceToBIOSState: function(state) { ++ if (DataService.configJson.redfishSupportEnabled == true) { ++ var data = JSON.stringify({'Boot': ++ { ++ 'BootSourceOverrideTarget': state ++ } ++ }); ++ return $http({ ++ method: 'PATCH', ++ url: ++ DataService.getHost() + '/redfish/v1/Systems/system', ++ withCredentials: true, ++ data: data ++ }); ++ } else { ++ var deferred = $q.defer(); ++ var err = "Redfish is not enabled!"; ++ console.log(err); ++ deferred.reject(err); ++ return deferred.promise; ++ } ++ }, + getLastRebootTime: function() { + return $http({ + method: 'GET', +diff --git a/app/common/services/constants.js b/app/common/services/constants.js +index 9931f01..8da0b12 100644 +--- a/app/common/services/constants.js ++++ b/app/common/services/constants.js +@@ -38,6 +38,10 @@ window.angular && (function(angular) { + HOST_STATE: {on: 1, off: -1, error: 0, unreachable: -2}, + LED_STATE: {on: true, off: false}, + LED_STATE_TEXT: {on: 'on', off: 'off'}, ++ FORCE_TO_BIOS_STATE_TEXT: { ++ on: 'BiosSetup', ++ off: 'None' ++ }, + SEVERITY_TO_PRIORITY_MAP: { + Emergency: 'High', + Alert: 'High', +diff --git a/app/common/services/dataService.js b/app/common/services/dataService.js +index 76ab381..bcd7142 100644 +--- a/app/common/services/dataService.js ++++ b/app/common/services/dataService.js +@@ -18,6 +18,7 @@ window.angular && (function(angular) { + this.server_status = -2; + this.chassis_state = 'On'; + this.LED_state = Constants.LED_STATE_TEXT.off; ++ this.ForceToBIOS_state = Constants.FORCE_TO_BIOS_STATE_TEXT.off; + this.last_updated = new Date(); + + this.loading = false; +diff --git a/app/server-control/controllers/power-operations-controller.html b/app/server-control/controllers/power-operations-controller.html +index 3dc69d2..1f00f4a 100644 +--- a/app/server-control/controllers/power-operations-controller.html ++++ b/app/server-control/controllers/power-operations-controller.html +@@ -10,6 +10,18 @@ +
+
+

{{dataService.hostname}} - {{dataService.server_id}}

++
++ ++ ++

Boot to BIOS

++
++ +

{{dataService.server_state | quiescedToError}}

+
+
+diff --git a/app/server-control/controllers/power-operations-controller.js b/app/server-control/controllers/power-operations-controller.js +index 1a1f355..9a832e8 100644 +--- a/app/server-control/controllers/power-operations-controller.js ++++ b/app/server-control/controllers/power-operations-controller.js +@@ -26,6 +26,17 @@ window.angular && (function(angular) { + + var pollChassisStatusTimer = undefined; + var pollStartTime = null; ++ APIUtils.getForceToBIOSState().then( ++ function(data) { ++ if (data == APIUtils.FORCE_TO_BIOS_STATE_TEXT.on) { ++ dataService.ForceToBIOS_state = APIUtils.FORCE_TO_BIOS_STATE_TEXT.on; ++ } else { ++ dataService.ForceToBIOS_state = APIUtils.FORCE_TO_BIOS_STATE_TEXT.off; ++ } ++ }, ++ function(error) { ++ console.log(JSON.stringify(error)); ++ }); + + //@TODO: call api and get proper state + +@@ -50,6 +61,27 @@ window.angular && (function(angular) { + (dataService.server_state == 'Running') ? 'Off' : 'Running'; + }; + ++ $scope.toggleForceToBIOS = function() { ++ var toggleState = ++ (dataService.ForceToBIOS_state == APIUtils.FORCE_TO_BIOS_STATE_TEXT.on) ? ++ APIUtils.FORCE_TO_BIOS_STATE_TEXT.off : ++ APIUtils.FORCE_TO_BIOS_STATE_TEXT.on; ++ dataService.ForceToBIOS_state = ++ (dataService.ForceToBIOS_state == APIUtils.FORCE_TO_BIOS_STATE_TEXT.on) ? ++ APIUtils.FORCE_TO_BIOS_STATE_TEXT.off : ++ APIUtils.FORCE_TO_BIOS_STATE_TEXT.on; ++ APIUtils.setForceToBIOSState(toggleState) ++ .then( ++ function(response) {}, ++ function(errors) { ++ toastService.error( ++ 'Failed to set Boot to BIOS '); ++ console.log(JSON.stringify(errors)); ++ // Reload to get correct current state ++ $route.reload(); ++ }) ++ }; ++ + $scope.powerOn = function() { + $scope.loading = true; + dataService.setUnreachableState(); +-- +2.19.1 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0007-Fix-some-page-keeps-loading-on-IE11.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0007-Fix-some-page-keeps-loading-on-IE11.patch deleted file mode 100644 index 31d810cb6..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0007-Fix-some-page-keeps-loading-on-IE11.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 5a3750377629725890f949d68e7e0ba7d4752825 Mon Sep 17 00:00:00 2001 -From: Mirage Su -Date: Fri, 8 Mar 2019 17:12:46 +0800 -Subject: [PATCH] Fix some page keeps loading on IE11 - ---- - app/index.js | 1 + - package-lock.json | 19 +++++++++++++++++++ - package.json | 1 + - 3 files changed, 21 insertions(+) - mode change 100644 => 100755 package-lock.json - -diff --git a/app/index.js b/app/index.js -index c9fed83..c51203e 100644 ---- a/app/index.js -+++ b/app/index.js -@@ -8,6 +8,7 @@ - */ - import 'angular/angular-csp.css'; - import 'bootstrap/dist/css/bootstrap.css'; -+import 'babel-polyfill'; - - import angular from 'angular'; - import angular_animate from 'angular-animate'; -diff --git a/package-lock.json b/package-lock.json -old mode 100644 -new mode 100755 -index 2d9d31b..61e9787 ---- a/package-lock.json -+++ b/package-lock.json -@@ -1500,6 +1500,25 @@ - "babel-runtime": "6.26.0" - } - }, -+ "babel-polyfill": { -+ "version": "6.26.0", -+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", -+ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", -+ "dev": true, -+ "requires": { -+ "babel-runtime": "^6.26.0", -+ "core-js": "^2.5.0", -+ "regenerator-runtime": "^0.10.5" -+ }, -+ "dependencies": { -+ "regenerator-runtime": { -+ "version": "0.10.5", -+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", -+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", -+ "dev": true -+ } -+ } -+ }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", -diff --git a/package.json b/package.json -index 35c6b78..1bdf934 100644 ---- a/package.json -+++ b/package.json -@@ -50,6 +50,7 @@ - "autoprefixer": "9.1.5", - "babel-core": "6.26.3", - "babel-loader": "8.0.2", -+ "babel-polyfill": "^6.26.0", - "compression-webpack-plugin": "2.0.0", - "copy-webpack-plugin": "4.5.2", - "csp-html-webpack-plugin": "^2.5.0", diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0008-Pull-the-latest-novnc-package.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0008-Pull-the-latest-novnc-package.patch new file mode 100644 index 000000000..77bf662dc --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/0008-Pull-the-latest-novnc-package.patch @@ -0,0 +1,88 @@ +From 7ea99450a96ac6eb5815ed5f1b7a17e055365b78 Mon Sep 17 00:00:00 2001 +From: Jae Hyun Yoo +Date: Sat, 6 Apr 2019 00:15:04 -0700 +Subject: [PATCH] Pull the latest novnc package + +Signed-off-by: Jae Hyun Yoo +--- + package-lock.json | 18 +++++++++++------- + package.json | 2 +- + 2 files changed, 12 insertions(+), 8 deletions(-) + +diff --git a/package-lock.json b/package-lock.json +index c79a26c8229c..337383551a96 100644 +--- a/package-lock.json ++++ b/package-lock.json +@@ -808,9 +808,8 @@ + } + }, + "@novnc/novnc": { +- "version": "1.0.0", +- "resolved": "https://registry.npmjs.org/@novnc/novnc/-/novnc-1.0.0.tgz", +- "integrity": "sha1-drDonm+HOMqBVBlbr1uOaoC8kQU=" ++ "version": "git+https://github.com/novnc/noVNC.git#a136b4b078e8ac316b80d1ee24cf8f9b400ba2d5", ++ "from": "git+https://github.com/novnc/noVNC.git#a136b4b078e8ac316b80d1ee24cf8f9b400ba2d5" + }, + "@types/node": { + "version": "10.12.18", +@@ -3965,7 +3964,8 @@ + "ansi-regex": { + "version": "2.1.1", + "bundled": true, +- "dev": true ++ "dev": true, ++ "optional": true + }, + "aproba": { + "version": "1.2.0", +@@ -4380,7 +4380,8 @@ + "safe-buffer": { + "version": "5.1.1", + "bundled": true, +- "dev": true ++ "dev": true, ++ "optional": true + }, + "safer-buffer": { + "version": "2.1.2", +@@ -4436,6 +4437,7 @@ + "version": "3.0.1", + "bundled": true, + "dev": true, ++ "optional": true, + "requires": { + "ansi-regex": "2.1.1" + } +@@ -4479,12 +4481,14 @@ + "wrappy": { + "version": "1.0.2", + "bundled": true, +- "dev": true ++ "dev": true, ++ "optional": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, +- "dev": true ++ "dev": true, ++ "optional": true + } + } + }, +diff --git a/package.json b/package.json +index 0a880571d617..be816c8ece03 100644 +--- a/package.json ++++ b/package.json +@@ -30,7 +30,7 @@ + "dependencies": { + "angular": "^1.7.5", + "angular-animate": "^1.7.5", +- "@novnc/novnc": "^1.0.0", ++ "@novnc/novnc": "https://github.com/novnc/noVNC.git#a136b4b078e8ac316b80d1ee24cf8f9b400ba2d5", + "angular-clipboard": "^1.6.2", + "angular-cookies": "^1.7.5", + "angular-messages": "^1.7.6", +-- +2.7.4 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/config.json b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/config.json deleted file mode 100644 index 1543a6249..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "customKeyEnable": true, - "keyType" : "VT100+", - "customConsoleDisplaySize": { - "width": 100, - "height": 32 - } -} diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend index 9caa37767..9248894f7 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend @@ -1,13 +1,9 @@ FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" #SRC_URI = "git://github.com/openbmc/phosphor-webui.git" -SRCREV = "a2e36e0f479d1a9fa2b6d26448d5e070aea7259b" +SRCREV = "4733a11b42fca6013e3957bf0e345d0cea086d96" SRC_URI += "file://0001-Implement-KVM-in-webui.patch \ - file://config.json \ - file://0007-Fix-some-page-keeps-loading-on-IE11.patch \ + file://0004-Implement-force-boot-to-bios-in-server-power-control.patch \ + file://0008-Pull-the-latest-novnc-package.patch \ " - -do_compile_prepend() { - cp -r ${WORKDIR}/config.json ${S}/ -} -- cgit v1.2.3