History log of /openbmc/pldm/libpldmresponder/bios.hpp (Results 1 – 24 of 24)
Revision Date Author Comments
# b3b84b49 23-Aug-2024 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

clang-tidy: Enable modernize-deprecated-headers check

Some headers from C library were deprecated in C++ and are no
longer welcome in C++ codebases. Some have no effect in C++ [1].

[1]: https://rel

clang-tidy: Enable modernize-deprecated-headers check

Some headers from C library were deprecated in C++ and are no
longer welcome in C++ codebases. Some have no effect in C++ [1].

[1]: https://releases.llvm.org/13.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-deprecated-headers.html

Change-Id: Ia3b1df10175e2e661c8fffb82e357c9db81b2e9c
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>

show more ...


# 62dd8ff2 12-Feb-2024 Archana Kakani <archana.kakani@ibm.com>

pldm: Build BIOS Table Lazily

Entity manager service hosts the compatible interface and populates the
Names property with the chassis type. It is seen that the Names property
is updated pretty late

pldm: Build BIOS Table Lazily

Entity manager service hosts the compatible interface and populates the
Names property with the chassis type. It is seen that the Names property
is updated pretty late on the way to BMC ready state. And by that time
pldmd is already creating the bios table assuming that the system type
is not detected.

To fix this behavior, rather than creating the bios table early, we need
to wait until we get the system type from the entity manager daemon.

System Type is fetched from Entity Manager Decorator.Compatible
interface [1].

PLDM registers the service name only after building the BIOS tables, to
avoids failures to bios updates from other applications

Tested: Power off/On successfully in Simulator

[1] https://github.com/openbmc/entity-manager/commit/9bac6409d4bd684f058517f41de33ba1d17e5666

Change-Id: I4d431061eaaf8842f6382c2e83807f725653e19b
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>

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 ...


# 2abbce76 17-Oct-2023 Andrew Jeffery <andrew@codeconstruct.com.au>

InstanceIdDb: Move header from pldmd/ to common/

The header is used across all executables produced by the project, which
makes it "common".

Change-Id: I022b179fad1de8dba2ef39fd33bc240ec73a2d33
Sig

InstanceIdDb: Move header from pldmd/ to common/

The header is used across all executables produced by the project, which
makes it "common".

Change-Id: I022b179fad1de8dba2ef39fd33bc240ec73a2d33
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>

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 ...


# 47792274 13-Jun-2023 Andrew Jeffery <andrew@aj.id.au>

pldm: Include config.h via compiler argument

This removes any ambiguity about which config.h is being included.
Subprojects such as libpldm and phosphor-logging also generate config.h
files, and the

pldm: Include config.h via compiler argument

This removes any ambiguity about which config.h is being included.
Subprojects such as libpldm and phosphor-logging also generate config.h
files, and these are exposed in the include path.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I3e0ccd6339f088380ffa29d41167b07aefc7dd16

show more ...


# a330b2f0 04-May-2023 Andrew Jeffery <andrew@aj.id.au>

pldmd: Migrate instance ID allocation to pldm::InstanceIdDb

This removes use of `pldm::dbus_api::Requester` from around the
code-base. This makes progress towards removing the DBus API entirely
once

pldmd: Migrate instance ID allocation to pldm::InstanceIdDb

This removes use of `pldm::dbus_api::Requester` from around the
code-base. This makes progress towards removing the DBus API entirely
once all its consumers are converted to the libpldm instance ID APIs.

There was never a good reason for the code using the class to have
knowledge that it was related to DBus anyway, so this is, in-effect, a
double clean up improving separation of concerns.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I2d9397cae1b3c8c251c32e36ca520aad9c9b8cf6

show more ...


# c453e164 21-Dec-2022 George Liu <liuxiwei@inspur.com>

libpldm: Correct reference to libpldm header files

When relying on header files from external libraries, #include<> should
be used instead of #include "" to avoid ambiguity.

Tested: Built pldm succ

libpldm: Correct reference to libpldm header files

When relying on header files from external libraries, #include<> should
be used instead of #include "" to avoid ambiguity.

Tested: Built pldm successfully after enabling ibm-oem

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ia1997de7e0f61564055bbd837f4e24c8f14e55a5

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 ...


# 7f839f9d 20-Sep-2020 Tom Joseph <tomjoseph@in.ibm.com>

