#
dd1f28b8 |
| 11-Mar-2025 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Move dbus_to_terminus_effecter code to platform-mc
In the current state , pldm build breaks when attempting to perform a debug-optimized build (`-O2` optimization), leading to the following linker e
Move dbus_to_terminus_effecter code to platform-mc
In the current state , pldm build breaks when attempting to perform a debug-optimized build (`-O2` optimization), leading to the following linker error:
``` undefined reference to `pldm::platform_mc::TerminusManager::getActiveEidByName (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ```
This issue is not encountered in the CI environment, as CI uses the `-Og` optimization flag, which does not aggressively inline functions. Consequently, the reference to `getActiveEidByName()` is resolved without issue. However, when building the project with default optimizations (debugoptimized [-O2]), the build fails because the linker cannot resolve the reference to `getActiveEidByName()`, which is inlined by the compiler.
To address this problem, there are three potential solutions:
1. Prevent Inlining of the Function: We could use `__attribute__((noinline))` to prevent the compiler from inlining `getActiveEidByName()`.
2. Move Source Files into `libpldmresponder`: We could move the `platform-mc/manager.cpp` and `platform-mc/terminus_manager.cpp` files into the `libpldmresponder` so the compiler can resolve the reference directly within the library.
3. Migrate `dbus_to_terminus_effecter.cpp` to the `platform-mc` folder:
The most appropriate solution appears to be migrating the `dbus_to_terminus_effecter.cpp` file into the `platform-mc` directory. This file is not inherently tied to `libpldmresponder` but functions as a requester. Additionally, there are existing community patches that allow the system to scale from a single host terminus to multiple terminii, further justifying this move. So, solution #3 is the most fitting at this stage. By relocating the `dbus_to_terminus_effecter` code to the `platform-mc` folder, we can ensure proper modularity, while also resolving the build issue in a clean and scalable manner.
Tested By: 1. meson build -Doptimization=2 works fine with the patchset.
Change-Id: I0ac8be58253bfb0394500f1d34e8431c6103c924 Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
#
c366447a |
| 04-Feb-2025 |
Archana Kakani <archana.kakani@ibm.com> |
host-bmc: Implement Inventory Item interface
Adding support to host Inventory Item dbus interface. PLDM hosts the dbus interface based on the entity type. The Inventory Item interface is defined a
host-bmc: Implement Inventory Item interface
Adding support to host Inventory Item dbus interface. PLDM hosts the dbus interface based on the entity type. The Inventory Item interface is defined at [1].
Tested: Functional test passed
[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item.interface.yaml
Change-Id: Ifed3cc01d825a69d64afcffd8447f7c8d9387913 Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
show more ...
|
#
f935537d |
| 04-Feb-2025 |
Archana Kakani <archana.kakani@ibm.com> |
host-bmc: Implement Availability interface
Adding support to host Availability dbus interface. PLDM hosts this dbus interface to provide the availability of the FRUs hosted by PLDM. The Availability
host-bmc: Implement Availability interface
Adding support to host Availability dbus interface. PLDM hosts this dbus interface to provide the availability of the FRUs hosted by PLDM. The Availability interface is defined at [1].
Tested: Functional test passed
[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/State/Decorator/Availability.interface.yaml
Change-Id: Ie5912b3683ce102a249c8b503ea9f455f0fbcabf Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
show more ...
|
#
1634a6e9 |
| 04-Feb-2025 |
Archana Kakani <archana.kakani@ibm.com> |
host-bmc: Implement Asset interface
Adding support to host Asset dbus interface. Based on the Topology data received from remote PLDM terminus, PLDM hosts the dbus interface. The Asset interface i
host-bmc: Implement Asset interface
Adding support to host Asset dbus interface. Based on the Topology data received from remote PLDM terminus, PLDM hosts the dbus interface. The Asset interface is defined at [1].
Tested: Functional test passed
[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Decorator/Asset.interface.yaml
Change-Id: Ia32e69861192fca6db8c1613fbec281ca3faa3e8 Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
show more ...
|
#
db65c3b4 |
| 03-Feb-2025 |
Archana Kakani <archana.kakani@ibm.com> |
host-bmc: Implement Chassis interface
Adding support to host Chassis dbus interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. Th
host-bmc: Implement Chassis interface
Adding support to host Chassis dbus interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. The Chassis interface is defined at [1].
Tested: Functional test passed
[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item/Chassis.interface.yaml
Change-Id: Ia07c5974ae78314e0812cb09fbc6c738b4853cb9 Signed-off-by: Archana Kakani <archana.kakani@ibm.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 ...
|
#
b40f4f8f |
| 06-Jun-2024 |
Archana Kakani <archana.kakani@ibm.com> |
pldm: Implement Cable interface
Adding support to host Cable dbus interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. The Cable i
pldm: Implement Cable interface
Adding support to host Cable dbus interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. The Cable interface is defined at [1].
[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item/Cable.interface.yaml
Change-Id: I23f02387c1d50ce8d9c5921760740760cea2cd47 Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
show more ...
|
#
733b39da |
| 05-Jun-2024 |
Archana Kakani <archana.kakani@ibm.com> |
pldm: Implement PCIeDevice interface
Adding support to host PCIeDevice dbus interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. T
pldm: Implement PCIeDevice interface
Adding support to host PCIeDevice dbus interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. The PCIe Device interface is defined at [1].
Tested: Functional test passed
[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item/PCIeDevice.interface.yaml
Change-Id: I69472efef33c3ad030ba4c831f07f60833b2c40b Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
show more ...
|
#
bf1fd27b |
| 05-Jun-2024 |
Archana Kakani <archana.kakani@ibm.com> |
pldm: Implement PCIeSlot interface
Adding support to host dbus PCIeSlot interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. The S
pldm: Implement PCIeSlot interface
Adding support to host dbus PCIeSlot interface. Based on the PDRs received from remote PLDM terminus, PLDM hosts the dbus interface based on the entity type. The Slot interface is defined at [1].
Tested: Functional test passed.
[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item/PCIeSlot.interface.yaml
Change-Id: I98db6c31ddcb35e5c124d060c4ee0ab0f8819e72 Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
show more ...
|
#
56da5740 |
| 23-May-2024 |
Kamalkumar Patel <kamalkumar.patel@ibm.com> |
Adding CPUCore interface support
This commit introduces essential D-Bus infrastructure support for hosting the `Item.CPUCore` D-Bus object. Additionally, it includes getter and setter functions to e
Adding CPUCore interface support
This commit introduces essential D-Bus infrastructure support for hosting the `Item.CPUCore` D-Bus object. Additionally, it includes getter and setter functions to enable get/set properties within the `CPUCore` interface, such as core count and microcode.
Testing: Unit test passed
Change-Id: I728522b34e96ee7d6609efb5746b40cf923812e8 Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>
show more ...
|
#
14107a10 |
| 19-Jun-2024 |
Kamalkumar Patel <kamalkumar.patel@ibm.com> |
host-bmc: migrate dbus hosting logic into dbus folder
This commit aims at migrating the custom_dbus files from the host_bmc directory to the host-bmc/dbus directory. This makes the code cleaner sinc
host-bmc: migrate dbus hosting logic into dbus folder
This commit aims at migrating the custom_dbus files from the host_bmc directory to the host-bmc/dbus directory. This makes the code cleaner since it abstracts all the dbus objects hosting code to the dbus folder
Change-Id: Ia310e8a16f9489060ef228496d364c602a4fa6a8 Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>
show more ...
|
#
7d427f16 |
| 16-May-2024 |
Kamalkumar Patel <kamalkumar.patel@ibm.com> |
pldm: Rearranging datatype declaration
This commit adds support to eliminating duplication of datatypes which enhancing clarity and manageability throughout the pldm repository. This is rearrangemen
pldm: Rearranging datatype declaration
This commit adds support to eliminating duplication of datatypes which enhancing clarity and manageability throughout the pldm repository. This is rearrangement of declaration of data types so it can be used host-bmc and oem layer both the places.
Change-Id: Ieb1232884b8e2128e8bf97dafd01e4ad5524ede0 Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>
show more ...
|
#
516122e0 |
| 07-May-2024 |
Kamalkumar Patel <kamalkumar.patel@ibm.com> |
Add Json Config support for entity to DBus string
The entity map comprises both entity types and their corresponding names, essential for generating unique D-Bus paths for each entity. However, chal
Add Json Config support for entity to DBus string
The entity map comprises both entity types and their corresponding names, essential for generating unique D-Bus paths for each entity. However, challenges arise due to variations in path generation across companies, often dictated by differing entity types. To address this, enabling configurability of EntityID becomes imperative, empowering communities to tailor configurations to their specific use cases.
Testing: Unit tests passed
Change-Id: I3981fde64bd00940caa5067a9472fd948e74cbf0 Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>
show more ...
|
#
4e69d252 |
| 10-May-2024 |
Kamalkumar Patel <kamalkumar.patel@ibm.com> |
host-bmc: refine remote terminus functionality
This commit introduces support for migrating remote terminus-related functionalities into the host-bmc directory, a move aimed at optimizing remote ter
host-bmc: refine remote terminus functionality
This commit introduces support for migrating remote terminus-related functionalities into the host-bmc directory, a move aimed at optimizing remote terminus operations for future endeavors. By consolidating these functionalities, tracking and implementing future enhancements become more streamlined and manageable.
Change-Id: I52b6ced7acacb004b6055ae710193a959d986659 Signed-off-by: Kamalkumar Patel <kamalkumar.patel@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 ...
|
#
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 ...
|
#
682ee18c |
| 25-Dec-2020 |
George Liu <liuxiwei@inspur.com> |
Handle FRU records from host
- Get FRU record table from host and traverse the entity structure from the FRU record set PDR, and create D-Bus object.
- When the FRU field type is a PLDM_OEM_FRU_F
Handle FRU records from host
- Get FRU record table from host and traverse the entity structure from the FRU record set PDR, and create D-Bus object.
- When the FRU field type is a PLDM_OEM_FRU_FIELD_TYPE_LOCATION_CODE , the location code is used to populate the xyz.openbmc_project.Inventory.Decorator.LocationCode D-Bus interface for the corresponding FRU.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I482c4d371f76b4881109ef420dfd9543e1aa810b
show more ...
|
#
df9a6d34 |
| 22-Dec-2020 |
George Liu <liuxiwei@inspur.com> |
Handle entity association records from host
- Get the PDRs from host, traverse the entity association structure and construct the D-Bus object path according to the entity type ID and container
Handle entity association records from host
- Get the PDRs from host, traverse the entity association structure and construct the D-Bus object path according to the entity type ID and container type ID.
- eg: /xyz/openbmc_project/inventory/system1/chassis1/io_board1/powersupply1 /xyz/openbmc_project/inventory/system1/chassis1/io_board1/powersupply2 /xyz/openbmc_project/inventory/system1/chassis2/io_board2/powersupply1 /xyz/openbmc_project/inventory/system1/chassis2/io_board2/powersupply2
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I1c606ea943624f2601be4f5f6b5c30d1bf71cd11
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 ...
|
#
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 ...
|
#
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 ...
|
#
c0c79481 |
| 02-Jun-2021 |
Sampa Misra <sampmisr@in.ibm.com> |
implement async handlers for all requester commands
this commit makes use of 74f27c730ef3925a0f2a3adfaa04f8790f931372 to convert the existing blocking requester commands in pldm to async ones. this
implement async handlers for all requester commands
this commit makes use of 74f27c730ef3925a0f2a3adfaa04f8790f931372 to convert the existing blocking requester commands in pldm to async ones. this is tested with Host code and seems to work fine
Change-Id: I8d4762c3cd5bce49f854b30f8325bfcd1dcb4ff9 Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
show more ...
|
#
5327988e |
| 28-Apr-2021 |
Tom Joseph <rushtotom@gmail.com> |
tests: Organize the test code to make it modular
The unit test code for libpldmresponder, host-bmc and common is in a shared test directory. This patch separates the test code to the respective dire
tests: Organize the test code to make it modular
The unit test code for libpldmresponder, host-bmc and common is in a shared test directory. This patch separates the test code to the respective directory.
Tested: Ran the unit test and tests passed.
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: I31d53681fa6c0d8bc6eb7c4e3341aaff4bc341ee
show more ...
|