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 ...
|
42fdc76d | 07-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Document how to pass in multiple callouts
This commit documents how an error log creator can specify multiple callouts when creating a PEL. At a high level, this is done by specifying them in
PEL: Document how to pass in multiple callouts
This commit documents how an error log creator can specify multiple callouts when creating a PEL. At a high level, this is done by specifying them in JSON and passing that JSON in as an FFDC file.
The JSON format supports multiple callouts of different priorities, and allows the callouts to be FRUs, symboliic FRUs, or maintenance procedures. It also has options to guard hardware and to specify hardware was deconfigured.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I3bde5957a6822aff3ad7c500269381763f78e872
show more ...
|
d5df867e | 18-Aug-2020 |
SunnySrivastava1984 <sunnsr25@in.ibm.com> |
PEL: ComponentID for openpower-vpd-parser repo.
This commit proposes component ID for opnpower-vpd-parser repository. This value is to be used as PEL creator ID for PEL logged which are unique to th
PEL: ComponentID for openpower-vpd-parser repo.
This commit proposes component ID for opnpower-vpd-parser repository. This value is to be used as PEL creator ID for PEL logged which are unique to this repository.
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com> Change-Id: I4ac320cf5d35a753cb50e3bda6495021a2dae032
show more ...
|
c8d6cc61 | 19-Aug-2020 |
Harisuddin Mohamed Isa <harisuddin@gmail.com> |
PEL: SRC Details Python parser support
This change enables the calling of python3 parsers for SRC details. Modules will be searched under the namespace "srcparsers" from python3 sys.path directories
PEL: SRC Details Python parser support
This change enables the calling of python3 parsers for SRC details. Modules will be searched under the namespace "srcparsers" from python3 sys.path directories (including the current directory).
Example:
/usr/lib/python3.8/site-packages/srcparsers/bsrc/bsrc.py
or
./srcparsers/bsrc/bsrc.py
where
b = Creator Subsystem ID for Hostboot in ASCII lowercase
The parsers will need to provide a function called "parseSRCToJson" with input parameters:
1. (str) ASCII string (Hex Word 1) 2. (str) Hex Word 2 3. (str) Hex Word 3 4. (str) Hex Word 4 5. (str) Hex Word 5 6. (str) Hex Word 6 7. (str) Hex Word 7 8. (str) Hex Word 8 9. (str) Hex Word 9
The return value must be a valid JSON string.
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com> Change-Id: I2cb0248e5ee2803869eab28d3232b414e2d743af
show more ...
|
3fdcd4e8 | 25-Aug-2020 |
Harisuddin Mohamed Isa <harisuddin@gmail.com> |
PEL: Fixed Userdata section parsing
A previous commit incorrectly tries to call python parsers when they do not exist. This fixes it.
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com> Ch
PEL: Fixed Userdata section parsing
A previous commit incorrectly tries to call python parsers when they do not exist. This fixes it.
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com> Change-Id: I6e65bc89e60b9ac31077009921d4376ddc8254bf
show more ...
|
26958762 | 27-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Fix spelling mistake in msg registry
This shows up in peltool output.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I7d2e546bb6475572177490ce94d69d2db0e942ff |
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 ...
|
ce397f7c | 19-Aug-2020 |
Harisuddin Mohamed Isa <harisuddin@gmail.com> |
PEL: Fixed built-in parser for BMC PELs
The is to fix a bug which broke BMC UserData section parsing introduced while implementing external Python parser support.
Signed-off-by: Harisuddin Mohamed
PEL: Fixed built-in parser for BMC PELs
The is to fix a bug which broke BMC UserData section parsing introduced while implementing external Python parser support.
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com> Change-Id: Ie4ca9fb4fe6274e52af040eaec472961f1142a0d
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 ...
|
1962e087 | 05-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Activate service indicators on new PEL
A service indicator is a device used to add the user during system service actions. In the case of PELs, service indicators are always LEDs.
When a new
PEL: Activate service indicators on new PEL
A service indicator is a device used to add the user during system service actions. In the case of PELs, service indicators are always LEDs.
When a new PEL is created or received from the host, code will check the service indicator policy to see if any indicators need to be set at that time based on the PEL callouts.
There is a specific policy named LightPath that is the default, and it is currently the only supported policy. This policy has a set of rules to say which called out location codes need their indicators activated.
After it determines the location codes, it looks up the corresponding D-Bus inventory paths for them, and then looks up the LED group objects to assert based on those inventory paths.
If, for any reason, the code can't get a complete list of FRU LEDs to turn on, then it will turn on the System Attention Indicator LED. It is still TBD how that is actually done.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I771258a8957fb0944ec1f8787086123e068bc6cc
show more ...
|
2f9225a4 | 05-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Update getInventoryFromLocCode
Add an argument to this function that says if the location code passed in is already expanded (has the fcs and mts placeholders filled in with VPD data).
This wi
PEL: Update getInventoryFromLocCode
Add an argument to this function that says if the location code passed in is already expanded (has the fcs and mts placeholders filled in with VPD data).
This will be used in an upcoming commit that pulls location codes out of PEL callouts.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Icefa9475962bdf161ddb8b51ce3dab805bcd396b
show more ...
|
0e4d72ed | 05-Aug-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Simplify addLocationCodePrefix
Location codes can either start with Ufcs, Umts, or the same but with the fcs and mts characters already substituted in with the real VPD fields. Update the addL
PEL: Simplify addLocationCodePrefix
Location codes can either start with Ufcs, Umts, or the same but with the fcs and mts characters already substituted in with the real VPD fields. Update the addLocationCodePrefix() prefix function to not add the prefix if the location code starts with a 'U', which could mean any of the 4 cases above.
At this time this isn't absolutely necessary; it is more for future proofing.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I1aae7e21b14fe22ea8d4b651546ce26d25aacd86
show more ...
|
f67bafd0 | 06-Jul-2020 |
Harisuddin Mohamed Isa <harisuddin@gmail.com> |
PEL: Python3 module support for UserData parsing
This change enables the calling of python3 parsers for UserData section. Modules will be searched under the namespace "udparsers" from python3 sys.pa
PEL: Python3 module support for UserData parsing
This change enables the calling of python3 parsers for UserData section. Modules will be searched under the namespace "udparsers" from python3 sys.path directories (including the current directory).
Example:
/usr/lib/python3.8/site-packages/udparsers/bxxxx/bxxxx.py
or
./udparsers/bxxxx/bxxxx.py
where
b = Creator Subsystem ID for Hostboot xxxx = Component ID of UserData section
The parsers will need to provide a function called "parseUDToJson" with input parameters:
1. (int) Sub-section type 2. (int) Section version 3. (memoryview): Data
The return value needs to be a valid JSON string.
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com> Change-Id: I4d3523083bc48ad0c329c525d83c4a61d36ff611
show more ...
|
7c619181 | 27-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Document SRC hex word 2 fields in the code
The following hex word 2 fields are always left at zero when creating OpenBMC PELs: * Platform dump status (doesn't apply to OpenBMC errors) * Partiti
PEL: Document SRC hex word 2 fields in the code
The following hex word 2 fields are always left at zero when creating OpenBMC PELs: * Platform dump status (doesn't apply to OpenBMC errors) * Partition boot type (doesn't applly to OpenBMC errors) * Platform boot mode * Boot side is always Temporary = 0 * Boot speed is always Fast = 0
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I88a0bf9176fbfb8b62eafce73d74f49c9a8b0a66
show more ...
|
49f3a718 | 15-Jun-2020 |
Harisuddin Mohamed Isa <harisuddin@gmail.com> |
PEL: README instructions for adding python modules
Provide file structure and sample setup.py script for python modules to be imported by setuptools.
Also added documentation to support UserData an
PEL: README instructions for adding python modules
Provide file structure and sample setup.py script for python modules to be imported by setuptools.
Also added documentation to support UserData and SRC parsing modules.
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com> Change-Id: Id32a6155d7d3ecf84647489c5f4125ad1f47ba94
show more ...
|
6321ba34 | 17-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Trace on receiving a host PEL
Promote the existing debug trace to info priority and also trace the PEL's IDs.
The phosphor-fru-fault-monitor application was tracing when event logs were being
PEL: Trace on receiving a host PEL
Promote the existing debug trace to info priority and also trace the PEL's IDs.
The phosphor-fru-fault-monitor application was tracing when event logs were being created, but it is being removed.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I43dcb4e628d93a323d23080c872c32fc5743e1b1
show more ...
|
22421b9b | 17-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Trace BMC log ID on new PEL, and use fmt
In addition to tracing the PEL ID in the journal when a new PEL is created, also trace the corresponding OpenBMC event log ID.
Use the fmt library to h
PEL: Trace BMC log ID on new PEL, and use fmt
In addition to tracing the PEL ID in the journal when a new PEL is created, also trace the corresponding OpenBMC event log ID.
Use the fmt library to help with the string formatting as things were getting out of hand without it.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I3f7e43f2ed39ff1d1d6a65d0412e3a8c82a86b26
show more ...
|
30ddc9f1 | 16-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Still create PEL when error not in registry
When an OpenBMC event log is created for an error that isn't in the PEL message registry, the code will now find a registry entry using another defau
PEL: Still create PEL when error not in registry
When an OpenBMC event log is created for an error that isn't in the PEL message registry, the code will now find a registry entry using another default error name. This default PEL will contain the severity and any callouts specified by the original event log, and its message used by peltool and possibly Redfish will state that the actual meaning for the error is unknown.
The error name property that was missing from the registry will be placed in the JSON UserData section that hold the AdditionalData property fields under the key ERROR_NAME.
Doing this allows one to see all errors on a system just by looking at PELs, and not miss important ones just because a developer doesn't have their error in the registry yet.
When these are seen, it may be a good idea to create bug reports as a reminder that the missing error needs to be added.
Change-Id: Ifa3db21af96745dd651da5f5af0ab970a952f46a
show more ...
|
fcf9a3f4 | 28-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Call new loc code related D-Bus methods
Now that the GetExpandedLocationCode and GetFRUsByUnexpandedLocationCode VPD D-Bus methods are available, fill in the code to call them.
These are used
PEL: Call new loc code related D-Bus methods
Now that the GetExpandedLocationCode and GetFRUsByUnexpandedLocationCode VPD D-Bus methods are available, fill in the code to call them.
These are used when building the callout sections.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I91489e035c41f87beb9a78c155d9cd5ccd51a09c
show more ...
|
0f8a7382 | 22-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Support a default device callouts file
Normally, the device callouts code, which finds the callouts to use for FRUs along a specific device path, will look for a JSON file to use by looping thr
PEL: Support a default device callouts file
Normally, the device callouts code, which finds the callouts to use for FRUs along a specific device path, will look for a JSON file to use by looping through the list of compatible system names and adding '_dev_callouts.json' to the name.
However at this point in time, the code that is supposed to populate that list isn't done yet, so it will always be empty. In order to still be able find a file, have it look for a default file called just _dev_callouts.json after it tries and fails to find one based on system name.
This file will be installed into the flash image from a bitbake recipe, and eventually when that list of names field is populated, it can be renamed in the recipe without having to make a code change here.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I39e9dbb3e921eb5e5be30717a277b07febd2de55
show more ...
|
c03123bc | 15-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Remove a debug trace
Now that an inotify watch will tell the Repository to try to delete the PEL from its index when a PEL file is deleted, it is expected that it will already have been removed
PEL: Remove a debug trace
Now that an inotify watch will tell the Repository to try to delete the PEL from its index when a PEL file is deleted, it is expected that it will already have been removed from the index when it was deleted the proper way, such as when the OpenBMC event log is deleted.
Therefore, remove a trace from the path where a PEL can't be found in in the index on removal, as it is expected in the above scenario.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I821b4432b52cea2263c85ae1d7be96220f43fc0e
show more ...
|
ff9cec25 | 15-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Watch for manually deleted PEL files
Currently, if someone were to manually delete a PEL file, the Repository class would not know to remove it from its _pelAttributes index which will lead to
PEL: Watch for manually deleted PEL files
Currently, if someone were to manually delete a PEL file, the Repository class would not know to remove it from its _pelAttributes index which will lead to problems down the line.
To fix this, create an inotify watch that looks for files to be deleted in the PEL directory. When one or more is deleted, remove it from the Repository class and also remove the OpenBMC event log for it.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I238c0b886b01e88cc931162a0596b848d1d975b1
show more ...
|
52602e35 | 15-Jul-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: On remove() call, return the removed LogID
Have Repository::remove(const LogID& id), which is used to remove a PEL, return the full LogID of the removed PEL instead of not returning anything.
PEL: On remove() call, return the removed LogID
Have Repository::remove(const LogID& id), which is used to remove a PEL, return the full LogID of the removed PEL instead of not returning anything.
That input id only has to have a filled in PEL ID or OpenBMC event log ID field, but not both, so returning the full LogID of the removed PEL ensure the calling code will have both values.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: If869c59acd59563db137d7c9523210539b51a040
show more ...
|