| c0c2a01c | 19-Jan-2026 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
pldmtool: Fix GetStateSensorReadings output
Currently presentState, previousState and eventState fields from the GetStateSensorReadings command output are parsed as they were from the numeric sensor
pldmtool: Fix GetStateSensorReadings output
Currently presentState, previousState and eventState fields from the GetStateSensorReadings command output are parsed as they were from the numeric sensor GetSensorReading command. This is incorrect. In case of state sensors these fields should be interpreted as state values from a PLDM State Set that is associated with the sensor. Since in the GetStateSensorReadings response we don't have the necessary PDR information about the relevant state set, that should be used for interpretation, display state values as a raw integers.
Tested: The following example shows change in the output of the Link State sensor (stateSetID = 33).
According to the DSP0249 1.4.0: Link State - For any entity that has a data link to another entity. 1 – Connected The link is in the connected state. 2 – Disconnected The link is in the disconnected state.
Before: ~# pldmtool platform GetStateSensorReadings --sensor_id=203 --rearm=0 -m 10 { "compositeSensorCount": 1, "sensorOpState[0]": "Sensor Enabled", "presentState[0]": "Sensor Warning", "previousState[0]": "Sensor Unknown", "eventState[0]": "Sensor Warning" }
After: ~# pldmtool platform GetStateSensorReadings --sensor_id=203 --rearm=0 -m 10 { "compositeSensorCount": 1, "sensorOpState[0]": "Sensor Enabled", "presentState[0]": "2", "previousState[0]": "0", "eventState[0]": "2" }
Change-Id: I77ff441c8e1a8bf24cdde664a63a9de8e5fcb02b Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
| 58b66635 | 12-Jan-2026 |
Jayashankar Padath <jayashankarpadath@gmail.com> |
pldm: PDR and FRU VPD additions in Huygens system
This commit contains below changes related to Huygens system 1. Addition of PDR folder and added the required FRUs for switch board and three ot
pldm: PDR and FRU VPD additions in Huygens system
This commit contains below changes related to Huygens system 1. Addition of PDR folder and added the required FRUs for switch board and three other chassis 2. Added new FRU VPD keywords for System, Chassis and Board a. System - Added full set of UTIL and VSBP keywords b. Chassis - Missing keywords DR, RB, RG and TM are added c. Board - Newly added full set of keywords such as VCFG, VINI, VMPU, VR10, VW10 and Location Code 3. Updated the FRU master json with core entity id and the pldmtool with processor core name
Tested By: Verified the changes in the Huygens simics setup
Change-Id: I89bb59d04a9372345bb73af3610f29d0a0115eb1 Signed-off-by: Jayashankar Padath <jayashankarpadath@gmail.com>
show more ...
|
| 29bb562d | 07-Jan-2026 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
pldmtool: fix ComponentActivationMethods check
According to the firmware update specification, ComponentActivationMethods is a 16-bit bitmap that indicates the activation capabilities supported by t
pldmtool: fix ComponentActivationMethods check
According to the firmware update specification, ComponentActivationMethods is a 16-bit bitmap that indicates the activation capabilities supported by the FD, and multiple activation methods can be enabled simultaneously. So fix the code to properly support and interpret multiple activation methods instead of treating it as a single-value field.
Change-Id: I02032e5317d488f376e7678ba75288b4f1098a25 Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
| 9c1455c0 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
pldmtool: pldm_bios_cmd: Migrate away from libpldm/utils.h
Be more precise where we can.
Change-Id: Id9d3f7a6140efe668ed61b6ee7b05b6d266687af Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com
pldmtool: pldm_bios_cmd: Migrate away from libpldm/utils.h
Be more precise where we can.
Change-Id: Id9d3f7a6140efe668ed61b6ee7b05b6d266687af Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| e82ef153 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
pldmtool: Move off deprecated ver2str()
Switch to pldm_base_ver2str().
Change-Id: I81d863d5f68413c178abd3fa04a712877ad1cacb Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| 8464571f | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
pldmtool: bios: Move off deprecated bcd2dec16()
Switch to pldm_bcd_bcd2dec16().
Change-Id: I71ea69b500cae7d7543474b8b8f55c9da026a0aa Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| 3a14b55a | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
pldmtool: bios: Move off deprecated bcd2dec8()
Switch to pldm_bcd_bcd2dec8().
Change-Id: I8a5c465966f037081ef9c4333f2dc4ef4f429cdb Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| f9090f37 | 15-Jul-2025 |
Eric Yang <eric.yang.wiwynn@gmail.com> |
pldm: Use std::expected for instance ID allocation
Refactor InstanceIdDb::next() to return std::expected<uint8_t, InstanceIdError> instead of throwing exceptions. With this change, errors are no lon
pldm: Use std::expected for instance ID allocation
Refactor InstanceIdDb::next() to return std::expected<uint8_t, InstanceIdError> instead of throwing exceptions. With this change, errors are no longer thrown by default. Instead, the caller can inspect allocation errors as values, extract the error message or code as needed, or explicitly throw the error further up the stack if appropriate. This approach allows for more flexible and explicit error handling, and reduces reliance on exception-based control flow.
Motivation: This change aims to improve robustness by enabling explicit error handling and reducing the risk of uncaught exceptions that could lead to a pldmd core dump if an instance ID allocation fails for a single EID. Such a core dump could disrupt ongoing operations such as sensor polling or firmware updates for other EIDs
Note: Currently, some call sites are still void-returning functions and cannot propagate errors via return values. As a result, errors from InstanceIdDb::next() are thrown as InstanceIdError at these locations to avoid silent failures. Ideally, it would be preferable for these functions to propagate errors by value (for example, using std::expected), so that errors can always be handled explicitly without relying on exceptions.
Change-Id: I7189e97f206bae1eed5c8db44ebbbcd4393c8f8d Signed-off-by: Eric Yang <eric.yang.wiwynn@gmail.com>
show more ...
|
| fdf6da79 | 14-Apr-2025 |
Jayashankar Padath <jayashankarpadath@gmail.com> |
oem-ibm: Real SAI sensor and effecter PDR support
Real SAI (Sysytem Attention Indicator) is a physical led indicator which lights up whenever there is a platform error (originated from BMC) or a par
oem-ibm: Real SAI sensor and effecter PDR support
Real SAI (Sysytem Attention Indicator) is a physical led indicator which lights up whenever there is a platform error (originated from BMC) or a partition error (originated from remote terminus) that is not mapped to any physical FRU (Field Replaceable Unit)
Real SAI scenarios 1. Real SAI effecter can be turned off by the user OR by a remote terminus 2. Real SAI sensor is turned on if any of the partition SAI OR platform SAI is turned on 3. Real SAI is turned off if both partition and platform SAI are turned off 4. SAI data should be synced to remote terminus
Tested By: Verified the sensor values with the dbus property changes. Also executed the effecter operation to clear the Real SAI state.
oem-ibm flag: Change successfully built with oem-ibm as disabled
Change-Id: Ia31a9104589acdc08dc42b51082c8103b1d92754 Signed-off-by: Jayashankar Padath <jayashankarpadath@gmail.com>
show more ...
|
| 518bce10 | 11-Nov-2025 |
Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com> |
pldmtool: fix multipart pdr printing
Use the size of all the received data, instead of only the last received chunk, to print the pdr.
respCnt stores the size of the last PDR transferred payload, n
pldmtool: fix multipart pdr printing
Use the size of all the received data, instead of only the last received chunk, to print the pdr.
respCnt stores the size of the last PDR transferred payload, not the size of the full pdr record that we are currently retrieving, because of this, a multipart transmission of a pdr repo fails in the printing stage.
Change-Id: Ifb292c1c42b4882e82cd238b81761ee4c1307d20 Signed-off-by: Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com>
show more ...
|
| 59670c76 | 11-Nov-2025 |
Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com> |
pldmtool: use correct recordChangeNumber in pdr transmission
The recordChangeNumber comes from the first part of the pdr transmission, and should be reused during the multipart transmission.
Middle
pldmtool: use correct recordChangeNumber in pdr transmission
The recordChangeNumber comes from the first part of the pdr transmission, and should be reused during the multipart transmission.
Middle parts of a multipart transmission do not have the header included, so trying to obtain the record change number from them is wrong.
Change-Id: Ie7d60aa6758f9d1a9450ecda8af35a83090fb5dd Signed-off-by: Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com>
show more ...
|
| 704c0bd7 | 23-Oct-2025 |
Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com> |
pldmtool: fix misspelling in pdr output
Fixed fatalLeow -> fatalLow
Change-Id: I2106504edbaaa69d07fc9d444baa3cfa9983fc86 Signed-off-by: Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com> |
| 193f9f34 | 02-Oct-2025 |
Patrick Williams <patrick@stwcx.xyz> |
meson: pldmtool: fix subproject build
pldmtool uses headers from phosphor-logging for lg2 support, but was missing the phosphor-logging dependency. Add the dependency back in, which fixes subprojec
meson: pldmtool: fix subproject build
pldmtool uses headers from phosphor-logging for lg2 support, but was missing the phosphor-logging dependency. Add the dependency back in, which fixes subproject-based builds.
Without this change the following failure is observed: ``` In file included from ../pldmtool/pldm_cmd_helper.hpp:4, from ../pldmtool/pldm_cmd_helper.cpp:1: ../common/utils.hpp:15:10: fatal error: phosphor-logging/lg2.hpp: No such file or directory 15 | #include <phosphor-logging/lg2.hpp> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ```
With the change, the build is successful.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Id4ca9e7a01e3dfb8b93cbb8da4094264923c3e4d
show more ...
|
| e7ae804d | 11-Sep-2025 |
Amithash Prasad <amithash@meta.com> |
pldmtool: Use a non-listening transport for command access
pldmtool does not really need to create a listening (bind) transport to do a simple send/receive transaction. Hence refactor PldmTransport
pldmtool: Use a non-listening transport for command access
pldmtool does not really need to create a listening (bind) transport to do a simple send/receive transaction. Hence refactor PldmTransport allowing a user to specify if the required transport is expected to be listening or non-listening and switch pldmtool to use a non-listening transport.
Change-Id: I390298397d71c0ea27234880b844898c7a100ca5 Signed-off-by: Amithash Prasad <amithash@meta.com>
show more ...
|
| 10c6400f | 18-Aug-2025 |
Aditya Kurdunkar <akurdunkar@nvidia.com> |
pldmtool: Create supported PDR types list dynamically
In current implementation the supported types list, used in the pldmtool usage text, is hard-coded.
This patch uses the strToPDRType map to gen
pldmtool: Create supported PDR types list dynamically
In current implementation the supported types list, used in the pldmtool usage text, is hard-coded.
This patch uses the strToPDRType map to generate the list of supported PDR types.
Tested.
Before: ''' $ pldmtool platform GetPDR --help .... -t,--type TEXT retrieve all PDRs of the requested type supported types: [terminusLocator, stateSensor, numericEffecter, stateEffecter, compactNumericSensor, sensorauxname, effecterAuxName, numericsensor, EntityAssociation, fruRecord, ... ] .... '''
After: ''' $ pldmtool platform GetPDR --help .... -t,--type TEXT retrieve all PDRs of the requested type supported types: [compactnumericsensor, effecterauxname, entityassociation, frurecord, numericeffecter, numericsensor, sensorauxname, stateeffecter, statesensor, terminuslocator, ...] .... '''
Change-Id: I2203848927445eaec3f861791f51c4ef31457beb Signed-off-by: Aditya Kurdunkar <akurdunkar@nvidia.com>
show more ...
|
| 431c7b85 | 18-Aug-2025 |
Aditya Kurdunkar <akurdunkar@nvidia.com> |
pldmtool: Fix effecterAuxName typo
Fixes a minor typo.
Change-Id: Ibb06eba8cd48e2ac1dbaee7482d552009f944cad Signed-off-by: Aditya Kurdunkar <akurdunkar@nvidia.com> |
| 32a337bf | 16-Jul-2025 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
pldmtool: Fix containedEntity parsing
Commit "pldmtool : Migrate to placement_new from reinterpret casting" (5c3f0d1b09bfbd206c33841b83938ef5f057a655) has broken a parsing of containedEntities from
pldmtool: Fix containedEntity parsing
Commit "pldmtool : Migrate to placement_new from reinterpret casting" (5c3f0d1b09bfbd206c33841b83938ef5f057a655) has broken a parsing of containedEntities from the Entity Association PDR. Currently the first element of the children array is initialized from the default constructor instead of using data from a pointer. Correct statement syntax to fix the issue.
Tested: Output from the "pldmtool platform GetPDR -v -a -m <MCTP_EID>"
Before: <...> pldmtool: Tx: 81 02 51 4c 04 00 00 00 00 00 00 01 ff ff 00 00 pldmtool: Rx: 01 02 51 00 4d 04 00 00 00 00 00 00 05 1a 00 4c 04 00 00 01 0f 00 00 10 00 64 00 00 44 00 01 00 00 00 01 90 00 01 00 64 00 { <...> "PDRType": "Entity Association PDR", <...> "containedEntityCount": 1, "containedEntityType[1]": "[Physical] Unspecified", "containedEntityInstanceNumber[1]": 0, "containedEntityContainerID[1]": 0 } <...>
After: <...> pldmtool: Tx: 81 02 51 4c 04 00 00 00 00 00 00 01 ff ff 00 00 pldmtool: Rx: 01 02 51 00 4d 04 00 00 00 00 00 00 05 1a 00 4c 04 00 00 01 0f 00 00 10 00 64 00 00 44 00 01 00 00 00 01 90 00 01 00 64 00 { <...> "PDRType": "Entity Association PDR", <...> "containedEntityCount": 1, "containedEntityType[1]": "[Physical] Network Controller", "containedEntityInstanceNumber[1]": 1, "containedEntityContainerID[1]": 100 } <...>
Change-Id: I938c0ad8a2a42ddb0d43b20b2419a3075b3f30f2 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
| 6254daf0 | 16-Jul-2025 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
pldmtool: Correct bit defs in getFirmwareParameter
The definitions for bit 2 and bit 3 in getFirmwareParameters were inadvertently swapped in pldmtool, contrary to the DSP0267 v1.3.0 specification.
pldmtool: Correct bit defs in getFirmwareParameter
The definitions for bit 2 and bit 3 in getFirmwareParameters were inadvertently swapped in pldmtool, contrary to the DSP0267 v1.3.0 specification. This change restores the correct mapping to align with the standard.
Resolves : openbmc/pldm#50
Change-Id: Ib36af27557bb3a509158e6307fa4e5c6686d3649 Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
| 0352886b | 15-Jul-2025 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
pldmtool: correct help text for GetPLDMCommands
The previous help example showed the PLDM version bytes in the wrong order, leading to incorrect requests. The version bytes must be specified as [alp
pldmtool: correct help text for GetPLDMCommands
The previous help example showed the PLDM version bytes in the wrong order, leading to incorrect requests. The version bytes must be specified as [alpha update minor major] to match the ver32_t decode logic and PLDM spec (DSP4014). Updated the help text example to show the correct order: e.g., version 1.1.0 should be `0x00 0xF0 0xF1 0xF1`.
This helps users avoid confusion when passing version data to --data.
Change-Id: Id7573217bf2e46ffcabb82237bb63d452c4fb33d Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
| 22bcb07d | 11-Jul-2025 |
ManojKiran Eda <manojkiran.eda@gmail.com> |
Revert "pldm: use std::expected for instance ID allocation"
This reverts commit 70262ed7bf854b25d4b65628bc3c892ddfe9380f.
Change-Id: I1f54d6b60bf3cfa9f00764140eec6167e1e182d6 Signed-off-by: Manojki
Revert "pldm: use std::expected for instance ID allocation"
This reverts commit 70262ed7bf854b25d4b65628bc3c892ddfe9380f.
Change-Id: I1f54d6b60bf3cfa9f00764140eec6167e1e182d6 Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
| d5987070 | 09-Jul-2025 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
pldmtool: Include fwupdate in supported PLDM types
`pldmd` daemon has supported firmware update for over a year. This commit adds the firmware update type to the list of supported PLDM types so that
pldmtool: Include fwupdate in supported PLDM types
`pldmd` daemon has supported firmware update for over a year. This commit adds the firmware update type to the list of supported PLDM types so that it is correctly reported in the response to the `PLDMGetTypes` command.
Change-Id: I024c122c73a77da8f74e579672b2b18f75ad764e Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
| 70262ed7 | 02-Jul-2025 |
Eric Yang <eric.yang.wiwynn@gmail.com> |
pldm: use std::expected for instance ID allocation
Refactor InstanceIdDb::next() to return std::expected<uint8_t, InstanceIdError> instead of throwing exceptions. This change enables callers to expl
pldm: use std::expected for instance ID allocation
Refactor InstanceIdDb::next() to return std::expected<uint8_t, InstanceIdError> instead of throwing exceptions. This change enables callers to explicitly handle allocation errors via value inspection, rather than relying on exception handling.
This approach prevents core dumps from uncaught exceptions and eliminates the need for pervasive try-catch blocks. Callers can now access the error code and message directly, improving clarity and control of error propagation.
Note: Errors from InstanceIdDb::next() are currently handled via early return, which may silently discard failures. This is a temporary solution; APIs and callers will need to be updated in the future to propagate and handle errors explicitly.
Change-Id: Ibf2e0034b0ee725cb59adfd93b74e48db8c42cba Signed-off-by: Eric Yang <eric.yang.wiwynn@gmail.com>
show more ...
|
| 15d42c55 | 03-Jul-2025 |
Patrick Williams <patrick@stwcx.xyz> |
wstring_convert: pragma out deprecation warning
With GCC 15, we are starting to see the following warnings:
``` 15:17:59 | ../git/platform-mc/terminus.cpp:333:22: error: 'template<class _Codecvt, c
wstring_convert: pragma out deprecation warning
With GCC 15, we are starting to see the following warnings:
``` 15:17:59 | ../git/platform-mc/terminus.cpp:333:22: error: 'template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> class std::__cxx11::wstring_convert' is deprecated [-Werror=deprecated-declarations] ```
Insert pragmas around them until another solution is found, so that we can perform the next Yocto upgrade.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I4132eec42b79cd7f3c18b9b1798e8f871241328b
show more ...
|
| 4aea4bd2 | 18-Mar-2025 |
Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com> |
pldmtool: Add GetEventReceiver command
Added GetEventReceiver to receive the current configured event receiver from a terminus.
This command is defined in DSP0248 as a conditional command
Tested r
pldmtool: Add GetEventReceiver command
Added GetEventReceiver to receive the current configured event receiver from a terminus.
This command is defined in DSP0248 as a conditional command
Tested results: ``` root@bmc:~# pldmtool platform GetEventReceiver --help Get the configured event receiver from a terminus Usage: pldmtool platform GetEventReceiver [OPTIONS]
Options: -h,--help Print this help message and exit -m,--mctp_eid UINT MCTP endpoint ID -v,--verbose
root@bmc:~# pldmtool platform GetEventReceiver -m 42 { "completionCode": 0, "transportProtocolType": 0, "eventReceiverAddressInfo": 142 } ```
Change-Id: Id699875b84d1a6fd851d935f2aed038df661376b Signed-off-by: Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com>
show more ...
|
| a5d303d5 | 23-Jun-2025 |
Tom Joseph <rushtotom@gmail.com> |
pldmtool: Add support for CancelUpdate
Tested:
pldmtool fw_update CancelUpdate -m 13 { "CompletionCode": "SUCCESS", "NonFunctioningComponentIndication": "False" }
Change-Id: I9a5824658e8e8
pldmtool: Add support for CancelUpdate
Tested:
pldmtool fw_update CancelUpdate -m 13 { "CompletionCode": "SUCCESS", "NonFunctioningComponentIndication": "False" }
Change-Id: I9a5824658e8e8f2611427b8722947d9777e08813 Signed-off-by: Tom Joseph <rushtotom@gmail.com>
show more ...
|