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 ...
|
16c2a0a0 | 16-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: I8c84201cb2343a8c8a5507a49de0721a1bee7063 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
61be7347 | 30-Jul-2024 |
Patrick Williams <patrick@stwcx.xyz> |
stdexec: pass scheduler to default_task_context
The latest version of stdexec[1] does not allow a default constructed `default_task_context` but requires a scheduler to be passed in. The previous d
stdexec: pass scheduler to default_task_context
The latest version of stdexec[1] does not allow a default constructed `default_task_context` but requires a scheduler to be passed in. The previous default was to use an `inline_scheduler` so explicitly pass that in.
[1]: https://github.com/openbmc/sdbusplus/commit/5cee91570368554a7fcbbd9418f65efda449fa70
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ib210b42ba5272e0176cd4423b156ca6372115a55
show more ...
|
c14fb4bd | 25-Jul-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
pldm: Drop pessimizing moves
Fixes issues such as:
``` ../host-bmc/host_pdr_handler.cpp:684:9: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move] 684 | st
pldm: Drop pessimizing moves
Fixes issues such as:
``` ../host-bmc/host_pdr_handler.cpp:684:9: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move] 684 | std::move(std::vector<uint8_t>(1, PLDM_PDR_ENTITY_ASSOCIATION)), | ^ ../host-bmc/host_pdr_handler.cpp:684:9: note: remove std::move call here 684 | std::move(std::vector<uint8_t>(1, PLDM_PDR_ENTITY_ASSOCIATION)), | ^~~~~~~~~~ ~ ```
Change-Id: Id26f0d6fc21837e1eb76ae3c294c222782a4e69f Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
6b901e4a | 10-Jul-2024 |
Thu Nguyen <thu@os.amperecomputing.com> |
requester: Use return code instead of throwing exception
The coroutine API should only forward error code and response data to the caller when sends/receives PLDM message instead check the response
requester: Use return code instead of throwing exception
The coroutine API should only forward error code and response data to the caller when sends/receives PLDM message instead check the response and thrown exception.
The `sendRecvMsg` API will response tuple of error code, response and response length as below:
+ [error_code, _, _] if registerRequest fails with `error_code`. + [PLDM_ERROR_NOT_READY, nullptr, 0] if the request is timed out. + [PLDM_SUCCESS, resp, len] if succeeded.
Signed-off-by: Khang Nguyen Duy <khangng@amperecomputing.com> Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: Id8262d147e9fed50af8f55f1c611a3a3b153b6e3
show more ...
|
a85c69d3 | 09-Jan-2024 |
Gilbert Chen <gilbert.chen@arm.com> |
requester: Add coroutine API
Added coroutine API to Handler using stdexec to help send and receive messages in one function call.
For example, to get all PDRs from terminus needs multiple getPDR co
requester: Add coroutine API
Added coroutine API to Handler using stdexec to help send and receive messages in one function call.
For example, to get all PDRs from terminus needs multiple getPDR commands. Except first getPDR commands, the following getPDR command request data(e.g. dataTransferHandle) needs the previous getPDR command response data(e.g. nextDataTransferHandle). By using C++ co_await, the code to get all PDRs can straightforward be implemented by a while loop.
Pseudo code example: do { auto rc = co_await getPDR(dataTransferHndl, ...);
// update dataTransferHndl for next getPDR command dataTransferHndl = nextDataTransferHndl;
} while(...);
Signed-off-by: Gilbert Chen <gilbert.chen@arm.com> Signed-off-by: Khang Nguyen <khangng@amperecomputing.com> Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: I7b47d15ac15f6ae661ec94dca6a281844b939a44
show more ...
|
44524a5f | 14-Feb-2022 |
Gilbert Chen <gilbert.chen@arm.com> |
requester: Modified MctpDiscovery class
Modified MctpDiscovery class to take list of managers instead of single fwManager. The change is for adding platform-mc manager. Added loadStaticEndpoints API
requester: Modified MctpDiscovery class
Modified MctpDiscovery class to take list of managers instead of single fwManager. The change is for adding platform-mc manager. Added loadStaticEndpoints API for MCTP layer which doesn't implement /xyz/openbmc_project/MCTP/Endpoint.Interface
The patch is part of implementation of design document below. https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/47252
Signed-off-by: Gilbert Chen <gilbert.chen@arm.com> Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: I1e1673504583a87f2a9bc3adf76fb49c2dc30254
show more ...
|
93f1e00f | 11-Jul-2023 |
Pavithra Barithaya <pavithra.b@ibm.com> |
Replace sizeof() with .size()
This change replaces the usage of sizeof() with .size() to calculate size of arrays and expressions of STL container types. Using .size() with containers like std::vect
Replace sizeof() with .size()
This change replaces the usage of sizeof() with .size() to calculate size of arrays and expressions of STL container types. Using .size() with containers like std::vector, std::array, and std::string improves code readability and adheres to modern C++ standards. This also helps in clang-tidy checks.
Change-Id: I1e9e6e453a3b9218682098887763a4908f186815 Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
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 ...
|
35535cf2 | 05-Dec-2023 |
Patrick Williams <patrick@stwcx.xyz> |
sdbusplus: avoid deprecated phosphor::Timer
sdbusplus had an older type named `phosphor::Timer` which was recently renamed to `sdbusplus::Timer`. Update the code to use the new type alias.
Change-
sdbusplus: avoid deprecated phosphor::Timer
sdbusplus had an older type named `phosphor::Timer` which was recently renamed to `sdbusplus::Timer`. Update the code to use the new type alias.
Change-Id: I68d3968bcb359bee5ea0c9e695572b68fcf34136 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
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 ...
|
4ddee3a0 | 02-Aug-2023 |
Thu Nguyen <thu@os.amperecomputing.com> |
requestHandler: Queue the request messages to one endpoint
Section "Requirements for requesters" in DSP0240 details "A PLDM terminus that issues PLDM requests to another PLDM terminus shall wait unt
requestHandler: Queue the request messages to one endpoint
Section "Requirements for requesters" in DSP0240 details "A PLDM terminus that issues PLDM requests to another PLDM terminus shall wait until one of the following occurs before issuing a new PLDM request: it gets the response to a particular request, it times out waiting for the response, or it receives an indication that transmission of the particular request failed." So the registered request messages to one endpoint have to be queued before sending to meet the requester requirement. When a sensor manager is added to pldmd daemon to manage the sensors of one terminus, the sensor manager will support the sensor polling timers. The timers will poll the PLDM sensors with different intervals so there can be many `getSensorReading` requests to one endpoint to get the sensor values. Moreover, BMC also sends `PollForPlatformEventMessage` requests to get the event data when it receives the `pldmMessagePollEvent` event from the terminus. So those TX request messages have to be queued.
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: I9756e1029b41a297a8f73e2ab7be47bc143ef710
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 ...
|
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 ...
|
e5268cda | 07-Sep-2021 |
Tom Joseph <rushtotom@gmail.com> |
Refactor the verbose tracing in PLDM
1. Add verbose tracing in requester code 2. Change the prefix of verbose tracing to "Tx: " and "Rx: " 3. Remove explicit verbose tracing flag in libpldmresponder
Refactor the verbose tracing in PLDM
1. Add verbose tracing in requester code 2. Change the prefix of verbose tracing to "Tx: " and "Rx: " 3. Remove explicit verbose tracing flag in libpldmresponder 4. Change the prefix of pldmtool verbose tracing to "pldmtool: Tx: " and "pldmtool: Rx: "
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Ie2c6b323e32e0828ed5ecaeb3e61943a98a2f089
show more ...
|
5079ac4a | 19-Aug-2021 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
treewide: remove 'using namespace' from headers
Using namespace at global scope in a header file violates the cpp core guidelines. Quoting the guidelines:
"Doing so takes away an #includer’s abi
treewide: remove 'using namespace' from headers
Using namespace at global scope in a header file violates the cpp core guidelines. Quoting the guidelines:
"Doing so takes away an #includer’s ability to effectively disambiguate and to use alternatives. It also makes #included headers order-dependent as they might have different meaning when included in different orders."
For further reading: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-using-directive
The guidelines don't call out using using namespace from namespace scope, but it is only marginally less problematic and still unexpected, so this patch removes those as well.
The process used to do the update is roughly:
1 - git grep 'using namespace' **.hpp 2 - For each instance, remove the offending 'using namespace' line 3 - build 4 - add 'using namespace' to cpp files or fully resolve types in hpp files until the project builds again.
Further cleanup is possible - for example cpp files could be scrubbed for unnecessary namespace qualification - this was not done here to make review as simple as possible.
Change-Id: I4931f5e78a1b5b74b4a4774c035a549f4d59b91a Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
d169dd16 | 29-Jul-2021 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
meson: add missing nlohmann dependencies to tests
Without it there are build failures because the include search path is wrong in subproject mode.
Change-Id: I49ee9aab900a41ae91dccc43eccc68321f9d97
meson: add missing nlohmann dependencies to tests
Without it there are build failures because the include search path is wrong in subproject mode.
Change-Id: I49ee9aab900a41ae91dccc43eccc68321f9d973a Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|