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/src/dimm.cpp b/src/dimm.cpp
index ce63f4f..f6228c9 100644
--- a/src/dimm.cpp
+++ b/src/dimm.cpp
@@ -99,6 +99,7 @@
dimmType(memoryInfo->memoryType);
dimmTypeDetail(memoryInfo->typeDetail);
maxMemorySpeedInMhz(memoryInfo->speed);
+ updateFormFactor(memoryInfo->formFactor);
dimmManufacturer(memoryInfo->manufacturer, memoryInfo->length, dataIn);
dimmSerialNum(memoryInfo->serialNum, memoryInfo->length, dataIn);
dimmPartNum(memoryInfo->partNum, memoryInfo->length, dataIn);
@@ -465,6 +466,22 @@
OperationalStatus::functional(value);
}
+void Dimm::updateFormFactor(const uint8_t formFactorKey)
+{
+ std::map<uint8_t, FormFactor>::const_iterator it =
+ dimmFormFactorMap.find(formFactorKey);
+ if (it != dimmFormFactorMap.end())
+ {
+ formFactor(it->second);
+ }
+}
+
+FormFactor Dimm::formFactor(FormFactor value)
+{
+ return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
+ formFactor(value);
+}
+
Json Dimm::parseConfigFile()
{
std::ifstream memoryLocationFile(filename);