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 ...
|
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 ...
|
c3d20895 | 01-Aug-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
libpldmresponder: BIOS: create dir to store tables
The directory where BIOS tables are persisted must be created by the code.
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Change-Id: I2acdc
libpldmresponder: BIOS: create dir to store tables
The directory where BIOS tables are persisted must be created by the code.
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Change-Id: I2acdce9e032707145f0ee4c1d2ab803954f46b1c
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 ...
|
33705fda | 02-Jul-2019 |
Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com> |
Fix instance id in pldm response
The instance id that is sent on the pldm request message has to be returned in the PLDM response message to the caller, this was defaulted in the initial coding to z
Fix instance id in pldm response
The instance id that is sent on the pldm request message has to be returned in the PLDM response message to the caller, this was defaulted in the initial coding to zero and is fixed now
Tested :
Booted a hypervisor that sends PLDM commands.
Below is the transactions recorded in the journal Jul 03 16:24:10 w70 pldmd[3209]: Buffer Data: 09 01 8b 3f 07 01 00 00 00 00 00 00 00 10 00 00 00 00 00 01 00 00 00 00 00 Jul 03 16:24:10 w70 pldmd[3209]: Sending Msg Jul 03 16:24:10 w70 pldmd[3209]: Buffer Data: 09 01 0b 3f 07 00 10 00 00 00 Jul 03 16:24:11 w70 pldmd[3209]: Received Msg Jul 03 16:24:11 w70 pldmd[3209]: Buffer Data: 09 01 8c 3f 07 00 00 00 00 00 00 02 00 00 10 00 00 00 10 01 00 00 00 00 00 Jul 03 16:24:11 w70 pldmd[3209]: Sending Msg Jul 03 16:24:11 w70 pldmd[3209]: Buffer Data: 09 01 0c 3f 07 00 00 10 00 00 Jul 03 16:24:11 w70 pldmd[3209]: Received Msg Jul 03 16:24:11 w70 pldmd[3209]: Buffer Data: 09 01 8d 3f 07 01 00 00 00 00 00 00 00 10 00 00 00 00 00 01 00 00 00 00 00 Jul 03 16:24:11 w70 pldmd[3209]: Sending Msg Jul 03 16:24:11 w70 pldmd[3209]: Buffer Data: 09 01 0d 3f 07 00 10 00 00 00
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com> Change-Id: I0e6c0d5582674bc6b0dd75ceb35dd41ed9127cd3
show more ...
|
da87ec61 | 02-Jul-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
Fix build errors with bitbake
8b97665 has build fails with a pldm bitbake recipe. The fix was mostly about using top_srcdir instead of top_builddir.
Change-Id: Ic3ef0e01997921174d28ae10e66e7bdd17c5
Fix build errors with bitbake
8b97665 has build fails with a pldm bitbake recipe. The fix was mostly about using top_srcdir instead of top_builddir.
Change-Id: Ic3ef0e01997921174d28ae10e66e7bdd17c52af8 Signed-off-by: Deepak Kodihalli <dkodihal@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 ...
|
74c1c1e5 | 18-Jun-2019 |
Zahed Hossain <zahzahed@in.ibm.com> |
Updated versions for supported PLDM types
Updated the base.cpp to include version details for the PLDM PLATFORM (v1.1.1) and BIOS (v1.0.0) details which initially only had PLDM BASE (v1.0.0) type ve
Updated versions for supported PLDM types
Updated the base.cpp to include version details for the PLDM PLATFORM (v1.1.1) and BIOS (v1.0.0) details which initially only had PLDM BASE (v1.0.0) type version defined.
Change-Id: If06e3b7ba89947580f3c600912005e436c6611f9 Signed-off-by: Zahed Hossain <zahzahed@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 ...
|
c2feac93 | 30-Apr-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
libpldmresponder: fixup logging includes
Replace inclusion of phosphor-logging elog-errors.hpp by log.hpp. The latter was what was just needed.
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
libpldmresponder: fixup logging includes
Replace inclusion of phosphor-logging elog-errors.hpp by log.hpp. The latter was what was just needed.
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Change-Id: I0781aec734d5afb54369d9961085413ed755629d
show more ...
|
c1e5d1d1 | 30-Apr-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
libpldmresponder : add missing include path
The libpldmresponder Makefile.am needs to add top_srcdir to the include path to enable out-of-tree builds. This way the code can continue to include somet
libpldmresponder : add missing include path
The libpldmresponder Makefile.am needs to add top_srcdir to the include path to enable out-of-tree builds. This way the code can continue to include something like "libpldm/foo.h".
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Change-Id: If4fa6f1fdac3395dfb389989f18d5de4d259de46
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 ...
|
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 ...
|
97e0bd54 | 21-Feb-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
Define pldm data types
This commit defines some data types as per PLDM DSP0240. Only types that are used are defined.
Change-Id: Id932d638587b4b34c2941d6d0714cd0e1f1be264 Signed-off-by: Deepak Kodi
Define pldm data types
This commit defines some data types as per PLDM DSP0240. Only types that are used are defined.
Change-Id: Id932d638587b4b34c2941d6d0714cd0e1f1be264 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
show more ...
|
432e187c | 13-Feb-2019 |
Sampa Misra <sampmisr@in.ibm.com> |
Implement GetPLDMVersion command
This commit implements the GetPLDMVersion which is required as part of the base PLDM support to know the version of a given PLDM type.
Change-Id: I1bcbd938c5b6833f6
Implement GetPLDMVersion command
This commit implements the GetPLDMVersion which is required as part of the base PLDM support to know the version of a given PLDM type.
Change-Id: I1bcbd938c5b6833f62e0ee2f474b04d76b6970d9 Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
show more ...
|
1b24f975 | 01-Feb-2019 |
Deepak Kodihalli <dkodihal@in.ibm.com> |
Implement discovery commands
This commit does the following - Implements the GetPLDMTypes and GetPLDMCommands commands. These are commands that need to be handled by a PLDM device as part of the
Implement discovery commands
This commit does the following - Implements the GetPLDMTypes and GetPLDMCommands commands. These are commands that need to be handled by a PLDM device as part of the initial PLDM discovery. - Sets up the build infrastructure: separate libraries for PLDM encode/decode libs and the PLDM responder.
Change-Id: I65fa222d2a681c473f579c8e30d84faaf94fe754 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
show more ...
|