oem-ibm: Send the event to host when BIOS attribute changes

IBM has the requirement to send a hot update to host when the
BIOS attribute changes. This patch enables sending an OEM platform
event mes

oem-ibm: Send the event to host when BIOS attribute changes

IBM has the requirement to send a hot update to host when the
BIOS attribute changes. This patch enables sending an OEM platform
event message to host with the details of the BIOS attributes that
changed on the BMC. Once the host acknowledges the event, then BMC
updates the BaseBiosTable in the bios-config-manager. The host comes
down and reads the changed BIOS attributes by calling the command
GetBIOSAttribute value.

Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Change-Id: Id1579bfed1967e653da743313c825b765d227681

show more ...


# 1b180d8a 23-Jul-2020 George Liu <liuxiwei@inspur.com>

libpldmresponder: Implement SetBIOSTable

Register the setBIOSTable method and set separately string table,
attribute table, and attribute value table.
When the attribute value table is set, the corr

libpldmresponder: Implement SetBIOSTable

Register the setBIOSTable method and set separately string table,
attribute table, and attribute value table.
When the attribute value table is set, the corresponding D-Bus
property value needs to updated.

Tested:
test with JSON:
https://gist.github.com/lxwinspur/2afffff2e445fddf90dfed6eceef4014

~# pldmtool raw -d 0x80 0x03 0x02 0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x00 0x03 0x00 0x4c 0x65 0x64 0x01 0x00 0x03 0x00 0x4f 0x66 0x66 0x02 0x00 0x02 0x00 0x4f 0x6e 0x23 0x4d 0x50 0x09
Request Message:
08 01 80 03 02 00 00 00 00 05 00 00 00 03 00 4c 65 64 01 00 03 00 4f 66 66 02 00 02 00 4f 6e 23 4d 50 09
Response Message:
08 01 00 03 02 00 00 00 00 00

~# pldmtool raw -d 0x80 0x03 0x02 0x00 0x00 0x00 0x00 0x05 0x01 0x00 0x00 0x00 0x00 0x00 0x02 0x02 0x00 0x01 0x00 0x01 0x01 0xff 0x10 0x22 0x77
Request Message:
08 01 80 03 02 00 00 00 00 05 01 00 00 00 00 00 02 02 00 01 00 01 01 ff 10 22 77
Response Message:
08 01 00 03 02 00 00 00 00 00

~# pldmtool raw -d 0x80 0x03 0x02 0x00 0x00 0x00 0x00 0x05 0x02 0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0xbc 0x91 0xfe 0xe0
Request Message:
08 01 80 03 02 00 00 00 00 05 02 00 00 00 01 01 00 00 00 bc 91 fe e0
Response Message:
08 01 00 03 02 00 00 00 00 00

~# pldmtool bios GetBIOSTable -t 0
PLDM StringTable:
BIOSStringHandle : BIOSString
0 : Led
1 : Off
2 : On

~# pldmtool bios GetBIOSTable -t 1
PLDM AttributeTable:
AttributeHandle: 0, AttributeNameHandle: 0(Led)
AttributeType: BIOSEnumeration
NumberOfPossibleValues: 2
PossibleValueStringHandle[0] = 2(On)
PossibleValueStringHandle[1] = 1(Off)
NumberOfDefaultValues: 1
DefaultValueStringHandleIndex[0] = 1, StringHandle = 1(Off)

~# pldmtool bios GetBIOSTable -t 2
PLDM AttributeValueTable:
AttributeHandle: 0
AttributeType: BIOSEnumeration
NumberOfCurrentValues: 1
CurrentValueStringHandleIndex[0] = 1, StringHandle = Off

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I0ff88961afdfe0835c9fd0b56e37f7ed75f2fb45

show more ...


# 1521f6d1 16-Jun-2020 Deepak Kodihalli <dkodihal@in.ibm.com>

pldmd: code re-org

Move code specific to the pldm main app to its own directory.

Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Change-Id: I9341ebb02b7fcf8f62fbbe922e1fa6fe3fbcb9ec


# 6492f524 15-Jun-2020 George Liu <liuxiwei@inspur.com>

clang-format: update to latest from docs repo

Since `Cpp11` is an alias for `Latest` and we should tend towards using the
latest C++ standard, update the C++ standard to Latest.

