History log of /openbmc/phosphor-logging/test/openpower-pels/ (Results 1 – 25 of 235)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
5383d76001-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

meson: reformat with meson formatter

Apply the `meson format` results.

Change-Id: I874e2c57075988db53dad8e365c0bf1ac204f81b
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

2529115701-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: Iac96affe709a51dd865117d006cb033cf5c624b1
Signed-off-by: Patrick Williams <p

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: Iac96affe709a51dd865117d006cb033cf5c624b1
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


/openbmc/phosphor-logging/.clang-format
/openbmc/phosphor-logging/README.md
/openbmc/phosphor-logging/elog_entry.hpp
/openbmc/phosphor-logging/elog_serialize.cpp
/openbmc/phosphor-logging/extensions/meson.build
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/device_callouts.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/device_callouts.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/extended_user_data.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/journal.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/journal.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/json_utils.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry/message_registry.json
/openbmc/phosphor-logging/extensions/openpower-pels/repository.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/repository.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/section.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/service_indicators.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/severity.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/src.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/src.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data_json.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data_json.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_header.hpp
/openbmc/phosphor-logging/gen/meson.build
/openbmc/phosphor-logging/gen/regenerate-meson
/openbmc/phosphor-logging/gen/xyz/openbmc_project/Logging/Internal/Manager/meson.build
/openbmc/phosphor-logging/gen/xyz/openbmc_project/Logging/Internal/meson.build
/openbmc/phosphor-logging/lib/include/phosphor-logging/commit.hpp
/openbmc/phosphor-logging/lib/lg2_commit.cpp
/openbmc/phosphor-logging/log_manager.cpp
/openbmc/phosphor-logging/logging_test.cpp
/openbmc/phosphor-logging/meson.build
/openbmc/phosphor-logging/phosphor-rsyslog-config/server-conf.cpp
/openbmc/phosphor-logging/phosphor-rsyslog-config/server-conf.hpp
/openbmc/phosphor-logging/test/log_manager_dbus_tests.cpp
/openbmc/phosphor-logging/test/meson.build
pel_utils.hpp
e594063422-Nov-2024 Patrick Williams <patrick@stwcx.xyz>

extension: use map in create extension

Adjust the Create extension to use a map for metadata instead of
vector.

Tested: Unit tests updated and passing.

Signed-off-by: Patrick Williams <patrick@stw

extension: use map in create extension

Adjust the Create extension to use a map for metadata instead of
vector.

Tested: Unit tests updated and passing.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I9bd62b8dcc8b18a61958ed64de98b52a48333637

show more ...


/openbmc/phosphor-logging/README.md
/openbmc/phosphor-logging/config/config.h.meson
/openbmc/phosphor-logging/config/meson.build
/openbmc/phosphor-logging/docs/structured-logging.md
/openbmc/phosphor-logging/elog_entry.hpp
/openbmc/phosphor-logging/elog_meta.cpp
/openbmc/phosphor-logging/elog_meta.hpp
/openbmc/phosphor-logging/elog_serialize.cpp
/openbmc/phosphor-logging/extensions.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/additional_data.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/meson.build
/openbmc/phosphor-logging/extensions/openpower-pels/pel.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/phal_service_actions.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/phal_service_actions.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry/README.md
/openbmc/phosphor-logging/extensions/openpower-pels/registry/message_registry.json
/openbmc/phosphor-logging/gen/xyz/openbmc_project/Logging/meson.build
/openbmc/phosphor-logging/gen/xyz/openbmc_project/meson.build
/openbmc/phosphor-logging/lib/include/phosphor-logging/commit.hpp
/openbmc/phosphor-logging/lib/include/phosphor-logging/meson.build
/openbmc/phosphor-logging/lib/lg2_commit.cpp
/openbmc/phosphor-logging/lib/lg2_commit.hpp
/openbmc/phosphor-logging/lib/meson.build
/openbmc/phosphor-logging/log_create_main.cpp
/openbmc/phosphor-logging/log_manager.cpp
/openbmc/phosphor-logging/log_manager.hpp
/openbmc/phosphor-logging/meson.build
/openbmc/phosphor-logging/meson.options
/openbmc/phosphor-logging/phosphor-rsyslog-config/meson.build
/openbmc/phosphor-logging/test/elog_quiesce_test.cpp
/openbmc/phosphor-logging/test/elog_update_ts_test.cpp
/openbmc/phosphor-logging/test/log_manager_dbus_tests.cpp
/openbmc/phosphor-logging/test/meson.build
additional_data_test.cpp
pel_manager_test.cpp
pel_test.cpp
registry_test.cpp
src_test.cpp
user_header_test.cpp
/openbmc/phosphor-logging/test/serialization_test_properties.cpp
/openbmc/phosphor-logging/util.cpp
/openbmc/phosphor-logging/util.hpp
083c704914-Oct-2024 Matt Spinler <spinler@us.ibm.com>

