tree 63081dff8a5c44bbca1050ef7e5ffdfdcf4e31b5
parent 4a5038370b1513022b41e5d99a319f627c0084c8
author Dung Cao <dung@os.amperecomputing.com> 1717559207 +0000
committer Thu Nguyen <thu@os.amperecomputing.com> 1737120816 +0000

platform-mc: discovery FRU data from terminus

As [1], `pldmd` will host Fru D-Bus inventory object path and Fru
`xyz.openbmc_project.Inventory.Decorator.*` D-Bus interfaces of one PLDM
terminus.
[1] https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md#processing-pldm-fru-information-sent-down-by-the-host-firmware

Support getting FRU data from terminus in the terminus discovery phase
and expose FRU data to the Fru D-Bus properties in
`xyz.openbmc_project.Inventory.Decorator.Asset`,
`xyz.openbmc_project.Inventory.Decorator.AssetTag`,
`xyz.openbmc_project.Inventory.Decorator.Compatible` and
`xyz.openbmc_project.Inventory.Decorator.Revision` interfaces of
`xyz/openbmc_project/FruPldm/<Terminus_Name>` D-Bus object path which is
created by `xyz.openbmc_project.PLDM` D-Bus service. The object path
will be available until the endpoint EID is removed from the MCTP
D-Bus.

```
busctl introspect xyz.openbmc_project.PLDM  /xyz/openbmc_project/inventory/system/board/S0
NAME                                               TYPE      SIGNATURE RESULT/VALUE                       FLAGS
org.freedesktop.DBus.Introspectable                interface -         -                                  -
.Introspect                                        method    -         s                                  -
org.freedesktop.DBus.Peer                          interface -         -                                  -
.GetMachineId                                      method    -         s                                  -
.Ping                                              method    -         -                                  -
org.freedesktop.DBus.Properties                    interface -         -                                  -
.Get                                               method    ss        v                                  -
.GetAll                                            method    s         a{sv}                              -
.Set                                               method    ssv       -                                  -
.PropertiesChanged                                 signal    sa{sv}as  -                                  -
xyz.openbmc_project.Inventory.Decorator.Asset      interface -         -                                  -
.BuildDate                                         property  s         ""                                 emits-change writable
.Manufacturer                                      property  s         ""                                 emits-change writable
.Model                                             property  s         "00014003"                         emits-change writable
.PartNumber                                        property  s         ""                                 emits-change writable
.SerialNumber                                      property  s         "000000218"                        emits-change writable
.SparePartNumber                                   property  s         ""                                 emits-change writable
.SubModel                                          property  s         ""                                 emits-change writable
xyz.openbmc_project.Inventory.Decorator.AssetTag   interface -         -                                  -
.AssetTag                                          property  s         ""                                 emits-change writable
xyz.openbmc_project.Inventory.Decorator.Compatible interface -         -                                  -
.Names                                             property  as        0                                  emits-change writable
xyz.openbmc_project.Inventory.Decorator.Revision   interface -         -                                  -
.Version                                           property  s         "x.x.00008.004"                    emits-change writable
xyz.openbmc_project.Inventory.Item.Board           interface -         -                                  -

```
Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I4f8869f8fee0fc0f8a5a5670d9a42fc7f48cc798
