From 9490574667485cd407193ff9f0d6a96f8c2c87d3 Mon Sep 17 00:00:00 2001 From: cyang29 Date: Wed, 12 Sep 2018 00:27:23 +0800 Subject: [PATCH] Add DBUS interface of SMBIOS MDR V2 Support: SMBIOS MDR V2 service interface. SMBIOS MDR V2 IPMI Command SMBIOS MDR V2 Redfish interface. Base on SMBIOS spec DSP0134_3.0.0 and Managed Data Region Specification Revision 4 --- xyz/openbmc_project/Smbios/MDR_V2.errors.yaml | 9 + xyz/openbmc_project/Smbios/MDR_V2.interface.yaml | 158 +++++++++++++++++++++++ xyz/openbmc_project/Smbios/README.md | 21 +++ 3 files changed, 188 insertions(+) create mode 100644 xyz/openbmc_project/Smbios/MDR_V2.errors.yaml create mode 100644 xyz/openbmc_project/Smbios/MDR_V2.interface.yaml create mode 100644 xyz/openbmc_project/Smbios/README.md diff --git a/xyz/openbmc_project/Smbios/MDR_V2.errors.yaml b/xyz/openbmc_project/Smbios/MDR_V2.errors.yaml new file mode 100644 index 0000000..88bd6db --- /dev/null +++ b/xyz/openbmc_project/Smbios/MDR_V2.errors.yaml @@ -0,0 +1,9 @@ +- name: InvalidParameter + description: > + An invalid parameter is attempted. +- name: UpdateInProgress + description: > + Update is in progress. +- name: InvalidId + description: > + An invalid Id is attempted. diff --git a/xyz/openbmc_project/Smbios/MDR_V2.interface.yaml b/xyz/openbmc_project/Smbios/MDR_V2.interface.yaml new file mode 100644 index 0000000..f97700a --- /dev/null +++ b/xyz/openbmc_project/Smbios/MDR_V2.interface.yaml @@ -0,0 +1,158 @@ +description: > + SMBIOS MDR V2 service +methods: + - name: GetDirectoryInformation + description: > + Get the directory with directory index. + parameters: + - name: dirIndex + type: byte + description: > + Directory index of SMBIOS. + returns: + - name: dir + type: array[byte] + description: > + Directory of agent. + errors: + - self.Error.InvalidParameter + + - name: GetDataInformation + description: > + Get the data info with id index and data set ID. + parameters: + - name: idIndex + type: byte + description: > + Index of SMBIOS directory. + returns: + - name: dataInfo + type: array[byte] + description: > + Data information of SMBIOS. + errors: + - self.Error.InvalidParameter + + - name: SendDirectoryInformation + description: > + Send directory information to SMBIOS directory. + parameters: + - name: dirVersion + type: byte + description: > + A counter which increments each time directory updated. + - name: dirIndex + type: byte + description: > + Directory index of SMBIOS. + - name: returnedEntries + type: byte + description: > + Indicates number of directory entries. + - name: remainingEntries + type: byte + description: > + Remaining entries which are higher than index in this transfer. + - name: dirEntry + type: array[byte] + description: > + Data set ID of SMBIOS table. + returns: + - name: status + type: boolean + description: > + Need to continue directory transmisson or not. + errors: + - self.Error.InvalidParameter + + - name: GetDataOffer + description: > + Get data set ID. + returns: + - name: offer + type: array[byte] + description: > + Data set ID. + errors: + - self.Error.UpdateInProgress + + - name: SendDataInformation + description: > + Send data information with directory index. + parameters: + - name: idIndex + type: byte + description: > + Index of SMBIOS directory. + - name: flag + type: byte + description: > + Valid flag to set dir entry status. + - name: dataLen + type: uint32 + description: > + The length of the data in bytes. + - name: dataVer + type: uint32 + description: > + The version number of this data. + - name: timeStamp + type: uint32 + description: > + Timestamp determinded by the agent. + returns: + - name: status + type: boolean + description: > + Whether data changes. + errors: + - self.Error.InvalidParameter + + - name: FindIdIndex + description: > + Find id index by data info. + parameters: + - name: dataInfo + type: array[byte] + description: > + Data info of data entry. + returns: + - name: idIndex + type: int32 + description: > + Id index of data entry. + errors: + - self.Error.InvalidId + + - name: AgentSynchronizeData + description: > + Synchronize SMBIOS data from file. + returns: + - name: status + type: boolean + description: > + Whether synchronization succeed or not. + + - name: SynchronizeDirectoryCommonData + description: > + Synchronize directory common data. + parameters: + - name: idIndex + type: byte + description: > + Index of SMBIOS directory. + - name: size + type: uint32 + description: > + Size of data that BIOS prepare to transfer. + returns: + - name: commonData + type: array[uint32] + description: > + Directory common data includes data size, version and timestamp. + +properties: + - name: DirectoryEntries + type: byte + description: > + Numbers of directory entries. diff --git a/xyz/openbmc_project/Smbios/README.md b/xyz/openbmc_project/Smbios/README.md new file mode 100644 index 0000000..415ac52 --- /dev/null +++ b/xyz/openbmc_project/Smbios/README.md @@ -0,0 +1,22 @@ +# SMBIOS MDR V2 + +## Overview +SMBIOS MDR V2 service exposes D-Bus methods for SMBIOS Version 2 operations. + +### SMBIOS MDR V2 Interface +SMBIOS MDR V2 interface `xyz.openbmc_project.Smbios.MDR_V2` provides following +methods. +#### methods +* GetDirectoryInformation - Get the directory with directory index. +* GetDataInformation - Get the data information with id index and data set ID. +* SendDirectoryInformation - Send directory information to SMBIOS directory. +* GetDataOffer - Get data set ID. +* SendDataInformation - Send data information with directory index. +* FindIdIndex - Find id index by data info. +* SynchronizeDirectoryCommonData - Synchronize directory common data before +SMBIOS data start to transfer. +* AgentSynchronizeData - Synchronize SMBIOS data from file after data transfer +complete. + +#### properties +* DirEntries - Numbers of directory entries. Default: 0