History log of /openbmc/pldm/common/ (Results 1 – 25 of 110)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
9c1455c012-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 ...

f9090f3715-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 ...

94657ece26-Nov-2025 Alexander Hansen <alexander.hansen@9elements.com>

common/utils: use PDI definitions

Use PDI symbols instead of string literals for property names, method
names, signal names and interface names.

Tested: Inspection only.

Change-Id: I6062c13cb68ea5

common/utils: use PDI definitions

Use PDI symbols instead of string literals for property names, method
names, signal names and interface names.

Tested: Inspection only.

Change-Id: I6062c13cb68ea5fe62aa3db4ed948964c04e098f
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...


utils.cpp
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Bonnell/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Everest/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier1S4U/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier2U/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier4U/4.json
/openbmc/pldm/fw-update/aggregate_update_manager.cpp
/openbmc/pldm/fw-update/aggregate_update_manager.hpp
/openbmc/pldm/fw-update/firmware_inventory.cpp
/openbmc/pldm/fw-update/firmware_inventory.hpp
/openbmc/pldm/fw-update/firmware_inventory_manager.cpp
/openbmc/pldm/fw-update/firmware_inventory_manager.hpp
/openbmc/pldm/fw-update/inventory_manager.hpp
/openbmc/pldm/fw-update/manager.hpp
/openbmc/pldm/fw-update/test/firmware_inventory_manager_test.cpp
/openbmc/pldm/fw-update/test/firmware_inventory_test.cpp
/openbmc/pldm/fw-update/test/inventory_manager_test.cpp
/openbmc/pldm/fw-update/test/meson.build
/openbmc/pldm/fw-update/update_manager.hpp
/openbmc/pldm/host-bmc/host_pdr_handler.cpp
/openbmc/pldm/libpldmresponder/bios.cpp
/openbmc/pldm/libpldmresponder/fru.cpp
/openbmc/pldm/libpldmresponder/fru_parser.cpp
/openbmc/pldm/meson.build
/openbmc/pldm/oem/ibm/libpldmresponder/file_table.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_table.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
/openbmc/pldm/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
/openbmc/pldm/oem/meta/libpldmresponder/file_io_type_bios_version.cpp
/openbmc/pldm/oem/meta/libpldmresponder/file_io_type_power_control.cpp
/openbmc/pldm/platform-mc/event_manager.cpp
/openbmc/pldm/platform-mc/numeric_sensor.cpp
/openbmc/pldm/platform-mc/numeric_sensor.hpp
/openbmc/pldm/pldmtool/oem/ibm/oem_ibm_state_set.hpp
/openbmc/pldm/pldmtool/pldm_platform_cmd.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.hpp
/openbmc/pldm/softoff/softoff.cpp
364275c711-Nov-2025 Alexander Hansen <alexander.hansen@9elements.com>

BIOSConfig.Manager: use PDI constants

Pull property names, interface name, ... from PDI and drop a bunch of
local definitions.

The instance path is still remaining as a local definition, patch [1]

BIOSConfig.Manager: use PDI constants

Pull property names, interface name, ... from PDI and drop a bunch of
local definitions.

The instance path is still remaining as a local definition, patch [1]
has been raised.

Tested: Inspection only.