https://github.com/

clang-format: update to latest from docs repo

Since `Cpp11` is an alias for `Latest` and we should tend towards using the
latest C++ standard, update the C++ standard to Latest.

https://github.com/llvm/llvm-project/commit/e5032567903de19962333c4bf7d2edceaf4f9824#diff-b49a097415dff2837d9626d422c58ba8R82
https://github.com/openbmc/docs/blob/master/style/cpp/.clang-format

Also, other OpenBMC repos are doing the same.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I449e88bb4e1e262060110e1a8f3e8db3ddfc74cf

show more ...


# 6080aae7 13-Feb-2020 John Wang <wangzqbj@inspur.com>

bios: Use the new APIs in bios table commands

Use new APIs(BIOSConfig) in bios table commands.

The previous code built bios tables after receiving
the GetBIOSTable command. But A BIOS can send
GetB

bios: Use the new APIs in bios table commands

Use new APIs(BIOSConfig) in bios table commands.

The previous code built bios tables after receiving
the GetBIOSTable command. But A BIOS can send
GetBIOSAttributeCurrentValueByHandle or
SetBIOSAttributeCurrentValue before GetBIOSTable, then
we should build bios tables in those commands.

This change builds bios tables in the command handler's
constructor, which avoids building bios tables in multiple
places.

Tested: Build tables and verify that built tables are as expected
(same as before)

Tested on fp5280g2, with json file
https://gist.github.com/wangzqbj/b24558331cb35d14fca3b555ef03e458

$ pldmtool bios GetBIOSTable -t StringTable
...
...
PLDM StringTable:
BIOSStringHandle : BIOSString
0 : CodeUpdatePolicy
1 : Concurrent
2 : Disruptive
3 : Led
4 : Model
5 : OUTLET
6 : Off
7 : On
8 : str_example3

$ pldmtool bios GetBIOSTable -t AttributeTable
...
...
PLDM AttributeTable:
AttributeHandle: 0, AttributeNameHandle: 4(Model)
AttributeType: BIOSString
StringType: 0x01
MinimumStringLength: 1
MaximumStringLength: 100
DefaultStringLength: 8
DefaultString: FP5280G2
AttributeHandle: 1, AttributeNameHandle: 8(str_example3)
AttributeType: BIOSStringReadOnly
StringType: 0x00
MinimumStringLength: 1
MaximumStringLength: 100
DefaultStringLength: 2
DefaultString: ef
AttributeHandle: 2, AttributeNameHandle: 5(OUTLET)
AttributeType: BIOSInteger
LowerBound: 0
UpperBound: 68002
ScalarIncrement: 1
DefaultValue: 0
AttributeHandle: 3, AttributeNameHandle: 3(Led)
AttributeType: BIOSEnumeration
NumberOfPossibleValues: 2
PossibleValueStringHandle[0] = 7(On)
PossibleValueStringHandle[1] = 6(Off)
NumberOfDefaultValues: 1
DefaultValueStringHandleIndex[0] = 1, StringHandle = 6(Off)
AttributeHandle: 4, AttributeNameHandle: 0(CodeUpdatePolicy)
AttributeType: BIOSEnumerationReadOnly
NumberOfPossibleValues: 2
PossibleValueStringHandle[0] = 1(Concurrent)
PossibleValueStringHandle[1] = 2(Disruptive)
NumberOfDefaultValues: 1
DefaultValueStringHandleIndex[0] = 0, StringHandle = 1(Concurrent)

$ pldmtool bios GetBIOSTable -t AttributeValueTable
...
...
PLDM AttributeValueTable:
AttributeHandle: 0
AttributeType: BIOSString
CurrentStringLength: 12
CurrentString: powersupply0
AttributeHandle: 1
AttributeType: BIOSStringReadOnly
CurrentStringLength: 2
CurrentString: ef
AttributeHandle: 2
AttributeType: BIOSInteger
CurrentValue: 0
AttributeHandle: 3
AttributeType: BIOSEnumeration
NumberOfCurrentValues: 1
CurrentValueStringHandleIndex[0] = 1, StringHandle = 6(Off)
AttributeHandle: 4
AttributeType: BIOSEnumerationReadOnly
NumberOfCurrentValues: 1
CurrentValueStringHandleIndex[0] = 0, StringHandle = 1(Concurrent)

Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: Icb698971ccd78023e8532be947f2150ea903ff8d