PEL: Remove dump status bits from PELs

Stop filling in the bits in the PEL that say there are un-offloaded
dumps. These require calls to the dump daemon that can be slow and even
time out if the du

PEL: Remove dump status bits from PELs

Stop filling in the bits in the PEL that say there are un-offloaded
dumps. These require calls to the dump daemon that can be slow and even
time out if the dump daemon is busy.

These aren't parsed out in the peltool output anyway, and there are
other ways to determine if there are dumps - someone could just look at
the dump D-Bus directly.

This isn't a direct revert of the commit that introduced it because of
all the merge conflicts trying to do a revert entailed.

Tested:
Can still create PELs.

Change-Id: I975f06ebf3638b39315fdea49393d1941a6f5216
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

show more ...

fa2d962b30-Sep-2024 Patrick Williams <patrick@stwcx.xyz>

log-manager: enable non-standard path for local tests

Enable the log-manager to be launched with a path other than
`/var/phosphor-logging` to allow it to be ran on a development system
for test purp

log-manager: enable non-standard path for local tests

Enable the log-manager to be launched with a path other than
`/var/phosphor-logging` to allow it to be ran on a development system
for test purposes. This required some refactoring throughout as to
how paths were handled.

Tested:

After running tests, `/tmp/phosphor-logging` is populated with
entries. Launching `./builddir/phosphor-log-manager
/tmp/phosphor-logging`, the log-manager will have the entries on
dbus:

```
$ busctl --user tree xyz.openbmc_project.Logging
└─ /xyz
└─ /xyz/openbmc_project
└─ /xyz/openbmc_project/logging
├─ /xyz/openbmc_project/logging/entry
│ ├─ /xyz/openbmc_project/logging/entry/100
│ ├─ /xyz/openbmc_project/logging/entry/101
│ ├─ /xyz/openbmc_project/logging/entry/102
│ ├─ /xyz/openbmc_project/logging/entry/103
```

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I84968edeed0dcf73aaf8bb653060b6d3400b9b7b

show more ...

253bfb7230-Sep-2024 Patrick Williams <patrick@stwcx.xyz>

openpower-pels: time: use gmtime for all operations

The test cases in `bcd_time_test.cpp` could fail if the executing
host were not in UTC. By default the BMC uses UTC but the development
systems a

openpower-pels: time: use gmtime for all operations

The test cases in `bcd_time_test.cpp` could fail if the executing
host were not in UTC. By default the BMC uses UTC but the development
systems are often in a user's local time zone. Switch all time
operations to work off UTC by using gmtime/timegm instead of
localtime/mktime.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I6230fd014f44123fe917a8e2b39e3b903d3a05e8

show more ...

70e8a11b24-Sep-2024 Matt Spinler <spinler@us.ibm.com>

PEL: Update check for identifying I2C dev paths

Due to changes in the kernel, I2C device paths changed slightly and so
the code that identifies if a device path passed in for a callout is for
an I2C

PEL: Update check for identifying I2C dev paths

Due to changes in the kernel, I2C device paths changed slightly and so
the code that identifies if a device path passed in for a callout is for
an I2C device needs an update.

An example of a new canonical device path is:
```
/sys/devices/platform/ahb/1e780000.apb/1e780000.apb:bus@1e78a000/1e78a200.i2c/i2c-3/3-006d
```

Tested:
Creating a PEL with CALLOUT_DEVICE_PATH=/sys/bus/i2c/devices/3-006d on
an IBM Everest system generates a proper callout, as shown in this
captured PEL debug UserData section:

```
"I2C: bus: 3 address: 109 dest: /sys-0/node-0/bellavista-0/Power-riser-conn-0/Fansipan-0/power-supply-conn-2/power-supply-0/power-supply-blackbox-0"
```

