5ea72377 | 04-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 ...
|
366507c8 | 03-Feb-2025 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: update latest spec and reformat
Copy the latest format file from the docs repository and apply.
Change-Id: I95f756bab7f403af49a94011bbb1fe4e51f985ad Signed-off-by: Patrick Williams <p
clang-format: update latest spec and reformat
Copy the latest format file from the docs repository and apply.
Change-Id: I95f756bab7f403af49a94011bbb1fe4e51f985ad Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
b6d3943d | 04-Jun-2024 |
Dung Cao <dung@os.amperecomputing.com> |
platform-mc: discovery FRU data from terminus
As [1], `pldmd` will host Fru D-Bus inventory object path and Fru `xyz.openbmc_project.Inventory.Decorator.*` D-Bus interfaces of one PLDM terminus. [1]
platform-mc: discovery FRU data from terminus
As [1], `pldmd` will host Fru D-Bus inventory object path and Fru `xyz.openbmc_project.Inventory.Decorator.*` D-Bus interfaces of one PLDM terminus. [1] https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md#processing-pldm-fru-information-sent-down-by-the-host-firmware
Support getting FRU data from terminus in the terminus discovery phase and expose FRU data to the Fru D-Bus properties in `xyz.openbmc_project.Inventory.Decorator.Asset`, `xyz.openbmc_project.Inventory.Decorator.AssetTag`, `xyz.openbmc_project.Inventory.Decorator.Compatible` and `xyz.openbmc_project.Inventory.Decorator.Revision` interfaces of `xyz/openbmc_project/FruPldm/<Terminus_Name>` D-Bus object path which is created by `xyz.openbmc_project.PLDM` D-Bus service. The object path will be available until the endpoint EID is removed from the MCTP D-Bus.
``` busctl introspect xyz.openbmc_project.PLDM /xyz/openbmc_project/inventory/system/board/S0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.Inventory.Decorator.Asset interface - - - .BuildDate property s "" emits-change writable .Manufacturer property s "" emits-change writable .Model property s "00014003" emits-change writable .PartNumber property s "" emits-change writable .SerialNumber property s "000000218" emits-change writable .SparePartNumber property s "" emits-change writable .SubModel property s "" emits-change writable xyz.openbmc_project.Inventory.Decorator.AssetTag interface - - - .AssetTag property s "" emits-change writable xyz.openbmc_project.Inventory.Decorator.Compatible interface - - - .Names property as 0 emits-change writable xyz.openbmc_project.Inventory.Decorator.Revision interface - - - .Version property s "x.x.00008.004" emits-change writable xyz.openbmc_project.Inventory.Item.Board interface - - -
``` Signed-off-by: Dung Cao <dung@os.amperecomputing.com> Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: I4f8869f8fee0fc0f8a5a5670d9a42fc7f48cc798
show more ...
|
a31ceb91 | 21-Jul-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
oem_ibm: Add Slot enable infrastructure in BMC
With this commit PDRs are created for each of these PCIe slots and adapters which have a corresponding entry in the entity associate map. The sensor/ef
oem_ibm: Add Slot enable infrastructure in BMC
With this commit PDRs are created for each of these PCIe slots and adapters which have a corresponding entry in the entity associate map. The sensor/effector states are monitored and accordingly D-Bus calls are sent for enabling a slot, process property change of a PCIe slot, etc.
Tested By: SIMICS power on/off and reset reload.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I51b79b75c909ddf2cc29872fec6aa01c2d56b418
show more ...
|
5d86cdfb | 20-Aug-2024 |
Pavithra Barithaya <pavithrabarithaya07@gmail.com> |
clang-tidy: Enable bugprone-string-literal-with-embedded-nul check
This check finds occurrences of string literal with embedded NUL character and validates their usage. The check is ignored on the l
clang-tidy: Enable bugprone-string-literal-with-embedded-nul check
This check finds occurrences of string literal with embedded NUL character and validates their usage. The check is ignored on the line because the test case has a requirement to verify if the NUL terminator is removed or not by the method.
Change-Id: I919bfed7d9c0b3a43933621bda32cd31c876ff02 Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>
show more ...
|
a34a64bb | 30-Mar-2022 |
Thu Nguyen <thu@os.amperecomputing.com> |
Support numeric effecters in dbus-to-host-effecter
Adds support of the numeric effecter PDR (section `28.11 Numeric Effecter PDR` DSP0248 V1.3.0) type in dbus-to-host-effecter handler. This handler
Support numeric effecters in dbus-to-host-effecter
Adds support of the numeric effecter PDR (section `28.11 Numeric Effecter PDR` DSP0248 V1.3.0) type in dbus-to-host-effecter handler. This handler will be applied for all PLDM termini but not only host. The setting for one numeric effecter of one device can be: { "mctp_eid": 20, "effecter_info": { "effecterPdrType": 9, "effecterID": 2, "entityType": 32903, "entityInstance": 2, "containerID": 2, "compositeEffecterCount": 1, "checkHostState": false }, "effecters": [ { "dbus_info": { "object_path": "/xyz/openbmc_project/sensors/power/A", "interface": "xyz.openbmc_project.Sensor.Value", "property_name": "Value", "property_type": "double" }, "effecterDataSize": 5, "resolution": 1, "offset": 0, "unitModifier": 0 } ] }
Where: + effecterPdrType to difference state/numeric effecter type. Default is state effecter. + effecterID should be effecter ID and should not empty. + checkHostState can be set to false to bypass checking host state. + effecterDataSize, resolution, offset, unitModifier are from numeric effecter PDR (section `28.11 Numeric Effecter PDR` DSP0248 V1.3.0)
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: I438d7f204643edd4066e8a6ba28d53a97503fc4b
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 ...
|
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 ...
|
5a945bd1 | 01-Aug-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
pldm: Move off pldm_pdr_add_check()
Generated with:
``` $ CLANG_VERSION=18 ./subprojects/libpldm/scripts/apply-renames ./subprojects/libpldm/evolutions/current/pldm_pdr_add_check.yaml ```
Change-I
pldm: Move off pldm_pdr_add_check()
Generated with:
``` $ CLANG_VERSION=18 ./subprojects/libpldm/scripts/apply-renames ./subprojects/libpldm/evolutions/current/pldm_pdr_add_check.yaml ```
Change-Id: I4982195e97c25567b35f77ee7dcf795629d259b4 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
b8cf46b8 | 14-Jun-2024 |
Thu Nguyen <thu@os.amperecomputing.com> |
platform-mc: Terminus name handling
`PLDM-stack: Adding sensor monitoring section` design spec details that the `Terminus name` is required to create the terminus's sensors, states, effecters... D-B
platform-mc: Terminus name handling
`PLDM-stack: Adding sensor monitoring section` design spec details that the `Terminus name` is required to create the terminus's sensors, states, effecters... D-Bus interfaces and `Terminus Name` can be encoded in the Terminus's `Entity Auxiliary Names PDR` or in the MCTP Entity-manager endpoint EID configuration file. [1] https://gerrit.openbmc.org/c/openbmc/docs/+/47252/34/designs/pldm-stack.md#433
Section `28.18 Entity Auxiliary Names PDR` in DSP0248 V1.2.2 details about the PDRs response for the name of one PLDM entity. When the containerID is `0x0000` this entity is `Overall system` or `top most containing entity`. The name of this entity will can be used as `Terminus name`.
Support parsing `Entity Auxiliary Names PDR` and find the `Terminus name` if it is reponsed in the terminus' PDRs. `Terminus Name` string will be assigned to local variable and can be used as prefix for sensors, state, effecters... names.
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: I701537c48651b9de86de77941b752e30de112916
show more ...
|
3d3e8184 | 19-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
common: test: Add gmock dependency to generated targets
Fixes the following error when building with gmock supplied by subproject:
``` FAILED: common/test/pldm_utils_test.p/pldm_utils_test.cpp.o cc
common: test: Add gmock dependency to generated targets
Fixes the following error when building with gmock supplied by subproject:
``` FAILED: common/test/pldm_utils_test.p/pldm_utils_test.cpp.o ccache c++ -Icommon/test/pldm_utils_test.p -I../subprojects/googletest/googletest/include -I../subprojects/googletest/googletest -Isubprojects/googletest/__CMake_build -I../subprojects/googletest/__CMake_build -Isubprojects/googletest -I../subprojects/googletest -Isubprojects/phosphor-dbus-interfaces/gen -I../subprojects/phosphor-dbus-interfaces/gen -I../subprojects/sdbusplus/include -Isubprojects/phosphor-logging/lib/include -I../subprojects/phosphor-logging/lib/include -I. -I.. -I/usr/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c++23 -O2 -g -Wno-psabi -DLIBPLDMRESPONDER -DOEM_IBM -include /home/andrew/src/openbmc.org/openbmc/pldm/build/config.h -DBOOST_ASIO_DISABLE_THREADS -DBOOST_ALL_NO_LIB -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_COROUTINES_NO_DEPRECATION_WARNING -pthread -isystem../subprojects/nlohmann_json/single_include -isystem../subprojects/libpldm/include -isystemsubprojects/libpldm/include -isystem../subprojects/googletest/googletest -isystem../subprojects/googletest/googletest/include -MD -MQ common/test/pldm_utils_test.p/pldm_utils_test.cpp.o -MF common/test/pldm_utils_test.p/pldm_utils_test.cpp.o.d -o common/test/pldm_utils_test.p/pldm_utils_test.cpp.o -c ../common/test/pldm_utils_test.cpp In file included from ../common/test/pldm_utils_test.cpp:2: ../common/test/mocked_utils.hpp:3:10: fatal error: gmock/gmock.h: No such file or directory 3 | #include <gmock/gmock.h> | ^~~~~~~~~~~~~~~ compilation terminated. ```
Change-Id: I56cedd3df2d07f850fc0d13599ed52f99981e35b Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
6c7fed4c | 22-Feb-2022 |
Gilbert Chen <gilbert.chen@arm.com> |
platform-mc: Added Terminus/TerminusManager class
Added requester::sendRecvPldmMsg awaiter type to be able to send and receive PLDM message by coroutine. Added TerminusManager to discover terminus f
platform-mc: Added Terminus/TerminusManager class
Added requester::sendRecvPldmMsg awaiter type to be able to send and receive PLDM message by coroutine. Added TerminusManager to discover terminus from EID list updated by MCTPDiscovery class. The TerminusManager will initialize TID.
Signed-off-by: Gilbert Chen <gilbert.chen@arm.com> Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: Ifa5bdfff50648f1d7fba8710e160de662e8f9e06
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 ...
|
cd4cd457 | 22-Apr-2024 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
common: Improve printBuffer() & added unit tests
This patchset is improved version of the existing code for several reasons:
1.The code is more concise and easier to read. It uses modern C++ featur
common: Improve printBuffer() & added unit tests
This patchset is improved version of the existing code for several reasons:
1.The code is more concise and easier to read. It uses modern C++ features such as `std::ranges::for_each` and `std::format`, which express the intent of the code more clearly compared to the nested if-else statements and manual formatting.
2.The code now has fewer lines of code and avoids the need for creating and managing an `std::ostringstream` object manually, which simplifies the function and reduces the risk of errors.
3.This patch uses type-safe range-based for loop and `uint8_t` type directly, whereas the existing code uses `int` for iterating over the buffer elements, which may lead to unintentional type conversions or loss of precision.
4.While the performance impact may not be significant for this patch, using `std::ranges::for_each` with lambdas might allow for more optimization opportunities by the compiler compared to the traditional loop used in existing code.
Overall, this patchset leverages modern C++ features to achieve the same functionality in a more concise, readable, and type-safe manner, making it preferable.
Change-Id: I7be547ade053638cb4ca459ee795195f6f0883bf Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
754041d0 | 20-Feb-2024 |
Riya Dixit <riyadixitagra@gmail.com> |
utils: Retrieval of managed objects of DBUS
This commit implements functionality to retrieve the managed object of a specific DBUS service on a particular path. Additionally implements a function t
utils: Retrieval of managed objects of DBUS
This commit implements functionality to retrieve the managed object of a specific DBUS service on a particular path. Additionally implements a function template for inventory objects which efficiently enables retrieval of managed object for Inventory Manager.
Tested: Added unit test cases for checking the return value.
Change-Id: Ide652f843db1623bdacebf3e269e03895bbb7f1a Signed-off-by: Riya Dixit <riyadixitagra@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 ...
|
11ce8d22 | 28-Jul-2022 |
Sagar Srinivas <sagar.srinivas@ibm.com> |
PLDM: System specific BIOS attributes
This commit adds code to populate BIOS attributes based on the system type that is the platform.
The BIOS Jsons are installed based on the platform/ system typ
PLDM: System specific BIOS attributes
This commit adds code to populate BIOS attributes based on the system type that is the platform.
The BIOS Jsons are installed based on the platform/ system type. The system type is populated by entity manager.
TESTED on hardware across different platform/system type. On systems where the compatible system interface is not implemented or entity manager not running, then the BIOS Jsons with default values are installed.
Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com> Change-Id: I179dad34537ed0d1fb263584d687a1b8cb64c335
show more ...
|
64f37feb | 03-Jul-2023 |
Andrew Jeffery <andrew@aj.id.au> |
pldmd: Migrate to pldm_pdr_add_check()
pldm_pdr_add() is deprecated in libpldm as it uses assert() to communicate to the caller that an error occurred. pldm_pdr_add_check() instead returns a value t
pldmd: Migrate to pldm_pdr_add_check()
pldm_pdr_add() is deprecated in libpldm as it uses assert() to communicate to the caller that an error occurred. pldm_pdr_add_check() instead returns a value that indicates success or failure.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Icca92fd742f07fb935202a9d9e62f5648916b12b
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 ...
|
3ca40453 | 04-Oct-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Remove PDR's based on Terminus Handle
The current pldm infrastructure is written in way that it deletes all the PDR's which are marked as "remote",when we get a PDR refresh entire repository signal
Remove PDR's based on Terminus Handle
The current pldm infrastructure is written in way that it deletes all the PDR's which are marked as "remote",when we get a PDR refresh entire repository signal comes from remote PLDM terminus,this does not work in muti-host scenario where BMC talks to more than one HOST that talks pldm.
When a repository refresh signal comes form a remote PLDM terminus, BMC is supposed to only delete the PDR's corresponding to the same PLDM terminus.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I51f77c3f9537da722a00d97070674958c5baf1b4
show more ...
|
ca1998f3 | 06-Jun-2022 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
update clang-format
This commit would update the repo's clang-format file to the latest of docs/style/cpp/clang-format file.
Following is the new change that is added: Brad : clang-format: cpp: r
update clang-format
This commit would update the repo's clang-format file to the latest of docs/style/cpp/clang-format file.
Following is the new change that is added: Brad : clang-format: cpp: remove empty lines
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: Ieaadd8a1cd779c9c12adf6d065cc1f9e9a8fa37b
show more ...
|
872f0f69 | 25-Nov-2021 |
George Liu <liuxiwei@inspur.com> |
utils: Add split method
Add the method of splitting the string, split the string according to the special identifier and return a vector.
Tested: Add Unit Test and test passes.
Signed-off-by: Geor
utils: Add split method
Add the method of splitting the string, split the string according to the special identifier and return a vector.
Tested: Add Unit Test and test passes.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I0a4474cef53fed4a629e3faa9db44dbf3bf432d8
show more ...
|