show more ...


# 42174885 20-Dec-2019 John Wang <wangzqbj@inspur.com>

bios: Add SetBIOSAttributeCurrentValue

Update the persisted attribute value table and the d-bus property
corresponding to the attribute.

Tested:

Tested on fp5280g2, with json files:
https://gist.g

bios: Add SetBIOSAttributeCurrentValue

Update the persisted attribute value table and the d-bus property
corresponding to the attribute.

Tested:

Tested on fp5280g2, with json files:
https://gist.github.com/wangzqbj/b24558331cb35d14fca3b555ef03e458

Build Tables:

pldmtool raw --data 0x80 0x03 0x01 0x00 0x00 0x00 0x00 0x00 0x00
pldmtool raw --data 0x80 0x03 0x01 0x00 0x00 0x00 0x00 0x00 0x01
pldmtool raw --data 0x80 0x03 0x01 0x00 0x00 0x00 0x00 0x00 0x02

enum attribute:

Get Attribute Value By Handle:
root@fp5280g2:/tmp# pldmtool raw --data 0x80 0x03 0x08 0x00 0x00 0x00 0x00 0x00 0x01 0x00
...
...
Response Message:
08 01 00 03 08 00 00 00 00 00 05 01 00

Check Dbus Property:
root@fp5280g2:/tmp# busctl get-property xyz.openbmc_project.LED.Controller.front_memory /xyz/openbmc_project/led/physical/front_memory xyz.openbmc_project.Led.Physical State
s "xyz.openbmc_project.Led.Physical.Action.Off"

Set Attribute Value:
root@fp5280g2:/tmp# pldmtool raw --data 0x80 0x03 0x07 0x00 0x00 0x00 0x00 0x05 0x01 0x00 0x00 0x01 0x01
...
...
Response Message:
08 01 00 03 07 00 //exec successfully

Get Attribute Value By Handle:
root@fp5280g2:/tmp# pldmtool raw --data 0x80 0x03 0x08 0x00 0x00 0x00 0x00 0x00 0x01 0x00
...
...
Response Message:
08 01 00 03 08 00 00 00 00 00 05 01 01 // attribute value table was updated.

Check Dbus Property:
root@fp5280g2:/tmp# busctl get-property xyz.openbmc_project.LED.Controller.front_memory /xyz/openbmc_project/led/physical/front_memory xyz.openbmc_project.Led.Physical State
s "xyz.openbmc_project.Led.Physical.Action.On" // dbus property was updated

Verified that string/integer attributes can be updated as expected.

Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: I8dab1870396061037284c1683de2502c8da68c98

show more ...


# 60227a0b 03-Dec-2019 Xiaochao Ma <maxiaochao@inspur.com>

libpldmresponder: bios: Add SetDataTime

Implement the time setting function based on decode requests,
set values and return responses.
It contains the error response.
Unit tests only include tests f

libpldmresponder: bios: Add SetDataTime

Implement the time setting function based on decode requests,
set values and return responses.
It contains the error response.
Unit tests only include tests for numerical conversion.

Tested:
~# pldmtool bios SetDateTime -d 20200101080000
Encode request successfully
Request Message:
08 01 80 03 0d 00 00 08 01 01 20 20
On first recv(),response == request : RC = 0
Total length: 6
Shutdown Socket successful : RC = 0
Response Message:
08 01 00 03 0d 00
Set date time successfully.

~# busctl get-property xyz.openbmc_project.Time.Manager\
/xyz/openbmc_project/time/host\
xyz.openbmc_project.Time.EpochTime Elapsed

t 1577865726549597

The value of epochtime matches the time entered.

Signed-off-by: Xiaochao Ma <maxiaochao@inspur.com>
Change-Id: I8d123b993d515bcadba1468974907eb56d7e98b9

show more ...


# 8721ed6e 05-Dec-2019 John Wang <wangzqbj@inspur.com>

Implement GetBIOSAttributeCurrentValueByHandle

Implement GetBIOSAttributeCurrentValueByHandle
in libpldmresponder

Tested:
tested with this json
https://github.com/openbmc/openbmc/blob/master/meta-i

Implement GetBIOSAttributeCurrentValueByHandle

Implement GetBIOSAttributeCurrentValueByHandle
in libpldmresponder