References:
[1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/85118

Change-Id: Ia6601f1fcbe84802820f610ffc717715b85ca7ba
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

70015ec511-Nov-2025 Alexander Hansen <alexander.hansen@9elements.com>

common: use PDI constants for ObjectMapper

Pull the method names from PDI.

Tested: Inspection only.

Change-Id: I9d1dcd297cfb624c592e3cd58bfa877b5dc44530
Signed-off-by: Alexander Hansen <alexander.

common: use PDI constants for ObjectMapper

Pull the method names from PDI.

Tested: Inspection only.

Change-Id: I9d1dcd297cfb624c592e3cd58bfa877b5dc44530
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

74bccf6b04-Nov-2025 Patrick Williams <patrick@stwcx.xyz>

use sdbusplus unpack syntax

Rather than defining a variable and then reading it from a message,
sdbusplus also supports directly unpack-ing from the message. Use
this syntax instead as it is more e

use sdbusplus unpack syntax

Rather than defining a variable and then reading it from a message,
sdbusplus also supports directly unpack-ing from the message. Use
this syntax instead as it is more efficient and succinct.

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

show more ...

97a0f48210-Mar-2025 Archana Kakani <archana.kakani@ibm.com>

oem-ibm: Sync boot side file with bios attributes

This change adds support to update the boot side file to keep it
in sync with boot side bios attributes

Change-Id: I2bea293500c69a883f400ddaadc4367

oem-ibm: Sync boot side file with bios attributes

This change adds support to update the boot side file to keep it
in sync with boot side bios attributes

Change-Id: I2bea293500c69a883f400ddaadc436705bbe5ab4
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>

show more ...

3419e18029-Jul-2025 Chau Ly <chaul@amperecomputing.com>

platform-mc: Enlist common types for Terminus

platform_mc::Terminus class is using its own defined types for generic
types of PDR fields that are already defined in common/types.hpp.
This commit rem

platform-mc: Enlist common types for Terminus

platform_mc::Terminus class is using its own defined types for generic
types of PDR fields that are already defined in common/types.hpp.
This commit removes those redundantly defined types and enlists common
types.

This commit also moves all the newly defined types in terminus.hpp to
common/types.hpp for wider uses.

Change-Id: I2f3fb4adc99235aa530eb338787f66eee4bc3aa2
Signed-off-by: Chau Ly <chaul@amperecomputing.com>

show more ...

e7ae804d11-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 ...

7ad45b4018-Aug-2025 Unive Tien <unive.tien.wiwynn@gmail.com>

fw_update: Introduce FirmwareInventory

Spec reference: [1]

Description:
FirmwareInventory is a class that manages all of the D-Bus
utilities for the firmware update functionality of each entry,
Fir

fw_update: Introduce FirmwareInventory

Spec reference: [1]

Description:
FirmwareInventory is a class that manages all of the D-Bus
utilities for the firmware update functionality of each entry,
FirmwareInventoryManager is used to manage multiple FirmwareInventory
instances.

Flow of the routine when one or more firmware device is added:
1. When one or more firmware device is added, the InventoryManager
instance will try to create a FirmwareInventory entry for the added
device, to accomplish this, it will need to fetch the necessary
information from various source (e.g. EM, device descriptors).

2. After the information is gathered, the InventoryManager will try to
obtain a Name for each firmware devices, to fit the different
platform condition, the name will be reference by the order below:
1. From Entity Manager (EM), if the endpoint has a specific EM
configuration with "Name" property listed.
2. From device descriptors, if the device descriptor contains a
vendor defined descriptor with "OpenBMC.Name" titled.
3. Spawn a default one, named "Firmware_Device_<Endpoint ID>".

3. The InventoryManager will then invoke
`FirmwareInventoryManager::createFirmwareInventory` to create a
firmware inventory entry.

Properties managed by firmware Inventory:
1. Version
Version object that represents the firmware version
2. Association
Association object that represents the associations for the
firmware

The object path pattern of the firmware inventory entry is:
`/xyz/openbmc_project/software/<BoardName>_<SoftwareName>_<SoftwareID>`

Where:
- `<BoardName>` represents the board the device is on.
- `<SoftwareName>` is the name of the firmware device obtained from the
InventoryManager.
- `<SoftwareID>` is a 4-byte random number to help consumer
distinguish from the new/old objects of a inventory item.
For example:
`server_board_slot_1_VR_2603`
The new Activation object and its related interfaces needs to
resides on a new objectPath, hence the softwareId is appended to
the path.

Test results:
- Build passed
- Successfully create firmware inventory entries
on Yosemite V4

[1]: https://github.com/openbmc/docs/blob/master/designs/code-update.md

Change-Id: Idebd7d013c82c60f08309a1860d5de1deeb3829a
Signed-off-by: Unive Tien <unive.tien.wiwynn@gmail.com>
Signed-off-by: Carter Chen <carter.chen.wiwynn@gmail.com>

show more ...

e26d13fc09-Mar-2025 Archana Kakani <archana.kakani@ibm.com>

oem-ibm: Maintain bootside Mapping and Set bios attribute

This commit adds code to maintain a mapping between running,
non-running and Temp, Perm side which would help the bmc
and remote PLDM termin

oem-ibm: Maintain bootside Mapping and Set bios attribute

This commit adds code to maintain a mapping between running,
non-running and Temp, Perm side which would help the bmc
and remote PLDM terminus determine at any point in time if the
code update was successful and that remote PLDM terminus knows
exactly which side it is running on.

In the event the code update failed, then for that case
the new added bios attribute "fw_boot_side", which will
be set in the event. If BMC tries to boot from the new
"Temp" side (other side), and if it fails, then BMC must
update fw_boot_side to "Perm".

Change-Id: I9f1edad1e36850742aba88d93f8cf0fc8b9d8c8d
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>

show more ...

a206b60421-Aug-2025 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

common: Add util APIs to find all the effecter IDs and PDRs

This util API is used to find all the effecter IDs based on
the pldm_entity given. Another util API is added to get all
the PDRs based on

common: Add util APIs to find all the effecter IDs and PDRs

This util API is used to find all the effecter IDs based on
the pldm_entity given. Another util API is added to get all
the PDRs based on the entity type.

Change-Id: I4f5b0ca05dfbad641f1ecfbaec5ebf63f54e500d
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>

show more ...

a9eacffb24-Aug-2025 George Liu <liuxiwei@ieisystem.com>

utils: optimize split function

- Initialize start to 0 to avoid uninitialized variable warning.
- Use emplace_back instead of push_back to construct strings in
place, improving performance and red

utils: optimize split function

- Initialize start to 0 to avoid uninitialized variable warning.
- Use emplace_back instead of push_back to construct strings in
place, improving performance and reducing unnecessary copies.

Change-Id: Ief54025f2114359e55bfc4312adc5220642f14a3
Signed-off-by: George Liu <liuxiwei@ieisystem.com>

show more ...

a8231fd106-Aug-2025 Sora Su <baxiche@gmail.com>

utils: Add support for D-Bus property signature as

Add support for setting a D-Bus property of type array of strings.
This is for recording the boot order on D-Bus.

Change-Id: Iaa22d867501f8a2a905b

utils: Add support for D-Bus property signature as

Add support for setting a D-Bus property of type array of strings.
This is for recording the boot order on D-Bus.

Change-Id: Iaa22d867501f8a2a905bad27f869dea2ba0917cd
Signed-off-by: Zoey YJ Chung <zoey.yj.chung.wiwynn@gmail.com>
Signed-off-by: Sora Su <baxiche@gmail.com>

show more ...

36ac559e16-Jun-2025 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

common: Add util APIs to find all the sensor IDs and PDRs

This util API is used to find all the sensor IDs based on
the pldm_entity given. Another util API is added to get all
the PDRs based on the

common: Add util APIs to find all the sensor IDs and PDRs

This util API is used to find all the sensor IDs based on
the pldm_entity given. Another util API is added to get all
the PDRs based on the entity type.

Change-Id: I5a82e64c664b3ff8b981e09abe8ee610ba5ae98a
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>

show more ...

581ac2b406-Aug-2025 Konstantin Aladyshev <aladyshev22@gmail.com>

common: utils: Don't output error on empty FRU field

According to the 'Platform Level Data Model (PLDM) for FRU Data
Specification':
"""
All strings shall be preceded by a length variable where a le

common: utils: Don't output error on empty FRU field

According to the 'Platform Level Data Model (PLDM) for FRU Data
Specification':
"""
All strings shall be preceded by a length variable where a length of
zero indicates that the field is not used.
"""
This means that the length of zero is legit and the parsing code
shouldn't output error on such FRU fields.

Change-Id: I73a72069549fe47071adec50d569122c9a0764d5
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>

show more ...

22bcb07d11-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 ...

70262ed702-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 ...

93ad795e15-May-2025 Manojkiran Eda <manojkiran.eda@gmail.com>

utils: Add unit tests for getNumPadBytes()

Change-Id: Iaafdfd4a9851dbf10e72e4a948f8527370634e2c
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

c40d4a6811-Mar-2025 Unive Tien <unive.tien.wiwynn@gmail.com>

requester: associate Entity Manager configs with MCTP endpoints

Currently, pldmd listens for new MCTP endpoint exposed by mctpd, but
they only shows their EID, Network Id, and SupportedMessageTypes,

requester: associate Entity Manager configs with MCTP endpoints

Currently, pldmd listens for new MCTP endpoint exposed by mctpd, but
they only shows their EID, Network Id, and SupportedMessageTypes, which
cannot fulfill some requirements, e.g., get the device's name or which
board it belongs to.

In openbmc, the additional information are exposed by Entity
Manager[1][2], so add this ability to `MctpDiscovery, it queries the
association between MCTP endpoints and Entity Manager configurations
from MCTP Reactor, when a new MCTP endpoint has been register by mctpd.

Added unit test for this commit to validate the association does work,
passed.

[1]: https://github.com/openbmc/entity-manager/blob/master/schemas/mctp.json
[2]: https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/69111

Change-Id: Ibf1717f1840e527f21bd8397e747ae121e2dcd25
Signed-off-by: Unive Tien <unive.tien.wiwynn@gmail.com>

show more ...


test/mocked_utils.hpp
types.hpp
utils.cpp
utils.hpp
/openbmc/pldm/fw-update/package_parser.cpp
/openbmc/pldm/libpldmresponder/fru.cpp
/openbmc/pldm/libpldmresponder/fru.hpp
/openbmc/pldm/libpldmresponder/platform.cpp
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Everest/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier1S4U/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier2U/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier4U/bios_attrs.json
/openbmc/pldm/oem/ibm/host-bmc/host_lamp_test.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_table.cpp
/openbmc/pldm/oem/ibm/test/host_bmc_lamp_test.cpp
/openbmc/pldm/platform-mc/event_manager.cpp
/openbmc/pldm/platform-mc/event_manager.hpp
/openbmc/pldm/platform-mc/numeric_sensor.cpp
/openbmc/pldm/platform-mc/numeric_sensor.hpp
/openbmc/pldm/platform-mc/test/event_manager_test.cpp
/openbmc/pldm/platform-mc/test/platform_manager_test.cpp
/openbmc/pldm/platform-mc/test/terminus_manager_test.cpp
/openbmc/pldm/pldmd/oem_ibm.hpp
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmtool/pldm_base_cmd.cpp
/openbmc/pldm/pldmtool/pldm_cmd_helper.cpp
/openbmc/pldm/pldmtool/pldm_cmd_helper.hpp
/openbmc/pldm/pldmtool/pldm_fw_update_cmd.cpp
/openbmc/pldm/requester/handler.hpp
/openbmc/pldm/requester/mctp_endpoint_discovery.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.hpp
/openbmc/pldm/requester/test/mctp_endpoint_discovery_test.cpp
5ea7237704-Feb-2025 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

tests: Migrate to placement_new from reinterpret casting

reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives
problems wi

tests: Migrate to placement_new from reinterpret casting

reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives
problems with type safety. Placement-new on the other-hand allows
to control the object storage while still properly instantiating
an object,keeping the behavior inside the C++ language
specification.

Change-Id: Ifab9ea58b932db11d7af0b9def119bed1bfdc44d
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>

show more ...

39d13b7730-Jan-2025 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

common : Migrate to placement_new from reinterpret casting

reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives
problems

common : Migrate to placement_new from reinterpret casting

reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives
problems with type safety. Placement-new on the other-hand allows
to control the object storage while still properly instantiating
an object,keeping the behavior inside the C++ language
specification.

Change-Id: I9147096ac333b2ec02f137b19d13566cc0ede105
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>

show more ...


/openbmc/pldm/.eslintignore
/openbmc/pldm/.linter-ignore
utils.cpp
/openbmc/pldm/fw-update/manager.hpp
/openbmc/pldm/host-bmc/test/meson.build
/openbmc/pldm/libpldmresponder/base.cpp
/openbmc/pldm/libpldmresponder/bios.cpp
/openbmc/pldm/libpldmresponder/bios_config.cpp
/openbmc/pldm/libpldmresponder/bios_enum_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_integer_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_string_attribute.cpp
/openbmc/pldm/libpldmresponder/fru.cpp
/openbmc/pldm/libpldmresponder/meson.build
/openbmc/pldm/libpldmresponder/pdr_state_effecter.hpp
/openbmc/pldm/libpldmresponder/platform.cpp
/openbmc/pldm/libpldmresponder/platform.hpp
/openbmc/pldm/libpldmresponder/platform_numeric_effecter.hpp
/openbmc/pldm/libpldmresponder/platform_state_effecter.hpp
/openbmc/pldm/libpldmresponder/platform_state_sensor.hpp
/openbmc/pldm/meson.build
/openbmc/pldm/meson.options
/openbmc/pldm/oem/ampere/event/oem_event_manager.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_dump.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_dump.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_lid.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pel.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_progress_src.hpp
/openbmc/pldm/platform-mc/dbus_to_terminus_effecters.cpp
/openbmc/pldm/platform-mc/dbus_to_terminus_effecters.hpp
/openbmc/pldm/platform-mc/event_manager.cpp
/openbmc/pldm/platform-mc/event_manager.hpp
/openbmc/pldm/platform-mc/manager.hpp
/openbmc/pldm/platform-mc/numeric_sensor.cpp
/openbmc/pldm/platform-mc/numeric_sensor.hpp
/openbmc/pldm/platform-mc/platform_manager.cpp
/openbmc/pldm/platform-mc/platform_manager.hpp
/openbmc/pldm/platform-mc/sensor_manager.cpp
/openbmc/pldm/platform-mc/sensor_manager.hpp
/openbmc/pldm/platform-mc/terminus.cpp
/openbmc/pldm/platform-mc/terminus.hpp
/openbmc/pldm/platform-mc/terminus_manager.cpp
/openbmc/pldm/platform-mc/terminus_manager.hpp
/openbmc/pldm/platform-mc/test/dbus_to_terminus_effecter_test.cpp
/openbmc/pldm/platform-mc/test/event_manager_test.cpp
/openbmc/pldm/platform-mc/test/host_effecter_jsons/good/dbus_to_terminus_effecter.json
/openbmc/pldm/platform-mc/test/host_effecter_jsons/malformed/dbus_to_terminus_effecter.json
/openbmc/pldm/platform-mc/test/host_effecter_jsons/no_json/dummy.json
/openbmc/pldm/platform-mc/test/meson.build
/openbmc/pldm/platform-mc/test/numeric_sensor_test.cpp
/openbmc/pldm/platform-mc/test/platform_manager_test.cpp
/openbmc/pldm/platform-mc/test/sensor_manager_test.cpp
/openbmc/pldm/platform-mc/test/terminus_manager_test.cpp
/openbmc/pldm/platform-mc/test/terminus_test.cpp
/openbmc/pldm/platform-mc/test/utils_test.hpp
/openbmc/pldm/pldmd/handler.hpp
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmtool/oem/ibm/pldm_oem_ibm.cpp
/openbmc/pldm/pldmtool/pldm_base_cmd.cpp
/openbmc/pldm/pldmtool/pldm_bios_cmd.cpp
/openbmc/pldm/pldmtool/pldm_fru_cmd.cpp
/openbmc/pldm/pldmtool/pldm_fw_update_cmd.cpp
/openbmc/pldm/pldmtool/pldm_platform_cmd.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.hpp
/openbmc/pldm/requester/test/mock_mctp_discovery_handler_intf.hpp
/openbmc/pldm/softoff/softoff.cpp
/openbmc/pldm/utilities/requester/set_state_effecter.cpp
/openbmc/pldm/utilities/requester/set_state_effecter_async.cpp
8fa40dbe02-Apr-2024 Chau Ly <chaul@amperecomputing.com>

platform-mc: Call MCTP `.Recover` in the request timeout

In the current implementation, `pldmd` will register the request
messages to sendRecvPldmMsg. This API will returns the return error code
fro

platform-mc: Call MCTP `.Recover` in the request timeout

In the current implementation, `pldmd` will register the request
messages to sendRecvPldmMsg. This API will returns the return error code
from sendRecvPldmMsgOverMctp directly to the caller but not handle the
timeout error code.
From Mctp codeConstruct version 2.0 [1], the MCTP D-Bus interface
`au.com.codeconstruct.MCTP.Endpoint1` supports `.Recover` method to
recover the communication to one terminus. The `pldmd` should call this
method in time out.

[1] https://github.com/CodeConstruct/mctp/blob/v2.0/docs/endpoint-recovery.md#recover-method-design-considerations

Supports handling the timeout error code by calling to the `.Recover`
method under `au.com.codeconstruct.MCTP.Endpoint1` brought by mctpd.
This action will check if the endpoint is still available. pldm will
handle accordingly by continuing to communicate or removing the endpoint
based on mctpd upcoming behaviors.

Signed-off-by: Chau Ly <chaul@amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I71cc33a3630b5adbd65c485fe98148669ce635f6

show more ...


utils.cpp
utils.hpp
/openbmc/pldm/fw-update/inventory_manager.cpp
/openbmc/pldm/fw-update/manager.hpp
/openbmc/pldm/host-bmc/dbus/asset.cpp
/openbmc/pldm/host-bmc/dbus/asset.hpp
/openbmc/pldm/host-bmc/dbus/availability.cpp
/openbmc/pldm/host-bmc/dbus/availability.hpp
/openbmc/pldm/host-bmc/dbus/board.hpp
/openbmc/pldm/host-bmc/dbus/chassis.cpp
/openbmc/pldm/host-bmc/dbus/chassis.hpp
/openbmc/pldm/host-bmc/dbus/connector.hpp
/openbmc/pldm/host-bmc/dbus/custom_dbus.cpp
/openbmc/pldm/host-bmc/dbus/custom_dbus.hpp
/openbmc/pldm/host-bmc/dbus/fabric_adapter.hpp
/openbmc/pldm/host-bmc/dbus/inventory_item.cpp
/openbmc/pldm/host-bmc/dbus/inventory_item.hpp
/openbmc/pldm/host-bmc/dbus/panel.hpp
/openbmc/pldm/host-bmc/dbus/power_supply.hpp
/openbmc/pldm/host-bmc/dbus/vrm.hpp
/openbmc/pldm/host-bmc/dbus_to_event_handler.cpp
/openbmc/pldm/host-bmc/dbus_to_terminus_effecters.cpp
/openbmc/pldm/host-bmc/host_pdr_handler.cpp
/openbmc/pldm/host-bmc/host_pdr_handler.hpp
/openbmc/pldm/host-bmc/test/meson.build
/openbmc/pldm/libpldmresponder/meson.build
/openbmc/pldm/oem/ampere/event/oem_event_manager.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pel.cpp
/openbmc/pldm/platform-mc/manager.hpp
/openbmc/pldm/platform-mc/sensor_manager.cpp
/openbmc/pldm/platform-mc/sensor_manager.hpp
/openbmc/pldm/platform-mc/terminus_manager.cpp
/openbmc/pldm/platform-mc/terminus_manager.hpp
/openbmc/pldm/platform-mc/test/event_manager_test.cpp
/openbmc/pldm/platform-mc/test/platform_manager_test.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.hpp
/openbmc/pldm/requester/test/mctp_endpoint_discovery_test.cpp
/openbmc/pldm/requester/test/mock_mctp_discovery_handler_intf.hpp
549e4bc805-Mar-2024 Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>

common: utils: Add get ancestors mapper function

Add get ancestors mapper function. A use case is getting an inventory
item's parent path for its board or chassis[1][2].

[1]: https://gerrit.openbmc

common: utils: Add get ancestors mapper function

Add get ancestors mapper function. A use case is getting an inventory
item's parent path for its board or chassis[1][2].

[1]: https://gerrit.openbmc.org/c/openbmc/pldm/+/73512/46/fw-update/inventory_item_manager.cpp#83
[2]: https://gerrit.openbmc.org/c/openbmc/pldm/+/67050/27/oem/meta/libpldmresponder/oem_meta_file_io_type_post_code.cpp#29

Change-Id: I7a25c8e11f7662fd07147b7da3b8db9fbff5e00e
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>

show more ...

8b169dc524-Nov-2024 Unive Tien <unive.tien.wiwynn@gmail.com>

fw_update: InventoryManager: Add Downstream Devices Support

In DSP0267_1.1.0, a Firmware Device can supports one or more
Downstream Devices to perform get firmware version or firmware
update. Add di

fw_update: InventoryManager: Add Downstream Devices Support

In DSP0267_1.1.0, a Firmware Device can supports one or more
Downstream Devices to perform get firmware version or firmware
update. Add discovery of Downstream Devices, query the Downstream
Devices Descriptor if the Firmware Device support it.

The code is developed based on DSP0267_1.1.0 Section 10.3
QueryDownstreamDevices command format, Section 10.4
QueryDownstreamIdentifiers command format.

Tested: Add unit tests for the new command handlers.

Change-Id: Iad28b898b5a0799b2b145d38958bba78e9719f4e
Signed-off-by: Unive Tien <unive.tien.wiwynn@gmail.com>

show more ...

12345