Change-Id: I4efb9135982f417560172df99dfe36f98e3a9696
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

show more ...

9972716f23-Sep-2024 harsh-agarwal1 <harsh.agarwal@ibm.com>

PEL: Updated PEL spec error action flag bit#10

- This will help to indicate which SRCs need to be collected and
regularly called home.
- Defined new entry in message registry schema action flags fie

PEL: Updated PEL spec error action flag bit#10

- This will help to indicate which SRCs need to be collected and
regularly called home.
- Defined new entry in message registry schema action flags field
- Set this action flag in the registry for the daily clock PEL
and the voltage regulator N+1 phase fault PEL

Tested:
Sample output:
```bash
$ peltool -af
...
"Action Flags": [
"Report Externally",
"Heartbeat Call Home Event"
...
"Action Flags": [
"Report Externally",
"HMC Call Home",
"Heartbeat Call Home Event"
...
$ peltool -afx
...
00000030 55 48 00 18 01 00 20 00 60 03 00 01 00 00 00 00 |
00000040 00 00 20 20 00 00 00 00 50 53 00 50 01 01 27 00 |
...
00000030 55 48 00 18 01 00 20 00 58 03 00 01 00 00 00 00 |
00000040 00 00 28 20 00 00 00 00 50 53 00 50 01 01 30 00 |
...

```
Change-Id: Ifa181374692013dfadc0dd744f6db61baad3d42e
Signed-off-by: Harsh Agarwal <Harsh.Agarwal@ibm.com>

show more ...

d763db3503-Sep-2024 harsh-agarwal1 <harsh.agarwal@ibm.com>

PEL: Prevent deletion if it's associated with HWIsolation

- This ensures that PELs linked to HWIsolation records are protected
from accidental deletion.
- Shows error message of "Call failed: The se

PEL: Prevent deletion if it's associated with HWIsolation

- This ensures that PELs linked to HWIsolation records are protected
from accidental deletion.
- Shows error message of "Call failed: The service is temporarily
unavailable.", when attempting to delete such a PEL individually.
- If trying to Delete all, will skip such PELs without showing any
message.

Tested:
Sample output:
```bash
$ busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/
logging xyz.openbmc_project.Collection.DeleteAll DeleteAll

$ busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/
logging/entry/2 xyz.openbmc_project.Object.Delete Delete
Call failed: The service is temporarily unavailable.

```
Change-Id: I2d28de91bbb0fbc2a991e3d5e5631814d41fe044
Signed-off-by: Harsh Agarwal <Harsh.Agarwal@ibm.com>

show more ...

ced8ed7702-Sep-2024 Arya K Padman <aryakpadman@gmail.com>

PEL: DRAM: Remove the Debug Section for PHAL Errors

In commit 8ae618, when the system attempts to call out FRUs, PEL is
designed to include DRAM manufacturer details if the FRU being
identified is a

PEL: DRAM: Remove the Debug Section for PHAL Errors

In commit 8ae618, when the system attempts to call out FRUs, PEL is
designed to include DRAM manufacturer details if the FRU being
identified is a DIMM. The FRU type is determined using the PHAL API
"getFRUType", and if this fails, the corresponding PHAL error message
is added to the PEL debug section to aid in debugging.

However, there are cases where some FRUs, such as Planar, Fan, Power
Supply, etc., are not represented in the PHAL device tree. The PHAL
device tree primarily serves CEC (Central Electronic Complex)
hardware, which is crucial for booting the host processor. For these
unmodeled FRUs, PHAL returns 'Location code not found,' which is then
recorded in the PEL debug section.

Since these failures are expected, the PHAL error messages should be
removed from the PEL debug section to prevent confusion, as errors for
non-modeled FRUs in the PHAL device tree are expected.

The downside is that this removal could reduce debuggability for real
errors, such as a valid location code not being found or the need for
updates to the PHAL predefined FRU list. The expectation is that the
PHAL API "getFRUType" should have sufficient trace information for
debugging such issues. The phosphor-logging is not designed to capture
traces for PHAL error scenarios because of the limitations with the
PHAL device tree mentioned above.

Signed-off-by: Arya K Padman <aryakpadman@gmail.com>
Change-Id: I9a0011252667173f9e5f6aecbab2e7cd76174afa

show more ...

d8ae618a19-Jul-2024 Arya K Padman <aryakpadman@gmail.com>

