#
fe252795 |
| 13-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 ...
|
#
fdf61cc3 |
| 22-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 ...
|
#
38a09d25 |
| 04-Mar-2025 |
Chau Ly <chaul@amperecomputing.com> |
platform-mc: Terminus: Add getSensorNames function
`addNumericSensor` and `addCompactNumericSensor` functions currently try to construct the sensor name it self. This causes code duplication.
This
platform-mc: Terminus: Add getSensorNames function
`addNumericSensor` and `addCompactNumericSensor` functions currently try to construct the sensor name it self. This causes code duplication.
This commit separates that work into `getSensorNames` function, which returns a vector of sensor name strings that might enlist Sensor Auxiliary Names PDRs. Depending on the existence of the mentioned PDR, and the sensor count that the PDR supports, the size of the returned vector might vary. At this time, callers only get the first element of the vector, but this function can cover future implementations of Compact Numeric Sensor.
Tested: There's no functional change applied, so the behavior is the same after this commit.
Change-Id: I02844f5d0820b0dea2d16d1695350e92ef0383d2 Signed-off-by: Chau Ly <chaul@amperecomputing.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 ...
|
#
6e615622 |
| 21-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 ...
|
#
f48015b3 |
| 20-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 ...
|
#
9fc79128 |
| 10-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 ...
|
#
77e6fe7a |
| 06-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 ...
|
#
51d66b59 |
| 06-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 ...
|
#
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 ...
|
#
3c5486d4 |
| 01-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 ...
|
#
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 ...
|
#
de2a132a |
| 24-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 ...
|
#
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 ...
|