summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheng C Yang <cheng.c.yang@intel.com>2019-10-10 19:22:34 +0300
committerWang, Kuiying <kuiying.wang@intel.com>2019-10-23 11:28:16 +0300
commit655e486b075682d6ce548394c49a82140ce86469 (patch)
treea31987ad73968f23eb4453523a0c4eb81614a495
parent29c10072c157687c8bce0e9bf63cad87310e71fe (diff)
downloadprovingground-655e486b075682d6ce548394c49a82140ce86469.tar.xz
Use properties in Asset for MDR V1
Use partNumber, SerialNumber and Manufacturer in Inventory/Decorator/Asset instead of Inventory/Item/Dimm for MDR V1 Tested: In https://BMC_IP/redfish/v1/Systems/system/Memory/dimm2 PartNumber, SerialNumber and Manufacturer should show as { "@odata.context": "/redfish/v1/$metadata#Memory.Memory", @odata.id": "/redfish/v1/Systems/system/Memory/dimm2", "@odata.type": "#Memory.v1_6_0.Memory", "CapacityMiB": 16384, "DataWidthBits": 64, "Id": "dimm2", "Manufacturer": "Samsung", "MemoryDeviceType": "DDR4", "MemoryType": "DRAM", "Name": "DIMM Slot", "PartNumber": "M393A2G40DB0-CPB ", "SerialNumber": "0209718C", "Status": { "Health": "OK", "State": "Enabled" } Change-Id: I647a6faddeed80f2fd0b9f432b68d1e08c123af9 Signed-off-by: Cheng C Yang <cheng.c.yang@intel.com>
-rw-r--r--services/smbios/include/dimm.hpp18
-rw-r--r--services/smbios/src/dimm.cpp24
-rw-r--r--services/smbios/src/smbios-main.cpp1
3 files changed, 26 insertions, 17 deletions
diff --git a/services/smbios/include/dimm.hpp b/services/smbios/include/dimm.hpp
index 15196ea..5ca7a05 100644
--- a/services/smbios/include/dimm.hpp
+++ b/services/smbios/include/dimm.hpp
@@ -15,6 +15,7 @@
*/
#pragma once
+#include <xyz/openbmc_project/Inventory/Decorator/Asset/server.hpp>
#include <xyz/openbmc_project/Inventory/Item/Dimm/server.hpp>
#include "smbios.hpp"
@@ -24,8 +25,12 @@ namespace phosphor
namespace smbios
{
-class Dimm : sdbusplus::server::object::object<
- sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm>
+class Dimm
+ : sdbusplus::server::object::object<
+ sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm>,
+ sdbusplus::server::object::object<
+ sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Asset>
+
{
public:
Dimm() = delete;
@@ -41,6 +46,9 @@ class Dimm : sdbusplus::server::object::object<
sdbusplus::server::object::object<
sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm>(
bus, objPath.c_str()),
+ sdbusplus::server::object::object<
+ sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+ Asset>(bus, objPath.c_str()),
dimmNum(dimmId), regionS(region)
{
memoryInfoUpdate();
@@ -54,9 +62,9 @@ class Dimm : sdbusplus::server::object::object<
std::string memoryType(std::string value) override;
std::string memoryTypeDetail(std::string value) override;
uint16_t memorySpeed(uint16_t value) override;
- std::string memoryManufacturer(std::string value) override;
- std::string memorySerialNum(std::string value) override;
- std::string memoryPartNum(std::string value) override;
+ std::string manufacturer(std::string value) override;
+ std::string serialNumber(std::string value) override;
+ std::string partNumber(std::string value) override;
uint8_t memoryAttributes(uint8_t value) override;
uint16_t memoryConfClockSpeed(uint16_t value) override;
diff --git a/services/smbios/src/dimm.cpp b/services/smbios/src/dimm.cpp
index c4c1d15..a3c3603 100644
--- a/services/smbios/src/dimm.cpp
+++ b/services/smbios/src/dimm.cpp
@@ -172,13 +172,13 @@ void Dimm::dimmManufacturer(uint8_t positionNum, uint8_t structLen,
result = positionToString(positionNum, structLen, dataIn);
- memoryManufacturer(result);
+ manufacturer(result);
}
-std::string Dimm::memoryManufacturer(std::string value)
+std::string Dimm::manufacturer(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
- memoryManufacturer(value);
+ return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+ Asset::manufacturer(value);
}
void Dimm::dimmSerialNum(uint8_t positionNum, uint8_t structLen,
@@ -188,13 +188,13 @@ void Dimm::dimmSerialNum(uint8_t positionNum, uint8_t structLen,
result = positionToString(positionNum, structLen, dataIn);
- memorySerialNum(result);
+ serialNumber(result);
}
-std::string Dimm::memorySerialNum(std::string value)
+std::string Dimm::serialNumber(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
- memorySerialNum(value);
+ return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+ Asset::serialNumber(value);
}
void Dimm::dimmPartNum(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn)
@@ -203,13 +203,13 @@ void Dimm::dimmPartNum(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn)
result = positionToString(positionNum, structLen, dataIn);
- memoryPartNum(result);
+ partNumber(result);
}
-std::string Dimm::memoryPartNum(std::string value)
+std::string Dimm::partNumber(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
- memoryPartNum(value);
+ return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+ Asset::partNumber(value);
}
uint8_t Dimm::memoryAttributes(uint8_t value)
diff --git a/services/smbios/src/smbios-main.cpp b/services/smbios/src/smbios-main.cpp
index 74a28eb..2a9b86b 100644
--- a/services/smbios/src/smbios-main.cpp
+++ b/services/smbios/src/smbios-main.cpp
@@ -64,6 +64,7 @@ int main(void)
sd_event_default(&events);
sdbusplus::bus::bus bus = sdbusplus::bus::new_default();
+ sdbusplus::server::manager::manager objManager(bus, "/xyz/openbmc_project");
phosphor::watchdog::EventPtr eventP{events,
phosphor::watchdog::EventDeleter()};
bus.attach_event(events, SD_EVENT_PRIORITY_NORMAL);