From 8f7a6f68d2488cbd6eb2e4af9adec61d97741e99 Mon Sep 17 00:00:00 2001 From: Vladislav Vovchenko Date: Thu, 17 Aug 2017 00:31:14 +0300 Subject: Add DCMI Get/Set Management Controller Id String Resolves openbmc/openbmc#1855 Change-Id: I878c7bcb1ea8b46cd3e932b1cbb2290fe612f652 Signed-off-by: Vladislav Vovchenko Signed-off-by: Brad Bishop --- dcmihandler.hpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) (limited to 'dcmihandler.hpp') diff --git a/dcmihandler.hpp b/dcmihandler.hpp index 212e9ac..91707f3 100644 --- a/dcmihandler.hpp +++ b/dcmihandler.hpp @@ -17,13 +17,20 @@ enum Commands APPLY_POWER_LIMIT = 0x05, GET_ASSET_TAG = 0x06, SET_ASSET_TAG = 0x08, + GET_MGMNT_CTRL_ID_STR = 0x09, + SET_MGMNT_CTRL_ID_STR = 0x0A, }; - static constexpr auto propIntf = "org.freedesktop.DBus.Properties"; static constexpr auto assetTagIntf = "xyz.openbmc_project.Inventory.Decorator.AssetTag"; static constexpr auto assetTagProp = "AssetTag"; +static constexpr auto networkServiceName = "xyz.openbmc_project.Network"; +static constexpr auto networkConfigObj = + "/xyz/openbmc_project/network/config"; +static constexpr auto networkConfigIntf = + "xyz.openbmc_project.Network.SystemConfiguration"; +static constexpr auto hostNameProp = "HostName"; namespace assettag { @@ -40,6 +47,7 @@ static constexpr auto groupExtId = 0xDC; static constexpr auto assetTagMaxOffset = 62; static constexpr auto assetTagMaxSize = 63; static constexpr auto maxBytes = 16; +static constexpr size_t maxCtrlIdStrLen = 63; /** @struct GetAssetTagRequest * @@ -206,6 +214,50 @@ struct ApplyPowerLimitResponse uint8_t groupID; //!< Group extension identification. } __attribute__((packed)); +/** @struct GetMgmntCtrlIdStrRequest + * + * DCMI payload for Get Management Controller Identifier String cmd request. + */ +struct GetMgmntCtrlIdStrRequest +{ + uint8_t groupID; //!< Group extension identification. + uint8_t offset; //!< Offset to read. + uint8_t bytes; //!< Number of bytes to read. +} __attribute__((packed)); + +/** @struct GetMgmntCtrlIdStrResponse + * + * DCMI payload for Get Management Controller Identifier String cmd response. + */ +struct GetMgmntCtrlIdStrResponse +{ + uint8_t groupID; //!< Group extension identification. + uint8_t strLen; //!< ID string length. + char data[]; //!< ID string +} __attribute__((packed)); + +/** @struct SetMgmntCtrlIdStrRequest + * + * DCMI payload for Set Management Controller Identifier String cmd request. + */ +struct SetMgmntCtrlIdStrRequest +{ + uint8_t groupID; //!< Group extension identification. + uint8_t offset; //!< Offset to write. + uint8_t bytes; //!< Number of bytes to read. + char data[]; //!< ID string +} __attribute__((packed)); + +/** @struct GetMgmntCtrlIdStrResponse + * + * DCMI payload for Get Management Controller Identifier String cmd response. + */ +struct SetMgmntCtrlIdStrResponse +{ + uint8_t groupID; //!< Group extension identification. + uint8_t offset; //!< Last Offset Written. +} __attribute__((packed)); + } // namespace dcmi #endif -- cgit v1.2.1