331c4857 | 16-Apr-2021 |
Patrick Williams <patrick@stwcx.xyz> |
filesystem: use non-experimental
std::filesystem has replaced std::experimental::filesystem since at least C++17 and experimental no longer links without extra effort in C++20. Use the C++17 std::f
filesystem: use non-experimental
std::filesystem has replaced std::experimental::filesystem since at least C++17 and experimental no longer links without extra effort in C++20. Use the C++17 std::filesystem APIs.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I33cfc22e04e435fcdca5bf83b5877a7a27c394c8
show more ...
|
993168de | 07-Apr-2021 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Change method of asserting a fault LED
There was a recent change in direction on how PELs should request that fault LEDs be turned on. Previously, the code would talk to the LED group objects
PEL: Change method of asserting a fault LED
There was a recent change in direction on how PELs should request that fault LEDs be turned on. Previously, the code would talk to the LED group objects directly. The new direction is to set the Functional property on the OperationalStatus interface on the inventory objects in question to false, and the LED manager code will watch that to know when to turn on the LEDs.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ieebb09ba002843cf863359a09aba26540356aa91
show more ...
|
f3702bb3 | 09-Apr-2021 |
Vijay Lobo <vijaylobo@gmail.com> |
PEL: Support creator supplied power fault flag
User can supply POWER_THERMAL_CRITICAL_FAULT=TRUE as part of AdditionalData entry in the event log to set the power fault bit in PEL
Tested: I ran uni
PEL: Support creator supplied power fault flag
User can supply POWER_THERMAL_CRITICAL_FAULT=TRUE as part of AdditionalData entry in the event log to set the power fault bit in PEL
Tested: I ran unit test using docker. Also tested manually by setting D-bus event log
Change-Id: Ifa03f091a7d1efcc67f181c2be1cc0a6240891e1 Signed-off-by: Vijay Lobo <vijaylobo@gmail.com>
show more ...
|
bc0c6190 | 11-Feb-2021 |
Adriana Kobylak <anoo@us.ibm.com> |
test/Makefile: Add sdbeventplus to LDFLAGS
Commit eb5d3f2fbcf584a28dc7aeaed050243ba0a038ea added a new function that uses sdeventplus. This causes the test cases to fail with: undefined reference to
test/Makefile: Add sdbeventplus to LDFLAGS
Commit eb5d3f2fbcf584a28dc7aeaed050243ba0a038ea added a new function that uses sdeventplus. This causes the test cases to fail with: undefined reference to `sdeventplus::Event::get_default(). Add the sdeventplus to LDFLAGS to fix it.
Tested: CI passes.
Change-Id: I6a5a79f15fc766be50ff78d9ee9d18e6380ef4d7 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
f397afcc | 29-Jan-2021 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Allow missing AD keys in the reg callouts
In the code where the message registry can select callouts based on an AdditionalData property value, don't trace an error messsage if it doesn't find
PEL: Allow missing AD keys in the reg callouts
In the code where the message registry can select callouts based on an AdditionalData property value, don't trace an error messsage if it doesn't find a matching value in the callout list.
This may be done on purpose, such as only wanting to add the ambient temperature symbolic FRU if the sensor name passed in is the ambient temp sensor, and not adding any callouts otherwise.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Id45a4769fcdbb719e473ce0b414090207b62baeb
show more ...
|
1a1b0dfb | 23-Nov-2020 |
Harisuddin Mohamed Isa <harisuddin@gmail.com> |
peltool: Print the Words6To9 'Description' field
Include the 'Description' field from the Words6To9 registry entry when printing SRC error details.
Changed from this:
"Error Details": { "Messa
peltool: Print the Words6To9 'Description' field
Include the 'Description' field from the Words6To9 registry entry when printing SRC error details.
Changed from this:
"Error Details": { "Message": "There was a failure when reading a sensor device", "CALLOUT_ERRNO": "0x5" }
to this:
"Error Details": { "Message": "There was a failure when reading a sensor device", "CALLOUT_ERRNO": [ "0x5", "errno of the failure" ] }
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com> Change-Id: Icc107b0516062eb891f14f3ff3f3cffd316c6d77
show more ...
|
53ef1552 | 14-Oct-2020 |
Miguel Gomez <mgomez@mx1.ibm.com> |
Specify PEL callout priority and sort callouts.
Allow the priority to be passed in at creation time by calling the CALLOUT_PRIORITY keyword. When creating a PEL, callouts will always be sorted by pr
Specify PEL callout priority and sort callouts.
Allow the priority to be passed in at creation time by calling the CALLOUT_PRIORITY keyword. When creating a PEL, callouts will always be sorted by priority instead of creation time, the order is as follows: H,M,A,B,C,L.
Signed-off-by: Miguel Gomez <mgomez@mx1.ibm.com> Change-Id: I84345aaf3fad7b2e4958b698ab761966f499986b
show more ...
|
1ab6696f | 29-Oct-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Use the real system names property
There is now a 'Names' property on the new xyz.openbmc_project.Configuration.IBMCompatibleSystem interface that the DataInterface::getSystemNames function wil
PEL: Use the real system names property
There is now a 'Names' property on the new xyz.openbmc_project.Configuration.IBMCompatibleSystem interface that the DataInterface::getSystemNames function will read. The existing code was mostly a placeholder until the actual interface showed up on D-Bus.
Since the path that holds the interface is system specific, and the PEL code should only rarely need this, the code was changed to read it on demand instead of at caching it startup.
Since getSystemNames() no longer returns a cached value, the signature was changed slightly to remove the reference from the returned std::vector<std::string> value.
The UserHeader constructor used to make a call to getSystemNames every time, and that was changed to only call it when actually necessary, which is when there is a severity value defined in the message registry that depends on the system name.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I1d4f307ef38287b631f94dae2b8929307d129029
show more ...
|
f00f9d0f | 23-Oct-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Dynamic location code for registry callout
The PEL callout type 'symbolic FRU with trusted location code' previously had both the symoblic FRU name and the location code specified in the PEL me
PEL: Dynamic location code for registry callout
The PEL callout type 'symbolic FRU with trusted location code' previously had both the symoblic FRU name and the location code specified in the PEL message registry. However, there are cases where the location code is not known until runtime so it cannot be specified in the registry.
To solve this, create a boolean 'UseInventoryLocCode` key that can be used in the registry callout entry to specify that the location code to use for the callout should come from the FRU passed in using the CALLOUT_INVENTORY_PATH entry in the AdditionalData event log property. In this case, that FRU will not be added as a normal FRU callout as it would normally be otherwise. The registry that uses this must be the first one in the callout list.
For example: { "Priority": "high", "SymbolicFRUTrusted": "air_mover", "UseInventoryLocCode": true },
along with CALLOUT_INVENTORY_PATH=<processor 0 path>
would result in a symbolic FRU callout with the trusted location code being the processor 0 location code.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iaf65c523803662313f2ad5e197262b9f4e722332
show more ...
|
44893cc9 | 26-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Implement CreatePELWithFFDCFiles
This D-Bus method on the org.open_power.Logging.PEL interface is the same as the already existing createWithFFDCFiles method on the xyz.openbmc_project.Logging.
PEL: Implement CreatePELWithFFDCFiles
This D-Bus method on the org.open_power.Logging.PEL interface is the same as the already existing createWithFFDCFiles method on the xyz.openbmc_project.Logging.Create interface, except it also returns the IDs of the newly created OpenBMC event log and PEL.
Code was added to track the IDs of the most recently added event log and PEL so they they can be returned by the function.
Change-Id: I3a1e0d93f97aa1953ff8b10293b47e28f79edfb1
show more ...
|
44fc3168 | 09-Jul-2020 |
Andrew Geissler <geissonator@yahoo.com> |
pel-quiesce: quiesce on error pels with callout
The PEL requirement is that if a nonInfo host PEL is logged, it has a callout of any type within it, and the QuiesceOnHwError is enabled, then the boo
pel-quiesce: quiesce on error pels with callout
The PEL requirement is that if a nonInfo host PEL is logged, it has a callout of any type within it, and the QuiesceOnHwError is enabled, then the boot block / quiesce functionality should be executed.
Tested:
1) Verified nothing occurs when QuiesceOnHwError is not enabled
2) Injected info PEL with no callout and unrecoverable error with no callout with QuiesceOnHwError enabled and verified no actions were taken.
3) Injected Error PEL with callout and QuiesceOnHwError enabled and verified boot block logic was enabled.
Error inject which will create PEL with callout: busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging xyz.openbmc_project.Logging.Create Create ssa{ss} org.open_power.Logging.Error.TestError1 xyz.openbmc_project.Logging.Entry.Level.Error 0
Journal from fail: Sep 09 14:03:30 w56 phosphor-log-manager[264]: Created PEL 0x50000266 (BMC ID 340) with SRC BD802003 Sep 09 14:03:30 w56 phosphor-log-manager[264]: QuiesceOnHwError enabled, PEL severity not nonError, and callout is present Sep 09 14:03:30 w56 phosphor-log-manager[264]: QuiesceOnError set and callout present Sep 09 14:03:30 w56 systemd[1]: Reached target Quiesce Target.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I09e3ced608ffd2661d9cf015a24d4e0d8a6a84bd
show more ...
|
72a1cca2 | 10-Sep-2020 |
Andrew Geissler <geissonator@yahoo.com> |
quiesce: ensure only one block per entry id
There are situations in the extensions path where a single BMC entry id may be passed into the quiesce logic multiple times. Ensure only one boot blocking
quiesce: ensure only one block per entry id
There are situations in the extensions path where a single BMC entry id may be passed into the quiesce logic multiple times. Ensure only one boot blocking quiesce entry is created per entry id.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I44dc307117370e521fa97f9b782df99cc535bf33
show more ...
|
32874543 | 09-Jul-2020 |
Andrew Geissler <geissonator@yahoo.com> |
quiesce: use entry id for interface
Extension code does not have the Entry object as an input parameter. The quiesce interface should not require an Entry object. Refactor the code a bit to allow fo
quiesce: use entry id for interface
Extension code does not have the Entry object as an input parameter. The quiesce interface should not require an Entry object. Refactor the code a bit to allow for this.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I5caee881dae3d6c22f4f619af5acd3e3e33379aa
show more ...
|
1f93c590 | 10-Sep-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Don't fix user specified action flags
Previously, the PEL object would never trust the action flags field specified in the PEL registry and would always set some of the flags in it itself based
PEL: Don't fix user specified action flags
Previously, the PEL object would never trust the action flags field specified in the PEL registry and would always set some of the flags in it itself based on a set of rules.
It turns out there are some cases where what the user needs doesn't match the rules, so now only fix up the action flags if they weren't specified in the registry and leave the flags alone if they were.
Most PELs in the registry should be able to leave out the action flags field and let the PEL code set them.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I80263d779c842acac042023c468b7e979ec7158c
show more ...
|
386a61e6 | 13-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: ExtendedUserData section class
This class represents the Extended User Data section. This section is similar to the UserData class in that it stores free form FFDC data, except that it is mean
PEL: ExtendedUserData section class
This class represents the Extended User Data section. This section is similar to the UserData class in that it stores free form FFDC data, except that it is meant to be added to an already existing PEL by a creator subsystem that is different than the PEL creator's subsystem. As such, it stores the section creator's creator ID value as a field within the section, which the regular UserData class doesn't do.
The same parsers that run on the UserData section can also run on this section.
Change-Id: I8562a89141f0305e397703f0cb92a06eb9f10133
show more ...
|
e513dbc4 | 27-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add PEL callout JSON testcase
Add a PEL testcase for when there are callouts being passed in as a JSON FFDC file.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I9f2483cd0d35f193c
PEL: Add PEL callout JSON testcase
Add a PEL testcase for when there are callouts being passed in as a JSON FFDC file.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I9f2483cd0d35f193c88e68e7158de4f7595a3d81
show more ...
|
afa2c799 | 27-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Look for JSON Guard & Deconfig fields
There are optional 'Guarded' and 'Deconfigured' fields in the callout JSON. If these are set, there are some bits in the SRC that should be set.
Signed-o
PEL: Look for JSON Guard & Deconfig fields
There are optional 'Guarded' and 'Deconfigured' fields in the callout JSON. If these are set, there are some bits in the SRC that should be set.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I1bde74094fc596f383d683722d769615cba56975
show more ...
|
b8cb60fe | 27-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Extract MRUs from callout JSON
The callout JSON can also contain MRU (Manufacturing Replaceable Unit) IDs and priorities that should be added to a callout along with the FRU.
Extract them from
PEL: Extract MRUs from callout JSON
The callout JSON can also contain MRU (Manufacturing Replaceable Unit) IDs and priorities that should be added to a callout along with the FRU.
Extract them from the JSON and add them to the callout if they are there.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I25b801d5fd4371719d7a4f39056cdc3d2bf29dfb
show more ...
|
3bdd0110 | 27-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Parse and add JSON callouts
In the SRC class, create callout objects for the callouts that were contained in the incoming JSON array. These can be procedure, symbolic FRU, or normal hardware F
PEL: Parse and add JSON callouts
In the SRC class, create callout objects for the callouts that were contained in the incoming JSON array. These can be procedure, symbolic FRU, or normal hardware FRU callouts.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I525f0f700508693c17b9987f555c0d917cf72fa6
show more ...
|
5ab39978 | 13-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Let Callout object ctor take a MRU list
A list of MRUs (Manufacturing Replaceable Units) can now be passed into the Callout object constructor. There is also a new MRU object constructor that
PEL: Let Callout object ctor take a MRU list
A list of MRUs (Manufacturing Replaceable Units) can now be passed into the Callout object constructor. There is also a new MRU object constructor that will build that object with a MRU list as well.
This will be used in the future when someone wants to add MRUs to a callout.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ic0e93e081a91ffc47dfd6642a34f02fd9a6edb8e
show more ...
|
468aab5f | 13-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add support for raw symbolic FRUs and procs
Allow the FRUIdentity and Callout objects to take the raw maintenance procedure and symbolic FRU names as opposed to just the PEL message registry na
PEL: Add support for raw symbolic FRUs and procs
Allow the FRUIdentity and Callout objects to take the raw maintenance procedure and symbolic FRU names as opposed to just the PEL message registry names. This will allow the values to come from sources besides the registry, such as the device tree used by PHAL.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I4171fb7128ae1b1b5e3e635f7f95b7f7df7c6638
show more ...
|
48c44dbb | 25-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Set platform SAI LED group
There is now an LED group to set when the platform SAI LED needs to be asserted when handling the service indicators for PEL callouts.
Signed-off-by: Matt Spinler <s
PEL: Set platform SAI LED group
There is now an LED group to set when the platform SAI LED needs to be asserted when handling the service indicators for PEL callouts.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I2af66c8c1820c131e1d4d7dede802b5f128b79a4
show more ...
|
3dd17e9b | 05-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add LightPath test to the Manager testcases
Add a testcase that confirms that when a PEL is added from the host and from the BMC that LEDs will be activated.
Signed-off-by: Matt Spinler <spinl
PEL: Add LightPath test to the Manager testcases
Add a testcase that confirms that when a PEL is added from the host and from the BMC that LEDs will be activated.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I50e84abe1c366b62f6e9bec0db42b44f97954d69
show more ...
|
34a904cf | 05-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: LightPath: Assert LED groups
Fill in the functions to get the LED group D-Bus paths corresponding to the called out location codes, and then set the Asserted property on that path to turn on th
PEL: LightPath: Assert LED groups
Fill in the functions to get the LED group D-Bus paths corresponding to the called out location codes, and then set the Asserted property on that path to turn on the LEDs.
If there are any problems looking up any of the LED groups, then do not turn on any LEDs at all, even if others were OK. In this case, the system attention indicator will be turned on instead.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I7e3ee6259d972dd2c6939c5a1004c6d25c40e38a
show more ...
|
05f0c6dc | 05-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: LightPath: Choose callout location codes
LightPath uses the following rules to pick the location codes to turn on LEDs for:
* If the PEL wasn't created by the BMC or Hostboot, and doesn't have
PEL: LightPath: Choose callout location codes
LightPath uses the following rules to pick the location codes to turn on LEDs for:
* If the PEL wasn't created by the BMC or Hostboot, and doesn't have the Service Action action flag set, then don't even check it and don't turn on the System Attention Indicator.
* Choose all location codes in the first group of callouts, where a group can be: * a single medium priority callout * one or more high priority callouts * one or more medium group A priority callouts
* All callouts in that group must be hardware callouts, meaning the FRU identity section's failing component type flag must either be hardware callout or symbolic FRU callout with trusted location code. If there is a callout in the group that doesn't meet this requirement, then nothing in that group can be used.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ifbe7bddee14b69dc565a405e2f120fb5545f69e5
show more ...
|