History log of /openbmc/pldm/libpldmresponder/oem_handler.hpp (Results 1 – 20 of 20)
Revision Date Author Comments
# a31ceb91 21-Jul-2021 Manojkiran Eda <manojkiran.eda@gmail.com>

oem_ibm: Add Slot enable infrastructure in BMC

With this commit PDRs are created for each of these
PCIe slots and adapters which have a corresponding
entry in the entity associate map. The sensor/ef

oem_ibm: Add Slot enable infrastructure in BMC

With this commit PDRs are created for each of these
PCIe slots and adapters which have a corresponding
entry in the entity associate map. The sensor/effector
states are monitored and accordingly D-Bus calls are
sent for enabling a slot, process property change
of a PCIe slot, etc.

Tested By: SIMICS power on/off and reset reload.

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

show more ...


# eb43d6c8 01-May-2024 Kamalkumar Patel <kamalkumar.patel@ibm.com>

Add support for the coreCount property in DBus

This commit introduces support for counting the number of CPU cores
during BMC power-on and populates this information to a DBus property
named coreCou

Add support for the coreCount property in DBus

This commit introduces support for counting the number of CPU cores
during BMC power-on and populates this information to a DBus property
named coreCount. Upon BMC power-on, the remote terminus detects the
number of CPU cores and send this data and PLDM will updates the
coreCount property accordingly.

Tested:
tested on simulator for hosting DBus property

Change-Id: I37adbe399414fcff3f089fb819349ca4bb537edd
Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>

show more ...


# 2576aecd 17-Jun-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: I539a0c5baa63be240fc1c76367c0af338dd89c7b
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 18145f7d 11-Apr-2022 Sagar Srinivas <sagar.srinivas@ibm.com>

oem_ibm: Implement timer for Surveillance Pings

This commit introduces a timer for surveillance pings sent by the
remote terminus to monitor the BMC. If a ping is not received
within 120 seconds, an

oem_ibm: Implement timer for Surveillance Pings

This commit introduces a timer for surveillance pings sent by the
remote terminus to monitor the BMC. If a ping is not received
within 120 seconds, an informational error will be logged.

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: Ia52ed2461b2c2f8ea0102e60ed2a22c7691b2d2a

show more ...


# 15ce5a18 07-May-2024 Kamalkumar Patel <kamalkumar.patel@ibm.com>

oem-ibm: Adding entity path correction function

This commit introduces enhancements to rectify entity paths over DBus.
Formerly, the conventional DBus path involved appending an instance
number, suc

oem-ibm: Adding entity path correction function

This commit introduces enhancements to rectify entity paths over DBus.
Formerly, the conventional DBus path involved appending an instance
number, such as 'system' becoming 'system1', 'motherboard' becoming
'motherboard1', and 'chassis' becoming 'chassis1'. This function is
designed to align with IBM's specific use case, ensuring the numbering
system adheres appropriately.

Testing:
Unit tests passed

Change-Id: I671f8486078054b44110ffa2cbf169c63d164cf1
Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>

show more ...


# a410c658 22-Jul-2021 Pavithra Barithaya <pavithra.b@ibm.com>

oem:ibm :Implement SetFruRecordTable

The commit implements the setFruRecordTable command
and also updates the DBus property for the IBM cable cards
for which the host sends a setFruRecordTable comma

oem:ibm :Implement SetFruRecordTable

The commit implements the setFruRecordTable command
and also updates the DBus property for the IBM cable cards
for which the host sends a setFruRecordTable command.

Tested: using pldmtool

Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
Change-Id: I70e4f85f627577d8ca1bc90447b10e9e2e8e7ccd

show more ...


# 3c50c82a 30-Jan-2024 Kamalkumar Patel <kamalkumar.patel@ibm.com>

Adding Platform specific PDR support

- Adding platform check to generate pdr based on platform type.

- Currently PDR generation is happening based on default
configuration, so this commit adds su

Adding Platform specific PDR support

- Adding platform check to generate pdr based on platform type.

- Currently PDR generation is happening based on default
configuration, so this commit adds support to generate PDR's based
in the platform type.

Testing:
- Added traces and check from which path the files has been taken for
pdr generation.
- Removed power supply from default path and oem layer and identified
that power supply pdr is not generating.

Change-Id: I6bedf06be7392e02c1ad32af7a552a5a4d6d42c0
Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>

show more ...


# 90314a3f 17-Oct-2023 Sagar Srinivas <sagar.srinivas@ibm.com>

Reorganize the setEventReceiver code

This commit is to re-organise the code to make the
setEventReceiver optional when GetTID gets called.

Currently, it is being called on every GetTID command.
Thi

