From 655e486b075682d6ce548394c49a82140ce86469 Mon Sep 17 00:00:00 2001 From: Cheng C Yang Date: Fri, 11 Oct 2019 00:22:34 +0800 Subject: 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 --- services/smbios/include/dimm.hpp | 18 +++++++++++++----- services/smbios/src/dimm.cpp | 24 ++++++++++++------------ 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 #include #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); -- cgit v1.2.3