33d492f4 | 23-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Do not add trailing \0 to VINI SN
The SerialNumber property in the asset decorator properties has the correct length, but for some reason a null (\0) was added to the end of the value we sen
psu-ng: Do not add trailing \0 to VINI SN
The SerialNumber property in the asset decorator properties has the correct length, but for some reason a null (\0) was added to the end of the value we send out to the VINI SN property. Doing this results in an incorrect VPD data length.
Tested: Built fully p10bmc image, flashed to Rainier 2S2U. Used busctl introspect to examine powersupply properties. Powered on system Used PHYP macro to verifyvpd
Change-Id: Id82014c656161bb5e59b2216d7da80c09c3c7f29 Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
show more ...
|
90d529af | 22-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Need driver to bind before updateInventory
If the power supply is present, we need to bind the device driver before we attempt to read the VPD and other properties from it.
If we are bindin
psu-ng: Need driver to bind before updateInventory
If the power supply is present, we need to bind the device driver before we attempt to read the VPD and other properties from it.
If we are binding the device driver, we need to ensure we find or update the directory/path we are using for sysfs files we will read.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Change-Id: I2a0b2b3b76c77600ee34c847b62daf4eff40f39a
show more ...
|
b1ee60f0 | 22-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Move bindDelay into bindOrUnbindDriver()
Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Change-Id: Ia936958deb8b6c6c413d58339c54a8930e773090 |
3225a45c | 18-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Add a clearVinUVFault function
Create a clearVinUVFault() function specifically for clearing the VIN_UV and unit is off fault bits.
Use this function when see a vinUVFault with good voltage
psu-ng: Add a clearVinUVFault function
Create a clearVinUVFault() function specifically for clearing the VIN_UV and unit is off fault bits.
Use this function when see a vinUVFault with good voltage read back from READ_VIN. This should clear the latched fault if the fault is no longer active. If the fault is still active, the next read will show the fault again.
Also call clearVinUVFault() from the clearFaults() function.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Change-Id: Ic26029fe64e3cd3e232c615b223cafb774bf77f9
show more ...
|
4fc191f0 | 10-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Clear faults if VIN_UV and READ_VIN good
If we see that we have set the VIN_UV fault indicator, but the READ_VIN value is returning a non-zero voltage for input, attempt to clear the faults.
psu-ng: Clear faults if VIN_UV and READ_VIN good
If we see that we have set the VIN_UV fault indicator, but the READ_VIN value is returning a non-zero voltage for input, attempt to clear the faults. This could be a latched input voltage under-voltage condition that has now cleared.
Save off actualVoltage in PowerSupply member variable. This allows for comparing the previous actual voltage with the new reading, to trace out the actual voltage instead of the calculated 0/110/220 voltage.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Change-Id: Ibf1642a081ccf4d4a9c4202ce2536799806af017
show more ...
|
321a615b | 18-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Create a shortName and use for tracing
Given the full inventory path, find and store off the short part of the name (powersupply0) for use in various tracing messages.
Signed-off-by: Brando
psu-ng: Create a shortName and use for tracing
Given the full inventory path, find and store off the short part of the name (powersupply0) for use in various tracing messages.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Change-Id: I59906e9f5eabdae16b4d67dcf8e6d4146f7d0fe8
show more ...
|
280fa715 | 17-Mar-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Remove disconnected Rainier system GPIO pins
Per engineering updates, remove disconnected GPIO pins from Rainier configuration file. This will prevent incorrect isolation of power good failure
pseq: Remove disconnected Rainier system GPIO pins
Per engineering updates, remove disconnected GPIO pins from Rainier configuration file. This will prevent incorrect isolation of power good failures.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I6fe74d7bcde4474acc1c00171c7b4767b65b1eb1
show more ...
|
1cb0f13e | 14-Mar-2022 |
Mike Capps <mikepcapps@gmail.com> |
psu-ng : add header to SerialNumber property
The VINI SN property has header + SerialNumber but the serial number was missing the header.
Signed-off-by: Mike Capps <mikepcapps@gmail.com> Change-Id:
psu-ng : add header to SerialNumber property
The VINI SN property has header + SerialNumber but the serial number was missing the header.
Signed-off-by: Mike Capps <mikepcapps@gmail.com> Change-Id: I8b1d67ccced5ca3c244e57ca041f2ee11872e111
show more ...
|
3accffe3 | 10-Mar-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add all the GPIO pin values in failure data
Add all the power sequencer pin values to the additional data in failures. Refactor the GPIO isolation logic to use pins already read. Only hold the
pseq: Add all the GPIO pin values in failure data
Add all the power sequencer pin values to the additional data in failures. Refactor the GPIO isolation logic to use pins already read. Only hold the pins open during the read.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ic9042b7d2b71e2332f8071b853aa1f21f90a5a3f
show more ...
|
9e292ee2 | 10-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Limit tracing to STATUS_WORD changes
Add in a statusWordOld to compare with new statusWord value. Use that to limit tracing to only when the value changes.
Signed-off-by: Brandon Wyman <bjw
psu-ng: Limit tracing to STATUS_WORD changes
Add in a statusWordOld to compare with new statusWord value. Use that to limit tracing to only when the value changes.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Change-Id: I40d9d8c08b5e60f7c11f753c0bf88c78304ecb1d
show more ...
|
6f939a31 | 10-Mar-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Fix up format for STATUS_* journal traces
The format specifiers for the various journal traces are short by 2 characters. Since the specifier puts the 0x on the front, I need to specify 6 fo
psu-ng: Fix up format for STATUS_* journal traces
The format specifiers for the various journal traces are short by 2 characters. Since the specifier puts the 0x on the front, I need to specify 6 for STATUS_WORD to get both bytes, and 4 for the other 1-byte values.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Change-Id: I16550b351f02f9d57c8a50104fdbf2a7dcdde521
show more ...
|
b4ad95dd | 08-Mar-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Observe minimum power off time
In order to give hardware components an appropriate time to discharge and prevent thrashing during brownouts, enforce a minimum power off time. A 25 second minim
pseq: Observe minimum power off time
In order to give hardware components an appropriate time to discharge and prevent thrashing during brownouts, enforce a minimum power off time. A 25 second minimum delay will be enforced after power off before the next power on. A minimum of 15 seconds must pass after cold start until a power on will start.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ib0cd0bcda1ca492548ee7912bab9a46181337098
show more ...
|
f6f0da9d | 28-Feb-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Refactor on failure method
Refactor onFailure() method to consolidate logic and improve amount of device information captured as additional data.
Signed-off-by: Jim Wright <jlwright@us.ibm.co
pseq: Refactor on failure method
Refactor onFailure() method to consolidate logic and improve amount of device information captured as additional data.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Id8ab37343ce9c9a98a2e52f360b552c2af7c4848
show more ...
|
7f20c5d0 | 28-Feb-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Issue failures as system terminating
Power sequencing failures are system terminating, add the additional data values that so indicate.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-
pseq: Issue failures as system terminating
Power sequencing failures are system terminating, add the additional data values that so indicate.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I5a3acdcdb159bcc653bd3ffc38e4f275d294ccbf
show more ...
|
48752626 | 28-Feb-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Prevent multiple failures
Multiple failures can occur when the power down sequence is slow. Add a flag to threshold the failures. Clear the flag at power on.
Signed-off-by: Jim Wright <jlwrig
pseq: Prevent multiple failures
Multiple failures can occur when the power down sequence is slow. Add a flag to threshold the failures. Clear the flag at power on.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I1b476feff1967b4fa60f29bd719bf6ee14fba103
show more ...
|
ca1e9ea1 | 18-Feb-2022 |
Matt Spinler <spinler@us.ibm.com> |
psu-ng: Handle health rollup based on availability
When a PSU is set to not available, create an association between the power supply and its chassis as a way to 'roll up' the health status to that
psu-ng: Handle health rollup based on availability
When a PSU is set to not available, create an association between the power supply and its chassis as a way to 'roll up' the health status to that chassis. It looks like:
<chassis>/critical endpoints: <power supply> <power supply>/health_rollup endpoints: <chassis>
There is Redfish code that look at the endpoints in that chassis association object to determine if the chassis health is OK or not.
Note that some systems, such as IBM's, have other code that will fill in that association when it is called out in an event log, which is why this code doesn't have to do it for every single fault.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I262dd738ebadb72aa207011941066fc282bfe4df
show more ...
|
10fc6e87 | 08-Feb-2022 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Call setPowerSupplyError method for fault
If/when a fault occurs, and the PSU manager is going to create an error, also call the setPowerSupplyError D-Bus method to let the power control/seq
psu-ng: Call setPowerSupplyError method for fault
If/when a fault occurs, and the PSU manager is going to create an error, also call the setPowerSupplyError D-Bus method to let the power control/sequencer app known that a power supply error has occurred. If an associated pgood fault also occurs, the power control/sequencer app can make a determination of whether it is due to the power supply error.
Call setPowerSupplyError method with null string during clearing of faults.
Tested: Simulated power supply faults followed by pgood fault. Verified power supply fault used for source of pgood fault. After PSU & pgood fault, poweron, try just pgood fault. Verified pgood fault logged. Real Rainier 2S2U normally fault free operation during poweron. Real Rainier 2S2U VIN_UV fault works as expected. Real Rainier 2S2U AC loss fault. Real Rainier 2S2U injected pgood fault (no PSU error).
Change-Id: Ia5c7c4fdcbd3b86c5184cb5bc6d93a9628747f18 Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
show more ...
|
0975eaf4 | 14-Feb-2022 |
Matt Spinler <spinler@us.ibm.com> |
psu-ng: Add Availability support to power supplies
Add support for determining if a power supply is considered 'available' or not, and set the Available D-Bus property on the xyz.openbmc_project.Sta
psu-ng: Add Availability support to power supplies
Add support for determining if a power supply is considered 'available' or not, and set the Available D-Bus property on the xyz.openbmc_project.State.Decorator.Availability interface with the result.
A power supply is considered unavailable if any of the following are true: - it isn't present - there is a input fault active - there is a Vin UV fault active - there is a PS KILL fault active - there is a Iout OC fault active
The latter four faults are the faults where it can't provide good output power, hence the PS is unavailable. These faults also don't call out the power supply directly, so the Functional property won't get set to false, unlike other faults.
The Available D-Bus property is then able to be used in Redfish responses for the heath and state properties in the power supply schema.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I349eddb8c052cf238276c832af0dde9e49f6d3f0
show more ...
|
5c6ac77e | 16-Feb-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Cleanup Rainier config file pin entries
Remove from the Rainier config file the pins which do not factor into the overall chassis power good. The PCIE slot pins do not represent a power good f
pseq: Cleanup Rainier config file pin entries
Remove from the Rainier config file the pins which do not factor into the overall chassis power good. The PCIE slot pins do not represent a power good fail. The software pgood pin has been removed from current system documentation. The individual PSU pgoods will be monitored by the power supply application.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Id2ecb4eb2aee8048737a048b0ba45a1b48711334
show more ...
|
abd64b94 | 11-Feb-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Clear power supply error at power on
After a successful tranisition to power on state, clear any set power supply error. This resets the monitoring and follows the usual assumption that hardwa
pseq: Clear power supply error at power on
After a successful tranisition to power on state, clear any set power supply error. This resets the monitoring and follows the usual assumption that hardware could have changed while the power was off.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I75f0f4cff91bb914d8edc422b13b4ff71267029a
show more ...
|
e4c3a299 | 10-Feb-2022 |
Adriana Kobylak <anoo@us.ibm.com> |
psu-ng: Don't log brownout error if all PSUs are missing
During a BMC reboot at runtime, the PSUs may not exist yet on D-Bus. Therefore, add a check to ignore if all PSUs are marked as not present,
psu-ng: Don't log brownout error if all PSUs are missing
During a BMC reboot at runtime, the PSUs may not exist yet on D-Bus. Therefore, add a check to ignore if all PSUs are marked as not present, or the total of PSUs is 0, and not log a brownout error. Therefore to log a brownout error, at least one PSU must report a AC loss VIN fault.
Tested: Verified a brownout error is not logged on a reboot at runtime even though the number of PSUs was 0. Also a brownout error was not logged when all PSUs were manually set to not present.
Change-Id: Ic96ccb2609a4a4d8f07c3a63106ec43619dc341b Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
8b150f30 | 28-Jan-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add Everest configuration file
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I2b456c098b7fcbfbf753e1745a7640418d50ed0d |
5f99bc02 | 28-Jan-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add service file
Add service file for power control and power sequence monitoring combined application. Change meson build files to support.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Ch
pseq: Add service file
Add service file for power control and power sequence monitoring combined application. Change meson build files to support.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I0c06b0b66c7d02145516564dc98123a4633498b3
show more ...
|
99ed8e79 | 28-Jan-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add Rainier configuration file
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ib7caad4766bb80835c2cbe76a7854f5c48dae553 |
2549d792 | 26-Jan-2022 |
Adriana Kobylak <anoo@us.ibm.com> |
psu-ng: Log error on brownout condition
Per design document: https://github.com/openbmc/docs/blob/master/designs/power-recovery.md#brownout
The BMC must log an error indicating the brownout event h
psu-ng: Log error on brownout condition
Per design document: https://github.com/openbmc/docs/blob/master/designs/power-recovery.md#brownout
The BMC must log an error indicating the brownout event has occurred.
Check for a brownout condition where all PSUs are either not present or report an AC loss VIN fault. The error log would be the same as a Blackout condition. Keep track if the error was created via a variable so that the error is not created multiple times. Clear the variable once the brownout condition is no longer detected or when then system is powered off so that it gets logged on the next power on.
Tested: On Rainier 2S2U simulation where there are 4 PSUs slots but only two power supplies connected, inject a VIN fault on the two present PSUs and verify an error log for AC loss 110000AC is created:
Jan 31 16:57:37 p10bmc phosphor-psu-monitor[963]: INPUT fault: STATUS_WORD = 0x2848, STATUS_MFR_SPECIFIC = 0x0, STATUS_INPUT = 0x38 Jan 31 16:57:37 p10bmc phosphor-psu-monitor[963]: VIN_UV fault: STATUS_WORD = 0x2848, STATUS_MFR_SPECIFIC = 0x0, STATUS_INPUT = 0x38 Jan 31 16:57:38 p10bmc phosphor-psu-monitor[963]: INPUT fault: STATUS_WORD = 0x2848, STATUS_MFR_SPECIFIC = 0x0, STATUS_INPUT = 0x38 Jan 31 16:57:38 p10bmc phosphor-psu-monitor[963]: VIN_UV fault: STATUS_WORD = 0x2848, STATUS_MFR_SPECIFIC = 0x0, STATUS_INPUT = 0x38 Jan 31 16:57:38 p10bmc phosphor-log-manager[305]: Created PEL 0x50000007 (BMC ID 7) with SRC 110000AC
Change-Id: I7760b59a02ef2afc81bd7807c7896183d99a66ec Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|