entity-manager: Expose I2CDevice for EEPROMs

Currently, EEPROMs handled by kernel drivers are explicitly skipped
during raw I2C bus probing via finding sysfs 'eeprom' files. As a
result, they do not get the xyz.openbmc_project.Inventory.Item.I2CDevice
probe interface created for them.

This commit adds a patch that calls makeProbeInterface() for addresses
specifically identified as kernel-bound EEPROMs to expose the probe
interfaces for them. This allows the Redfish RawEeproms node to
successfully discover I2CDevices and invoke the GetRawFru DBus wrapper
for diagnostics for any EEPROM type.

Tested:
Verified on dddhd28 that kernel-bound EEPROMs are exposed correctly.
Before patch:
  busctl tree xyz.openbmc_project.FruDevice showed successfully parsed
  FRUs and non-kernel I2C devices (e.g., 3_82, 3_84, 4_83).
After patch:
  busctl tree xyz.openbmc_project.FruDevice now also includes the
  kernel-bound EEPROM probe nodes (e.g., 14_85, 4_80).
Successfully tested raw payload extraction on the newly exposed EEPROM:
  busctl call xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice xyz.openbmc_project.FruDeviceManager GetRawFru qy 4 80
  -> Returned correct ASCII byte array.

Tested: https://paste.googleplex.com/4709904605642752
Fusion-Link: fusion2 N/A
Google-Bug-Id: 537017375
Change-Id: Iee7ebe0a092123e10b4eae0c97d30782c86a942c
Signed-off-by: Rutu Patel <rutupatel@google.com>
2 files changed
tree: f89cf986ac43656f2ee3f4e058a86b70147d1356
  1. classes/
  2. conf/
  3. dynamic-layers/
  4. recipes-bsp/
  5. recipes-connectivity/
  6. recipes-core/
  7. recipes-devtools/
  8. recipes-extended/
  9. recipes-google/
  10. recipes-kernel/
  11. recipes-phosphor/
  12. recipes-support/
  13. recipes-tpm1/
  14. recipes-tpm2/
  15. LICENSE
  16. README.md
README.md

meta-gbmc-staging

This repository contains additions to the openbmc/meta-google layer that are not yet ready for OpenBMC inclusion.

How to use this layer

  1. Clone openbmc/openbmc from GitHub.
  2. Clone this layer from GitHub into a subdirectory of openbmc.