PEL: Add the DRAM manufacturer info of DIMM callout in UD section

Add the called out DIMMs DRAM manufacturer info to the user data
section of the PEL to assist the service engineers in identifying t

PEL: Add the DRAM manufacturer info of DIMM callout in UD section

Add the called out DIMMs DRAM manufacturer info to the user data
section of the PEL to assist the service engineers in identifying the
manufacturer of the faulty DRAMs packaged within the DIMM module
directly from the logs, aiding in quick resolution.

The changes also moves the pdbg target and libekb initialization to
the PEL startup which avoids the need of multiple initialization as
the existing design.

When a PEL calls out a DIMM FRU, the DRAM manufacturer ID and the
expanded location code of those DIMMs are added to the SysInfo user
data section of the generated PEL in JSON format under the key 'DIMMs
Additional Info'.

In case of any errors occur during the collection or processing of
the manufacturer data, the error messages will be logged in the 'PEL
Internal Debug Data' section as a JSON array under the key 'DIMMs Info
Fetch Error' as a separate user data section.

Tested :

Below is a portion of PEL(callout section and User Data section are
shown) which callout the DIMM P0-C32.

```
"Hex Word 9": "00000000",
"Callout Section": {
"Callout Count": "1",
"Callouts": [{
"FRU Type": "Normal Hardware FRU",
"Priority": "Mandatory, replace all with this
type as a unit",
"Location Code": "UXXX.YYY.WWW004A-P0-C32",
"Part Number": "7777777",
"CCIN": "1234",
"Serial Number": "YYYYYY"
}]
}
```
"User Data": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "bmc error logging",
"BMCLoad": "0.65 0.69 0.64",
"BMCState": "Ready",
"BMCUptime": "0y 0d 0h 17m 43s",
"BootState": "Unspecified",
"ChassisState": "Off",
"DIMMs Additional Info": [
{
"DRAM Manufacturer ID": [
"0x88",
"0xAA"
]
"Location Code": "UXXX.YYY.WWW004A-P0-C32",
}
],
"FW Version ID": "fw1060.20-4-1060.2432.20240729a (NL1060_068)",
"HostState": "Off",
"System IM": "50001001"
}
```

Change-Id: I2ff81c66e63b99e8e84378ec78f586fb9b6322d7
Signed-off-by: Arya K Padman <aryakpadman@gmail.com>

show more ...

075c792316-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: I21d2ca8065f24fd73509229c517f5caf48934b60
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


/openbmc/phosphor-logging/.clang-format
/openbmc/phosphor-logging/elog_block.hpp
/openbmc/phosphor-logging/elog_entry.hpp
/openbmc/phosphor-logging/elog_meta.cpp
/openbmc/phosphor-logging/elog_meta.hpp
/openbmc/phosphor-logging/elog_serialize.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/bcd_time.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/callout.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/callouts.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/dbus_watcher.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/device_callouts.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/device_callouts.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/extended_user_data.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/fapi_data_process.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/host_notifier.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/journal.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/journal.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/json_utils.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/mru.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel_entry.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel_values.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/pldm_interface.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry/message_registry.json
/openbmc/phosphor-logging/extensions/openpower-pels/repository.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/repository.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/section_header.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/service_indicators.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/severity.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/severity.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/src.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/src.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/temporary_file.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/tools/peltool.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data_json.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data_json.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_header.cpp
/openbmc/phosphor-logging/lib/include/phosphor-logging/lg2/conversion.hpp
/openbmc/phosphor-logging/lib/lg2_logger.cpp
/openbmc/phosphor-logging/log_manager.cpp
/openbmc/phosphor-logging/log_manager.hpp
/openbmc/phosphor-logging/logging_test.cpp
/openbmc/phosphor-logging/phosphor-rsyslog-config/server-conf.cpp
/openbmc/phosphor-logging/test/elog_errorwrap_test.hpp
device_callouts_test.cpp
failing_mtms_test.cpp
host_notifier_test.cpp
mocks.hpp
pel_manager_test.cpp
pel_test.cpp
registry_test.cpp
src_callout_test.cpp
src_test.cpp
user_data_test.cpp
0387a74e01-Jul-2024 Lakshmi Yadlapati <lakshmiy@us.ibm.com>

openpower-pels: Move to libpldm pldm_transport APIs

- Replaced the deprecated pldm transport APIs with the new libpldm
pldm_transport APIs.
- Updated the receive function to pass pldm_transport as

openpower-pels: Move to libpldm pldm_transport APIs

- Replaced the deprecated pldm transport APIs with the new libpldm
pldm_transport APIs.
- Updated the receive function to pass pldm_transport as a parameter.
- Modified the function signatures and their calls to ensure the
pldm_transport parameter is properly passed.

This change migrates the application off of the deprecated "requester"
APIs in libpldm.

We don't currently have the infrastructure in place to get the correct
TIDs, so to keep everything working as before use the EID as the TID in
the EID-to-TID mapping.

Change-Id: Ib143dc122637ef7e390fceb64f1f94c65172ae39
Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com>

show more ...

1537029214-May-2024 Arya K Padman <aryakpadman@gmail.com>

PEL: Adding the support for Systems Key in message registry

The current implementation has the support for adding system specific
callouts with the help of 'System' key in message_registry.json.

Ad

PEL: Adding the support for Systems Key in message registry

The current implementation has the support for adding system specific
callouts with the help of 'System' key in message_registry.json.

Adding one more key named 'Systems' where it can have array of system
names in the form of strings. The 'Systems' key can be used to define
the shared callouts for a group of systems.

A unique callout to a specific system can be added using the existing
System key. If both 'System' and 'Systems' are not present or not
matching with the system name, then the default calloutList will be
taken if configured.

Tested:

The test setup has the following names for the compatible interface.

```
busctl -j get-property xyz.openbmc_project.EntityManager
/xyz/openbmc_project/inventory/system/chassis/Rainier_2U_Chassis
xyz.openbmc_project.Inventory.Decorator.Compatible Names
{
"type" : "as",
"data" : [
"com.ibm.Hardware.Chassis.Model.Rainier2U",
"com.ibm.Hardware.Chassis.Model.Rainier"
]
}
```
The callout section in the message_registry.json for TestError1 is
defined as below.
```
"Callouts": [
{
"Systems": ["com.ibm.Hardware.Chassis.Model.Rainier",
"com.ibm.Hardware.Chassis.Model.Blue_Ridge"],
"CalloutList": [
{"Priority": "medium", "SymbolicFRU": "service_docs"}
]
},
{
"System": "com.ibm.Hardware.Chassis.Model.Rainier",
"CalloutList": [
{"Priority": "high", "Procedure": "BMC0001"}
]
},
{
"CalloutList": [
{ "LocCode": "P0", "Priority": "high" },
{ "LocCode": "P0-C15","Priority": "low" }
]
}
]
```

Leads to PEL callouts section as below:
```
"Callout Section": {
"Callout Count": "2",
"Callouts": [{
"FRU Type": "Maintenance Procedure Required",
"Priority": "Mandatory, replace all with this type
as a unit",
"Procedure": "BMC0001"
}, {
"FRU Type": "Symbolic FRU",
"Priority": "Medium Priority",
"Part Number": "SVCDOCS"
}]
}
```

Signed-off-by: Arya K Padman <aryakpadman@gmail.com>
Change-Id: Iea65816dcb822bb07043897488a6251929548dc7

show more ...


/openbmc/phosphor-logging/elog_entry.cpp
/openbmc/phosphor-logging/elog_serialize.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/callout.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/callouts.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/device_callouts.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/entry_points.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/extended_user_data.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/extended_user_header.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/failing_mtms.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/fapi_data_process.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/fru_identity.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/generic.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/journal.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/json_utils.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/json_utils.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/log_id.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/mru.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/phal_service_actions.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/private_header.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry/O_component_ids.json
/openbmc/phosphor-logging/extensions/openpower-pels/registry/README.md
/openbmc/phosphor-logging/extensions/openpower-pels/registry/message_registry.json
/openbmc/phosphor-logging/extensions/openpower-pels/registry/schema/schema.json
/openbmc/phosphor-logging/extensions/openpower-pels/sbe_ffdc_handler.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/sbe_ffdc_handler.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/service_indicators.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/tools/peltool.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_header.cpp
/openbmc/phosphor-logging/lib/elog.cpp
/openbmc/phosphor-logging/log_manager.cpp
/openbmc/phosphor-logging/log_manager.hpp
/openbmc/phosphor-logging/meson.build
registry_test.cpp
4efed0ef26-Feb-2024 Matt Spinler <spinler@us.ibm.com>

PEL: Don't allow duplicate callouts

When adding callouts, check if the callout being added already exists.
If it does, don't add it and rather just update the priority of the
existing one to be the

PEL: Don't allow duplicate callouts

When adding callouts, check if the callout being added already exists.
If it does, don't add it and rather just update the priority of the
existing one to be the highest of the two.

Callouts are considered to be equal if their location code matches, or
if they have the same maintenance procedure, or if they have the same
symbolic FRU.

The change entails adding an operator== on the Callout object, as well
as an operator> so that the callout with the highest priority can be
determined. Also use this new operator> in the sort of the callout list
that happens after a callout is added or changed.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I5ee148cc12e92f67fb3da233c3615e9665e95355

show more ...

2edce4e217-Jan-2024 Matt Spinler <spinler@us.ibm.com>

PEL: Use raw procedure names in PEL msg reg

Start using the raw maintenance procedure names in the PEL message
registry, such as BMC0001, instead of the enum values, such as
'bmc_firmware'. This wa

PEL: Use raw procedure names in PEL msg reg

Start using the raw maintenance procedure names in the PEL message
registry, such as BMC0001, instead of the enum values, such as
'bmc_firmware'. This way, the script that generates documentation can
list the procedure in the section for that PEL. This was requested by
the support team.

Note that there is still one user of the enums - the checkstop analysis
code uses them when it creates callouts by passing in them via JSON user
data files.

There are pointers added to the README and schema to find the available
procedures and their descriptions.

Tested:
- The unit tests still work which verify the callout contents when PEL
callouts are created via the message registry.
- Also manually verified PEL procedure callouts look correct when
created from the message registry.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I3e8416956120d4dae1ff40592fd0df4f0285d072

show more ...


/openbmc/phosphor-logging/callouts/callout_test.cpp
/openbmc/phosphor-logging/elog_block.hpp
/openbmc/phosphor-logging/elog_entry.cpp
/openbmc/phosphor-logging/elog_entry.hpp
/openbmc/phosphor-logging/elog_meta.cpp
/openbmc/phosphor-logging/elog_meta.hpp
/openbmc/phosphor-logging/elog_serialize.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/dbus_types.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/json_utils.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/meson.build
/openbmc/phosphor-logging/extensions/openpower-pels/pel_entry.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/pel_entry.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/phal_service_actions.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry/O_component_ids.json
/openbmc/phosphor-logging/extensions/openpower-pels/registry/README.md
/openbmc/phosphor-logging/extensions/openpower-pels/registry/message_registry.json
/openbmc/phosphor-logging/extensions/openpower-pels/registry/schema/registry_example.json
/openbmc/phosphor-logging/extensions/openpower-pels/registry/schema/schema.json
/openbmc/phosphor-logging/extensions/openpower-pels/src.cpp
/openbmc/phosphor-logging/gen/xyz/openbmc_project/Logging/meson.build
/openbmc/phosphor-logging/gen/xyz/openbmc_project/meson.build
/openbmc/phosphor-logging/lib/elog.cpp
/openbmc/phosphor-logging/lib/include/phosphor-logging/elog.hpp
/openbmc/phosphor-logging/log_manager.cpp
/openbmc/phosphor-logging/log_manager.hpp
/openbmc/phosphor-logging/logging_test.cpp
/openbmc/phosphor-logging/phosphor-rsyslog-config/server-conf.cpp
/openbmc/phosphor-logging/subprojects/nlohmann_json.wrap
/openbmc/phosphor-logging/test/meson.build
pel_manager_test.cpp
registry_test.cpp
src_test.cpp
/openbmc/phosphor-logging/tools/phosphor-logging/templates/elog-process-metadata.mako.cpp
/openbmc/phosphor-logging/yaml/xyz/openbmc_project/Logging.errors.yaml
/openbmc/phosphor-logging/yaml/xyz/openbmc_project/Logging.metadata.yaml
5fb575ae20-Oct-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

Change-Id: Ib459ac591ed3031de84d0239948d8daa583ef8a5
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


/openbmc/phosphor-logging/.clang-format
/openbmc/phosphor-logging/extensions/openpower-pels/bcd_time.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/data_interface.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/dbus_types.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/entry_points.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/extended_user_data.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/extended_user_header.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/failing_mtms.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/fapi_data_process.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/fru_identity.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/generic.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/host_notifier.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/journal.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/manager.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/meson.build
/openbmc/phosphor-logging/extensions/openpower-pels/pel.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/phal_service_actions.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/private_header.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/registry/message_registry.json
/openbmc/phosphor-logging/extensions/openpower-pels/repository.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/repository.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/sbe_ffdc_handler.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/sbe_ffdc_handler.hpp
/openbmc/phosphor-logging/extensions/openpower-pels/service_indicators.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/src.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_data_json.cpp
/openbmc/phosphor-logging/extensions/openpower-pels/user_header.cpp
/openbmc/phosphor-logging/gen/meson.build
/openbmc/phosphor-logging/gen/xyz/openbmc_project/Logging/Internal/Manager/meson.build
/openbmc/phosphor-logging/lib/lg2_logger.cpp
/openbmc/phosphor-logging/lib/meson.build
/openbmc/phosphor-logging/meson.build
/openbmc/phosphor-logging/meson.options
/openbmc/phosphor-logging/phosphor-rsyslog-config/server-conf.cpp
/openbmc/phosphor-logging/phosphor-rsyslog-config/server-conf.hpp
/openbmc/phosphor-logging/subprojects/nlohmann-json.wrap
host_notifier_test.cpp
mocks.hpp
/openbmc/phosphor-logging/test/remote_logging_test_config.cpp
/openbmc/phosphor-logging/tools/phosphor-logging/templates/elog-gen-template.mako.hpp
527ff34629-Jun-2023 Matt Spinler <spinler@us.ibm.com>

PEL: Handle failing to start a PLDM cmd better

A recent PLDM bug caused the registerReceiveCallback() function, which
is used to setup listening for the PLDM response from the host when
telling the

PEL: Handle failing to start a PLDM cmd better

A recent PLDM bug caused the registerReceiveCallback() function, which
is used to setup listening for the PLDM response from the host when
telling them about a new PEL, to throw an exception.

When this happened, the code got stuck in the 'in progress' state, so it
would never try again when the next PEL came in.

Fix that by having startCommand() throw an exception instead of calling
the failure response function callback. With this change, the code will
continue on to call the cleanupCmd() function so everything is ready
when the next PEL comes in.

Tested:
With the bad PLDM code, after the first PEL ran out of retry attempts,
created another PEL and saw the code attempt again to call PLDM. Also,
wrote a new unit test case for it.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I38034440435d6a86e8dd880eef09499f19dd6e9c

show more ...

da5b76b201-Jun-2023 Matt Spinler <spinler@us.ibm.com>

PEL: Support for CheckstopFlag msg reg field

Similiar to the DeconfigFlag field that was recently added, this one
indicates the PEL is for a hardware checkstop and results in a bit in
SRC hex word 5

PEL: Support for CheckstopFlag msg reg field

Similiar to the DeconfigFlag field that was recently added, this one
indicates the PEL is for a hardware checkstop and results in a bit in
SRC hex word 5 being set.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ib05de7471ad3e32f48e7f20a5c611abc119fe82a

show more ...

81bc561101-Jun-2023 Matt Spinler <spinler@us.ibm.com>

PEL: Fixes for gcc13

* Add the cstdint header file as now required to get the uint* types.
* Fix a move assignment test
* Refactor some nlohmann::json code to avoid:

```
/usr/include/c++/13/valarra