Tested:
tested with this json
https://github.com/openbmc/openbmc/blob/master/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json

root@fp5280g2:/tmp# ./pldmtool raw --data 0x80 0x03 0x08 0x00 0x00 0x00 0x00 0x00 0x02 0x00
Encode request successfully
Request Message:
08 01 80 03 08 00 00 00 00 00 02 00
Success in creating the socket : RC = 3
Success in connecting to socket : RC = 0
Success in sending message type as pldm to mctp : RC = 0
Write to socket successful : RC = 12
Total length:12
Loopback response message:
08 01 80 03 08 00 00 00 00 00 02 00
On first recv(),response == request : RC = 0
Total length: 13
Shutdown Socket successful : RC = 0
Response Message:
08 01 00 03 08 00 00 00 00 00 05 01 00

root@fp5280g2:/tmp# ./pldmtool raw --data 0x80 0x03 0x08 0x00 0x00 0x00 0x00 0x00 0x03 0x00
Encode request successfully
Request Message:
08 01 80 03 08 00 00 00 00 00 03 00
Success in creating the socket : RC = 3
Success in connecting to socket : RC = 0
Success in sending message type as pldm to mctp : RC = 0
Write to socket successful : RC = 12
Total length:12
Loopback response message:
08 01 80 03 08 00 00 00 00 00 03 00
On first recv(),response == request : RC = 0
Total length: 13
Shutdown Socket successful : RC = 0
Response Message:
08 01 00 03 08 00 00 00 00 00 05 01 01

root@fp5280g2:/tmp# ./pldmtool raw --data 0x80 0x03 0x08 0x00 0x00 0x00 0x00 0x00 0x06 0x00
Encode request successfully
Request Message:
08 01 80 03 08 00 00 00 00 00 06 00
Success in creating the socket : RC = 3
Success in connecting to socket : RC = 0
Success in sending message type as pldm to mctp : RC = 0
Write to socket successful : RC = 12
Total length:12
Loopback response message:
08 01 80 03 08 00 00 00 00 00 06 00
On first recv(),response == request : RC = 0
Total length: 6
Shutdown Socket successful : RC = 0
Response Message:
08 01 00 03 08 88

Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: Ibb68cbb3c825184bd30bdf6cea9d84d91f3a3a16

show more ...


# d9fb1526 28-Nov-2019 Deepak Kodihalli <dkodihal@in.ibm.com>

bios: delete persisted tables at startup

Leveraging the new registration scheme introduced in the previous
commit, delete persisted BIOS tables at PLDM daemon startup. This lets
us process new (via

bios: delete persisted tables at startup

Leveraging the new registration scheme introduced in the previous
commit, delete persisted BIOS tables at PLDM daemon startup. This lets
us process new (via a firmware update, for eg) BIOS config JSONs.

Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Change-Id: I2e7759261e80afb2f0a45d8598c36838ab530d54

show more ...


# bc669f1b 28-Nov-2019 Deepak Kodihalli <dkodihal@in.ibm.com>

pldmd: implement a new handler registration scheme

Implement a PLDM request handler registration scheme that requires
handlers to be C++ objects rather than plain functions. This was needed
for a co

pldmd: implement a new handler registration scheme

Implement a PLDM request handler registration scheme that requires
handlers to be C++ objects rather than plain functions. This was needed
for a couple of reasons:

- Perform specific actions at the PLDM daemon startup (that's when the
handlers are loaded).
- Share data across PLDM request messages (for eg FRU/BIOS tables),
without having to resort to globals and statics.

Tested:
- existing unit tests still pass
- added tests for the new registration scheme

Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Change-Id: I1cf1c0a6fccd15da54f08120e61a5f256df6bc36

show more ...


# 0270040b 06-Oct-2019 John Wang <wangzqbj@inspur.com>

bios: Implement an iterator for bios attribute table

Traversing bios attribute table should be platform-independent, so
implement a c-version bios attribute table iterator in libpldm, also
implement

bios: Implement an iterator for bios attribute table

Traversing bios attribute table should be platform-independent, so
implement a c-version bios attribute table iterator in libpldm, also
implement a c++ auxiliary function to traverse a bios table.

Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: I2afcaac306603410e711aa4772ba35b5e0b131d5

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 ...


# 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 ...


# 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 ...


# 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 ...