36f9cded | 22-Nov-2021 |
Chris Cain <cjcain@us.ibm.com> |
Add support for OEM Power Modes
- Allow mode to be set via PassThrough interface - Allow non-customer OEM power modes to be persisted - Persist any OEM power mode settings - moved mode related code
Add support for OEM Power Modes
- Allow mode to be set via PassThrough interface - Allow non-customer OEM power modes to be persisted - Persist any OEM power mode settings - moved mode related code from Status to PowerMode object - merged PowerIPS into PowerMode object
Tested on Everest and Rainier. Setting mode through PassThrough/ce-login: busctl call org.open_power.OCC.Control /org/open_power/control/occ0 org.open_power.OCC.PassThrough SetMode yq 11 3600 Trace (via PassThrough interface) openpower-occ-control[4440]: PassThrough::setMode() Setting Power Mode 11 (data: 3600) openpower-occ-control[4440]: PowerMode::sendModeChange: SET_MODE(11,3600) command to OCC0 (9 bytes) Trace (setting mode via GUI/Redfish): openpower-occ-control[4440]: Power Mode Change Requested: xyz.openbmc_project.Control.Power.Mode.PowerMode.MaximumPerformance openpower-occ-control[4440]: PowerMode::sendModeChange: SET_MODE(12,0) command to OCC0 (9 bytes) Verified when system in any OEM mode that Redfish also reports OEM Verified all modes are persisted across PM Complex resets and reboots
Change-Id: Idd0be05cb6fd74dbd0776145f212c49addd1c365 Signed-off-by: Chris Cain <cjcain@us.ibm.com>
show more ...
|
f3a4a69f | 27-Dec-2021 |
George Liu <liuxiwei@inspur.com> |
Fix some warnings by cppcheck
Warning message: ../../../occ_events.hpp:16:9: warning: Value stored to 'event' is never read [deadcode.DeadStores] event = sd_event_unref(event); ^
Fix some warnings by cppcheck
Warning message: ../../../occ_events.hpp:16:9: warning: Value stored to 'event' is never read [deadcode.DeadStores] event = sd_event_unref(event); ^ ~~~~~~~~~~~~~~~~~~~~~ ../../../occ_events.hpp:26:9: warning: Value stored to 'eventSource' is never read [deadcode.DeadStores] eventSource = sd_event_source_unref(eventSource);
occ_dbus.cpp:34:47: performance: Searching before insertion is not necessary. [stlFindInsert] path, std::make_unique<SensorIntf>(utils::getBus(), path.c_str())); ^ occ_dbus.cpp:61:47: performance: Searching before insertion is not necessary. [stlFindInsert] path, std::make_unique<SensorIntf>(utils::getBus(), path.c_str())); ^ occ_dbus.cpp:88:47: performance: Searching before insertion is not necessary. [stlFindInsert] path, std::make_unique<SensorIntf>(utils::getBus(), path.c_str())); ^ occ_dbus.cpp:115:47: performance: Searching before insertion is not necessary. [stlFindInsert] path, std::make_unique<SensorIntf>(utils::getBus(), path.c_str())); ^ occ_dbus.cpp:158:80: performance: Searching before insertion is not necessary. [stlFindInsert] operationalStatus.emplace(path, std::make_unique<OperationalStatusIntf>( ^ occ_pass_through.hpp:42:5: style: Class 'PassThrough' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] PassThrough(const char* path); ^ powercap.hpp:41:5: style: Class 'PowerCap' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] PowerCap(Status& occStatus, ^ occ_manager.hpp:77:5: style: Struct 'Manager' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] Manager(EventPtr& event) : ^ occ_status.hpp:307:26: style: Local variable 'path' shadows outer variable [shadowVariable] auto path = fs::path(estimatedPath); ^ occ_status.hpp:207:17: note: Shadowed declaration std::string path; ^ occ_status.hpp:307:26: note: Shadow variable auto path = fs::path(estimatedPath); ^ pldm.hpp:55:14: warning: Member variable 'Interface::OCCSensorOffset' is not initialized in the constructor. [uninitMemberVar] explicit Interface( ^ pldm.hpp:55:14: warning: Member variable 'Interface::SBESensorOffset' is not initialized in the constructor. [uninitMemberVar] explicit Interface( ^ powermode.hpp:60:5: style: Class 'PowerMode' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] PowerMode(Status& occStatus) : ^ powermode.hpp:96:5: style: Class 'PowerIPS' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] PowerIPS(Status& occStatus) : ^ occ_manager.cpp:321:24: style: The scope of the variable 'path' can be reduced. [variableScope] constexpr auto path = "/org/openpower/dump"; ^ occ_manager.cpp:322:24: style: The scope of the variable 'interface' can be reduced. [variableScope] constexpr auto interface = "xyz.openbmc_project.Dump.Create"; ^ occ_manager.cpp:323:24: style: The scope of the variable 'function' can be reduced. [variableScope] constexpr auto function = "CreateDump"; ^ pldm.cpp:78:16: style: Local variable 'pdr' shadows outer variable [shadowVariable] for (auto& pdr : pdrs) ^ pldm.cpp:48:10: note: Shadowed declaration auto pdr = ^ pldm.cpp:78:16: note: Shadow variable for (auto& pdr : pdrs) ^ pldm.cpp:248:16: style: Local variable 'pdr' shadows outer variable [shadowVariable] for (auto& pdr : pdrs) ^ pldm.cpp:221:10: note: Shadowed declaration auto pdr = ^ pldm.cpp:248:16: note: Shadow variable for (auto& pdr : pdrs) ^ powermode.cpp:28:22: style: Variable 'pmode' is assigned a value that is never used. [unreadVariable] SysPwrMode pmode = SysPwrMode::NO_CHANGE;
Tested: Use cppcheck to build successfully and eliminate the above warning message.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I72751dc94db684fc558b4bb57b1924be64ce6760
show more ...
|
e98faec2 | 25-Dec-2021 |
George Liu <liuxiwei@inspur.com> |
Remove redundant variables
CPU_SUBPATH is defined in meson.build but not used, remove it.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I3d009a650f2b70c6180733af4a4531c4d4e92f60 |
432dc486 | 19-Nov-2021 |
Eddie James <eajames@linux.ibm.com> |
pldm: Fix HRESET handling and incorrect entity ID
The HRESET state signal wasn't being handled, since the message sensor offsets are the same for OCC and SBE; both maps need to be checked and action
pldm: Fix HRESET handling and incorrect entity ID
The HRESET state signal wasn't being handled, since the message sensor offsets are the same for OCC and SBE; both maps need to be checked and action taken if the sensor ID is found. In addition, the OCC reset effecter was incorrectly using the processor module entity ID, rather than the processor.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: I9e601560e1144101ce6515809a265fdd7db01b06
show more ...
|
36313c71 | 18-Nov-2021 |
Eddie James <eajames@linux.ibm.com> |
Fix PLDM effector state set IDs
Now that the PLDM OEM state set headers are available, use those instead of hardcoding the (now outdated) values.
Signed-off-by: Eddie James <eajames@linux.ibm.com>
Fix PLDM effector state set IDs
Now that the PLDM OEM state set headers are available, use those instead of hardcoding the (now outdated) values.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: Iaa526e9a2acc61743c533845472d4294082a5c6c
show more ...
|
a7b74dc3 | 10-Nov-2021 |
Chris Cain <cjcain@us.ibm.com> |
Clean up error cases on boot or when app restarted
- Detect when no or duplicate masters are found (force reset) - Prevent sending commands to OCC when OCC is disabled - Detect OCC state changes to
Clean up error cases on boot or when app restarted
- Detect when no or duplicate masters are found (force reset) - Prevent sending commands to OCC when OCC is disabled - Detect OCC state changes to SAFE (after 60 sec force reset)
Tested on Everest and Rainier hardware
Signed-off-by: Chris Cain <cjcain@us.ibm.com> Change-Id: I490f182405e11da207b42a0607a532566479bfd9
show more ...
|
17257673 | 22-Oct-2021 |
Chris Cain <cjcain@us.ibm.com> |
Send ambient and altitude to OCC
After the OCCs go active or anytime the ambient temperature changes the ambient temperature and alititude will get sent to each OCC. The altitude is only read once.
Send ambient and altitude to OCC
After the OCCs go active or anytime the ambient temperature changes the ambient temperature and alititude will get sent to each OCC. The altitude is only read once. If the altitude was not valid, another attempt to read it will be done when the ambient temperature is going to be re-sent.
Tested on Everest and Rainier systems
Change-Id: Icd64c50c05469bc985cfcaa3fcc74c3db5b41429 Signed-off-by: Chris Cain <cjcain@us.ibm.com>
show more ...
|
ace67d85 | 18-Oct-2021 |
Matt Spinler <spinler@us.ibm.com> |
Add proc IO Ring and core/IO ring DVFS sensors
Add support for the processor IO ring temperature sensor which the OCC uses fru type 9 for. There is one per OCC.
Add support for reading the process
Add proc IO Ring and core/IO ring DVFS sensors
Add support for the processor IO ring temperature sensor which the OCC uses fru type 9 for. There is one per OCC.
Add support for reading the processor core and IO ring DVFS (Dynamic Voltage and Frequency Slewing) temperature values out of the tempN_max files and putting them on D-Bus. These values are the temperatures at which the OCC starts using DVFS to cool the chip and are being put on D-Bus so that fan control can read them and increase fan speeds before then so the OCC doesn't have to do the DVFS.
Even though there is a value in the tempN_max file for every core, there only needs to be one value on D-Bus per OCC. These are put in the sensors namespace using the xyz.openbmc_project.Sensor.Value interface. They do not need associations to the chassis, and they don't need to be set to NaN when the OCCs aren't active, since the values can never change.
There are values in the tempN_max files for most, if not all, other temperature types as well, but the IO ring and core DVFS temps are the only ones that aren't known ahead of time because they come from the processor EEPROM.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I3e3f7a2a5db4053ea055e7baa16f0b0bf6eddbca
show more ...
|
338748ba | 29-Oct-2021 |
Eddie James <eajames@linux.ibm.com> |
ffdc: Only proceed with PEL creation if there is an error
Sometimes the listening application is woken up to read the FFDC file even if there is no error. Catch this case before trying to create a P
ffdc: Only proceed with PEL creation if there is an error
Sometimes the listening application is woken up to read the FFDC file even if there is no error. Catch this case before trying to create a PEL. Also, make sure the app doesn't crash trying to get the PEL service.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: I84f3f6d56054c08507473ecf8908ecc3901aaeaa
show more ...
|
8a3b8601 | 25-Oct-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Add OWNERS file
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: Ibf9578dc2c90723d6d347920d08b825046265f7b |
ea4ba179 | 21-Oct-2021 |
George Liu <liuxiwei@inspur.com> |
build: Remove autotools support
Since we use meson everywhere now, Clean up the autotools support.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I8f294e5d7f1bea3386b35ffb45c9d6b2752b21
build: Remove autotools support
Since we use meson everywhere now, Clean up the autotools support.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I8f294e5d7f1bea3386b35ffb45c9d6b2752b2194
show more ...
|
cbad219e | 07-Oct-2021 |
Eddie James <eajames@linux.ibm.com> |
Add SBE timeout handling
Add an Error instance to detect SBE timeouts in the driver. Refactor the PLDM code to handle another requeset type (the HRESET) and another type of sensor event (success or
Add SBE timeout handling
Add an Error instance to detect SBE timeouts in the driver. Refactor the PLDM code to handle another requeset type (the HRESET) and another type of sensor event (success or failure of the HRESET). Handle the timeout and the PLDM event state change in the Manager by changing the SBE state and requesting an SBE dump if necessary.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: I30d8f9de1914d9808ddb7b547cc57085a5e5779e
show more ...
|
2f9f9bba | 20-Sep-2021 |
Eddie James <eajames@linux.ibm.com> |
Add FFDC collection
Add a class to watch for the presence of SBEFIFO FFDC reported up through the OCC hwmon driver.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: Ia8bf6eddb037aec547
Add FFDC collection
Add a class to watch for the presence of SBEFIFO FFDC reported up through the OCC hwmon driver.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: Ia8bf6eddb037aec547b72ecce39c1a977d9374bc
show more ...
|
6b234c15 | 20-Oct-2021 |
Eddie James <eajames@linux.ibm.com> |
Change yamldir to refer to a directory
To maintain the behavior of the autotools build, the "yamldir" configuration option should refer to the directory in which to find the occ_sensor.yaml file. Dr
Change yamldir to refer to a directory
To maintain the behavior of the autotools build, the "yamldir" configuration option should refer to the directory in which to find the occ_sensor.yaml file. Drop the -f argument to the sensor generation python script and change the default yamldir argument.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: I7a93a0c403c4ce473ea2d7350f3ee441bc55c4be
show more ...
|
3f710bd8 | 20-Oct-2021 |
Eddie James <eajames@linux.ibm.com> |
Add power supply derating factor to meson options
Add the option to specify the power supply derating factor.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: Ibfbb52f64c5b9133fbbc8cbb
Add power supply derating factor to meson options
Add the option to specify the power supply derating factor.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: Ibfbb52f64c5b9133fbbc8cbb267aa9618c079cc6
show more ...
|
1d51da29 | 21-Sep-2021 |
Chris Cain <cjcain@us.ibm.com> |
Use Idle Power Saver parameters from DBus
Allows users to enable and update the IPS parameters instead of using hardcoded values.
Change-Id: I9010c4b4d3dbdf130a4a778f71c87279681a9f1a Signed-off-by:
Use Idle Power Saver parameters from DBus
Allows users to enable and update the IPS parameters instead of using hardcoded values.
Change-Id: I9010c4b4d3dbdf130a4a778f71c87279681a9f1a Signed-off-by: Chris Cain <cjcain@us.ibm.com>
show more ...
|
ad6eca4b | 24-Sep-2021 |
George Liu <liuxiwei@inspur.com> |
Handle D-Bus exceptions
Remove the usage of is_method_error()[1].
[1]https://github.com/openbmc/sdbusplus/blob/master/include/sdbusplus/bus.hpp#L287-L291
Signed-off-by: George Liu <liuxiwei@inspur
Handle D-Bus exceptions
Remove the usage of is_method_error()[1].
[1]https://github.com/openbmc/sdbusplus/blob/master/include/sdbusplus/bus.hpp#L287-L291
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I3aa1ed3131f6b4ed6f2f2510c4f73dbf2c637d22
show more ...
|
064fc15b | 24-Sep-2021 |
George Liu <liuxiwei@inspur.com> |
Remove compilation using autotools
The intent behind this commit is build openpower-occ-control with meson, so need to remove files related to autotools.
Tested: built openpower-occ-control success
Remove compilation using autotools
The intent behind this commit is build openpower-occ-control with meson, so need to remove files related to autotools.
Tested: built openpower-occ-control successfully and worked.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I46e87cca03eb84631cb34ad7bab33e973b1fc95e
show more ...
|
9ed399d9 | 10-Sep-2021 |
George Liu <liuxiwei@inspur.com> |
Add subprojects
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I1f9a13a8113ed632fa82d61acbf7c160d355cce8 |
bddcf853 | 07-Sep-2021 |
George Liu <liuxiwei@inspur.com> |
Add meson build
This commit is to add meson build. and later, we will remove Autotools and replace it with meson build.
Tested: built openpower-occ-control successfully and Unit test passes.
Signe
Add meson build
This commit is to add meson build. and later, we will remove Autotools and replace it with meson build.
Tested: built openpower-occ-control successfully and Unit test passes.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I7f5fbc7150194a78f9b36bb256613fc70b834130
show more ...
|
37923464 | 24-Sep-2021 |
Matt Spinler <spinler@us.ibm.com> |
Change P10 poll rate to 5s
It was decided that for Power 10 systems polls only need to be done every 5 seconds.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ibce75ffa916da7a0a04c444a
Change P10 poll rate to 5s
It was decided that for Power 10 systems polls only need to be done every 5 seconds.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ibce75ffa916da7a0a04c444ac0607c590b0c1804
show more ...
|
5901abda | 23-Sep-2021 |
Matt Spinler <spinler@us.ibm.com> |
Add chassis association to sensors
Add an association to the chassis for each sensor so that the Redfish code can find them. The forward association is 'chassis', and the reverse association is 'al
Add chassis association to sensors
Add an association to the chassis for each sensor so that the Redfish code can find them. The forward association is 'chassis', and the reverse association is 'all_sensors'. This matches what other sensor applications do and is documented in sensors-architecture.md in the docs repository.
Tested: Checked the associations were present in the mapper and that the sensors now show up on the sensors page in the web UI.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iefb6d4dc2e5c9399d919e9e1b7c8dd04f20e7a3e
show more ...
|
ff7afd98 | 17-Sep-2021 |
Matt Spinler <spinler@us.ibm.com> |
Use big core numbering for P10 cores
A 'big core' on P10 consists of 2 'small cores'. P10 systems are, as of this time, always configured in big core mode, but the OCC only reports small cores.
Th
Use big core numbering for P10 cores
A 'big core' on P10 consists of 2 'small cores'. P10 systems are, as of this time, always configured in big core mode, but the OCC only reports small cores.
This commit updates the core sensor names to big core numbering, where there are now two temperatures per core.
For example:
New numbering: proc0_core0_0_temp proc0_core0_1_temp proc0_core2_0_temp proc0_core2_1_temp proc0_core4_0_temp proc0_core4_1_temp proc0_core6_0_temp proc0_core6_1_temp proc0_core8_0_temp proc0_core8_1_temp proc0_core10_0_temp proc0_core10_1_temp proc0_core12_0_temp proc0_core12_1_temp proc0_core14_0_temp proc0_core14_1_temp
Original Numbering; proc0_core0_temp proc0_core1_temp proc0_core4_temp proc0_core5_temp proc0_core8_temp proc0_core9_temp proc0_core12_temp proc0_core13_temp proc0_core16_temp proc0_core17_temp proc0_core20_temp proc0_core21_temp proc0_core24_temp proc0_core25_temp proc0_core28_temp proc0_core29_temp
Big core PLDM objects that match the new numbering: dcm0/cpu0/core0 dcm0/cpu0/core2 dcm0/cpu0/core4 dcm0/cpu0/core6 dcm0/cpu0/core8 dcm0/cpu0/core10 dcm0/cpu0/core12 dcm0/cpu0/core14
Change-Id: Ia997b58d75ccde65df7e337dd823a3f79c1601f5 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
2cd3e615 | 10-Sep-2021 |
George Liu <liuxiwei@inspur.com> |
Replace IRC with Discord
Discord has more users, and IRC traffic has ground to a halt.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I18dfc03d4338741be0bae66637bafad8065ef140 |
d0345ae0 | 10-Sep-2021 |
George Liu <liuxiwei@inspur.com> |
Comment unused parameters
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: Id5448711b5a6910514264ff9c008b7d32c26a8f8 |