Add D-BUS interfaces of SMBIOS MDR V2

SMBIOS MDR is an Intel OEM feature which makes BIOS sending SMBIOS table
to BMC through VGA shared memory. These D-Bus interfaces provide a method
for IPMI Commands sync information with the MDRv2 service.
Base on SMBIOS spec DSP0134_3.0.0 and Managed Data Region
Specification Revision 4

Tested:
With the patches in smbios-mdr, BMC can show correct CPU and DIMM
information in Redfish.

Signed-off-by: Cheng C Yang <cheng.c.yang@linux.intel.com>
Change-Id: Ifd9e7e8948fc37fc8eb10866846c8263caedb246
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..987e0ee
--- /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.