PEL: Fixes for gcc13

* Add the cstdint header file as now required to get the uint* types.
* Fix a move assignment test
* Refactor some nlohmann::json code to avoid:

```
/usr/include/c++/13/valarray:1201:1: note: template argument deduction/substitution failed:
../extensions/openpower-pels/registry.cpp:665:43: note: ‘const nlohmann::json_abi_v3_11_2::basic_json<>::value_type’ {aka ‘const nlohmann::json_abi_v3_11_2::basic_json<>’} is not derived from ‘const std::valarray<_Tp>’
665 | (name == j["SRC"]["ReasonCode"] && type == LookupType::reasonCode));
```

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ia3e733602134a60008d0d47934f95a217d2a0eb1

show more ...

0dd22c8304-May-2023 Matt Spinler <spinler@us.ibm.com>

PEL: Clear deconfig flag after callout replaced

Making use of the previous commit's framework to call a function when a
fan or power supply becomes present, add code to the Manager class to
register

PEL: Clear deconfig flag after callout replaced

Making use of the previous commit's framework to call a function when a
fan or power supply becomes present, add code to the Manager class to
register a callback that will clear the deconfig flag for all PELs
created with the power-thermal or fan component ID that have the
location code of the replaced fan/PS as a callout.

This way, the degraded mode reporting code will no longer pick up those
PELs in its report as since the hardware was replaced those PELs are no
longer relevant.

