8b169dc5 | 24-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 ...
|
3012b632 | 22-Aug-2024 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Format meson files with meson.format
Meson 1.5.0 introduced a new feature to format all the meson files. Formatting all the meson files is now as simple as running `meson format -i -r` command in th
Format meson files with meson.format
Meson 1.5.0 introduced a new feature to format all the meson files. Formatting all the meson files is now as simple as running `meson format -i -r` command in the repository root folder.
more details : https://mesonbuild.com/Commands.html#format
Change-Id: I9c5468cc502ae78b7a055e2de2a10296930cb9ec Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
f106a2c8 | 25-Jul-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
fw-update: Break circular dependency
``` In file included from ../pldmd/pldmd.cpp:2: In file included from ../common/flight_recorder.hpp:3: In file included from ../common/utils.hpp:15: In file incl
fw-update: Break circular dependency
``` In file included from ../pldmd/pldmd.cpp:2: In file included from ../common/flight_recorder.hpp:3: In file included from ../common/utils.hpp:15: In file included from ../subprojects/nlohmann_json/single_include/nlohmann/json.hpp:29: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/memory:78: /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:91:16: error: invalid application of 'sizeof' to an incomplete type 'pldm::fw_update::Activation' 91 | static_assert(sizeof(_Tp)>0, | ^~~~~~~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<pldm::fw_update::Activation>::opera tor()' requested here 398 | get_deleter()(std::move(__ptr)); | ^ ../fw-update/update_manager.hpp:46:14: note: in instantiation of member function 'std::unique_ptr<pldm::fw_update::Activation>::~unique_ptr' requested here 46 | explicit UpdateManager( | ^ ../fw-update/update_manager.hpp:33:7: note: forward declaration of 'pldm::fw_update::Activation' 33 | class Activation; | ^ In file included from ../pldmd/pldmd.cpp:2: In file included from ../common/flight_recorder.hpp:3: In file included from ../common/utils.hpp:15: In file included from ../subprojects/nlohmann_json/single_include/nlohmann/json.hpp:29: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/memory:78: /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:91:16: error: invalid application of 'sizeof' to an incomplete type 'pldm::fw_update::ActivationProgress' 91 | static_assert(sizeof(_Tp)>0, | ^~~~~~~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<pldm::fw_update::ActivationProgress >::operator()' requested here 398 | get_deleter()(std::move(__ptr)); | ^ ../fw-update/update_manager.hpp:46:14: note: in instantiation of member function 'std::unique_ptr<pldm::fw_update::ActivationProgress>::~unique_ptr' requested here 46 | explicit UpdateManager( | ^ ../fw-update/update_manager.hpp:34:7: note: forward declaration of 'pldm::fw_update::ActivationProgress' 34 | class ActivationProgress; | ^ ```
Change-Id: I2820cbe134d1f37a43e6a5056eed87dde6e63b08 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
ace4e14d | 24-Apr-2024 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Deprecate the support for x86 sdk
OpenBMC as a project has moved away from using yocto x86 sdks for unit testing. Instead now the preferred way to build and test code is by two ways:
1. Leveraging
Deprecate the support for x86 sdk
OpenBMC as a project has moved away from using yocto x86 sdks for unit testing. Instead now the preferred way to build and test code is by two ways:
1. Leveraging the meson subproject support 2. Using openbmc docker container
Since x86 sdks needed some weird hacks in the code base like figuring out the linker arguments ourselves & running custom bash commands from the meson build files. Also with changing yocto code base, its a large maintainer burden to make sure this support works.
Tested: Code builds & unit tests are passed with both the approaches mentioned above.
Change-Id: Iaf55e2c003ffd9ee1a295de5bdfd14d81222e94b Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
cf772846 | 07-Dec-2023 |
Patrick Williams <patrick@stwcx.xyz> |
meson: adjust nlohmann-json dependency
Simplify the meson dependency for nlohmann-json, use the consistent dependency name, and align the wrap file name with other repositories.
Signed-off-by: Patr
meson: adjust nlohmann-json dependency
Simplify the meson dependency for nlohmann-json, use the consistent dependency name, and align the wrap file name with other repositories.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I3a682a3e07e38d0a1bfe35858e24f1bb74b4ec34
show more ...
|
87bfacd2 | 29-Nov-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer retur
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer return true for auto features. Instead, the expectation is to use `allowed()` which is true for both enabled and auto.
Switch all uses of `enabled` to `allowed`.
Change-Id: I794c658531483266bfce6f9b28127a166ed01490 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
1ed5f7a6 | 21-May-2023 |
Rashmica Gupta <rashmica@linux.ibm.com> |
pldm: Convert to using libpldm transport APIs
A significant amount of logic can be removed by exploiting the new transport APIs provided by libpldm. Switch the pldm repository over to use these by i
pldm: Convert to using libpldm transport APIs
A significant amount of logic can be removed by exploiting the new transport APIs provided by libpldm. Switch the pldm repository over to use these by introducing an RAII wrapper for the APIs. The current stance is to continue using the legacy mctp-demux transport implementation, but we also provide a build option to switch to the AF_MCTP transport.
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: I366f079082b102cfc0e90db0f62208581eb8693e Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com> Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com> Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
2abbce76 | 17-Oct-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
InstanceIdDb: Move header from pldmd/ to common/
The header is used across all executables produced by the project, which makes it "common".
Change-Id: I022b179fad1de8dba2ef39fd33bc240ec73a2d33 Sig
InstanceIdDb: Move header from pldmd/ to common/
The header is used across all executables produced by the project, which makes it "common".
Change-Id: I022b179fad1de8dba2ef39fd33bc240ec73a2d33 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
48f4f8e3 | 10-Jul-2023 |
Pavithra Barithaya <pavithra.b@ibm.com> |
clang-error:fix clang-diagnostic-potentially-evaluated-expression error
This error is generated when expression with side effects is evaluated despite being used as an operand to 'typeid'.
Change-I
clang-error:fix clang-diagnostic-potentially-evaluated-expression error
This error is generated when expression with side effects is evaluated despite being used as an operand to 'typeid'.
Change-Id: I72daa47f1c5b05b466e1635fe6d547db4b1da34b Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
show more ...
|
a330b2f0 | 04-May-2023 |
Andrew Jeffery <andrew@aj.id.au> |
pldmd: Migrate instance ID allocation to pldm::InstanceIdDb
This removes use of `pldm::dbus_api::Requester` from around the code-base. This makes progress towards removing the DBus API entirely once
pldmd: Migrate instance ID allocation to pldm::InstanceIdDb
This removes use of `pldm::dbus_api::Requester` from around the code-base. This makes progress towards removing the DBus API entirely once all its consumers are converted to the libpldm instance ID APIs.
There was never a good reason for the code using the class to have knowledge that it was related to DBus anyway, so this is, in-effect, a double clean up improving separation of concerns.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I2d9397cae1b3c8c251c32e36ca520aad9c9b8cf6
show more ...
|
7c1dc7ea | 28-Apr-2023 |
Andrew Jeffery <andrew@aj.id.au> |
pldmd: move to libpldm instance ID alloc/free
Refactor the dbus_api::Requester class to be implemented in terms of libpldm's instance ID database. To make that easier to deal with we introduce a lig
pldmd: move to libpldm instance ID alloc/free
Refactor the dbus_api::Requester class to be implemented in terms of libpldm's instance ID database. To make that easier to deal with we introduce a light-weight RAII C++ binding along with a helper class for unit tests.
Change-Id: Ia03de8245dfb114e6266ba36dcf26ca4398a4ce0 Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
6da4f91b | 10-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-16 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-16 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: I61b093f75011417cc9c7acf9605200f4fa429bac Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
49cfb138 | 02-Mar-2023 |
Riya Dixit <riyadixitagra@gmail.com> |
PLDM: Implementing Phosphor-Logging/LG2 logging
This commit adds changes in PLDM for implementing structured LG2 logging, thereby moving away from std::cout/cerr practice of logging which are output
PLDM: Implementing Phosphor-Logging/LG2 logging
This commit adds changes in PLDM for implementing structured LG2 logging, thereby moving away from std::cout/cerr practice of logging which are output streams and not logging mechanism.
PLDM now can make use of lg2 features like accurate CODE LINE Number and CODE_FUNCTION Name and better detailing in json object values which can be used in log tracking.
More detailed logging change: https://gist.github.com/riyadixitagra/c251685c1ba84248181891f7bc282395
Tested: Ran a power off, on, cycle, and reset-reload.
Change-Id: I0485035f15f278c3fd172f0581b053c1c37f3a5b Signed-off-by: Riya Dixit <riyadixitagra@gmail.com>
show more ...
|
c453e164 | 21-Dec-2022 |
George Liu <liuxiwei@inspur.com> |
libpldm: Correct reference to libpldm header files
When relying on header files from external libraries, #include<> should be used instead of #include "" to avoid ambiguity.
Tested: Built pldm succ
libpldm: Correct reference to libpldm header files
When relying on header files from external libraries, #include<> should be used instead of #include "" to avoid ambiguity.
Tested: Built pldm successfully after enabling ibm-oem
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: Ia1997de7e0f61564055bbd837f4e24c8f14e55a5
show more ...
|
06fca441 | 17-Aug-2022 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Add missing dependencies
There are multiple places where the dependencies are explicitly missing & its working as of today because of the way the code was organised.
The intent behind this commit i
Add missing dependencies
There are multiple places where the dependencies are explicitly missing & its working as of today because of the way the code was organised.
The intent behind this commit is add the missing dependencies explicitly. This commit fixes : 1. common tests depends on header files in common folder, but it is not added as a dependency, fixing this by adding libpldmutils as the dependency. 2. fw-update tests depends on header files in common folder as well, but it is not added as a dependency , fixing this by adding libpldmutils as the dependency. 3. requester test code includes header files in the pldmd folder, but that is not added as a dependency as well, fixing this by adding include_directories and making it a dependency.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I102ea5096dd9edfc876fd60df7628fc061e085f2
show more ...
|
9fffea2c | 27-Oct-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Change the send Buffer size dynamically
On a Linux system the send buffer size has defaulted to around 90k, and when a pldm message is sent via the pldm_send() that is bigger than 90k, we get an err
Change the send Buffer size dynamically
On a Linux system the send buffer size has defaulted to around 90k, and when a pldm message is sent via the pldm_send() that is bigger than 90k, we get an error ENOBUFS (No buffer space avilable).
This commit would dynamically change the socket parameter (SO_SNDBUF) to set the new maximum socket send buffer size so that we can successfully send the message.
Tested By:
1. hard coded the current buffer size value to 10 and forced the buffer size to be increase for mutiple commands & was able to power on the host with out any problems.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I5f7a3948ea019b4dc983cf5e1926cfc128c02084
show more ...
|
1695b66d | 24-Nov-2021 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
fw-update: tests: add missing dependency
The tests added with ef90b0d3b have an unlisted dependency on gmock, which breaks the build when the gtest dependency is satisfied using the suproject. Add
fw-update: tests: add missing dependency
The tests added with ef90b0d3b have an unlisted dependency on gmock, which breaks the build when the gtest dependency is satisfied using the suproject. Add the missing dependency.
Change-Id: I352c8677c41d3763e252c92f590b1cbf68a5a612 Fixes: ef90b0d3b882766969afa2c2c430e1902bbc5e57 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
b7e083ea | 26-Oct-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update : Optimize passing infra parameters
Refactor UpdateManager and DeviceUpdater to optimize passing the D-Bus event loop handle, handler for requester and instance ID requester.
Signed-off-b
fw-update : Optimize passing infra parameters
Refactor UpdateManager and DeviceUpdater to optimize passing the D-Bus event loop handle, handler for requester and instance ID requester.
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: I1860ffc49513d941af372423a197b1d42eda6e36
show more ...
|
4d8d5770 | 17-Aug-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement firmware UpdateManager
The UpdateManager parses the PLDM package and co-ordinates with the DeviceUpdater to update all the PLDM enabled firmware devices.
Tested: Completed firm
fw-update: Implement firmware UpdateManager
The UpdateManager parses the PLDM package and co-ordinates with the DeviceUpdater to update all the PLDM enabled firmware devices.
Tested: Completed firmware update using PLDM for an FD
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Ia87675e0a88cb1f72ad82934e539739db193b9f6
show more ...
|
ef90b0d3 | 17-Aug-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement DeviceUpdater
The DeviceUpdater class implements the firmware update of a FD. The firmware update flow is implemented as per DSP0267_1.0.0 and DSP0267_1.0.1. All the components
fw-update: Implement DeviceUpdater
The DeviceUpdater class implements the firmware update of a FD. The firmware update flow is implemented as per DSP0267_1.0.0 and DSP0267_1.0.1. All the components applicable for the FD is updated. This patch doesn't handle error response codes and the further actions to the firmware update flow. The optional features of package like package data and device metadata is not included in this patch. Timeouts and retries of firmware update commands is not included in this patch.
Tested: Added unit tests for the firmware update commands where PLDM UA is the responder like RequestFirmwareData, TransferComplete, VerifyComplete and ApplyComplete.
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: If686ca005230d6debc0a6fd2ee73184bd3c28ee1
show more ...
|
1630f399 | 29-Jun-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement firmware update package parser
PackageParser implements parsing the common elements across version 1 and version 2 of the PackageHeader. PackageParserV1 handles parsing the pack
fw-update: Implement firmware update package parser
PackageParser implements parsing the common elements across version 1 and version 2 of the PackageHeader. PackageParserV1 handles parsing the package header version 1 as defined in DSP0267_1.0.0 and DSP0267_1.0.1.
Tested: Unit tests added
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Iddabd435755f462c042a85a286b1b0a50eb346b1
show more ...
|
75356c1a | 20-Jun-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement inventory manager
1. Discover firmware devices that implement fw update specification 2. Implements request/response for QueryDeviceIdentifiers command 3. Implements request/res
fw-update: Implement inventory manager
1. Discover firmware devices that implement fw update specification 2. Implements request/response for QueryDeviceIdentifiers command 3. Implements request/response for GetFirmwareParameters command 4. Enumerates device identifiers and component information to be used for fw-update
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Ifa035c801a7c62bac9a7e947ed4a43d48f85a4ed
show more ...
|