diff options
author | Cheng C Yang <cheng.c.yang@intel.com> | 2019-10-10 19:22:34 +0300 |
---|---|---|
committer | Wang, Kuiying <kuiying.wang@intel.com> | 2019-10-23 11:28:16 +0300 |
commit | 655e486b075682d6ce548394c49a82140ce86469 (patch) | |
tree | a31987ad73968f23eb4453523a0c4eb81614a495 | |
parent | 29c10072c157687c8bce0e9bf63cad87310e71fe (diff) | |
download | provingground-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.hpp | 18 | ||||
-rw-r--r-- | services/smbios/src/dimm.cpp | 24 | ||||
-rw-r--r-- | services/smbios/src/smbios-main.cpp | 1 |
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); |