#
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 ...
|
#
36b36938 |
| 29-Jan-2025 |
Pavithra Barithaya <pavithrabarithaya07@gmail.com> |
platform-mc : Migrate to placement_new from reinterpret casting
reinterpret_cast is prohibited by the C++ core guidelines because it takes the behavior outside the language definition and gives prob
platform-mc : Migrate to placement_new from reinterpret casting
reinterpret_cast is prohibited by the C++ core guidelines because it takes the behavior outside the language definition and gives problems with type safety. Placement-new on the other-hand allows to control the object storage while still properly instantiating an object,keeping the behavior inside the C++ language specification.
Change-Id: I006bb4a5de9f7d0cef4dbc7507f63e1d6798ddfe Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>
show more ...
|
#
75e00422 |
| 19-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 ...
|
#
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 ...
|
#
5028734c |
| 21-Nov-2023 |
Dung Cao <dung@os.amperecomputing.com> |
platform-mc: Support register OEM mechanism to poll events
When the terminus only supports the `Poll-based message` type as `Table 17 - EventMessageSupported command format` in DSP0248 V1.3.0, BMC n
platform-mc: Support register OEM mechanism to poll events
When the terminus only supports the `Poll-based message` type as `Table 17 - EventMessageSupported command format` in DSP0248 V1.3.0, BMC needs polling the events from the terminus. Add method to register OEM mechanism to poll the event from terminus.
Change-Id: I9c10d66ce076de3ddb38c9a391c3784b57ebb934 Signed-off-by: Dung Cao <dung@os.amperecomputing.com> Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
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 ...
|
#
22aed8fb |
| 13-Sep-2024 |
Ricky CX Wu <ricky.cx.wu.wiwynn@gmail.com> |
platform-mc: correct the PLDM sensor operational state handling
As we discussed in gerrit 51489 before, we reached consensus for the pldm sensor state as following states:
PLDM_SENSOR_ENABLED
platform-mc: correct the PLDM sensor operational state handling
As we discussed in gerrit 51489 before, we reached consensus for the pldm sensor state as following states:
PLDM_SENSOR_ENABLED : Functional True, Available True PLDM_SENSOR_DISABLED : Functional True, Available False PLDM_SENSOR_UNAVAILABLE : Functional False, Available False PLDM_SENSOR_FAILED : Functional False, Available True PLDM_SENSOR_INITIALIZING : Functional False, Available False
Correct the states handling for PLDM_SENSOR_DISABLED and PLDM_SENSOR_FAILED.
Change-Id: I0cab9ab59a1e9c0f5c6d841c529a64cc4bb8caee Signed-off-by: Ricky CX Wu <ricky.cx.wu.wiwynn@gmail.com>
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 ...
|
#
eac61a4b |
| 23-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 ...
|