Fix IPMI FRU Device Description display string

Resolved an issue where the IPMI command "ipmitool fru list"
did not display proper human-readable string values for the
"Fru Device Description" field for certain FRUs.

The problem occurred because the current code retrieves the
value for the "Fru Device Description" field from the
"PRODUCT_PRODUCT_NAME" property, which might simply having
dots or dashes if the FRU entity is not qualified to call
it as PRODUCT.

To address this, the priority has been changed to the unique
"BOARD_PRODUCT_NAME" property, as "PRODUCT_PRODUCT_NAME" could
also be shared by multiple Board FRU entities sharing the product.
If the "BOARD_PRODUCT_NAME" property is unavailable, the value
will still be retrieved from "PRODUCT_PRODUCT_NAME".

Tested:
Verified using ipmitool fru list

Change-Id: Iea91844f2b15d19f58b15b979d830adaf5f17c6a
Signed-off-by: Jitendra Tripathy <jitendra.kumarx.tripathy@intel.com>
1 file changed
tree: 843f82203843ba3f06ce8e2d1dd9bddaf1f70a4e
  1. app/
  2. dbus-sdr/
  3. docs/
  4. include/
  5. libipmid/
  6. scripts/
  7. softoff/
  8. subprojects/
  9. test/
  10. transport/
  11. user_channel/
  12. xyz/
  13. .build.sh
  14. .clang-format
  15. .clang-tidy
  16. .gitignore
  17. .shellcheck
  18. .travis.yml
  19. apphandler.cpp
  20. apphandler.hpp
  21. chassishandler.cpp
  22. chassishandler.hpp
  23. dcmihandler.cpp
  24. dcmihandler.hpp
  25. error-HostEvent.hpp
  26. fruread.hpp
  27. generate_whitelist.sh
  28. generate_whitelist_create.sh
  29. globalhandler.cpp
  30. groupext.cpp
  31. host-cmd-manager.cpp
  32. host-cmd-manager.hpp
  33. host-interface.cpp
  34. host-interface.hpp
  35. host-ipmid-whitelist.conf
  36. ipmi_fru_info_area.cpp
  37. ipmi_fru_info_area.hpp
  38. ipmiallowlist.hpp
  39. ipmid-new.cpp
  40. ipmisensor.cpp
  41. LICENSE
  42. meson.build
  43. meson.options
  44. OWNERS
  45. read_fru_data.cpp
  46. read_fru_data.hpp
  47. README.md
  48. sbmrhandler.cpp
  49. selutility.cpp
  50. selutility.hpp
  51. sensordatahandler.cpp
  52. sensordatahandler.hpp
  53. sensorhandler.cpp
  54. sensorhandler.hpp
  55. settings.cpp
  56. settings.hpp
  57. storageaddsel.cpp
  58. storageaddsel.hpp
  59. storagehandler.cpp
  60. sys_info_param.cpp
  61. sys_info_param.hpp
  62. systemintfcmds.cpp
  63. systemintfcmds.hpp
  64. transportconstants.hpp
  65. transporthandler.cpp
  66. transporthandler.hpp
  67. whitelist-filter.cpp
README.md

phosphor-host-ipmid

Compile ipmid with default options

meson builddir
ninja -C builddir

Compile ipmid with yocto defaults

meson builddir -Dbuildtype=minsize -Db_lto=true -Dtests=disabled
ninja -C builddir

If any of the dependencies are not found on the host system during configuration, meson automatically gets them via its wrap dependencies mentioned in ipmid/subprojects.

Enable/Disable meson wrap feature

meson builddir -Dwrap_mode=nofallback
ninja -C builddir

Enable debug traces

meson builddir -Dbuildtype=debug
ninja -C builddir

Generate test coverage report

meson builddir -Db_coverage=true -Dtests=enabled
ninja -C builddir test
ninja -C builddir coverage