Update FormFactor property on DIMM interface
The patch adds the `FormFactor` property on DIMM interface.
BMC parses the SMBIOS Type 17 records and assigns the DIMM
FormFactor.
Tested:
[1] busctl get-property xyz.openbmc_project.Smbios.MDR_V2 xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1 xyz.openbmc_project.Inventory.Item.Dimm FormFactor s "xyz.openbmc_project.Inventory.Item.Dimm.FormFactor.Die"
Change-Id: I14b7f0ea0a51e58306c117fcde1b268da798cd36
Signed-off-by: Prithvi Pai <ppai@nvidia.com>
diff --git a/include/dimm.hpp b/include/dimm.hpp
index e848f42..851ef82 100644
--- a/include/dimm.hpp
+++ b/include/dimm.hpp
@@ -42,6 +42,9 @@
using MemoryTechType =
sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::MemoryTech;
+using FormFactor =
+ sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::FormFactor;
+
using Json = nlohmann::json;
class Dimm :
@@ -127,6 +130,7 @@
uint16_t memoryConfiguredSpeedInMhz(uint16_t value) override;
bool functional(bool value) override;
EccType ecc(EccType value) override;
+ FormFactor formFactor(FormFactor value) override;
Json parseConfigFile();
private:
@@ -151,6 +155,7 @@
void dimmPartNum(const uint8_t positionNum, const uint8_t structLen,
uint8_t* dataIn);
void updateEccType(uint16_t exPhyArrayHandle);
+ void updateFormFactor(const uint8_t formFactorKey);
};
struct MemoryInfo
@@ -264,6 +269,9 @@
uint8_t channel;
};
+const std::map<uint8_t, FormFactor> dimmFormFactorMap = {
+ {0x10, FormFactor::Die}};
+
} // namespace smbios
} // namespace phosphor