History log of /openbmc/pldm/platform-mc/test/ (Results 1 – 25 of 25)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
fe25279513-Mar-2025 Manojkiran Eda <manojkiran.eda@gmail.com>

Use system include directives for libpldm headers

libpldm is now an external dependency rather than an in-tree library.
Adjust the includes accordingly.

Change-Id: Ib2590b823039d3127d65f66976b294a2

Use system include directives for libpldm headers

libpldm is now an external dependency rather than an in-tree library.
Adjust the includes accordingly.

Change-Id: Ib2590b823039d3127d65f66976b294a2fb88e9c1
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...

dd1f28b811-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 ...

fdf61cc322-Jan-2025 Chaul Ly <chaul@amperecomputing.com>

platform-mc: Defer adding sensor objects from PDRs

After all PDRs retrieved from the other terminus are parsed into pdr
structs. They will be processed further to create sensor objects (e.g
via `add

platform-mc: Defer adding sensor objects from PDRs

After all PDRs retrieved from the other terminus are parsed into pdr
structs. They will be processed further to create sensor objects (e.g
via `addNumericSensor` function for Numeric Sensors).

During this phase for one sensor, sensor name is achieved (may enlist
Sensor Aux Name PDRs), and NumericSensor object is constructed.
Sensor object construction involves parsing pdr struct elements into
sensor class variables, D-Bus interface initialization and many calls
to set D-Bus object properties.

They are actually not blocking actions, but as it continuously loops
through sensor PDRs in `parseTerminusPDRs` to add sensors, they take
too much time and prevent BMC from processing events coming from other
termini. Not to mention the adding of new sensor types in the future
and the increase in sensor numbers, the total time will be large, while
this is not a primary task in the initialization phase of a terminus.

This commit defers `addNumericSensor` and `addCompactNumericSensor`
calls using sdeventplus::source::Defer event source, instead of
continuously calling them while looping through the sensor PDRs, to let
events coming from other termini break in and be processed by BMC.

Tested:

While BMC is getting, parsing sensor PDRs and creating sensor objects
from those PDRs, events can still be received from the other termini.

Change-Id: I4a3bacd4139b51c302e36614757fa1b5e5105f21
Signed-off-by: Chau Ly <chaul@amperecomputing.com>

show more ...

38e12aa221-Jan-2025 Thu Nguyen <thu@os.amperecomputing.com>

Support `terminus_name` option in `dbus_to_terminus_effecter`

Support `terminus_name` configuration option in
`dbus_to_terminus_effecter` to allow setting the destination terminus
beside `mctp_eid`.

Support `terminus_name` option in `dbus_to_terminus_effecter`

Support `terminus_name` configuration option in
`dbus_to_terminus_effecter` to allow setting the destination terminus
beside `mctp_eid`. This is helpful when the mctp endpoint Eid is not
static.

Change-Id: I8b1ed15741807086254146017c99c13ae667dac1
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>

show more ...

6baafe4820-Jan-2025 Eric Yang <eric.yang.wiwynn@gmail.com>

platform-mc: startSensorPolling post PDR init

Move startSensorPolling after confirming PDR initialization of pldm
device to avoid missing the start sensor polling opportunity if GetPDR
fails initial

platform-mc: startSensorPolling post PDR init

Move startSensorPolling after confirming PDR initialization of pldm
device to avoid missing the start sensor polling opportunity if GetPDR
fails initially and succeeds later.

Removed the redundant handling of addedTids for sensor polling, as
initTerminus now ensures all necessary termini are processed.

Change-Id: I4e090a0f3c5b0a7ce85b56f9f3f2c585e42b638f
Signed-off-by: Eric Yang <eric.yang.wiwynn@gmail.com>

show more ...

75e0042219-Mar-2024 Chau Ly <chaul@amperecomputing.com>

platform-mc: Handle `Connectivity` propertiesChanged signal

From Mctp codeConstruct version 2.0 [1], mctpd supports `.Connectivity`
property under `au.com.CodeConstruct.MCTP.Endpoint` interface of t

platform-mc: Handle `Connectivity` propertiesChanged signal

From Mctp codeConstruct version 2.0 [1], mctpd supports `.Connectivity`
property under `au.com.CodeConstruct.MCTP.Endpoint` interface of the
endpoint. This commit handles the propertiesChanged signal from this
interface, and updates the Availability of the MCTP Endpoint accordingly
in the source to enable or disable message sending/receiving via that
endpoint of the terminus.

[1] https://github.com/CodeConstruct/mctp/blob/v2.0/docs/endpoint-recovery.md#proposed-design

When the discovery process first starts, it will only handle the
endpoints that have `Available` `.Connectivity`. It lets the
propertiesChanged signal trigger the adding of the endpoints when they
are back to` Available`.

On interfaceAdded signal, it assumes that mctpd only publishes available
endpoints to D-Bus, so it adds the endpoints to the terminus anyway.

Tested:
1. Enable `unsafe-writable-connectivity` option in PACKAGECONFIG of mctp
recipe.
2. After PLDM discovers all the endpoints, write `Degraded` to
`.Connectivity` of one of the endpoint.
3. Write it back to `Available` to see how message is stopped from being
sent/received via the endpoint.

Signed-off-by: Chau Ly <chaul@amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I5b7a38ae72e655b60d71396a1118f2809aaa3838

show more ...


/openbmc/pldm/.clang-format
/openbmc/pldm/common/test/mocked_utils.hpp
/openbmc/pldm/common/transport.cpp
/openbmc/pldm/common/types.hpp
/openbmc/pldm/common/utils.cpp
/openbmc/pldm/common/utils.hpp
/openbmc/pldm/fw-update/activation.cpp
/openbmc/pldm/fw-update/activation.hpp
/openbmc/pldm/fw-update/inventory_manager.cpp
/openbmc/pldm/fw-update/inventory_manager.hpp
/openbmc/pldm/fw-update/manager.hpp
/openbmc/pldm/fw-update/test/inventory_manager_test.cpp
/openbmc/pldm/fw-update/update_manager.hpp
/openbmc/pldm/host-bmc/dbus/asset.cpp
/openbmc/pldm/host-bmc/dbus/asset.hpp
/openbmc/pldm/host-bmc/dbus/availability.cpp
/openbmc/pldm/host-bmc/dbus/availability.hpp
/openbmc/pldm/host-bmc/dbus/board.hpp
/openbmc/pldm/host-bmc/dbus/chassis.cpp
/openbmc/pldm/host-bmc/dbus/chassis.hpp
/openbmc/pldm/host-bmc/dbus/connector.hpp
/openbmc/pldm/host-bmc/dbus/custom_dbus.cpp
/openbmc/pldm/host-bmc/dbus/custom_dbus.hpp
/openbmc/pldm/host-bmc/dbus/fabric_adapter.hpp
/openbmc/pldm/host-bmc/dbus/fan.hpp
/openbmc/pldm/host-bmc/dbus/inventory_item.cpp
/openbmc/pldm/host-bmc/dbus/inventory_item.hpp
/openbmc/pldm/host-bmc/dbus/panel.hpp
/openbmc/pldm/host-bmc/dbus/power_supply.hpp
/openbmc/pldm/host-bmc/dbus/vrm.hpp
/openbmc/pldm/host-bmc/host_pdr_handler.cpp
/openbmc/pldm/host-bmc/host_pdr_handler.hpp
/openbmc/pldm/host-bmc/test/meson.build
/openbmc/pldm/libpldmresponder/base.hpp
/openbmc/pldm/libpldmresponder/bios_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_enum_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_integer_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_string_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_table.cpp
/openbmc/pldm/libpldmresponder/bios_table.hpp
/openbmc/pldm/libpldmresponder/fru.cpp
/openbmc/pldm/libpldmresponder/fru.hpp
/openbmc/pldm/libpldmresponder/fru_parser.hpp
/openbmc/pldm/libpldmresponder/meson.build
/openbmc/pldm/libpldmresponder/pdr.hpp
/openbmc/pldm/libpldmresponder/pdr_utils.cpp
/openbmc/pldm/libpldmresponder/pdr_utils.hpp
/openbmc/pldm/libpldmresponder/platform.hpp
/openbmc/pldm/libpldmresponder/platform_numeric_effecter.hpp
/openbmc/pldm/meson.build
/openbmc/pldm/meson.options
/openbmc/pldm/oem/ampere/event/cper.hpp
/openbmc/pldm/oem/ampere/event/meson.build
/openbmc/pldm/oem/ampere/event/oem_event_manager.cpp
/openbmc/pldm/oem/ampere/meson.build
/openbmc/pldm/oem/ibm/configurations/fileTable.json
/openbmc/pldm/oem/ibm/libpldmresponder/collect_slot_vpd.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/collect_slot_vpd.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pel.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.hpp
/openbmc/pldm/platform-mc/dbus_impl_fru.hpp
/openbmc/pldm/platform-mc/manager.hpp
/openbmc/pldm/platform-mc/platform_manager.cpp
/openbmc/pldm/platform-mc/platform_manager.hpp
/openbmc/pldm/platform-mc/sensor_manager.cpp
/openbmc/pldm/platform-mc/sensor_manager.hpp
/openbmc/pldm/platform-mc/terminus.cpp
/openbmc/pldm/platform-mc/terminus.hpp
/openbmc/pldm/platform-mc/terminus_manager.cpp
/openbmc/pldm/platform-mc/terminus_manager.hpp
event_manager_test.cpp
platform_manager_test.cpp
/openbmc/pldm/pldmd/dbus_impl_pdr.cpp
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmtool/pldm_bios_cmd.cpp
/openbmc/pldm/pldmtool/pldm_fru_cmd.cpp
/openbmc/pldm/requester/handler.hpp
/openbmc/pldm/requester/mctp_endpoint_discovery.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.hpp
/openbmc/pldm/requester/test/handler_test.cpp
/openbmc/pldm/requester/test/mctp_endpoint_discovery_test.cpp
/openbmc/pldm/requester/test/mock_mctp_discovery_handler_intf.hpp
b6d3943d04-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 ...


/openbmc/pldm/.clang-format
/openbmc/pldm/common/test/pldm_utils_test.cpp
/openbmc/pldm/common/types.hpp
/openbmc/pldm/common/utils.cpp
/openbmc/pldm/common/utils.hpp
/openbmc/pldm/fw-update/device_updater.cpp
/openbmc/pldm/host-bmc/dbus_to_terminus_effecters.cpp
/openbmc/pldm/libpldmresponder/pdr.cpp
/openbmc/pldm/libpldmresponder/platform.cpp
/openbmc/pldm/libpldmresponder/platform_state_sensor.hpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_fru_test.cpp
/openbmc/pldm/meson.build
/openbmc/pldm/oem/ampere/event/cper.cpp
/openbmc/pldm/oem/ampere/event/cper.hpp
/openbmc/pldm/oem/ampere/event/meson.build
/openbmc/pldm/oem/ampere/event/oem_event_manager.cpp
/openbmc/pldm/oem/ampere/event/oem_event_manager.hpp
/openbmc/pldm/oem/ampere/oem_ampere.hpp
/openbmc/pldm/oem/ibm/configurations/fileTable.json
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pcie.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_progress_src.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_progress_src.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.cpp
/openbmc/pldm/oem/ibm/requester/dbus_to_file_handler.cpp
/openbmc/pldm/platform-mc/dbus_impl_fru.cpp
/openbmc/pldm/platform-mc/dbus_impl_fru.hpp
/openbmc/pldm/platform-mc/event_manager.cpp
/openbmc/pldm/platform-mc/event_manager.hpp
/openbmc/pldm/platform-mc/manager.cpp
/openbmc/pldm/platform-mc/manager.hpp
/openbmc/pldm/platform-mc/numeric_sensor.cpp
/openbmc/pldm/platform-mc/numeric_sensor.hpp
/openbmc/pldm/platform-mc/platform_manager.cpp
/openbmc/pldm/platform-mc/platform_manager.hpp
/openbmc/pldm/platform-mc/sensor_manager.cpp
/openbmc/pldm/platform-mc/terminus.cpp
/openbmc/pldm/platform-mc/terminus.hpp
/openbmc/pldm/platform-mc/terminus_manager.cpp
meson.build
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmtool/oem/ibm/pldm_oem_ibm.cpp
/openbmc/pldm/pldmtool/pldm_base_cmd.cpp
/openbmc/pldm/pldmtool/pldm_platform_cmd.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.hpp
/openbmc/pldm/subprojects/libcper.wrap
6e61562221-Jun-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: Support GetPLDMVersion

`GetPLDMCommands` in DSP0240 v1.1.0 requires the PLDM supported type
version. In the current implementation, when detecting new MCTP
endpoint, `pldmd` always send

platform-mc: Support GetPLDMVersion

`GetPLDMCommands` in DSP0240 v1.1.0 requires the PLDM supported type
version. In the current implementation, when detecting new MCTP
endpoint, `pldmd` always send `0xff 0xff 0xff 0xff` version to
`GetPLDMCommand` in discovery steps with the assumption that the
terminus will response for the request with any version of PLDM type.

Some termini don't accept `0xff 0xff 0xff 0xff` as input
version to `GetPLDMCommands` command because value `0xff` only has
meaning `A value of 0xFF in the "update" field indicates that the field
to be ignored.` in the `Section 12.6.1 Version field encoding` in `MCTP
Base spec` DSP0236 v1.3.1 but not in `PLDM base spec` DSP0240 v1.1.0
where `GetPLDMCommand` is detailed.

Support sending `GetPLDMVersion` from the supported PLDM types of one
terminus in the `discovery step` to get the PLDM version. And use that
version as input for `GetPLDMCommands` of that PLDM types to get
the supported PLDM commands.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Ia33c6722603801431e411eaf0647b74d8a1639d8

show more ...

f48015b320-Nov-2023 Dung Cao <dung@os.amperecomputing.com>

platform-mc: Support pollForPlatFormEventMessage

Supports polling all events synchronously when the terminus sends
`pldmMessagePollEvent` with the event id. BMC will use the received
event id as inp

platform-mc: Support pollForPlatFormEventMessage

Supports polling all events synchronously when the terminus sends
`pldmMessagePollEvent` with the event id. BMC will use the received
event id as input for `pollForPlatformEventMessage` command to retrieve
the event data.

Change-Id: If01f63f30d3f57f8423c863ec776e83dda8e3042
Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>

show more ...

9fc7912810-Sep-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: Support CPER Event handler

Handle CPER event(0x07) which is defined in `Table 11 - PLDM Event
Type` and section `16.17 eventData format for CPEREvent` in DSP0248
v1.3.0.

The code suppo

platform-mc: Support CPER Event handler

Handle CPER event(0x07) which is defined in `Table 11 - PLDM Event
Type` and section `16.17 eventData format for CPEREvent` in DSP0248
v1.3.0.

The code supports:
1. Handle the PLDM event which has eventClass as CPEREvent (0x07).
2. Store the CPER data in PLDM CPER event to file at `/var/cper/`.
3. Call `CreateDump` method of `xyz.openbmc_project.Dump.Manager` D-Bus
service to create dump fault log.
4. The user can find the dump fault logs in Redfish FaultLog entries
thru URL `/redfish/v1/Managers/bmc/LogServices/FaultLog/Entries`. Each
CPER entry includes the URL to download the created CPER data file
`/redfish/v1/Managers/bmc/LogServices/FaultLog/Entries/<id>/attachment`.
5. The user can use `cper-parser` in `libcper` to parse the CPER data in
the attached file.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I85c53933183178c6b5acdfc12c805e8a4cf1ca2a

show more ...

39a0e71a19-Sep-2024 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

Change-Id: I10cbc1d55e259c972eac765b28b8c73281b1b42c
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...

77e6fe7a06-Aug-2024 Gilbert Chen <gilbertc@nvidia.com>

platform-mc: Added EventManager

Added eventManager to handle sensor event class(00h) which is defined in
table 11 of DSP0248 v1.3.0. In this commit, the eventManager supports to
receive event asynch

platform-mc: Added EventManager

Added eventManager to handle sensor event class(00h) which is defined in
table 11 of DSP0248 v1.3.0. In this commit, the eventManager supports to
receive event asynchronously. The commit will also log the Ipmitool SEL
log and Redfish log for PLDM sensor event messages.

Change-Id: I1b337ccae454067841ffbbd8754631216a995542
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>

show more ...

04ac997106-Sep-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://githu

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://github.com/codespell-project/codespell

Change-Id: Ia7dbb04ead7565d63437a5878fd8a543029d9a93
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


/openbmc/pldm/.clang-tidy
/openbmc/pldm/common/transport.hpp
/openbmc/pldm/common/types.hpp
/openbmc/pldm/common/utils.hpp
/openbmc/pldm/host-bmc/dbus_to_terminus_effecters.cpp
/openbmc/pldm/host-bmc/dbus_to_terminus_effecters.hpp
/openbmc/pldm/host-bmc/host_pdr_handler.cpp
/openbmc/pldm/libpldmresponder/base.hpp
/openbmc/pldm/libpldmresponder/bios.cpp
/openbmc/pldm/libpldmresponder/bios.hpp
/openbmc/pldm/libpldmresponder/bios_table.hpp
/openbmc/pldm/libpldmresponder/fru.cpp
/openbmc/pldm/libpldmresponder/pdr.hpp
/openbmc/pldm/libpldmresponder/pdr_utils.hpp
/openbmc/pldm/libpldmresponder/platform.hpp
/openbmc/pldm/libpldmresponder/platform_numeric_effecter.hpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_base_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_table_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_test.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_cert.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_dump.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pcie.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pel.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_vpd.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_table.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.cpp
/openbmc/pldm/oem/ibm/test/host_bmc_lamp_test.cpp
/openbmc/pldm/platform-mc/terminus.cpp
platform_manager_test.cpp
sensor_manager_test.cpp
terminus_test.cpp
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmtool/oem/ibm/oem_ibm_state_set.hpp
/openbmc/pldm/requester/handler.hpp
/openbmc/pldm/test/test_instance_id.hpp
51d66b5906-Aug-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: Set the local terminus as event receiver

Send `SetEventReceiver` to the discoveried terminus with the
configurable local EID to set the local terminus as event receiver.
Before send `Se

platform-mc: Set the local terminus as event receiver

Send `SetEventReceiver` to the discoveried terminus with the
configurable local EID to set the local terminus as event receiver.
Before send `SetEventReceiver` the local terminus also send
`EventMessageSupported` to get the `synchronyConfigurationSupported`.
The `eventMessageGlobalEnable` and `heartbeatTimer` options in the
`SetEventReceiver` command will depend on the responded
`synchronyConfigurationSupported`.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>
Change-Id: Ia798c1cd5d946ac519933bca60620e970fe10b0a

show more ...

3012b63222-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 ...

5763209521-Aug-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: Fix `sensorPollingTest` unit-test error

Even the `doSensorPolling` task is scheduled to run after each
`SENSOR_POLLING_TIME` milliseconds, it does not mean that the kernel
will trigger

platform-mc: Fix `sensorPollingTest` unit-test error

Even the `doSensorPolling` task is scheduled to run after each
`SENSOR_POLLING_TIME` milliseconds, it does not mean that the kernel
will trigger `doSensorPolling` task at time `t0`, `t0 +
SENSOR_POLLING_TIME`, `t0 + 2*SENSOR_POLLING_TIME`, .., `t0 +
n*SENSOR_POLLING_TIME` because the kernel can busy so it may trigger the
schedule task late. This causes the number of the triggered
`doSensorPolling` tasks after `n*SENSOR_POLLING_TIME` milliseconds can
be less than `n`.
That why the current `sensorPollingTest` unit-test sometime is failed
with below errors especially when run the unit-test in slow local
machine.
```
Actual function call count doesn't match EXPECT_CALL(sensorManager, doSensorPolling(tid))...
Expected: to be called at least 100 times
Actual: called 40 times - unsatisfied and active
```

Update the `sensorPollingTest` to check the interval between two
triggered times of the `doSensorPolling` tasks instead of number called
times. This interval should greater than SENSOR_POLLING_TIME ms.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Signed-off-by: Khang Nguyen <khangng@amperecomputing.com>
Change-Id: I33c31ceba76476ae7f9396f2bbf84093fe3f2519

show more ...

e2b8374720-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

Change-Id: I39c3e6e2952a119f5179e841084fc31648da3422
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...

eac61a4b23-Feb-2022 Gilbert Chen <gilbert.chen@arm.com>

platform-mc: Add sensor manager

Added sensor_manager class. The sensor_manager class manages the timing
of sensor polling.

tested: Verified on ast2600 EVB which is connected to a PLDM device
over I

platform-mc: Add sensor manager

Added sensor_manager class. The sensor_manager class manages the timing
of sensor polling.

tested: Verified on ast2600 EVB which is connected to a PLDM device
over I2C. bmcweb can display the state of numeric sensor.

Signed-off-by: Gilbert Chen <gilbert.chen@arm.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I4257f823ea26d7fdb322cc82d847e94db056258c

show more ...

16c2a0a016-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 ...


/openbmc/pldm/.clang-format
/openbmc/pldm/common/flight_recorder.hpp
/openbmc/pldm/common/test/mocked_utils.hpp
/openbmc/pldm/common/test/pldm_utils_test.cpp
/openbmc/pldm/common/transport.cpp
/openbmc/pldm/common/utils.cpp
/openbmc/pldm/common/utils.hpp
/openbmc/pldm/fw-update/device_updater.cpp
/openbmc/pldm/fw-update/device_updater.hpp
/openbmc/pldm/fw-update/inventory_manager.cpp
/openbmc/pldm/fw-update/inventory_manager.hpp
/openbmc/pldm/fw-update/package_parser.cpp
/openbmc/pldm/fw-update/package_parser.hpp
/openbmc/pldm/fw-update/update_manager.hpp
/openbmc/pldm/fw-update/watch.cpp
/openbmc/pldm/host-bmc/dbus_to_event_handler.cpp
/openbmc/pldm/host-bmc/dbus_to_host_effecters.cpp
/openbmc/pldm/host-bmc/dbus_to_host_effecters.hpp
/openbmc/pldm/host-bmc/host_condition.hpp
/openbmc/pldm/host-bmc/host_pdr_handler.cpp
/openbmc/pldm/host-bmc/host_pdr_handler.hpp
/openbmc/pldm/host-bmc/utils.cpp
/openbmc/pldm/libpldmresponder/base.hpp
/openbmc/pldm/libpldmresponder/bios.cpp
/openbmc/pldm/libpldmresponder/bios_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_config.cpp
/openbmc/pldm/libpldmresponder/bios_config.hpp
/openbmc/pldm/libpldmresponder/bios_enum_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_integer_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_string_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_table.cpp
/openbmc/pldm/libpldmresponder/bios_table.hpp
/openbmc/pldm/libpldmresponder/fru.cpp
/openbmc/pldm/libpldmresponder/fru.hpp
/openbmc/pldm/libpldmresponder/fru_parser.cpp
/openbmc/pldm/libpldmresponder/pdr.cpp
/openbmc/pldm/libpldmresponder/pdr_numeric_effecter.hpp
/openbmc/pldm/libpldmresponder/pdr_state_effecter.hpp
/openbmc/pldm/libpldmresponder/pdr_state_sensor.hpp
/openbmc/pldm/libpldmresponder/pdr_utils.cpp
/openbmc/pldm/libpldmresponder/pdr_utils.hpp
/openbmc/pldm/libpldmresponder/platform.cpp
/openbmc/pldm/libpldmresponder/platform.hpp
/openbmc/pldm/libpldmresponder/platform_config.cpp
/openbmc/pldm/libpldmresponder/platform_config.hpp
/openbmc/pldm/libpldmresponder/platform_numeric_effecter.hpp
/openbmc/pldm/libpldmresponder/platform_state_effecter.hpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_base_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_config_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_fru_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_pdr_effecter_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_platform_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_systemspecific_bios_test.cpp
/openbmc/pldm/oem/ibm/host-bmc/host_lamp_test.cpp
/openbmc/pldm/oem/ibm/host-bmc/host_lamp_test.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_cert.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_cert.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_dump.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_lid.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pcie.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pcie.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pel.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_progress_src.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_vpd.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_vpd.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/inband_code_update.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/platform_oem_ibm.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.cpp
/openbmc/pldm/oem/ibm/requester/dbus_to_file_handler.cpp
/openbmc/pldm/oem/ibm/requester/dbus_to_file_handler.hpp
/openbmc/pldm/oem/ibm/test/libpldmresponder_fileio_test.cpp
/openbmc/pldm/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
/openbmc/pldm/platform-mc/numeric_sensor.cpp
/openbmc/pldm/platform-mc/numeric_sensor.hpp
/openbmc/pldm/platform-mc/platform_manager.cpp
/openbmc/pldm/platform-mc/platform_manager.hpp
/openbmc/pldm/platform-mc/terminus.cpp
/openbmc/pldm/platform-mc/terminus.hpp
/openbmc/pldm/platform-mc/terminus_manager.cpp
/openbmc/pldm/platform-mc/terminus_manager.hpp
mock_terminus_manager.hpp
terminus_manager_test.cpp
terminus_test.cpp
/openbmc/pldm/pldmd/dbus_impl_pdr.cpp
/openbmc/pldm/pldmd/dbus_impl_pdr.hpp
/openbmc/pldm/pldmd/dbus_impl_requester.hpp
/openbmc/pldm/pldmd/handler.hpp
/openbmc/pldm/pldmd/oem_ibm.hpp
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmtool/oem/ibm/pldm_oem_ibm.cpp
/openbmc/pldm/pldmtool/pldm_base_cmd.cpp
/openbmc/pldm/pldmtool/pldm_bios_cmd.cpp
/openbmc/pldm/pldmtool/pldm_cmd_helper.cpp
/openbmc/pldm/pldmtool/pldm_cmd_helper.hpp
/openbmc/pldm/pldmtool/pldm_fru_cmd.cpp
/openbmc/pldm/pldmtool/pldm_fw_update_cmd.cpp
/openbmc/pldm/pldmtool/pldm_platform_cmd.cpp
/openbmc/pldm/pldmtool/pldmtool.cpp
/openbmc/pldm/requester/handler.hpp
/openbmc/pldm/requester/mctp_endpoint_discovery.cpp
/openbmc/pldm/requester/request.hpp
/openbmc/pldm/requester/test/handler_test.cpp
/openbmc/pldm/requester/test/mctp_endpoint_discovery_test.cpp
/openbmc/pldm/softoff/softoff.cpp
/openbmc/pldm/utilities/requester/set_state_effecter.cpp
/openbmc/pldm/utilities/requester/set_state_effecter_async.cpp
f1e32c1712-Aug-2024 tal-yac <talycb8@gmail.com>

platform-mc: Fix sensor aux name pdr parsing

This fixes an issue with counting the null terminator twice:
both on the name length and on the pdr pointer increment.
This caused to_bytes to throw an e

platform-mc: Fix sensor aux name pdr parsing

This fixes an issue with counting the null terminator twice:
both on the name length and on the pdr pointer increment.
This caused to_bytes to throw an exception on sensors with composite
sensor count larger than 1.

Change-Id: I85c2c12854698402b213fe2dd66a42ac8c299902
Signed-off-by: tal-yac <talycb8@gmail.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>

show more ...

3c5486d401-Aug-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: Create Numeric sensor D-Bus object

Added numeric_sensor class. The NumericSensor class will create the
Numeric sensor D-Bus object. The class also handles sensor status and
exports its

platform-mc: Create Numeric sensor D-Bus object

Added numeric_sensor class. The NumericSensor class will create the
Numeric sensor D-Bus object. The class also handles sensor status and
exports its status to D-Bus interfaces.

tested: Verified on ast2600 EVB which is connected to a PLDM device
over I2C. bmcweb can display the state of numeric sensor.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I1c7de2e74100ed787ed2119896d3c5b36098dd96

show more ...

98831af930-Jul-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: test: remove C type cast

Change C type casting to C++ type casting in platform-mc test code.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Ia050f01871825e3d078a4c3c

platform-mc: test: remove C type cast

Change C type casting to C++ type casting in platform-mc test code.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Ia050f01871825e3d078a4c3c3ac1dead942f854c

show more ...

b8cf46b814-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 ...

de2a132a24-May-2022 Gilbert Chen <gilbert.chen@arm.com>

platform-mc: PDR handling

Get PDRs of new terminus if it supports GetPDR PLDM command. It doesn't
handle the event receiver related initialization steps, and either
doesn't support primary PDR repos

platform-mc: PDR handling

Get PDRs of new terminus if it supports GetPDR PLDM command. It doesn't
handle the event receiver related initialization steps, and either
doesn't support primary PDR repository to maintain terminus locator PDR
information yet.
Added parse PDR member functions to terminus class for parsing Numeric
sensor PDR and sensor auxiliary names PDR.
Added sensor auxiliary names PDR and numeric sensor PDR struct in
libpldm/platform.h

Signed-off-by: Gilbert Chen <gilbert.chen@arm.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I30a0cc594a3c08fc17f2dad861b5c5d41c80ebdd

show more ...


/openbmc/pldm/OWNERS
/openbmc/pldm/README.md
/openbmc/pldm/common/test/meson.build
/openbmc/pldm/common/types.hpp
/openbmc/pldm/host-bmc/dbus/cable.cpp
/openbmc/pldm/host-bmc/dbus/cable.hpp
/openbmc/pldm/host-bmc/dbus/cpu_core.cpp
/openbmc/pldm/host-bmc/dbus/cpu_core.hpp
/openbmc/pldm/host-bmc/dbus/custom_dbus.cpp
/openbmc/pldm/host-bmc/dbus/custom_dbus.hpp
/openbmc/pldm/host-bmc/dbus/motherboard.hpp
/openbmc/pldm/host-bmc/dbus/pcie_device.cpp
/openbmc/pldm/host-bmc/dbus/pcie_device.hpp
/openbmc/pldm/host-bmc/dbus/pcie_slot.cpp
/openbmc/pldm/host-bmc/dbus/pcie_slot.hpp
/openbmc/pldm/host-bmc/host_pdr_handler.cpp
/openbmc/pldm/host-bmc/host_pdr_handler.hpp
/openbmc/pldm/host-bmc/test/custom_dbus_test.cpp
/openbmc/pldm/host-bmc/test/meson.build
/openbmc/pldm/host-bmc/utils.cpp
/openbmc/pldm/host-bmc/utils.hpp
/openbmc/pldm/libpldmresponder/bios_config.cpp
/openbmc/pldm/libpldmresponder/meson.build
/openbmc/pldm/libpldmresponder/oem_handler.hpp
/openbmc/pldm/libpldmresponder/platform.cpp
/openbmc/pldm/libpldmresponder/platform_config.cpp
/openbmc/pldm/libpldmresponder/platform_config.hpp
/openbmc/pldm/libpldmresponder/test/meson.build
/openbmc/pldm/oem/ibm/configurations/bios/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Bonnell/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Everest/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier1S4U/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier2U/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier4U/bios_attrs.json
/openbmc/pldm/oem/ibm/host-bmc/host_lamp_test.cpp
/openbmc/pldm/oem/ibm/host-bmc/host_lamp_test.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pcie.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.hpp
/openbmc/pldm/oem/ibm/test/entitymap_test.json
/openbmc/pldm/oem/ibm/test/host_bmc_lamp_test.cpp
/openbmc/pldm/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
/openbmc/pldm/platform-mc/platform_manager.cpp
/openbmc/pldm/platform-mc/platform_manager.hpp
/openbmc/pldm/platform-mc/terminus.cpp
/openbmc/pldm/platform-mc/terminus.hpp
/openbmc/pldm/platform-mc/terminus_manager.cpp
/openbmc/pldm/platform-mc/terminus_manager.hpp
meson.build
platform_manager_test.cpp
terminus_test.cpp
/openbmc/pldm/pldmd/oem_ibm.hpp
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmtool/README.md
/openbmc/pldm/requester/README.md
/openbmc/pldm/tools/fw-update/README.md
/openbmc/pldm/tools/visualize-pdr/README.md
6c7fed4c22-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 ...


/openbmc/pldm/.clang-format
/openbmc/pldm/.eslintignore
/openbmc/pldm/.gitignore
/openbmc/pldm/.linter-ignore
/openbmc/pldm/LICENSE
/openbmc/pldm/OWNERS
/openbmc/pldm/README.md
/openbmc/pldm/common/bios_utils.hpp
/openbmc/pldm/common/flight_recorder.hpp
/openbmc/pldm/common/instance_id.hpp
/openbmc/pldm/common/test/meson.build
/openbmc/pldm/common/test/mocked_utils.hpp
/openbmc/pldm/common/test/pldm_utils_test.cpp
/openbmc/pldm/common/transport.cpp
/openbmc/pldm/common/transport.hpp
/openbmc/pldm/common/types.hpp
/openbmc/pldm/common/utils.cpp
/openbmc/pldm/common/utils.hpp
/openbmc/pldm/configurations/entityMap.json
/openbmc/pldm/configurations/events/stateSensorPdrs.json
/openbmc/pldm/configurations/fru_master.json
/openbmc/pldm/configurations/host/dbus_to_host_effecter.json
/openbmc/pldm/configurations/meson.build
/openbmc/pldm/configurations/pdr/11.json
/openbmc/pldm/configurations/pdr/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Bonnell/11.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Bonnell/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Everest/11.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Everest/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier1S4U/11.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier1S4U/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier2U/11.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier2U/4.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier4U/11.json
/openbmc/pldm/configurations/pdr/com.ibm.Hardware.Chassis.Model.Rainier4U/4.json
/openbmc/pldm/configurations/softoff/softoff_config.json
/openbmc/pldm/fw-update/activation.hpp
/openbmc/pldm/fw-update/device_updater.cpp
/openbmc/pldm/fw-update/device_updater.hpp
/openbmc/pldm/fw-update/inventory_manager.cpp
/openbmc/pldm/fw-update/inventory_manager.hpp
/openbmc/pldm/fw-update/manager.hpp
/openbmc/pldm/fw-update/package_parser.cpp
/openbmc/pldm/fw-update/package_parser.hpp
/openbmc/pldm/fw-update/test/device_updater_test.cpp
/openbmc/pldm/fw-update/test/inventory_manager_test.cpp
/openbmc/pldm/fw-update/test/meson.build
/openbmc/pldm/fw-update/test/package_parser_test.cpp
/openbmc/pldm/fw-update/test/test_pkg
/openbmc/pldm/fw-update/update_manager.cpp
/openbmc/pldm/fw-update/update_manager.hpp
/openbmc/pldm/fw-update/watch.cpp
/openbmc/pldm/fw-update/watch.hpp
/openbmc/pldm/host-bmc/custom_dbus.cpp
/openbmc/pldm/host-bmc/custom_dbus.hpp
/openbmc/pldm/host-bmc/dbus_to_event_handler.cpp
/openbmc/pldm/host-bmc/dbus_to_event_handler.hpp
/openbmc/pldm/host-bmc/dbus_to_host_effecters.cpp
/openbmc/pldm/host-bmc/dbus_to_host_effecters.hpp
/openbmc/pldm/host-bmc/host_condition.cpp
/openbmc/pldm/host-bmc/host_condition.hpp
/openbmc/pldm/host-bmc/host_pdr_handler.cpp
/openbmc/pldm/host-bmc/host_pdr_handler.hpp
/openbmc/pldm/host-bmc/test/custom_dbus_test.cpp
/openbmc/pldm/host-bmc/test/dbus_to_host_effecter_test.cpp
/openbmc/pldm/host-bmc/test/entitymap_test.json
/openbmc/pldm/host-bmc/test/host_effecter_jsons/good/dbus_to_host_effecter.json
/openbmc/pldm/host-bmc/test/host_effecter_jsons/malformed/dbus_to_host_effecter.json
/openbmc/pldm/host-bmc/test/host_effecter_jsons/no_json/dummy.json
/openbmc/pldm/host-bmc/test/meson.build
/openbmc/pldm/host-bmc/test/utils_test.cpp
/openbmc/pldm/host-bmc/utils.cpp
/openbmc/pldm/host-bmc/utils.hpp
/openbmc/pldm/libpldmresponder/base.cpp
/openbmc/pldm/libpldmresponder/base.hpp
/openbmc/pldm/libpldmresponder/bios.cpp
/openbmc/pldm/libpldmresponder/bios.hpp
/openbmc/pldm/libpldmresponder/bios_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_config.cpp
/openbmc/pldm/libpldmresponder/bios_config.hpp
/openbmc/pldm/libpldmresponder/bios_enum_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_enum_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_integer_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_integer_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_string_attribute.cpp
/openbmc/pldm/libpldmresponder/bios_string_attribute.hpp
/openbmc/pldm/libpldmresponder/bios_table.cpp
/openbmc/pldm/libpldmresponder/bios_table.hpp
/openbmc/pldm/libpldmresponder/event_parser.cpp
/openbmc/pldm/libpldmresponder/event_parser.hpp
/openbmc/pldm/libpldmresponder/examples/bios/enum_attrs.json
/openbmc/pldm/libpldmresponder/examples/bios/integer_attrs.json
/openbmc/pldm/libpldmresponder/examples/bios/string_attrs.json
/openbmc/pldm/libpldmresponder/examples/effecter/dbus_to_host_effecter.json
/openbmc/pldm/libpldmresponder/examples/events/event_state_sensor.json
/openbmc/pldm/libpldmresponder/examples/fru/Board_General.json
/openbmc/pldm/libpldmresponder/examples/fru/Board_VINI.json
/openbmc/pldm/libpldmresponder/examples/fru/Cpu_General.json
/openbmc/pldm/libpldmresponder/examples/fru/FRU_Master.json
/openbmc/pldm/libpldmresponder/examples/fru/host_frus.json
/openbmc/pldm/libpldmresponder/examples/pdr/effecter_pdr.json
/openbmc/pldm/libpldmresponder/examples/pdr/sensor_pdr.json
/openbmc/pldm/libpldmresponder/fru.cpp
/openbmc/pldm/libpldmresponder/fru.hpp
/openbmc/pldm/libpldmresponder/fru_parser.cpp
/openbmc/pldm/libpldmresponder/fru_parser.hpp
/openbmc/pldm/libpldmresponder/meson.build
/openbmc/pldm/libpldmresponder/oem_handler.hpp
/openbmc/pldm/libpldmresponder/pdr.cpp
/openbmc/pldm/libpldmresponder/pdr.hpp
/openbmc/pldm/libpldmresponder/pdr_numeric_effecter.hpp
/openbmc/pldm/libpldmresponder/pdr_state_effecter.hpp
/openbmc/pldm/libpldmresponder/pdr_state_sensor.hpp
/openbmc/pldm/libpldmresponder/pdr_utils.cpp
/openbmc/pldm/libpldmresponder/pdr_utils.hpp
/openbmc/pldm/libpldmresponder/platform.cpp
/openbmc/pldm/libpldmresponder/platform.hpp
/openbmc/pldm/libpldmresponder/platform_config.cpp
/openbmc/pldm/libpldmresponder/platform_config.hpp
/openbmc/pldm/libpldmresponder/platform_numeric_effecter.hpp
/openbmc/pldm/libpldmresponder/platform_state_effecter.hpp
/openbmc/pldm/libpldmresponder/platform_state_sensor.hpp
/openbmc/pldm/libpldmresponder/test/bios_jsons/bios_attrs.json
/openbmc/pldm/libpldmresponder/test/event_jsons/good/event_state_sensor.json
/openbmc/pldm/libpldmresponder/test/files/NVRAM-IMAGE
/openbmc/pldm/libpldmresponder/test/files/NVRAM-IMAGE-CKSUM
/openbmc/pldm/libpldmresponder/test/fru_jsons/fru_master/fru_master.json
/openbmc/pldm/libpldmresponder/test/fru_jsons/good/Board_General.json
/openbmc/pldm/libpldmresponder/test/fru_jsons/good/Board_VINI.json
/openbmc/pldm/libpldmresponder/test/fru_jsons/good/Cpu_General.json
/openbmc/pldm/libpldmresponder/test/fru_jsons/good/FRU_Master.json
/openbmc/pldm/libpldmresponder/test/libpldmresponder_base_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_attribute_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_config_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_enum_attribute_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_integer_attribute_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_string_attribute_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_table_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_bios_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_fru_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_pdr_effecter_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_pdr_sensor_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_platform_test.cpp
/openbmc/pldm/libpldmresponder/test/libpldmresponder_systemspecific_bios_test.cpp
/openbmc/pldm/libpldmresponder/test/meson.build
/openbmc/pldm/libpldmresponder/test/mocked_bios.hpp
/openbmc/pldm/libpldmresponder/test/pdr_jsons/state_effecter/good/effecter_pdr.json
/openbmc/pldm/libpldmresponder/test/pdr_jsons/state_effecter/malformed/effecter_pdr.json
/openbmc/pldm/libpldmresponder/test/pdr_jsons/state_sensor/good/sensor_pdr.json
/openbmc/pldm/libpldmresponder/test/pdr_jsons/state_sensor/malformed/sensor_pdr.json
/openbmc/pldm/libpldmresponder/test/system_type1/bios_jsons/bios_attrs.json
/openbmc/pldm/meson.build
/openbmc/pldm/meson.options
/openbmc/pldm/oem/ibm/configurations/bios/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Bonnell/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Everest/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier1S4U/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier2U/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/bios/com.ibm.Hardware.Chassis.Model.Rainier4U/bios_attrs.json
/openbmc/pldm/oem/ibm/configurations/entityMap.json
/openbmc/pldm/oem/ibm/configurations/events/oem_ibm_event_state_sensor.json
/openbmc/pldm/oem/ibm/configurations/fileTable.json
/openbmc/pldm/oem/ibm/configurations/fru/Battery_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Bmc_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Bmc_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/Bmc_VR10.json
/openbmc/pldm/oem/ibm/configurations/fru/Bmc_VW10.json
/openbmc/pldm/oem/ibm/configurations/fru/Chassis_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Chassis_VCEN.json
/openbmc/pldm/oem/ibm/configurations/fru/Chassis_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/Connector_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/DiskBackplane_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/DiskBackplane_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/Fan_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Fan_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_DINF.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_LXR0.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_PSPD.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_UTIL.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_VCEN.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/Motherboard_VSYS.json
/openbmc/pldm/oem/ibm/configurations/fru/PCIeDevice_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/PCIeDevice_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/PCIeSlot_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Panel_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Panel_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/PowerSupply_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/PowerSupply_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/System_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/System_VSYS.json
/openbmc/pldm/oem/ibm/configurations/fru/Tpm_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Tpm_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru/Vrm_LocationCode.json
/openbmc/pldm/oem/ibm/configurations/fru/Vrm_VINI.json
/openbmc/pldm/oem/ibm/configurations/fru_master.json
/openbmc/pldm/oem/ibm/configurations/host_eid
/openbmc/pldm/oem/ibm/libpldmresponder/file_io.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_by_type.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_cert.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_cert.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_dump.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_dump.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_lid.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pcie.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pcie.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pel.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_pel.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_progress_src.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_progress_src.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_vpd.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_io_type_vpd.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_table.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/file_table.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/fru_oem_ibm.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/inband_code_update.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/inband_code_update.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/platform_oem_ibm.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/platform_oem_ibm.hpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.cpp
/openbmc/pldm/oem/ibm/libpldmresponder/utils.hpp
/openbmc/pldm/oem/ibm/requester/dbus_to_file_handler.cpp
/openbmc/pldm/oem/ibm/requester/dbus_to_file_handler.hpp
/openbmc/pldm/oem/ibm/service_files/meson.build
/openbmc/pldm/oem/ibm/service_files/pldm-create-phyp-nvram-cksum.service
/openbmc/pldm/oem/ibm/service_files/pldm-create-phyp-nvram.service
/openbmc/pldm/oem/ibm/service_files/scripts/create-NVRAM-cksum-file
/openbmc/pldm/oem/ibm/service_files/scripts/create-NVRAM-file
/openbmc/pldm/oem/ibm/service_files/scripts/meson.build
/openbmc/pldm/oem/ibm/test/libpldmresponder_fileio_test.cpp
/openbmc/pldm/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
/openbmc/pldm/platform-mc/manager.cpp
/openbmc/pldm/platform-mc/manager.hpp
/openbmc/pldm/platform-mc/platform_manager.cpp
/openbmc/pldm/platform-mc/platform_manager.hpp
/openbmc/pldm/platform-mc/terminus.cpp
/openbmc/pldm/platform-mc/terminus.hpp
/openbmc/pldm/platform-mc/terminus_manager.cpp
/openbmc/pldm/platform-mc/terminus_manager.hpp
meson.build
mock_terminus_manager.hpp
terminus_manager_test.cpp
terminus_test.cpp
/openbmc/pldm/pldmd/dbus_impl_pdr.cpp
/openbmc/pldm/pldmd/dbus_impl_pdr.hpp
/openbmc/pldm/pldmd/dbus_impl_requester.hpp
/openbmc/pldm/pldmd/handler.hpp
/openbmc/pldm/pldmd/invoker.hpp
/openbmc/pldm/pldmd/oem_ibm.hpp
/openbmc/pldm/pldmd/pldmd.cpp
/openbmc/pldm/pldmd/service_files/pldmd.service
/openbmc/pldm/pldmtool/README.md
/openbmc/pldm/pldmtool/meson.build
/openbmc/pldm/pldmtool/oem/ibm/oem_ibm_state_set.hpp
/openbmc/pldm/pldmtool/oem/ibm/pldm_oem_ibm.cpp
/openbmc/pldm/pldmtool/oem/ibm/pldm_oem_ibm.hpp
/openbmc/pldm/pldmtool/pldm_base_cmd.cpp
/openbmc/pldm/pldmtool/pldm_base_cmd.hpp
/openbmc/pldm/pldmtool/pldm_bios_cmd.cpp
/openbmc/pldm/pldmtool/pldm_bios_cmd.hpp
/openbmc/pldm/pldmtool/pldm_cmd_helper.cpp
/openbmc/pldm/pldmtool/pldm_cmd_helper.hpp
/openbmc/pldm/pldmtool/pldm_fru_cmd.cpp
/openbmc/pldm/pldmtool/pldm_fru_cmd.hpp
/openbmc/pldm/pldmtool/pldm_fw_update_cmd.cpp
/openbmc/pldm/pldmtool/pldm_fw_update_cmd.hpp
/openbmc/pldm/pldmtool/pldm_platform_cmd.cpp
/openbmc/pldm/pldmtool/pldm_platform_cmd.hpp
/openbmc/pldm/pldmtool/pldmtool.cpp
/openbmc/pldm/requester/README.md
/openbmc/pldm/requester/handler.hpp
/openbmc/pldm/requester/mctp_endpoint_discovery.cpp
/openbmc/pldm/requester/mctp_endpoint_discovery.hpp
/openbmc/pldm/requester/request.hpp
/openbmc/pldm/requester/test/handler_test.cpp
/openbmc/pldm/requester/test/mctp_endpoint_discovery_test.cpp
/openbmc/pldm/requester/test/meson.build
/openbmc/pldm/requester/test/mock_mctp_discovery_handler_intf.hpp
/openbmc/pldm/requester/test/mock_request.hpp
/openbmc/pldm/requester/test/request_test.cpp
/openbmc/pldm/softoff/main.cpp
/openbmc/pldm/softoff/meson.build
/openbmc/pldm/softoff/services/pldmSoftPowerOff.service
/openbmc/pldm/softoff/softoff.cpp
/openbmc/pldm/softoff/softoff.hpp
/openbmc/pldm/subprojects/CLI11.wrap
/openbmc/pldm/subprojects/googletest.wrap
/openbmc/pldm/subprojects/libpldm.wrap
/openbmc/pldm/subprojects/nlohmann_json.wrap
/openbmc/pldm/subprojects/phosphor-dbus-interfaces.wrap
/openbmc/pldm/subprojects/phosphor-logging.wrap
/openbmc/pldm/subprojects/sdbusplus.wrap
/openbmc/pldm/subprojects/sdeventplus.wrap
/openbmc/pldm/subprojects/stdplus.wrap
/openbmc/pldm/test/meson.build
/openbmc/pldm/test/pldmd_registration_test.cpp
/openbmc/pldm/test/test_instance_id.hpp
/openbmc/pldm/tools/fw-update/README.md
/openbmc/pldm/tools/fw-update/metadata-example.json
/openbmc/pldm/tools/fw-update/pldm_fwup_pkg_creator.py
/openbmc/pldm/tools/visualize-pdr/README.md
/openbmc/pldm/tools/visualize-pdr/pldm_visualise_pdrs.py
/openbmc/pldm/tools/visualize-pdr/requirements.txt
/openbmc/pldm/utilities/meson.build
/openbmc/pldm/utilities/requester/set_state_effecter.cpp
/openbmc/pldm/utilities/requester/set_state_effecter_async.cpp