3c275e1c | 21-Sep-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
meson: add alternative build system
Enable meson build for the pldm project (by default). The autotools support will be eventually removed. This change is aligned with other OpenBMC repos, and besid
meson: add alternative build system
Enable meson build for the pldm project (by default). The autotools support will be eventually removed. This change is aligned with other OpenBMC repos, and besides for pldm meson seems to be significantly faster (see times below to build and run tests on an x86 OpenBMC sdk).
time sh -c './bootstrap.sh ; ./configure ${CONFIGURE_FLAGS} --enable-oe-sdk --enable-oem-ibm ; make ; make check' real 3m49.495s
time sh -c 'meson -Doe-sdk=enabled -Dtests=enabled -Doem-ibm=enabled build/ ; ninja -C build test' real 0m14.940s
With the currently used warning level in the meson config (the highest level is used), certain warnings had to be fixed in this commit (warnings are treated as errors).
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Change-Id: I9022417c8fa218d3c2c2f786502caa815af2f832
show more ...
|
81796c2f | 05-Sep-2019 |
John Wang <wangzqbj@inspur.com> |
Fix issues in SetBiosAttributeCurrentValue in UT
Fixed some uninitialized variables and assigned a more appropriate value to transferFlag in in SetBiosAttributeCurrentValue in UT
Signed-off-by: Joh
Fix issues in SetBiosAttributeCurrentValue in UT
Fixed some uninitialized variables and assigned a more appropriate value to transferFlag in in SetBiosAttributeCurrentValue in UT
Signed-off-by: John Wang <wangzqbj@inspur.com> Change-Id: Id953b2d02ee4a179f7fb91263c9d4716ed847403
show more ...
|
4d844791 | 15-Aug-2019 |
John Wang <wangzqbj@inspur.com> |
bios: Implement SetBiosAttributeCurrentValue encode/decode API
Implement encode/decode APIs for SetBiosAttributeCurrentValue command for both request and responder flow. The unit tests functions als
bios: Implement SetBiosAttributeCurrentValue encode/decode API
Implement encode/decode APIs for SetBiosAttributeCurrentValue command for both request and responder flow. The unit tests functions also have been added to check these APIs.
Signed-off-by: John Wang <wangzqbj@inspur.com> Change-Id: I5ae03778f2c47df6fc7f41c2ccb41f040cd85359
show more ...
|
e4b16ee8 | 14-Aug-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
libpldm: fixup encode GetPDR response
CRC must be encoded only if the transfer flag is PLDM_END. The previous code would do an out if bounds access because the caller wouldn't allocate memory to hol
libpldm: fixup encode GetPDR response
CRC must be encoded only if the transfer flag is PLDM_END. The previous code would do an out if bounds access because the caller wouldn't allocate memory to hold the CRC (because the caller intended a single-part transfer).
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Change-Id: I6698b2542b57857ba40bd5945b61bf9af419ec8e
show more ...
|
d69af0ba | 30-Jul-2019 |
Zahed Hossain <zahzahed@in.ibm.com> |
Implement GetBIOSAttributeCurrentValueByHandle encode/decode API
Implemented the functions to encode/decode the request of GetBIOSAttributeCurrentValueByHandle as required for the responder. Corresp
Implement GetBIOSAttributeCurrentValueByHandle encode/decode API
Implemented the functions to encode/decode the request of GetBIOSAttributeCurrentValueByHandle as required for the responder. Corresponding unit test functions have also been added to check the good decode requests and bad decode request.
Change-Id: I711bd13a37cfd3a825c58b37029d3c35903c7fc3 Signed-off-by: Zahed Hossain <zahzahed@in.ibm.com>
show more ...
|
5c4f80df | 28-Jul-2019 |
John Wang <wangzqbj@inspur.com> |
base: GetTID responder implementation
A pldm terminus is defined as the point of communication termination for PLDM messages and the PLDM functions associated with those messages.
The Terminus ID(T
base: GetTID responder implementation
A pldm terminus is defined as the point of communication termination for PLDM messages and the PLDM functions associated with those messages.
The Terminus ID(TID) is a value that identifies a PLDM terminus.
This commit assignes 1 to the BMC as the TID.
Signed-off-by: John Wang <wangzqbj@inspur.com> Change-Id: I7adb0e1274f326fe6cf148771f230f530c9a567c
show more ...
|
7fcfb66b | 08-May-2019 |
Sampa Misra <sampmisr@in.ibm.com> |
libpldm: implement encode/decode APIs for GetPDR
This commit implements the encode response and decode request of GetPDR command which is defined in PLDM Platform spec DSP0248_1.1.1 This enables the
libpldm: implement encode/decode APIs for GetPDR
This commit implements the encode response and decode request of GetPDR command which is defined in PLDM Platform spec DSP0248_1.1.1 This enables the PLDM responder to receive the request and process the response packet.
Signed-off-by: Sampa Misra <sampmisr@in.ibm.com> Change-Id: I9c17e0a4dd4e02b3c8b50eb55958c687c988f421
show more ...
|
b37be313 | 03-Jul-2019 |
Sampa Misra <sampmisr@in.ibm.com> |
GetBIOSTable responder implementation
This commit implements the GetBIOSTable responder handler for the BIOS Enumeration type. One of the tables among String table, Attribute table and Attribute Val
GetBIOSTable responder implementation
This commit implements the GetBIOSTable responder handler for the BIOS Enumeration type. One of the tables among String table, Attribute table and Attribute Value Table are created/fetched and sent to PLDM requester as response to the command.
Tested: Following are the tables constructed from the sample json file present at "test/bios_jsons/enum_attrs.json" -bash-4.2$ hexdump -C /tmp/AllBiosTables/stringTable 00000000 00 00 07 00 41 6c 6c 6f 77 65 64 01 00 10 00 43 |....Allowed....C| 00000010 6f 64 65 55 70 64 61 74 65 50 6f 6c 69 63 79 02 |odeUpdatePolicy.| 00000020 00 0a 00 43 6f 6e 63 75 72 72 65 6e 74 03 00 0a |...Concurrent...| 00000030 00 44 69 73 72 75 70 74 69 76 65 04 00 0a 00 46 |.Disruptive....F| 00000040 57 42 6f 6f 74 53 69 64 65 05 00 0f 00 48 4d 43 |WBootSide....HMC| 00000050 4d 61 6e 61 67 65 64 53 74 61 74 65 06 00 10 00 |ManagedState....| 00000060 49 6e 62 61 6e 64 43 6f 64 65 55 70 64 61 74 65 |InbandCodeUpdate| 00000070 07 00 0a 00 4e 6f 74 41 6c 6c 6f 77 65 64 08 00 |....NotAllowed..| 00000080 03 00 4f 66 66 09 00 02 00 4f 6e 0a 00 04 00 50 |..Off....On....P| 00000090 65 72 6d 0b 00 04 00 54 65 6d 70 00 37 90 c0 da |erm....Temp.7...| 000000a0 -bash-4.2$ hexdump -C /tmp/AllBiosTables/attributeTable 00000000 00 00 00 01 00 02 02 00 03 00 01 00 01 00 00 04 |................| 00000010 00 02 0a 00 0b 00 01 00 02 00 00 05 00 02 08 00 |................| 00000020 09 00 01 01 03 00 00 06 00 02 00 00 07 00 01 00 |................| 00000030 3b 85 69 a7 |;.i.| 00000034 -bash-4.2$ hexdump -C /tmp/AllBiosTables/attributeValueTable 00000000 00 00 00 01 00 00 00 00 d9 f6 42 58 |..........BX| 0000000c
Change-Id: I06aebcc2c2deea66e867fb775afa76a1e5d18dca Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
show more ...
|
52552ef3 | 19-Jun-2019 |
Tom Joseph <tomjoseph@in.ibm.com> |
Add APIs for parsing BIOS configuration JSON
1) Add API to get the BIOS strings from the JSON configuration files. 2) Add API to parse the config file and setup the lookup data structures for the
Add APIs for parsing BIOS configuration JSON
1) Add API to get the BIOS strings from the JSON configuration files. 2) Add API to parse the config file and setup the lookup data structures for the BIOS attribute table and BIOS attribute value table. 3) Add API to get the possible values and the default values for the BIOS enumeration type. 4) Add API to get the current value of the BIOS enumeration attribute. 5) BIOS attributes can be configured by JSON configuration files which have information to build the BIOS string table, attribute table and attribute value table.
Change-Id: I747dd3cfc0801f8262ffafe2d516ae7f4ddeb7a2 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
show more ...
|
cb7f2d44 | 19-Jun-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
Add APIs to store/load BIOS tables
This commit implements C++ APIs to store a PLDM BIOS table into persistent storage, and to load the same back into memory. This commit also defines C structs repre
Add APIs to store/load BIOS tables
This commit implements C++ APIs to store a PLDM BIOS table into persistent storage, and to load the same back into memory. This commit also defines C structs representing the different BIOS tables.
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Change-Id: I4a771a368c6931464f45ae4a8f467b579c7a5d74
show more ...
|
223a73d9 | 04-Jul-2019 |
Zahed Hossain <zahzahed@in.ibm.com> |
Decode APIs now accept const struct pldm_msg *msg
All the decode_xxx APIs were changed to accept the complete pldm_msg instead of working with just a specific member (payload) making it consistent w
Decode APIs now accept const struct pldm_msg *msg
All the decode_xxx APIs were changed to accept the complete pldm_msg instead of working with just a specific member (payload) making it consistent with the encode_xxx APIs.
Following changes were made through out the code, - decode_xxx now requires to send the const struct pldm_msg *msg instead of a const uint8_t *msg. - Within the decode_xxx function the payload is extracted and used accordingly. - All the calls made to decode_xxx APIs have been modified to now pass the pointer to pldm_msg_hdr (struct pldm_msg *msg). - The test code was modified to now pass the appropriate data to all the encode_xxx APIs.
Change-Id: I16a3f6e554ea2c9fa44d55dc8f21f65022bd983a Signed-off-by: Zahed Hossain <zahzahed@in.ibm.com>
show more ...
|
5e4e3838 | 05-Jul-2019 |
Zahed Hossain <zahzahed@in.ibm.com> |
Updated supported PDLM commands list
The associative container "capabilities" was updated to reflect the currently implemented PLDM types and respective commands. The return value of the "getPLDMTyp
Updated supported PDLM commands list
The associative container "capabilities" was updated to reflect the currently implemented PLDM types and respective commands. The return value of the "getPLDMTypes" in the test code was updated to match with the current PLDM types value.
Currently implemented/supported PLDM type with commands are listed below - PLDM Messaging Control and Discovery (0x03,0x04,0x05). - PLDM for Platform Monitoring and Control (0x39). - PLDM for BIOS Control and Configuration (0x0c).
Change-Id: Id8372a8280fa05c90733e7fac54e1695127d4e68 Signed-off-by: Zahed Hossain <zahzahed@in.ibm.com>
show more ...
|
0c6d22cc | 25-Jun-2019 |
Tom Joseph <tomjoseph@in.ibm.com> |
Sync ibm-pldm-oem repository changes to pldm repository
Change-Id: I6f30b39f483647ad84fe2fbe1c24298841040801 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com> |
f666db13 | 29-May-2019 |
Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com> |
Implement the PLDM Daemon.
The pldm daemon is a PLDM responder.
PLDM messages received by the PLDM daemon from the MCTP daemon are routed to the respective command handler to create a response. Thi
Implement the PLDM Daemon.
The pldm daemon is a PLDM responder.
PLDM messages received by the PLDM daemon from the MCTP daemon are routed to the respective command handler to create a response. This response will be sent back by the PLDM daemon to the requester.
PLDM daemon and MCTP daemon interact with each other using UNIX domain sockets, as documented in https://github.com/openbmc/docs/blob/master/designs/mctp.md
Implemented a way for the PLDM responder library to register handlers for specific PLDM commands. This is as per the registration scheme documented in README.md.
Support for enabling verbosity in the PLDM Daemon (tracing the receive and response message packets) are conditionally compiled.You would need to provide the --enable-verbose flag to configure to enable it.
We discard response messages received currently.
Fixed Handler function signature for bios and file_io types.
Tested :
Updated system with the Daemon and did a 'obmcutil poweron' The Daemon was build with the verbose enabled configuration Could boot a hypervisor that sends PLDM commands.
Below is the transactions recorded in the journal Jun 25 13:35:27 witherspoon-128 pldmd[1980]: Received Msg Jun 25 13:35:27 witherspoon-128 pldmd[1980]: Buffer Data: 09 01 81 3f 06 00 00 00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 00 00 Jun 25 13:35:27 witherspoon-128 pldmd[1980]: Sending Msg Jun 25 13:35:27 witherspoon-128 pldmd[1980]: Buffer Data: 09 01 00 3f 06 80 00 00 00 00
Change-Id: I22cfd85103bce167239219fbcc59c25b09528211 Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>
show more ...
|
d0782965 | 07-May-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
Map state effecter id to D-Bus object path
Add a way to map state effecter ids to D-Bus object paths (multiple paths in case the effecter is composite).
The mapping is specified in the state effect
Map state effecter id to D-Bus object path
Add a way to map state effecter ids to D-Bus object paths (multiple paths in case the effecter is composite).
The mapping is specified in the state effecter PDR JSON (because the mapping is system specific), and is stored in a map in memory. This will be used by the get/set state effecter commands to route effecter ids to D-Bus.
Change-Id: Ic79fae2445fd257302dd1298830f58b91fed9a1f Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
show more ...
|
c6e8fb50 | 02-May-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
PDR: implement generation framework
This commit implements a framework that allows describing platform/system specific PDR information in JSON files, which the PLDM responder library parses and buil
PDR: implement generation framework
This commit implements a framework that allows describing platform/system specific PDR information in JSON files, which the PLDM responder library parses and builds a PDR out of.
Separate JSON files are expected per PDR type. This commit also adds the code to build a state effecter PDR. PDR record handles are implemented as incrementing indices, starting at 1, but this commit enables implementing other type of record handles (for eg offset based).
This commit doesn't handle merging of PDRs received from other terminii, so the PDR that's generated now is for the BMC. Merging of PDRs will be implemented in future commits.
Change-Id: I005b08c5d29d12fc2459ca8d6e18547107a3da7d Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
show more ...
|
7f57f441 | 13-Jun-2019 |
Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com> |
Enable IBM PLDM OEM commands support
Create folder structure (oem/ibm) for ibm pldm oem commands. Move the files from the ibm-pldm-oem repo [https://github.com/openbmc/ibm-pldm-oem] to the folder oe
Enable IBM PLDM OEM commands support
Create folder structure (oem/ibm) for ibm pldm oem commands. Move the files from the ibm-pldm-oem repo [https://github.com/openbmc/ibm-pldm-oem] to the folder oem/ibm/ under the pldm repo and enable conditional compilation for it. The test files are also conditionally compiled.
You would need to provide --enable-oem-ibm to configure.
This is done to simplify the build time and runtime dependencies between the standard and oem implementations.
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com> Change-Id: Iaa93c73faff87290e3d3d5d155d9ecae6e7ee6f9
show more ...
|
a6575b84 | 03-Apr-2019 |
vkaverap <vkaverap@in.ibm.com> |
PLDM Message Structure Change
With this change, PLDM code is optimised. The PLDM payload message structure previously consisted of a pointer to the payload message and the payload length, this struc
PLDM Message Structure Change
With this change, PLDM code is optimised. The PLDM payload message structure previously consisted of a pointer to the payload message and the payload length, this structure is removed with this commit and the PLDM message structure now has the PLDM header structure and an array of size 1 whose address is the starting byte of message payload. Therefore, pldm msg struct can represent a request/response message in contiguous memory, thereby enabling simple casts and avoiding memcpys to get from a uint8_t* to pldm msg or vice versa.
This commit also introduces a change to have the response handlers allocate memory for responses. This is aligned with the message struct change, and enables varying length responses.
Change-Id: Ia46d852b8b16bfc7cf04f38435bd4079ad33c66b Signed-off-by: vkaverap <vkaverap@in.ibm.com>
show more ...
|
98a2c19c | 03-Apr-2019 |
vkaverap <vkaverap@in.ibm.com> |
libpldm : add encode/decode APIs for SetStateEffecterStates
This commit implements the encode request and decode response APIs for the SetStateEffecterStates command. This enables BMC requester apps
libpldm : add encode/decode APIs for SetStateEffecterStates
This commit implements the encode request and decode response APIs for the SetStateEffecterStates command. This enables BMC requester apps to send this command and process the received response.
Change-Id: I1436c8730553b5a1aed8cda1fa90b8742e5be228 Signed-off-by: vkaverap <vkaverap@in.ibm.com>
show more ...
|
a038624b | 25-Apr-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
Makefiles: fixups and minor improvements
Change-Id: I9fb85f56900519478e3c777901beea1ed4af2b5f Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> |
032bd50a | 06-Mar-2019 |
Sampa Misra <sampmisr@in.ibm.com> |
Implement command GetDateTime
This commit implements the GetDateTime command which is defined in PLDM Bios Control and Configuration Specification.
Change-Id: Iced21bbad7be07d357b6885b1b1e03b07a3da
Implement command GetDateTime
This commit implements the GetDateTime command which is defined in PLDM Bios Control and Configuration Specification.
Change-Id: Iced21bbad7be07d357b6885b1b1e03b07a3da165 Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
show more ...
|
0db1dfa6 | 19-Mar-2019 |
Sampa Misra <sampmisr@in.ibm.com> |
libpldm : add encode/decode for setStateEffecterStates
This commit implements the decode of the request and encode of the response for the setStateEffecterStates command.
Change-Id: Idc5f1316386dc6
libpldm : add encode/decode for setStateEffecterStates
This commit implements the decode of the request and encode of the response for the setStateEffecterStates command.
Change-Id: Idc5f1316386dc650564d9859a63fbeade24d82d8 Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
show more ...
|
fb4bec94 | 25-Mar-2019 |
Priyanga <priyram1@in.ibm.com> |
Enable code coverage
To enable: './configure --enable-code-coverage'
To build and generate report: 'make check-code-coverage'
Tested: Verified that 'make check-code-coverage' generates lcov report
Enable code coverage
To enable: './configure --enable-code-coverage'
To build and generate report: 'make check-code-coverage'
Tested: Verified that 'make check-code-coverage' generates lcov report.
Signed-off-by: Priyanga <priyram1@in.ibm.com> Change-Id: I36a9b501c441ef25595808ce77fc1ca36c1ac323
show more ...
|
94d704b7 | 22-Feb-2019 |
Sampa Misra <sampmisr@in.ibm.com> |
GetPLDMVersion: add test cases
This commit adds additional bad path tests for the command GetPLDMVersion.
Change-Id: I0c88bfbb2f40829cc84f4e29ce632dc1e5e53aec Signed-off-by: Sampa Misra <sampmisr@i
GetPLDMVersion: add test cases
This commit adds additional bad path tests for the command GetPLDMVersion.
Change-Id: I0c88bfbb2f40829cc84f4e29ce632dc1e5e53aec Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
show more ...
|
8c643469 | 21-Feb-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
decode APIs: decode completion code as well
Have the decode APIs decode PLDM completion code as well, instead on relying on the caller to do this. If the code indicates failure, bail out from furthe
decode APIs: decode completion code as well
Have the decode APIs decode PLDM completion code as well, instead on relying on the caller to do this. If the code indicates failure, bail out from further decoding.
Change-Id: I43c9cc924b1d182df40fbf05702cd89a7d5e5a3f Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
show more ...
|