70a47baf | 02-Sep-2021 |
Patrick Williams <patrick@stwcx.xyz> |
dos2unix conversion
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I78a4c2f28285ea30d66895b352402bfd12f95c00 |
5faf7c64 | 25-Aug-2021 |
Pavithra Barithaya <pavithra.b@ibm.com> |
PLDM: Remove a trace line
Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com> Change-Id: I407b361bef57d0c81d67db18370a715a088f4504 |
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 away an #includer’s abi
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 ...
|
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.
Tested: Not t
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 ...
|
0b540736 | 18-Aug-2021 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
libpldmresponder: fix missing newline
Change-Id: I99a59dd34c913811576ff7b4e479d61c1e878b09 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> |
4f2538a6 | 05-Mar-2021 |
Pavithra Barithaya <pavithra.b@ibm.com> |
BMC RR : Read and update the status for BMC reset
This commit reads the status of the host owned sensors by sending a getStateSensorReading command and then updates the D-Bus backend for BMC reset.
BMC RR : Read and update the status for BMC reset
This commit reads the status of the host owned sensors by sending a getStateSensorReading command and then updates the D-Bus backend for BMC reset.
This commit also updates the TLPDR from the host based on the valid bit in the TLPDR.
Earlier the PDR record handles where assigned in an incremental order starting from 0, now the numbering has been decided to be within the specified range as below BMC: 0x00000001 to 0x00FFFFFF (0x00000000 is reserved per PLDM spec) Hostboot: 0x01000000 to 0x01FFFFFF PHYP: 0x02000000 to 0x02FFFFFF Reserved: 0x03000000 to 0xFFFFFFFF
This commit handles the numbering of the PDR record handles.
Tested the following scenarios on a rainier system 1. restart pldmd when Host is not running 2. restart pldmd when Host is running 3. restart pldmd when Host is not running and then ipl
Using pldmtool the DBus backened is verified.
Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com> Change-Id: Idb9eb642dbf766bb587a3a4075e4dce2c9da2de5
show more ...
|
c1230ca1 | 03-Aug-2021 |
George Liu <liuxiwei@inspur.com> |
Remove getBitfieldCount method
Remove the getBitfieldCount method and use the C++20 feature `std::popcount` to get the number of bits of 1.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id
Remove getBitfieldCount method
Remove the getBitfieldCount method and use the C++20 feature `std::popcount` to get the number of bits of 1.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I71a5c1a9e10f508ce58a01ec8dc17ed5d96ed8a5
show more ...
|
394fac67 | 22-Jul-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Rectify few error messages in pldm
There are few places where we try to print a datatype that is not supported by stdcout/ stdcerr.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-I
Rectify few error messages in pldm
There are few places where we try to print a datatype that is not supported by stdcout/ stdcerr.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: Ic069fd92ec48bcb0058bcb4d7140e5f59909ca49
show more ...
|
45cd16be | 01-Jul-2021 |
Pavithra Barithaya <pavithra.b@ibm.com> |
PLDM: Fix in the setNumericEffecterValueHandler
The effecter value for the numeric effecter can be limited only till uint32 as per PLDM spec.We have a property ScheduledTime under the interface xyz.
PLDM: Fix in the setNumericEffecterValueHandler
The effecter value for the numeric effecter can be limited only till uint32 as per PLDM spec.We have a property ScheduledTime under the interface xyz.openbmc_project.State.ScheduledHostTransition which has the propertyType as uint64. When host tries to set that numeric effecter we were hitting an error. This commit resolves this.
Tested: Before the fix Received Msg 09 01 9d 02 31 71 00 04 00 00 00 00 Error setting property, ERROR=std::get: wrong index for variant PROPERTY=ScheduledTime INTERFACE=xyz.openbmc_project.State.ScheduledHostTransition PATH=/xyz/openbmc_project/state/host0 Sending Msg 1d 02 31 01
After the fix pldmtool raw -d 0x80 0x02 0x31 0x71 0x00 0x04 0x00 0x00 0x00 0x00 Request Message: 08 01 80 02 31 71 00 04 00 00 00 00 Response Message: 08 01 00 02 31 00
Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com> Change-Id: I289471d1e11bc1f47ed8af4254ac6baf975c2d1d
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 that can be used while
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 ...
|
c0c79481 | 02-Jun-2021 |
Sampa Misra <sampmisr@in.ibm.com> |
implement async handlers for all requester commands
this commit makes use of 74f27c730ef3925a0f2a3adfaa04f8790f931372 to convert the existing blocking requester commands in pldm to async ones. this
implement async handlers for all requester commands
this commit makes use of 74f27c730ef3925a0f2a3adfaa04f8790f931372 to convert the existing blocking requester commands in pldm to async ones. this is tested with Host code and seems to work fine
Change-Id: I8d4762c3cd5bce49f854b30f8325bfcd1dcb4ff9 Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
show more ...
|
8fb11c97 | 08-Jun-2021 |
Sridevi Ramesh <sridevra@in.ibm.com> |
libpldmresponder & pldmtool : Expand support for GetPLDMCommands
Update newly available pldm commands for bios and platform. Resolves : https://github.com/openbmc/pldm/issues/9
Tested on latest BMC
libpldmresponder & pldmtool : Expand support for GetPLDMCommands
Update newly available pldm commands for bios and platform. Resolves : https://github.com/openbmc/pldm/issues/9
Tested on latest BMC environment.
$ pldmtool base GetPLDMCommands -t 3 [ { "PLDM Command Code": 1, "PLDM Command": "GetBIOSTable" }, { "PLDM Command Code": 2, "PLDM Command": "SetBIOSTable" }, { "PLDM Command Code": 7, "PLDM Command": "SetBIOSAttributeCurrentValue" }, { "PLDM Command Code": 8, "PLDM Command": "GetBIOSAttributeCurrentValueByHandle" }, { "PLDM Command Code": 12, "PLDM Command": "GetDateTime" }, { "PLDM Command Code": 13, "PLDM Command": "SetDateTime" } ]
$ pldmtool base GetPLDMCommands -t 2 [ { "PLDM Command Code": 4, "PLDM Command": "SetEventReceiver" }, { "PLDM Command Code": 10, "PLDM Command": "PlatformEventMessage" }, { "PLDM Command Code": 17, "PLDM Command": "GetSensorReading" }, { "PLDM Command Code": 33, "PLDM Command": "GetStateSensorReadings" }, { "PLDM Command Code": 49, "PLDM Command": "SetNumericEffecterValue" }, { "PLDM Command Code": 50, "PLDM Command": "GetNumericEffecterValue" }, { "PLDM Command Code": 57, "PLDM Command": "SetStateEffecterStates" }, { "PLDM Command Code": 81, "PLDM Command": "GetPDR" } ]
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com> Change-Id: Id7fbc449d6eb90541e46f98cf0aa2bf5d6f48316
show more ...
|
64a8f0fb | 11-Jun-2021 |
George Liu <liuxiwei@inspur.com> |
Add entity instance as an input parameter to pldm_pdr_tree_add()
- The intent behind this commit is to allow other projects that are consuming the libpldm(like openpower/hostboot) to create the
Add entity instance as an input parameter to pldm_pdr_tree_add()
- The intent behind this commit is to allow other projects that are consuming the libpldm(like openpower/hostboot) to create the entities with custom entity instance numbers while creating the entity association PDR's.
- If the entity instance number value is 0xFFFF or its parent is NULL, then use the existing logic.
- If the entity instance number value is not 0xFFFF and the parent is not NULL, should be verify whether the entity exists, if it exists, return the entity, otherwise add the entity to the tree.
Tested: Built pldm successfully and Unit Test passes.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: If9b0ac9c1dac3147ed6f95a3e027d155fe2a38c6
show more ...
|
a137f903 | 04-Jun-2021 |
Jayashankar Padath <jayashankar.padath@in.ibm.com> |
fru: Add new inventory items in the fru parser
Add new inventory items to the FRU list like Drive backplane, Card, Fan, Battery, Connector and Slot. This generates new FRU Record Set PDRs and Entity
fru: Add new inventory items in the fru parser
Add new inventory items to the FRU list like Drive backplane, Card, Fan, Battery, Connector and Slot. This generates new FRU Record Set PDRs and Entity Association PDRs and updates the existing ones.
Test Results:
1. RTC FRU Record Set PDR o/p
pldmtool platform GetPDR -d 23 { "nextRecordHandle": 24, "responseCount": 20, "recordHandle": 23, "PDRHeaderVersion": 1, "PDRType": "FRU Record Set PDR", "recordChangeNumber": 0, "dataLength": 10, "PLDMTerminusHandle": 0, "FRURecordSetIdentifier": 23, "entityType": "Battery", "entityInstanceNumber": 1, "containerID": 3 }
2. Entity Association PDR for Card
pldmtool platform GetPDR -d 33 { "nextRecordHandle": 34, "responseCount": 32, "recordHandle": 33, "PDRHeaderVersion": 1, "PDRType": "Entity Association PDR", "recordChangeNumber": 0, "dataLength": 22, "containerID": 7, "associationType": "Physical", "containerEntityType": "Card", "containerEntityInstanceNumber": 3, "containerEntityContainerID": 3, "containedEntityCount": 2, "containedEntityType[1]": "Connector", "containedEntityInstanceNumber[1]": 1, "containedEntityContainerID[1]": 7, "containedEntityType[2]": "Connector", "containedEntityInstanceNumber[2]": 2, "containedEntityContainerID[2]": 7 }
Signed-off-by: Jayashankar Padath <jayashankar.padath@in.ibm.com> Change-Id: I66aff87f00aa9eb17ea845a71710253cea7c6d83
show more ...
|
3722ce82 | 28-May-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Set Memory Module entity type for DIMM's
- DSP 0249 quotes, "use memory module for pre-packed memory devices that are used with standardized connectors, such as DIMMs, SD cards, and so on".
- T
Set Memory Module entity type for DIMM's
- DSP 0249 quotes, "use memory module for pre-packed memory devices that are used with standardized connectors, such as DIMMs, SD cards, and so on".
- This commit would set the entity type 66 (Memory Module) NOT 142(Memory Chip) for the Inventory Items that implement the DIMM Interface.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I000f7ca08433d38c5e61ccc32893659a6578918f
show more ...
|
c073a20e | 08-May-2021 |
Sampa Misra <sampmisr@in.ibm.com> |
entity_association_tree: Keep tree always updated
This commit keeps the entity association tree updated across Host reboots. It deletes the Host entries from the entity associaton tree when Host is
entity_association_tree: Keep tree always updated
This commit keeps the entity association tree updated across Host reboots. It deletes the Host entries from the entity associaton tree when Host is powered off.
Without this fix the entity association tree keeps on growing with duplicate Host entries during each power on(PDR exchange) resulting a crash of pldm daemon after few power on-off sequence
Change-Id: I8fdc258195aef998d10e33577f3ec98da48b3d40 Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
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 primarily a req
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 ...
|
5327988e | 28-Apr-2021 |
Tom Joseph <rushtotom@gmail.com> |
tests: Organize the test code to make it modular
The unit test code for libpldmresponder, host-bmc and common is in a shared test directory. This patch separates the test code to the respective dire
tests: Organize the test code to make it modular
The unit test code for libpldmresponder, host-bmc and common is in a shared test directory. This patch separates the test code to the respective directory.
Tested: Ran the unit test and tests passed.
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: I31d53681fa6c0d8bc6eb7c4e3341aaff4bc341ee
show more ...
|
a459fea6 | 13-May-2021 |
Tom Joseph <rushtotom@gmail.com> |
Fix missing header <optional>
Signed-off-by: Tom Joseph <rushtotom@gmail.com> Change-Id: If444bb6e93413e97bfb11c0755d90f1b5bcbb42e |
bd5e2eaa | 22-Apr-2021 |
George Liu <liuxiwei@inspur.com> |
Fix potential map::at error
There are some potential errors, when using the map::at method, the process may hang due to out of bounds. so the exception should be caught.
Also, use the map::contains
Fix potential map::at error
There are some potential errors, when using the map::at method, the process may hang due to out of bounds. so the exception should be caught.
Also, use the map::contains method of C++20 instead of map::find.
Tested: built pldm successfully and worked.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: Ia5d7dea906e5c598072c08b27387195ef1201839
show more ...
|
3b1dc01d | 16-Apr-2021 |
Patrick Williams <patrick@stwcx.xyz> |
build: add wrapfiles for dependencies
Add wrapfiles for all dependencies and update meson.build files to ensure dependencies are requested in all cases. This enables out-of-bitbake/out-of-sdk builds
build: add wrapfiles for dependencies
Add wrapfiles for all dependencies and update meson.build files to ensure dependencies are requested in all cases. This enables out-of-bitbake/out-of-sdk builds for this repository and enables it to be used as a meson subproject.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I0f2f7eed98f7f7555cafefc2605e1031a7f0adaf
show more ...
|
6f4479c7 | 16-Apr-2021 |
Patrick Williams <patrick@stwcx.xyz> |
build: rename dependency variable
Per [1], the conventions for dependency variables are to be named '<project or lib>_dep'. This allows consistency when using this project as a meson-subproject els
build: rename dependency variable
Per [1], the conventions for dependency variables are to be named '<project or lib>_dep'. This allows consistency when using this project as a meson-subproject elsewhere.
Switch the name from 'libpldm' to 'libpldm_dep'.
1. https://mesonbuild.com/Subprojects.html#naming-convention-for-dependency-variables
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I98c8e2148610b45755b45029d1d38206bac5b885
show more ...
|
bcf91acc | 14-Mar-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Fix a possible null pointer dereference
- This commit would fix a potential null pointer dereference.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: Ic323bde2c4bd35c35132e43104
Fix a possible null pointer dereference
- This commit would fix a potential null pointer dereference.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: Ic323bde2c4bd35c35132e4310466cd6ae7ec7aeb Signed-off-by: George Liu <liuxiwei@inspur.com>
show more ...
|
d94bb836 | 17-Feb-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
oem-ibm : Add new filetype & logic for handling Progress Codes
- The intent behind this commit , is to add a new file type for handling IBM Progress Codes.
- The Progress Codes are typically in b
oem-ibm : Add new filetype & logic for handling Progress Codes
- The intent behind this commit , is to add a new file type for handling IBM Progress Codes.
- The Progress Codes are typically in bytes(<200 bytes), which is why the host does an inband write rather than using the DMA.
- Once the Progress Code structure is received, pldm would peek into the buffer to find out the Primary Code which is typically an 8 byte Hex number (starts at a standard offset 40).
- Once , we get the Primary Code then we pack it into a structure and set the dbus property which is hosted by the snoopd daemon.
Tested By :
1. PLDM Tool
./pldmtool raw --data 0x80 0x3F 0xC 0x0A 0x00 0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x00 0x48 0x00 0x00 0x00 0x02 0x00 0x00 0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x53 0x54 0x41 0x4e 0x44 0x42 0x59 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 Request Message: 08 01 80 3f 0c 0a 00 00 00 00 00 07 00 00 00 48 00 00 00 02 00 00 01 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 54 41 4e 44 42 59 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Progress SRC Structure : 02 00 00 01 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 54 41 4e 44 42 59 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Primary Progress Code in Hex : 5354414e44425920
The Ascii Value of 5354414e44425920 is STANDBY(Host reaching standby)
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I1c8529070ed0718e7770bae99964445e5b14bd65
show more ...
|
bcabadac | 12-Mar-2021 |
George Liu <liuxiwei@inspur.com> |
Fix BIOS enum attribute to allow updating BaseBIOSTable
- Old function: BaseBIOSTable is not allowed to be updated if there is no D-Bus backend.
- New function: Both with D-Bus backend and withou
Fix BIOS enum attribute to allow updating BaseBIOSTable
- Old function: BaseBIOSTable is not allowed to be updated if there is no D-Bus backend.
- New function: Both with D-Bus backend and without D-Bus backend, BaseBIOSTable should be updated.
Tested: - Old function: busctl set-property xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager PendingAttributes a{s\(sv\)} 1 "pvm_default_os_type" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "Linux"
busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s pvm_default_os_type svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "AIX" s ""
- New function: busctl set-property xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager PendingAttributes a{s\(sv\)} 1 "pvm_default_os_type" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "Linux"
busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s pvm_default_os_type svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "Linux" s ""
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I0f0186583448839f3f8cb4765e81fc84bca596b2
show more ...
|