This is necessary only for fans or power supplies because they're the
only N+1 hardware that can be hot plugged at runtime. And also because
this is what the IBM service team wants.

Tested:
Simulated missing hardware (changed present D-Bus property for fans,
toggled PSU presence GPIO in the simulator for PSs). Saw errors get
created for it, then simulated replacing it and saw those errors have
their deconfig flag cleared, verifying before and after with peltool:

```
// Remove and replace fan
phosphor-fan-monitor: Fan /system/chassis/motherboard/fan0 presence state change to false
phosphor-log-manager: Created PEL 0x50000002 (BMC ID 2) with SRC 110076F1
phosphor-fan-monitor: Fan /system/chassis/motherboard/fan0 presence state change to true
phosphor-log-manager: Detected FRU /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0 (U78DB.ND0.1234567-A0) present
phosphor-log-manager: Clearing deconfig flag in PEL 0x50000002 with SRC 110076F1 because U78DB.ND0.1234567-A0 was replaced

// Remove and replace PS
phosphor-log-manager: Created PEL 0x50000003 (BMC ID 3) with SRC 110015F6
...
phosphor-psu-monitor: Updating inventory present property. present:true invpath:/system/chassis/motherboard/powersupply0 name:powersupply0
phosphor-log-manager: Detected FRU /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0 (U78DB.ND0.1234567-E0) present
phosphor-log-manager: Clearing deconfig flag in PEL 0x50000003 with SRC 110015F6 because U78DB.ND0.1234567-E0 was replaced
```

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Iee05b4a612ca8f438f8c89f37b4e7b529a131a9f

