85f61a63 | 03-Jun-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Let SRC class create a debug section
Add functionality so that when the SRC PEL section is being created, it can save debug data (a vector of strings) along the way, and the PEL class will then
PEL: Let SRC class create a debug section
Add functionality so that when the SRC PEL section is being created, it can save debug data (a vector of strings) along the way, and the PEL class will then add that data into a JSON UserData section with any other debug data. The PEL class will then also write the debug data to the journal.
This will be used for things like failure messages when looking up callouts, additional information for device callouts, etc.
The functionality to save debug data is in the Section base class, so in the future other Section classes can also save debug data for display in the PEL.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I2f7923303e953c100c94ac81ba7c85152080fb72
show more ...
|
6bc74ae6 | 03-Jun-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: devcallouts: Get callouts from the JSON
Using the functions that extract search keys from the device path, look up the callouts in the appriopriate JSON entry and return them as a vector of Cal
PEL: devcallouts: Get callouts from the JSON
Using the functions that extract search keys from the device path, look up the callouts in the appriopriate JSON entry and return them as a vector of Callout objects.
The first callout will have the 'debug' field filled in with the search keys used and the MRW target name of the destination device. In the future this will be added into a UserData section of a PEL with these callouts to make debugging easier - i.e. making it easier to know what device it was that failed when looking at the PEL.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ic4df1ce95fbc5ed277b43a1ffca08ce477d5f8c6
show more ...
|
44c0a643 | 03-Jun-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: devcallouts: Extract search keys
In order to find the callouts for a device path, the search keys need to be pulled out of the device path.
The keys are: * I2C - bus and address * FSI - link n
PEL: devcallouts: Extract search keys
In order to find the callouts for a device path, the search keys need to be pulled out of the device path.
The keys are: * I2C - bus and address * FSI - link numbers - Multiple link hops separated by dashes like "0-1" * SPI - bus * FSI-I2C - link numbers and I2C bus and address * FSI-SPI - link numbers and SPI bus number
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I1f8bf975fb34a61ea3fa2ac5b397afdc73cd799b
show more ...
|
a307089c | 03-Jun-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: devcallouts: Determine access type
Add a function to determine if the device path represents an I2C, FSI, FSI-I2C, or FSI-SPI attached device.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
PEL: devcallouts: Determine access type
Add a function to determine if the device path represents an I2C, FSI, FSI-I2C, or FSI-SPI attached device.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ie58452e7988938e9b701357bbb96252be971902f
show more ...
|
18c42b0f | 02-Jun-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add APIs to look up device path callouts
This commit adds the interfaces device_callouts::getCallouts() and device_callouts::getI2CCallouts() that will be used to look up the FRU callouts to ad
PEL: Add APIs to look up device path callouts
This commit adds the interfaces device_callouts::getCallouts() and device_callouts::getI2CCallouts() that will be used to look up the FRU callouts to add to PELs for errors stemming from accessing devices, either by a sysfs path, or in the case of the latter interface an I2C bus and address.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I573d04632fd9fc6356a0ff53f85c2a2c13038962
show more ...
|
6ea4d5f7 | 20-May-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Read the compatible system names property
The chassis object in the inventory has (or rather at the time of this writing: will have) a Names property that contains a list of the compatible syst
PEL: Read the compatible system names property
The chassis object in the inventory has (or rather at the time of this writing: will have) a Names property that contains a list of the compatible system types for the current system. An example is: ["company-systemA-4G", "company-systemA", "company"].
Add this to the DataInterface class, and remove the previous 'getSystemType' API that was there but was still stubbed out.
Also change all the calls from getSystemType() to the new call getSystemNames(), and check against all entries in that array to see if the desired name applies to the current system.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I86aa0c15c564153fea612f407c161dfe9041fce6
show more ...
|
bcf3b2a6 | 08-Jun-2020 |
Shawn McCarney <shawnmm@us.ibm.com> |
openpower-pels: Component IDs for power/fan errors
Add table entries to ComponentIDs.md for the following repositories: * phosphor-power * phosphor-fan-presence
Signed-off-by: Shawn McCarney <shawn
openpower-pels: Component IDs for power/fan errors
Add table entries to ComponentIDs.md for the following repositories: * phosphor-power * phosphor-fan-presence
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I226194a3925532e7dc944cf79e5cf89012336fa3
show more ...
|
0d804ef5 | 12-May-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Rename function that gets RO data path
It was just named after the message registry path, but soon other files will be in that same directory so make it more generic.
Signed-off-by: Matt Spinl
PEL: Rename function that gets RO data path
It was just named after the message registry path, but soon other files will be in that same directory so make it more generic.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I91117d685aec43f26b9fc6baa2955de3d1affde4
show more ...
|
18f4b6e8 | 21-May-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: GCC10/clang-format-10 fixes
GCC10 didn't appreciate how strncpy was used in FRUIdentity where the code depended on how it placed the null terminator. To fix, make a function to do the copy.
I
PEL: GCC10/clang-format-10 fixes
GCC10 didn't appreciate how strncpy was used in FRUIdentity where the code depended on how it placed the null terminator. To fix, make a function to do the copy.
In addition, clang-format-10 was merged into CI at the same time as GCC10, so include the changes it needs as well.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I04c70e37284a149b6c8655a6d7e6fedddaa0913a
show more ...
|
66c8c188 | 19-May-2020 |
Andrew Geissler <geissonator@yahoo.com> |
use no-stringop-truncation for pel library
GCC 10 fails to build the openpower-pels extension due to the error seen below:
|phosphor-logging/extensions/openpower-pels/fru_identity.cpp:199:12: error
use no-stringop-truncation for pel library
GCC 10 fails to build the openpower-pels extension due to the error seen below:
|phosphor-logging/extensions/openpower-pels/fru_identity.cpp:199:12: error: 'char* strncpy(char*, const char*, size_t)' specified bound 8 equals destination size [-Werror=stringop-truncation] | 199 | strncpy(_pnOrProcedureID.data(), pn.c_str(), _pnOrProcedureID.size());
PEL is written in a way that fields like this have very specific size limits and code that processes PEL's understands these size limits. Therefore disable the check for null in this extension library.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I7c08aa7ec7394b5cfee1c55631d67ae729c3a7c9
show more ...
|
27408b30 | 19-May-2020 |
Andrew Geissler <geissonator@yahoo.com> |
fix up LDFLAGS and CXXFLAGS for pel extension
Went to add a new flag to CXXFLAGS and realized it was not being used at all during build.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Chang
fix up LDFLAGS and CXXFLAGS for pel extension
Went to add a new flag to CXXFLAGS and realized it was not being used at all during build.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I11dce1e7ab451736a0e9afc19095810974da5af5
show more ...
|
61efe32f | 19-May-2020 |
Andrew Geissler <geissonator@yahoo.com> |
include needed file for out_of_range
Upstream yocto appears to have removed a free include that provided the def of the std::out_of_range. This causes compile failures when bringing in the new yocto
include needed file for out_of_range
Upstream yocto appears to have removed a free include that provided the def of the std::out_of_range. This causes compile failures when bringing in the new yocto.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: Ib140320d2de81b333d21e66813af9c03d57085ce
show more ...
|
f2fe6b47 | 13-May-2020 |
Patrick Williams <patrick@stwcx.xyz> |
sdbusplus: replace message::variant with std::variant
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I071c28eafe33ac8e2a44010d23a2bd5d8731b540 |
34836321 | 15-Apr-2020 |
Ben Tyner <ben.tyner@ibm.com> |
Add registry entries for attn handler and hwdiags
Add some basic registry entries for attention handler and hardware diagnostics events.
Signed-off-by: Ben Tyner <ben.tyner@ibm.com> Change-Id: I1b8
Add registry entries for attn handler and hwdiags
Add some basic registry entries for attention handler and hardware diagnostics events.
Signed-off-by: Ben Tyner <ben.tyner@ibm.com> Change-Id: I1b89ede8154f312418970ab0802a36fd7a85ca57
show more ...
|
d03d3d91 | 16-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add registry testing steps to readme
Give an overview of how to modify and test new entries in the PEL message registry.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ib039b18b70
PEL: Add registry testing steps to readme
Give an overview of how to modify and test new entries in the PEL message registry.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ib039b18b702251c85d8662a0143f44899cbba789
show more ...
|
9b90e2a2 | 14-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add getLocationCode call to inv callout
Instead of getting the location code, PN, SN, and CCIN all in one function call, split getting the location code into its own function. This way, if ther
PEL: Add getLocationCode call to inv callout
Instead of getting the location code, PN, SN, and CCIN all in one function call, split getting the location code into its own function. This way, if there is a location code but not the VPD fields, we can still have the location code in the callout.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I02f1b18319c34fffce79ad31da74e2114ceb5c95
show more ...
|
aadccc85 | 10-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Msg registry sev now based on sys type
The PEL severity field in the UserHeader section can now be defined in the message registry to be based on system type.
When the UserHeader object is bei
PEL: Msg registry sev now based on sys type
The PEL severity field in the UserHeader section can now be defined in the message registry to be based on system type.
When the UserHeader object is being created from the message registry, it will now query the system type and use that to find the correct severity value.
The Registry class was updated to handle the new JSON format, which is an array of system type/severity value objects.
The original severity format of a simple string is still valid.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I0fe0ada7193c57adc42e82afdc30e687eea63eb9
show more ...
|
17952d94 | 10-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Document support for sys based severities
Update the PEL message registry JSON schema and readme to support PEL severity values that can depend on the system type.
For example: "Severity"
PEL: Document support for sys based severities
Update the PEL message registry JSON schema and readme to support PEL severity values that can depend on the system type.
For example: "Severity": [ { "System": "systemA", "SevValue": "predictive" }, { "System": "systemB", "SevValue": "recovered" }, { "SevValue": "unrecoverable" } ]
On system systemA, the severity is predictive. On system systemB, it is recovered. On any other system it is unrecoverable.
The original method is still valid, like: "Severity": "recovered"
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ie1abae8f7a1dc55daec86ee86b4c1c4f7b83b19b
show more ...
|
3ace0cf6 | 09-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Use contains() for JSON
The contains() function is the same as:
if (json.find("key") != json.end())
but is a little more succinct.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change
PEL: Use contains() for JSON
The contains() function is the same as:
if (json.find("key") != json.end())
but is a little more succinct.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iec378cdd522bf22de1bad573ca363d651eb13508
show more ...
|
0398458d | 09-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add SRC callouts from message registry
When an SRC is being built for a new PEL, it will now also add callouts from the message registry JSON for that error.
This commit only adds support for
PEL: Add SRC callouts from message registry
When an SRC is being built for a new PEL, it will now also add callouts from the message registry JSON for that error.
This commit only adds support for callouts of maintenance procedures or symbolic FRUs. A future commit will add support for calling out a regular piece of hardware
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I78c0d3440c748f21145d452742e3aa682f26003b
show more ...
|
a86ec996 | 09-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add Symbolic FRU support to Callout
This adds a constructor that takes a priority, symbolic FRU, location cod, and if the location code can be trusted enough that the FRU can be replaced based
PEL: Add Symbolic FRU support to Callout
This adds a constructor that takes a priority, symbolic FRU, location cod, and if the location code can be trusted enough that the FRU can be replaced based on it. It then creates a FRUIdentity object with the symbolic FRU.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I38074467dd5dba6f9260d50afe93e08c7fe96cd2
show more ...
|
2b6dfa00 | 09-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add symbolic FRU support to FRUIdentity
A symbolic FRU is a FRU where the part is known, but the part number is not available for it. A trusted symbolic FRU adds the requirement that the locat
PEL: Add symbolic FRU support to FRUIdentity
A symbolic FRU is a FRU where the part is known, but the part number is not available for it. A trusted symbolic FRU adds the requirement that the location code is known to be correct so it can be used for lighting LEDs and FRU replacement.
The symbolic FRU name shares the same field as the part number.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I2fa936d9d7235c5cff245effcdb9d445aefffe23
show more ...
|
a27e2e50 | 09-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Get rid of the enum for a maint procedure
It simplifies the code to just use the string name of the procedure as defined by the message registry schema, and make it be less maintenance to add n
PEL: Get rid of the enum for a maint procedure
It simplifies the code to just use the string name of the procedure as defined by the message registry schema, and make it be less maintenance to add new procedures in the future, especially if they come from the registry so the enum isn't even needed.
This will also make it the same as upcoming support for symbolic FRU callouts, which will always just come from the registry or an external user so would not need an enum.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ia8550235678ba1fc717a6b0875e2d7ff3888bfec
show more ...
|
6b427cc8 | 09-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Find message registry callouts to use
Add Registry::getCallouts() to find, based on the system type and AdditionalData property, the callouts that apply for the callout JSON passed in. This wi
PEL: Find message registry callouts to use
Add Registry::getCallouts() to find, based on the system type and AdditionalData property, the callouts that apply for the callout JSON passed in. This will be used to choose the callouts to add to a PEL based on the system and current failure informaton.
These files describe the actual JSON format: * extensions/openpower-pels/registry/README.md * extensions/openpower-pels/registry/schema/schema.json
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I5901e459981b10f6c338d3ef827d9128338dca50
show more ...
|
d8e29000 | 09-Apr-2020 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Save registry callout JSON for later
When finding an entry in the PEL message registry, save the callout JSON section, if there is one, in the returned Entry object. This also adds a construct
PEL: Save registry callout JSON for later
When finding an entry in the PEL message registry, save the callout JSON section, if there is one, in the returned Entry object. This also adds a constructor argument that lets one choose to do this or not, because it isn't needed when used in peltool.
That JSON will be parsed at a later point.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I757509ced952ce8f07f12c28ab203e5eedf4fd32
show more ...
|