Reorganize the setEventReceiver code

This commit is to re-organise the code to make the
setEventReceiver optional when GetTID gets called.

Currently, it is being called on every GetTID command.
This is and OEM behaviour, which was implemented at -
https://gerrit.openbmc.org/c/openbmc/pldm/+/41779/36

Also, setEventReceiver is a command defined in the platform
Spec, so rightfully placing it under the platform handler.

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: Ib60e9d46a8eaf4806c5ec2e9575f4e219bc80eab

show more ...


# 3687e2b6 10-Apr-2023 Sagar Srinivas <sagar.srinivas@ibm.com>

oem_ibm: Persist the remote PDRs before merging

This commit persists the remote range PDRs in the repo
before they are merged. This change was needed as the
remote terminus would not send down to BM

oem_ibm: Persist the remote PDRs before merging

This commit persists the remote range PDRs in the repo
before they are merged. This change was needed as the
remote terminus would not send down to BMC the entity
Association PDRs of the remote terminus after the BMC
takes a reset after the PDR exchange as the PDRs will be
in BMC range of record handles.

TESTED: Tested by triggering a PDR exchange with the
remote terminus by doing poweron test and also reset the
BMC after the PDR exchange.

Change-Id: Iec2109073f984e5980d9b6e445ce0fa4198d4a0f
Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>

show more ...


# 11ce8d22 28-Jul-2022 Sagar Srinivas <sagar.srinivas@ibm.com>

PLDM: System specific BIOS attributes

This commit adds code to populate BIOS attributes
based on the system type that is the platform.

The BIOS Jsons are installed based on the platform/
system typ

PLDM: System specific BIOS attributes

This commit adds code to populate BIOS attributes
based on the system type that is the platform.

The BIOS Jsons are installed based on the platform/
system type. The system type is populated by entity
manager.

TESTED on hardware across different platform/system type.
On systems where the compatible system interface is not
implemented or entity manager not running, then the BIOS
Jsons with default values are installed.

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I179dad34537ed0d1fb263584d687a1b8cb64c335

show more ...


# 6da4f91b 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

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

show more ...


# d21b57d7 09-Feb-2023 Sagar Srinivas <sagar.srinivas@ibm.com>

PLDM: Add the full namespaces reference

This commit is to add complete namespaces for
function parameters.

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I2b55bd3a0b0f78ce0299a46

PLDM: Add the full namespaces reference

This commit is to add complete namespaces for
function parameters.

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I2b55bd3a0b0f78ce0299a46e6a624934d7ac2116

show more ...


# 99854a70 29-Sep-2021 Pavithra Barithaya <pavithra.b@ibm.com>

PLDM: Reset Reload usecase to check the BMC state

This commit implements the RR usecase.
When the BMC takes a reboot when the host is up and we get
the getPDR request from host even

PLDM: Reset Reload usecase to check the BMC state

This commit implements the RR usecase.
When the BMC takes a reboot when the host is up and we get
the getPDR request from host even when BMC is NotReady which leads
to problem.
This commit checks if the BMC is ready or not and then handles
the getPDR request from host.

In the current state, pldm stack does not dynamically generate
all the PDRs for us to send PDR repository change event to host at
runtime. IBM has plans to make the PDR exchange dynamic in future,
but until we come up with that feature, just as a temporary fix
we check the BMC state to determine if PLDM stack is ready for
a PDR exchange.

When services like inventory and led manager are added to the
dependency list of pldm, MCTP will start first but PLDM starts late,
the host assumes that BMC is not back and reboots us.

This commit also solves the pldmd crash which was because
some fru was getting a remove signal but the fru table was not
completely built after a reboot.

Tested:
set the BMC state property to NotReady using busctl and then
using pldmtool requested a getPDR.
pldmtool platform getpdr -d 2
BMC is not ready
Response Message Error: rc=0,cc=4

Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
Change-Id: I6599409a154d6359db389be5e44da139ee2f3205

show more ...


# 7f760b36 12-May-2021 Sagar Srinivas <sagar.srinivas@ibm.com>

oem_ibm: Disable Watchdog Timer

The Host watchdog timer is started when the BMC is
powered on with a predefined timer interval. BMC
monitors if the Host boots without failures and

oem_ibm: Disable Watchdog Timer

The Host watchdog timer is started when the BMC is
powered on with a predefined timer interval. BMC
monitors if the Host boots without failures and
Host is supposed to ping the BMC(through
PlatformEventMessages) within the watchdog timer
interval expiration and BMC resets the watchdog
timer on receiving pings from Host and in case
the Host fails to ping the BMC within the timer
interval expiration, then BMC will trigger a host
dump.

