| 9131a3e0 | 22-Feb-2026 |
Alexander Hansen <alexander.hansen@9elements.com> |
meson: Add packageconfig for libpldm++
libpldm++ needs a packageconfig (.pc) file for yocto recipes to find it as a dependency.
Add one here similar to how it's done for libpldm.
Also adjust the p
meson: Add packageconfig for libpldm++
libpldm++ needs a packageconfig (.pc) file for yocto recipes to find it as a dependency.
Add one here similar to how it's done for libpldm.
Also adjust the packageconfig description for libpldm to reflect the current scope of the library.
Tested: yocto image build succeeds when libpldm++ is configured as a dependency for phosphor-software-manager.
Fixes: d6a957481638 ("bindings: C++ binding for parsing PLDM fw package") Change-Id: I3c3ebbdb57d68b81c0fbd55ff110768f50a94446 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| dde71586 | 22-Feb-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
transport: Eliminate poll guards from headers
We forward-declare struct pollfd so there's no harm in exposing the functions. The definition of struct pollfd is then a problem for the implementation.
transport: Eliminate poll guards from headers
We forward-declare struct pollfd so there's no harm in exposing the functions. The definition of struct pollfd is then a problem for the implementation. If it's not available, expose a symbol returning an error.
Fixes: 4ad11f63cf49 ("meson: Simplify testing for poll.h") Change-Id: Ieb8ddb71af9b442cd1d353929d7b0f5bf2f61cc3 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| 4ad11f63 | 19-Feb-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
meson: Simplify testing for poll.h
Unconditionally define HAVE_POLL_H to the result of the cc.has_header() query.
Change-Id: I1a9b654ae6a071aaa4b45500b7ee62ca0dbf85b0 Signed-off-by: Andrew Jeffery
meson: Simplify testing for poll.h
Unconditionally define HAVE_POLL_H to the result of the cc.has_header() query.
Change-Id: I1a9b654ae6a071aaa4b45500b7ee62ca0dbf85b0 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| 6b8f2646 | 12-Dec-2025 |
Vishnunithyasoundhar S <vishnunithyasoundhar.s@intel.com> |
transport: af-mctp: Qualify MCTP TID mapping with target network
Add network ID support to send pldm messages on MCTP networks other than the default Network ID MCTP_NET_ANY.
Affects only af-mctp t
transport: af-mctp: Qualify MCTP TID mapping with target network
Add network ID support to send pldm messages on MCTP networks other than the default Network ID MCTP_NET_ANY.
Affects only af-mctp transport.
Change-Id: I3b0a595ad3d18fd2b212dde4d4508ba25d91f191 Signed-off-by: Vishnunithyasoundhar S <vishnunithyasoundhar.s@intel.com> Co-developed-by: Arun P. Mohanan <arun.p.m@intel.com>
show more ...
|
| d6a95748 | 06-Jan-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
bindings: C++ binding for parsing PLDM fw package
This binding enables convenient parsing of the PLDM fw update package in C++ code. The entire package header is parsed and can be queried.
It has s
bindings: C++ binding for parsing PLDM fw package
This binding enables convenient parsing of the PLDM fw update package in C++ code. The entire package header is parsed and can be queried.
It has since been modified to remove exceptions and rely less on mutable instance variables.
The ABI compatibility of the C++ bindings is controlled in the same way as the C code, with the LIBPLDM_ABI_* annotations on all public functions.
The ABI stability is provided by using growable structs. See [2] for an explanation.
When DMTF adds new data members to the firmware update package, these can simply be appended to the end of the growable struct.
How can applications safely handle those structs?
Consider Application A1, compiled against libpldm++ version N-1 and linked against libpldm++ version N.
Assume libpldm++ version N has a new field as part of a given struct.
A1 will then receive a structure larger than what it expects and only access a subset of the fields within.
Consider Application A1, compiled against libpldm++ version N and linked against libpldm++ version N-1.
A1 will receive a structure smaller than what it expects. A1 must always check for existence of any struct member which was introduced later than DSP0267 version 1.0.0 [3].
Applications should never by themselves create instances of the structs provided by this API since the version of libpldm++ they are linked against may be lower and may not have a constructor for the version of that struct the application is compiled against.
References: [1] https://github.com/openbmc/pldm/blob/a1871174860e8927d19a0d57ac4cf9d55b0514ca/fw-update/package_parser.cpp [2] https://github.com/lotem/mighty_struct/blob/master/mighty_struct_explained.md [3] https://www.dmtf.org/dsp/DSP0267
Change-Id: Ib6cbff302be0e52d30125bcf08687ba42f7fc93f Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| 844eff4d | 09-Feb-2026 |
Metha, Mayank <mayank.metha@intel.com> |
dsp: firmware_update: Add Update Security Revision from DSP0267 v1.3.0
Command is being added from the Update Agent's perspective. Some Firmware Devices require this command to help upgrade their Se
dsp: firmware_update: Add Update Security Revision from DSP0267 v1.3.0
Command is being added from the Update Agent's perspective. Some Firmware Devices require this command to help upgrade their Security Revision Number after the Firmware Update is deployed to prevent Firmware Downgrade or Firmware Rollback.
Change-Id: Ie915b1b85b5cf94048e29b2cb67db4a77548f43c Signed-off-by: Metha, Mayank <mayank.metha@intel.com>
show more ...
|
| c6837f00 | 16-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
include: Remove libpldm/utils.h
At this point it only existed to include other headers. Users should rather include the necessary headers directly.
Change-Id: Ie0fbf9caccea0dfe75be0127e675e3949dc52
include: Remove libpldm/utils.h
At this point it only existed to include other headers. Users should rather include the necessary headers directly.
Change-Id: Ie0fbf9caccea0dfe75be0127e675e3949dc52d61 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| ec500f37 | 23-Jan-2026 |
Patrick Williams <patrick@stwcx.xyz> |
meson: reformat with meson formatter
Apply the `meson format` results.
Change-Id: I27a1db143cecac594b9e6f173c80f87bc0d39786 Signed-off-by: Patrick Williams <patrick@stwcx.xyz> |
| 93a997d2 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Remove is_transfer_flag_valid() from the public API
It has been deprecated since prior to v0.13.0. Remove the LIBPLDM_ABI_DEPRECATED annotation, hiding the symbol externally. It's now only av
utils: Remove is_transfer_flag_valid() from the public API
It has been deprecated since prior to v0.13.0. Remove the LIBPLDM_ABI_DEPRECATED annotation, hiding the symbol externally. It's now only available internal to the library.
Change-Id: Ie0b63454db3fd11ca87874e2eb5c27171c06d6f1 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| bc19d9c9 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Remove is_time_legal() from the public API
It has been deprecated since prior to v0.13.0. Remove the LIBPLDM_ABI_DEPRECATED annotation, hiding the symbol externally. It's now only available i
utils: Remove is_time_legal() from the public API
It has been deprecated since prior to v0.13.0. Remove the LIBPLDM_ABI_DEPRECATED annotation, hiding the symbol externally. It's now only available internal to the library.
Change-Id: I81567279d13b6781aae856e2604451e65bfda6fd Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| 4e3d5725 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Migrate pldm_base_ver2str() to base
The ver32 type is defined in the base specification (DSP0240). Associated functions should also be defined in the base module.
Change-Id: I71e06b3b1be83fe
utils: Migrate pldm_base_ver2str() to base
The ver32 type is defined in the base specification (DSP0240). Associated functions should also be defined in the base module.
Change-Id: I71e06b3b1be83fe512f573b9f2227e2a17a93c63 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| ea8dd96c | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Rename ver2str() to pldm_base_ver2str()
Tidy-up the un-prefixed namespace.
Change-Id: Iaf51d3ef0f38fda26a7a27bdd3871547f8f425c6 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| 7b66bcb2 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Split out BCD translation unit
Chip away at removing "utils".
Change-Id: I5f31cb13e9325cffe47bc85ea55eac0cf9289ec8 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| 5da45e59 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Rename dec2bcd32() to pldm_bcd_dec2bcd32()
Tidy-up the un-prefixed namespace.
Change-Id: I05355c56cf10e965b01431aa569d14cb5827438a Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| 2a985a65 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Rename bcd2dec32() to pldm_bcd_bcd2dec32()
Tidy-up the un-prefixed namespace.
Change-Id: I95998b308b829edb783e7437517ba1984b87709e Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| 9ed3391e | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Rename dec2bcd16() to pldm_bcd_dec2bcd16()
Tidy-up the un-prefixed namespace.
Change-Id: I1a8887a2fd6c11b84f457afc7cf4194a920691cd Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| edc1b1f5 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Rename bcd2dec16() to pldm_bcd_bcd2dec16()
Tidy-up the un-prefixed namespace.
Change-Id: Idaf648c681288f73b9898d845f7a146a460d4f4d Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| fccf4b65 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Rename dec2bcd8() to pldm_bcd_dec2bcd8()
Tidy-up the un-prefixed namespace.
Change-Id: I74db956b9dbb48d86c3560d0b5379c5cb09ef240 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| 65b74a74 | 12-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Rename bcd2dec8() to pldm_bcd_bcd2dec8()
Tidy-up the un-prefixed namespace.
Change-Id: I6dea486e3ee08cd9a9c4df675e6ebe5974ccc062 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| fd28f9cb | 11-Jan-2026 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
utils: Split out EDAC translation unit
Chip away at removing "utils".
Change-Id: I361d7f779e1077b16e83c75d6b4d86814bb4dcad Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
| f4d88103 | 19-Nov-2025 |
Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com> |
msgbuf: Add pldm_msgbuf_insert_real32
Support from extracting real32_t data is already present, but the insert functionality is missing.
This change is required for encoding platform sensor data in
msgbuf: Add pldm_msgbuf_insert_real32
Support from extracting real32_t data is already present, but the insert functionality is missing.
This change is required for encoding platform sensor data in the msgbuf.
Change-Id: Iff397116d15f23e51c472b8e478b4a2511ce0692 Signed-off-by: Roger G. Coscojuela <roger.gili-coscojuela@sipearl.com>
show more ...
|
| bf554b2a | 25-Aug-2025 |
Pavithra Barithaya <pavithrabarithaya07@gmail.com> |
pdr: Stabilize APIs for removing records
- pldm_entity_association_pdr_remove_contained_entity() - pldm_entity_association_tree_delete_node() - pldm_pdr_delete_by_effecter_id() - pldm_pdr_delete_by_
pdr: Stabilize APIs for removing records
- pldm_entity_association_pdr_remove_contained_entity() - pldm_entity_association_tree_delete_node() - pldm_pdr_delete_by_effecter_id() - pldm_pdr_delete_by_sensor_id() - pldm_pdr_remove_fru_record_set_by_rsi()
Use of all these APIs is demonstrated in [1].
[1]: https://gerrit.openbmc.org/c/openbmc/pldm/+/79879
Change-Id: I4dc97c4f5b60621b281d97feab79b3349432b598 Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com> Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| 06dcea74 | 29-Oct-2025 |
Chau Ly <chaul@amperecomputing.com> |
msgbuf: platform: Correct pldm_msgbuf_extract_effecter_data
`pldm_msgbuf_extract_effecter_data` should call to `pldm__msgbuf_extract_effecter_data` instead of `pldm__msgbuf_extract_range_field_forma
msgbuf: platform: Correct pldm_msgbuf_extract_effecter_data
`pldm_msgbuf_extract_effecter_data` should call to `pldm__msgbuf_extract_effecter_data` instead of `pldm__msgbuf_extract_range_field_format`. This commit corrects the function to call to the designated one.
Fixes: d4878cd ("pdr: Add decode_numeric_effecter_pdr_data()") Change-Id: I1bc9ed88eb291368c4fd96560bf089e597d75b55 Signed-off-by: Chau Ly <chaul@amperecomputing.com>
show more ...
|
| 9f6b9b3a | 29-Sep-2025 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
transport: Fix msec overflow test
The value 1000 was left in the wrong spot, leading to an incorrect inversion of the msec calculation when testing for overflow. An alternative is to reduce it to 1,
transport: Fix msec overflow test
The value 1000 was left in the wrong spot, leading to an incorrect inversion of the msec calculation when testing for overflow. An alternative is to reduce it to 1, but that correlates poorly with the expression used by timeval_to_msec().
Reported-by: Milton Miller <mdmii@outlook.com> Fixes: 69b5a9cde88b ("transport: Improve time validation in pldm_transport_send_recv_msg()") Change-Id: I59816c6f2b773dfd076e393455394f08cfe67198 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
| 69b5a9cd | 28-Sep-2025 |
Amithash Prasad <amithash@meta.com> |
transport: Improve time validation in pldm_transport_send_recv_msg()
There is at least one system where the current value returned by CLOCK_MONOTONIC is 2589793 which fails the overflow test in `tim
transport: Improve time validation in pldm_transport_send_recv_msg()
There is at least one system where the current value returned by CLOCK_MONOTONIC is 2589793 which fails the overflow test in `timeval_is_valid`. Upon close inspecting we dont really want to test the actual end time but rather the difference (remaining) since the real risk we are trying to avoid is overflowing when the call to `timeval_to_msec()` is made.
So, move the check to test `remaining` instead of `end`.
Change-Id: If6533855025ff3ba0be19bad791f58ca812b80a7 Fixes: abaf61f45e2a ("transport: Prevent sticking in waiting for response") Signed-off-by: Amithash Prasad <amithash@meta.com> Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|