#
b69d8bf8 |
| 27-Sep-2022 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Remove libpldm code & add libpldm.wrap
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I984498c8cf3fbca7bad34d0fd21447d48543ff04
|
#
27a022ca |
| 10-Aug-2022 |
Andrew Jeffery <andrew@aj.id.au> |
libpldm: Migrate to subproject
Organize files in libpldm to make it a subproject
In the current state, libpldm is not readily consumable as a subproject.This commit does all the necessary re-organi
libpldm: Migrate to subproject
Organize files in libpldm to make it a subproject
In the current state, libpldm is not readily consumable as a subproject.This commit does all the necessary re-organisation of the source code to make it work as a subproject.
There are no .c/.h files changes in this commit, only meson changes and re-organising the code structure.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I20a71c0c972b1fd81fb359d604433618799102c6
show more ...
|
#
f25145fb |
| 10-Sep-2022 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Fix pldmd verbosity command line argument
This commit would attempt to fix the command line argument --verbose.
The fact that verbose option requires an argument 0 or 1 is not particularly intuitiv
Fix pldmd verbosity command line argument
This commit would attempt to fix the command line argument --verbose.
The fact that verbose option requires an argument 0 or 1 is not particularly intuitive and a documented OpenBMC anti-pattern.
https://github.com/openbmc/docs/blob/master/anti-patterns.md#non-standard-debug-application-options-and-logging
Resolves : https://github.com/openbmc/pldm/issues/7 Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I50d82ce492bd815b589627d3713b1a7fc1db997b
show more ...
|
#
998dc4eb |
| 27-Jul-2022 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Move oem libpldm code inside libpldm
Moving the oem support inside the libpldm folder would help us to migrate libpldm folder into its own repository.
Signed-off-by: Manojkiran Eda <manojkiran.eda@
Move oem libpldm code inside libpldm
Moving the oem support inside the libpldm folder would help us to migrate libpldm folder into its own repository.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I4596e9e001c985864431a56343318e5f93d3ede3
show more ...
|
#
d2ab1c22 |
| 13-Apr-2022 |
Patrick Williams <patrick@stwcx.xyz> |
build: minor meson tweaks
- Sort dependency list(s) - Add '.git' suffix on 'stdplus.wrap' URL.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ic47a6856572373d04a723082e9b0b40b7260a9
build: minor meson tweaks
- Sort dependency list(s) - Add '.git' suffix on 'stdplus.wrap' URL.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ic47a6856572373d04a723082e9b0b40b7260a90e
show more ...
|
#
1421a80f |
| 04-Apr-2022 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Add stdplus dependency for pldm
pldm flight recorder feature in pldm uses stdplus::signal::block API to block the SIGUSR1 linux signal.
Explicitly not adding this as dependency would ideally break
Add stdplus dependency for pldm
pldm flight recorder feature in pldm uses stdplus::signal::block API to block the SIGUSR1 linux signal.
Explicitly not adding this as dependency would ideally break the compilation of pldm using subprojects.
Tested By: 1. compile pldm on ubuntu with out any openbmc - packages 2. the compilation breaks with undefined reference error 3. Put this patch in - and then recompile the code 4. now pldm compiles with out any errors.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I111f3581b898c71a5e4eeee24a0bfc89c4487021
show more ...
|
#
5c7253ad |
| 21-Mar-2022 |
Patrick Williams <patrick@stwcx.xyz> |
meson: simplify dependencies
Leverage wrapfile `[provide]` directives to simplify the dependency searching in the meson.build.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ia696d8
meson: simplify dependencies
Leverage wrapfile `[provide]` directives to simplify the dependency searching in the meson.build.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ia696d865d344ecc105fc7fb009c8419f8727ee02
show more ...
|
#
ef773059 |
| 28-Jul-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
In-Memory FlightRecorder support for pldmd
pldm daemon in BMC can act both as a requester and responder, and it is capable of talking to any device that talks pldm spec.
With the rapid increase in
In-Memory FlightRecorder support for pldmd
pldm daemon in BMC can act both as a requester and responder, and it is capable of talking to any device that talks pldm spec.
With the rapid increase in the number of commands supported by pldmd, and also with the async request/response support enabled, its becomes extremely tough to debug the failures in the communication.
And most of times, the essential information that is needed to debug are the last few commands that BMC pldm responded to. So this commit is an attempt to bring in an in-memory flight recorder that could save the last 10(can be configurable) pldm transactions in a circular buffer, and dumps the contents of it into a file when it receives a SIGUR1 signal.
Resolves openbmc/pldm#24
Tested By :
1. Power on host 2. In the middle of poweron, send the SIGUSR1 signal to pldmd
root@rain118bmc:/tmp# kill -10 836 Received SIGUR1(10) Signal interrupt root@rain118bmc:/tmp# Dumping the flight recorder into /tmp/pldm_flight_recorder
3. Make sure pldmd is not killed and does the rest of the power on operation.
4. check the contents of /tmp/pldm_flight_recorder root@p10bmc:~# cat /tmp/pldm_flight_recorder UTC Nov 05 / 11:27:25.334606 : Tx : 0a 3f 0d 00 UTC Nov 05 / 11:27:26.292988 : Rx : 09 01 8b 3f 0d 00 00 7b 1e 00 50 00 UTC Nov 05 / 11:27:26.296915 : Tx : 0b 3f 0d 00 UTC Nov 05 / 11:27:27.250999 : Rx : 09 01 8c 3f 0d 00 00 7c 1e 00 50 00 UTC Nov 05 / 11:27:27.254762 : Tx : 0c 3f 0d 00 UTC Nov 05 / 11:27:28.212168 : Rx : 09 01 8d 3f 0d 00 00 7d 1e 00 50 00 UTC Nov 05 / 11:27:28.216086 : Tx : 0d 3f 0d 00 UTC Nov 05 / 11:27:29.171228 : Rx : 09 01 8e 3f 0d 00 00 7e 1e 00 50 00 UTC Nov 05 / 11:27:29.175143 : Tx : 0e 3f 0d 00 UTC Nov 05 / 11:27:25.330716 : Rx : 09 01 8a 3f 0d 00 00 7a 1e 00 50 00
5. Configure with -Dflightrecorder-max-entries=0 root@p10bmc:~# kill -10 21847 Received SIGUR1(10) Signal interrupt Fight recorder policy is disabled
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I4e9c828f4ada9f1db6bf3a9b68c16e71b6e5d8f0
show more ...
|
#
c79aa867 |
| 14-Dec-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Remove all dependencies for libpldm libpldm is a shared library that can be used outside of openbmc, and it ideally does not require any depedendent packages. This commit wo
Remove all dependencies for libpldm libpldm is a shared library that can be used outside of openbmc, and it ideally does not require any depedendent packages. This commit would remove the checks for various openbmc dependencies while compiling with "libpldm-only" meson option. Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I7dbeee86d3db714483c8b7ff492fff4297be7bdd
show more ...
|
#
94fbfd93 |
| 25-Nov-2021 |
George Liu <liuxiwei@inspur.com> |
Remove duplicate LID_STAGING_DIR The LID_STAGING_DIR variable is defined repeatedly in meson.build, and one of them is removed. Signed-off-by: George Liu <liuxiwei@inspur.com>
Remove duplicate LID_STAGING_DIR The LID_STAGING_DIR variable is defined repeatedly in meson.build, and one of them is removed. Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I69d25738d79cbc215588f2821d39527fea591a85
show more ...
|
#
fb3bc06f |
| 17-Aug-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Firmware discovery of MCTP endpoints Tested: a) Verified MCTP endpoints are discovered by PLDM and fetching the firmware inventory commands. b) PLDM firmware u
fw-update: Firmware discovery of MCTP endpoints Tested: a) Verified MCTP endpoints are discovered by PLDM and fetching the firmware inventory commands. b) PLDM firmware update successful after uploading the package, which depends on the firmware inventory commands. c) Verified MCTP endpoints are discovered irrespective of the startup order with the MCTP control application. Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: I7ee9aed40433a8e5a4ebb8e61f917ec82dde9c35
show more ...
|
#
4d8d5770 |
| 17-Aug-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement firmware UpdateManager The UpdateManager parses the PLDM package and co-ordinates with the DeviceUpdater to update all the PLDM enabled firmware devices. Te
fw-update: Implement firmware UpdateManager The UpdateManager parses the PLDM package and co-ordinates with the DeviceUpdater to update all the PLDM enabled firmware devices. Tested: Completed firmware update using PLDM for an FD Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Ia87675e0a88cb1f72ad82934e539739db193b9f6
show more ...
|
#
ef90b0d3 |
| 17-Aug-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement DeviceUpdater The DeviceUpdater class implements the firmware update of a FD. The firmware update flow is implemented as per DSP0267_1.0.0 and DSP0267_1.0.1. All
fw-update: Implement DeviceUpdater The DeviceUpdater class implements the firmware update of a FD. The firmware update flow is implemented as per DSP0267_1.0.0 and DSP0267_1.0.1. All the components applicable for the FD is updated. This patch doesn't handle error response codes and the further actions to the firmware update flow. The optional features of package like package data and device metadata is not included in this patch. Timeouts and retries of firmware update commands is not included in this patch. Tested: Added unit tests for the firmware update commands where PLDM UA is the responder like RequestFirmwareData, TransferComplete, VerifyComplete and ApplyComplete. Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: If686ca005230d6debc0a6fd2ee73184bd3c28ee1
show more ...
|
#
1630f399 |
| 29-Jun-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement firmware update package parser PackageParser implements parsing the common elements across version 1 and version 2 of the PackageHeader. PackageParserV1 handles pars
fw-update: Implement firmware update package parser PackageParser implements parsing the common elements across version 1 and version 2 of the PackageHeader. PackageParserV1 handles parsing the package header version 1 as defined in DSP0267_1.0.0 and DSP0267_1.0.1. Tested: Unit tests added Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Iddabd435755f462c042a85a286b1b0a50eb346b1
show more ...
|
#
75356c1a |
| 20-Jun-2021 |
Tom Joseph <rushtotom@gmail.com> |
fw-update: Implement inventory manager 1. Discover firmware devices that implement fw update specification 2. Implements request/response for QueryDeviceIdentifiers command 3. Implem
fw-update: Implement inventory manager 1. Discover firmware devices that implement fw update specification 2. Implements request/response for QueryDeviceIdentifiers command 3. Implements request/response for GetFirmwareParameters command 4. Enumerates device identifiers and component information to be used for fw-update Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Ifa035c801a7c62bac9a7e947ed4a43d48f85a4ed
show more ...
|
#
cc5f1586 |
| 29-Sep-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Make Terminus ID & Terminus Handle configurable The current pldm code hardcoded the terminus id and the terminus handles, making it configurable so that the oem vendors can set them
Make Terminus ID & Terminus Handle configurable The current pldm code hardcoded the terminus id and the terminus handles, making it configurable so that the oem vendors can set them as per thier need in the bitbake meta data. Also,in the current state the FRU record set PDR's and the Sensor/Effecter PDR's are generated with terminus handle 0, but the terminus locator PDR is hardcoded with handle 1. This commit also fixes that behaviour. Tested : 1. Terminus locator PDR { "nextRecordHandle": 89, "responseCount": 19, "recordHandle": 88, "PDRHeaderVersion": 1, "PDRType": "Terminus Locator PDR", "recordChangeNumber": 0, "dataLength": 9, "PLDMTerminusHandle": 1, "validity": "valid", "TID": 1, "containerID": 0, "terminusLocatorType": "MCTP_EID", "terminusLocatorValueSize": 1, "EID": 8 } 2. FRU record set PDR { "nextRecordHandle": 77, "responseCount": 20, "recordHandle": 76, "PDRHeaderVersion": 1, "PDRType": "FRU Record Set PDR", "recordChangeNumber": 0, "dataLength": 10, "PLDMTerminusHandle": 1, "FRURecordSetIdentifier": 76, "entityType": "[Physical] Slot", "entityInstanceNumber": 12, "containerID": 3 } 3. Sensor PDR { "nextRecordHandle": 208, "responseCount": 28, "recordHandle": 207, "PDRHeaderVersion": 1, "PDRType": "State Sensor PDR", "recordChangeNumber": 0, "dataLength": 18, "PLDMTerminusHandle": 1, "sensorID": 2, "entityType": "[Physical] External Environment", "entityInstanceNumber": 0, "containerID": 1, "sensorInit": "noInit", "sensorAuxiliaryNamesPDR": false, "compositeSensorCount": 1, "stateSetID[0]": "Health State(1)", "possibleStatesSize[0]": 2, "possibleStates[0]": [ "Normal(1)", "Upper Fatal(9)" ] } 4. Effecter PDR { "nextRecordHandle": 142, "responseCount": 29, "recordHandle": 141, "PDRHeaderVersion": 1, "PDRType": "State Effecter PDR", "recordChangeNumber": 0, "dataLength": 19, "PLDMTerminusHandle": 1, "effecterID": 53, "entityType": "[Physical] Fan", "entityInstanceNumber": 1, "containerID": 3, "effecterSemanticID": 0, "effecterInit": "noInit", "effecterDescriptionPDR": false, "compositeEffecterCount": 1, "stateSetID[0]": "Identify State(17)", "possibleStatesSize[0]": 1, "possibleStates[0]": [ "Identify State Unasserted(1)", "Identify State Asserted(2)" ] } Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I68d1c5c121b9389cc9b89dde9f1a8d8679b068f1
show more ...
|
#
a6a8ccd9 |
| 01-Apr-2021 |
Sagar Srinivas <sagar.srinivas@ibm.com> |
PLDM: implement surveillance between Host and bmc This commit is to implement surveillance between host and bmc, wherein host monitors if bmc is up and running through constant pings
PLDM: implement surveillance between Host and bmc This commit is to implement surveillance between host and bmc, wherein host monitors if bmc is up and running through constant pings(by sending Platform EventMessages) sent from host to BMC. And if BMC fails to respond to the pings, then BMC will be reset using the KCS interface. 1. Host->BMC - GetTID 2. BMC->Host - Respond to GetTID, SetEventReceiver 3. Host->BMC - Respond to SetEventReceiver 4. BMC->Host - Send PlatformEventMessage after the elapsed time interval(specified with SetEventReceiver command) 4. Host->BMC - If BMC fails to send respond to host within specified interval, Host resets BMC via the KCS interface Tested with PLDMTOOL: SetEventReceiver command: root@rain127bmc:/tmp# ./pldmtool base GetTID -m 8 Received Msg 08 01 81 00 02 Sending Msg 01 00 02 00 01 { "Response": 1 } platformEventMessage command(which will be received by host): root@rain118bmc:/tmp# ./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 eventClass Checking Sending Msg 00 02 0a 00 00 Response Message: 08 01 00 02 0a 00 00 Received Msg 08 01 00 02 0a 00 00 Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com> Change-Id: Iac90b2233a873a54504ffa649d324d30525b7ce3
show more ...
|
#
adbb2452 |
| 19-Aug-2021 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
build: provide an option to skip systemd units The systemd pkg-config tells clients to install unit files to (a subdir of) rootprefix, not prefix. This means our attempt to substitute o
build: provide an option to skip systemd units The systemd pkg-config tells clients to install unit files to (a subdir of) rootprefix, not prefix. This means our attempt to substitute our prefix into systemd_system_unitdir doesn't have any impact - thus we remove the substitution. Rather than attempt to cook up some kind of support for rootprefix, which is a quasi-standard variable anyway, provide a mechanism to simply skip installing the systemd unit files. This enables users with a prefix pointing somewhere they can access to get all the way through the install process without needing root or contaminating the build system. It would be reasonable to use this option in the future to turn off any additional systemd support added to the project. Change-Id: I9a06cc09a2d940fed8a7fdc2f583f5949a0ecd47 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
06052cc5 |
| 16-Aug-2021 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
build: un-hardcode prefix /usr/share/pldm, /var/lib/pldm, and /etc are hardcoded in many places. Workflows such as: meson -Dprefix=$HOME/workspace -Dsysconfdir=$HOME/workspace buil
build: un-hardcode prefix /usr/share/pldm, /var/lib/pldm, and /etc are hardcoded in many places. Workflows such as: meson -Dprefix=$HOME/workspace -Dsysconfdir=$HOME/workspace builddir \ && ninja -C buildir install result in pldmd looking for its data in the wrong place. Fix by properly incorporating the user specified prefix into filesystem paths. A number of paths remain hardcoded because they (presumably?) are owned and provided by other packages (phosphor-software-manager) and those packages do not provide any pkg-config from which we can extract their installation prefixes. Change-Id: I140d7a65e85342fd108af41f33010b422a0f77a5 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
20aa3e09 |
| 17-Aug-2021 |
Tom Joseph <rushtotom@gmail.com> |
libpldmresponder: Move host specific code under build flag Recently added patches have not added the libpldmresponder and host bmc specific code under the libpldmresponder build flag.
libpldmresponder: Move host specific code under build flag Recently added patches have not added the libpldmresponder and host bmc specific code under the libpldmresponder build flag. Tested: Not tested yet, need help from IBM contributors to verify the patch and update this section. Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: I743ccae4d31af887c037a3bd38ec837b942f7efd
show more ...
|
#
319ebb31 |
| 06-May-2021 |
Pavithra Barithaya <pavithra.b@ibm.com> |
PLDM: Implement host-condition interface This commit implements the PDI interface defined at https://gerrit.openbmc-project.xyz/c/openbmc /phosphor-dbus-interfaces/+/42435 p
PLDM: Implement host-condition interface This commit implements the PDI interface defined at https://gerrit.openbmc-project.xyz/c/openbmc /phosphor-dbus-interfaces/+/42435 pldmd hosts the new xyz.openbmc_project.Condition.HostFirmware interface so it's difficult for it to have other code within pldmd to also set this during startup. The solution proposed in this commit is to provide the hostPDRHandler object to the HostFirmware interface implementation. This then allows reads of the HostFirmware property to just ask the hostPDRHandler for the current state of the host. Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com> Change-Id: I3f7d4f573332e96fcd3ae594dc25750070cd6e62
show more ...
|
#
03b01ca8 |
| 28-Jun-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Add support for vendor specific FruDbusLookup In the current state, a vendor could not define the FRU's that he wants to send to the host. This commit adds a fru_master.json tha
Add support for vendor specific FruDbusLookup In the current state, a vendor could not define the FRU's that he wants to send to the host. This commit adds a fru_master.json that can be used while building the master , and the json would be replaced with fru_master.json from the oem/<vendor>/configurations directory when compiling for oem's. Tested By: IBM machine test : 1. meson build -Doem-ibm=enabled -Dprefix=<> 2. ninja -C build && ninja install 3. in the prefix directory we should see the json file from the oem/ibm/configurations folder Non IBM machine test : 1. meson build -Doem-ibm=disabled -Dprefix=<> 2. ninja -C build && ninja install 3. in the prefix directory we should see the json file from the pldm/configurations folder. Runtime test: 1. on an IBM machine make sure the pldm builds the fru record table. Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: Id3c2746c51a1f99f2038b2af48137133e9d0b405
show more ...
|
#
74f27c73 |
| 16-May-2021 |
Tom Joseph <rushtotom@gmail.com> |
requester: PLDM handler for async request/response PLDM request handler provides APIs to register PLDM request message, handle retries and instance ID expiration. Sending the PLDM reques
requester: PLDM handler for async request/response PLDM request handler provides APIs to register PLDM request message, handle retries and instance ID expiration. Sending the PLDM request and handling response is handled in an async manner. On receiving the response the corresponding response handler registered for the request is invoked. Tested: Ran unit tests Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: I9f0a9dfcf0fbc9a84eefad375b92d40dd8b48d3d
show more ...
|
#
53f67313 |
| 18-May-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Enable LIBPLDMRESPONDER Flag with meson option - The intent behind this commit is to add a compile flag when libpldmresponder meson option is enabled, so that the code under #ifd
Enable LIBPLDMRESPONDER Flag with meson option - The intent behind this commit is to add a compile flag when libpldmresponder meson option is enabled, so that the code under #ifdef LIBPLDMRESPONDER is added during the build time. Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I730c4402ac0cc7b448c676f48df7b59c0c8683fc
show more ...
|
#
02b4ee45 |
| 03-May-2021 |
Tom Joseph <rushtotom@gmail.com> |
libpldmresponder: Make libpldmresponder optional libpldmresponder library is for handling incoming PLDM request messages on BMC. There are usecases for PLDM daemon on BMC where it is pri
libpldmresponder: Make libpldmresponder optional libpldmresponder library is for handling incoming PLDM request messages on BMC. There are usecases for PLDM daemon on BMC where it is primarily a requester and BMC aggregates information about firmware devices that implement MCTP/PLDM and facilitate firmware upgrade of the devices. This patch is a step in that direction to enable PLDM daemon on BMC primarily as PLDM requester. Tested: Ran PLDM daemon successfully without libpldmresponder library. Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: Iceaa10127352aaaba6c338d7ea9ac187be4e5fad
show more ...
|