show more ...

784b02e725-Apr-2023 Matt Spinler <spinler@us.ibm.com>

PEL:test: Refactor mocked checkDumpStatus usage

When creating an instance of the SRC class in a testcase, it needs a
filled in mock of the checkDumpStatus() function. Instead of manually
doing that

PEL:test: Refactor mocked checkDumpStatus usage

When creating an instance of the SRC class in a testcase, it needs a
filled in mock of the checkDumpStatus() function. Instead of manually
doing that everywhere a PEL or SRC class is created, just do it in the
constructor of the mock DataInterface class.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I74790c67251465aae87d318ea37891d9eabab5e5

show more ...

32e36b8c25-Apr-2023 Matt Spinler <spinler@us.ibm.com>

PEL:pel_manager_test: Refactor temp dir cleanup

Several testcases were creating a temporary directory and then removing
it at the end, except for one which missed the cleanup so the dir would
stick

PEL:pel_manager_test: Refactor temp dir cleanup

Several testcases were creating a temporary directory and then removing
it at the end, except for one which missed the cleanup so the dir would
stick around in /tmp after the run was done.

To fix that and to make sure it doesn't happen again, just add the
creating and deleting of the temp directory to the test fixture class so
the deleting happens automatically.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I2abb720b4c0aeb9dec6117d6399c3e4692709c68

show more ...

0bf04b5d28-Apr-2023 Matt Spinler <spinler@us.ibm.com>

PEL: Convert a BCDTime to epoch milliseconds

Add a new function to convert a BCDTime value from a PEL to the number
of milliseconds since the epoch.

This will be used to put the PEL creation timest

PEL: Convert a BCDTime to epoch milliseconds

Add a new function to convert a BCDTime value from a PEL to the number
of milliseconds since the epoch.

This will be used to put the PEL creation timestamp on D-Bus.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ic470c9324e959b3e6a7eea29db4162a45dd54fc3

show more ...

7410260a25-Apr-2023 Matt Spinler <spinler@us.ibm.com>

PEL:log_id_test: Remove file when testcase done

A testcase was missing a delete of a temporary file it created. Delete
it so it isn't left around.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>

PEL:log_id_test: Remove file when testcase done

A testcase was missing a delete of a temporary file it created. Delete
it so it isn't left around.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I4666241374ee7b6e260210539e7e29b34d018600

show more ...

12345678910