This commit is to disable the watchdog timer after
host poweron completion, which will be followed by
surveillance(monitoring of BMC by Host).

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I734e6e98f6c2936aebd04c0b56bdfebba4cfd40b

show more ...


# 79669c94 28-Apr-2021 Sagar Srinivas <sagar.srinivas@ibm.com>

oem_ibm: Reset Watchdog Timer

The watchdog timer is started as soon as the BMC
is powered on. Host sends GetTID to BMC, BMC
responds to that and sends SetEventReceiver
command wi

oem_ibm: Reset Watchdog Timer

The watchdog timer is started as soon as the BMC
is powered on. Host sends GetTID to BMC, BMC
responds to that and sends SetEventReceiver
command with a specified time interval(Heartbeat). Host
is supposed to send PlatformEventMessage to BMC
within the elapsed interval.

We use the same infrastructure as that of surveillance
for implementing host watchdog. The difference between
surveillance and host watchdog is that-
-> Surveillance is host monitoring the BMC if it is
functioning and its us up and running and if the BMC
fails to respond to ping from host, then host will
reset the BMC
-> Watchdog is BMC monitoring if the host boots without
failures, and if host does not respond to pings from
BMC after the watchdog interval, then the watchdog app
triggers a host dump.

Watchdog monitoring is followed by surveillance.

This commit adds change to reset the watchdog
timer on receiving PlatformEventMessage for
heartbeat elapsed time from Host

Tester with pldmtool:
./pldmtool raw -d 0x80 0x02 0x0A 0x01 0x01 0x06 0x01 0x01
Request Message:
08 01 80 02 0a 01 01 06 01 01
Received Msg
08 01 80 02 0a 01 01 06 01 01
Sending Msg
00 02 0a 00 00
Received Msg
08 01 00 02 0a 00 00
Response Message:
08 01 00 02 0a 00 00

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I9fea658c3f2d3086ad2574ef827a5154dac6960e

show more ...


# 5079ac4a 19-Aug-2021 Brad Bishop <bradleyb@fuzziesquirrel.com>

treewide: remove 'using namespace' from headers

Using namespace at global scope in a header file violates the cpp core
guidelines. Quoting the guidelines:

"Doing so takes awa

treewide: remove 'using namespace' from headers

Using namespace at global scope in a header file violates the cpp core
guidelines. Quoting the guidelines:

"Doing so takes away an #includer’s ability to effectively
disambiguate and to use alternatives. It also makes #included headers
order-dependent as they might have different meaning when included in
different orders."

For further reading:
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-using-directive

The guidelines don't call out using using namespace from namespace
scope, but it is only marginally less problematic and still unexpected,
so this patch removes those as well.

The process used to do the update is roughly:

1 - git grep 'using namespace' **.hpp
2 - For each instance, remove the offending 'using namespace' line
3 - build
4 - add 'using namespace' to cpp files or fully resolve types in hpp
files until the project builds again.

Further cleanup is possible - for example cpp files could be scrubbed
for unnecessary namespace qualification - this was not done here to make
review as simple as possible.

Change-Id: I4931f5e78a1b5b74b4a4774c035a549f4d59b91a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>

show more ...


# 3a0e3b9b 21-Oct-2020 Sampa Misra <sampmisr@in.ibm.com>

oem ibm: marker LID validation

This commit adds code for writing marker LID
from Host and also send a PlatformEventMessage
after validation.

This commit also subscribes for

oem ibm: marker LID validation

This commit adds code for writing marker LID
from Host and also send a PlatformEventMessage
after validation.

This commit also subscribes for the interface added
signal to fetch the new image id and sends the relevant
sensor event to host

Change-Id: I92476beca18e6dd255f372dd82d6eaeca18e282c
Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>

show more ...


# 3fbd39eb 28-Sep-2020 Varsha Kaverappa <vkaverap@in.ibm.com>

Inband code update: send PLDM events up for all code update states

send pldm events to Host to respond to the code update commands.

Signed-off-by: Varsha Kaverappa <vkaverap@in.ibm.

Inband code update: send PLDM events up for all code update states

send pldm events to Host to respond to the code update commands.

Signed-off-by: Varsha Kaverappa <vkaverap@in.ibm.com>
Change-Id: Iae90a4663d4c5ed20b3a8a6222edb6055a533589

show more ...


# 78a225a2 27-Aug-2020 Sagar Srinivas <sagar.srinivas@ibm.com>

oem-ibm: create OEM PDRs for all OEM state sensors and
effecters

Created Sensors and effecters for Code update for the
Boot side and Firmware update State indication and
control.

