summaryrefslogtreecommitdiff
path: root/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0004-add-new-dimm-fields.patch
blob: 9061fc34d9bdbda422ecd2f3b8d8f8643e11d73c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
From c834e8916d482a20e2f322dbd772ddd8a3f2b65b Mon Sep 17 00:00:00 2001
From: eportnov <eportnov@ibs.ru>
Date: Fri, 8 Jul 2022 16:30:51 +0300
Subject: [PATCH] add new dimm fields

---
 redfish-core/lib/memory.hpp | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
index 6e4ab67..31dd3c7 100644
--- a/redfish-core/lib/memory.hpp
+++ b/redfish-core/lib/memory.hpp
@@ -30,6 +30,10 @@ namespace redfish
 
 inline std::string translateMemoryTypeToRedfish(const std::string& memoryType)
 {
+    if (memoryType == "xyz.openbmc_project.Inventory.Item.Dimm.DeviceType.DRAM")
+    {
+        return "DRAM";
+    }
     if (memoryType == "xyz.openbmc_project.Inventory.Item.Dimm.DeviceType.DDR")
     {
         return "DDR";
@@ -473,6 +477,7 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> aResp,
                         messages::internalError(aResp->res);
                         return;
                     }
+                    aResp->res.jsonValue["MemorySize"] = (*memorySize);
                     aResp->res.jsonValue["CapacityMiB"] = (*memorySize >> 10);
                 }
                 else if (property.first == "PartNumber")
@@ -647,7 +652,7 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> aResp,
                         // so just leave off
                         if (!memoryDeviceType.empty())
                         {
-                            aResp->res.jsonValue["MemoryDeviceType"] =
+                            aResp->res.jsonValue["MemoryType"] =
                                 memoryDeviceType;
                         }
                         if (value->find("DDR") != std::string::npos)
@@ -660,6 +665,24 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> aResp,
                         }
                     }
                 }
+                else if (property.first == "Model")
+                {
+                    const auto* value =
+                        std::get_if<std::string>(&property.second);
+                    if (value != nullptr)
+                    {
+                        aResp->res.jsonValue["Model"] = *value;
+                    }
+                }
+                else if (property.first == "Description")
+                {
+                    const auto* value =
+                        std::get_if<std::string>(&property.second);
+                    if (value != nullptr)
+                    {
+                        aResp->res.jsonValue["Description"] = *value;
+                    }
+                }
                 // memory location interface
                 else if (property.first == "Channel" ||
                          property.first == "MemoryController" ||