oem-ibm: create OEM PDRs for all OEM state sensors and
effecters

Created Sensors and effecters for Code update for the
Boot side and Firmware update State indication and
control.

root@rainier:/tmp# ./pldmtool platform GetPDR -d 22
nextRecordHandle: 23
responseCount: 30
recordHandle: 22
PDRHeaderVersion: 1
PDRType: State Effecter PDR(11)
recordChangeNumber: 0
dataLength: 16

PLDMTerminusHandle: 1
effecterID: 7
entityType: Virtual Machine Manager
entityInstanceNumber: 0
containerID: 0
effecterSemanticID: 0
effecterInit: noInit
effecterDescriptionPDR: false
compositeEffecterCount: 1
stateSetID: 32769
possibleStatesSize: 2
possibleStates: 1 2
root@rainier:/tmp# ./pldmtool platform GetPDR -d 23
nextRecordHandle: 24
responseCount: 30
recordHandle: 23
PDRHeaderVersion: 1
PDRType: State Effecter PDR(11)
recordChangeNumber: 0
dataLength: 16

PLDMTerminusHandle: 1
effecterID: 8
entityType: Virtual Machine Manager
entityInstanceNumber: 1
containerID: 0
effecterSemanticID: 0
effecterInit: noInit
effecterDescriptionPDR: false
compositeEffecterCount: 1
stateSetID: 32769
possibleStatesSize: 2
possibleStates: 1 2
root@rainier:/tmp# ./pldmtool platform GetPDR -d 24
nextRecordHandle: 25
responseCount: 30
recordHandle: 24
PDRHeaderVersion: 1
PDRType: State Effecter PDR(11)
recordChangeNumber: 0
dataLength: 16

PLDMTerminusHandle: 1
effecterID: 9
entityType: Virtual Machine Manager
entityInstanceNumber: 0
containerID: 0
effecterSemanticID: 0
effecterInit: noInit
effecterDescriptionPDR: false
compositeEffecterCount: 1
stateSetID: 32768
possibleStatesSize: 2
possibleStates: 1 2 3 4 5 6
root@rainier:/tmp# ./pldmtool platform GetPDR -d 25
nextRecordHandle: 26
responseCount: 28
recordHandle: 25
PDRHeaderVersion: 1
PDRType: State Sensor PDR(4)
recordChangeNumber: 0
dataLength: 14

PLDMTerminusHandle: 1
sensorID: 1
entityType: Virtual Machine Manager
entityInstanceNumber: 0
containerID: 0
sensorInit: noInit
sensorAuxiliaryNamesPDR: false
compositeSensorCount: 1
stateSetID: 32769
possibleStatesSize: 2
possibleStates: 1 2
root@rainier:/tmp# ./pldmtool platform GetPDR -d 26
nextRecordHandle: 27
responseCount: 28
recordHandle: 26
PDRHeaderVersion: 1
PDRType: State Sensor PDR(4)
recordChangeNumber: 0
dataLength: 14

PLDMTerminusHandle: 1
sensorID: 2
entityType: Virtual Machine Manager
entityInstanceNumber: 1
containerID: 0
sensorInit: noInit
sensorAuxiliaryNamesPDR: false
compositeSensorCount: 1
stateSetID: 32769
possibleStatesSize: 2
possibleStates: 1 2
root@rainier:/tmp# ./pldmtool platform GetPDR -d 27
nextRecordHandle: 0
responseCount: 28
recordHandle: 27
PDRHeaderVersion: 1
PDRType: State Sensor PDR(4)
recordChangeNumber: 0
dataLength: 14

PLDMTerminusHandle: 1
sensorID: 3
entityType: Virtual Machine Manager
entityInstanceNumber: 0
containerID: 0
sensorInit: noInit
sensorAuxiliaryNamesPDR: false
compositeSensorCount: 1
stateSetID: 32768
possibleStatesSize: 2
possibleStates: 1 2 3 4 5 6

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I1dc39a549297241792cebc7812722447cce5762d

show more ...


# aea5dde1 31-Aug-2020 Sampa Misra <sampmisr@in.ibm.com>

oem ibm: infrastructure for oem handlers

1. This commit adds the framework for an oem handler
which can be used by specific oem use-cases
for implementing various commands.

oem ibm: infrastructure for oem handlers

1. This commit adds the framework for an oem handler
which can be used by specific oem use-cases
for implementing various commands.

2. This commit adds implementation for getStateSensorReadings
and setStateEffecterStates commands for oem state sets.

3. Also adds implementation for inband code update.

Change-Id: Ib38a66ee381dd06b93f6a9313d51de1c23e6ee65
Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>

show more ...