Create persistent memory specific interface

Create persistent memory specific interface.
    - Move persistent memory related properties from Dimm
      interface.
    - Keeping only SMBIOS type 17 standard properties under
      Dimm interface.
    - Create sub interfaces to keep things organized under
      new interface.

Tested:
    - Successful build and verified changes in
      server.hpp and server.cpp.

Signed-off-by: Nirmal Patel <nirmal.patel@intel.com>
Change-Id: I48bcab6196b4c840d9e1c53ae8cea1871fc36e67
diff --git a/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml b/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml
new file mode 100644
index 0000000..80bb730
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml
@@ -0,0 +1,25 @@
+description: >
+    Implement to provide memory partition attributes.
+properties:
+    - name: PartitionId
+      type: string
+      description: >
+          Unique region ID representing a specific region within the Memory.
+    - name: SizeInKiB
+      type: uint64
+      description: >
+          Size of this memory region in kibibytes (KiB).
+    - name: MemoryClassification
+      type: string
+      description: >
+          Classification of memory occupied by the given memory region.
+    - name: OffsetInKiB
+      type: uint64
+      description: >
+          Offset with in the Memory that corresponds to the starting of this
+          memory region in KiB.
+    - name: PassphraseState
+      type: boolean
+      description: >
+          An indication of whether the state of the passphrase for this region
+          is enabled.
diff --git a/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy.interface.yaml b/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy.interface.yaml
new file mode 100644
index 0000000..d5231d7
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy.interface.yaml
@@ -0,0 +1,20 @@
+description: >
+    Implement to provide the power management policy for the current
+    resource.
+properties:
+    - name: PolicyEnabled
+      type: boolean
+      description: >
+          Power management policy enabled status.
+    - name: MaxTDPmW
+      type: uint32
+      description: >
+          Maximum TDP in milliwatts.
+    - name: PeakPowerBudgetmW
+      type: uint32
+      description: >
+          Peak power budget in milliwatts.
+    - name: AveragePowerBudgetmW
+      type: uint32
+      description: >
+          Average power budget in milliwatts.
\ No newline at end of file
diff --git a/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities.interface.yaml b/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities.interface.yaml
new file mode 100644
index 0000000..23ca54e
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities.interface.yaml
@@ -0,0 +1,24 @@
+description: >
+    Implement to provide security capability attributes.
+properties:
+    - name: MaxPassphraseCount
+      type: uint32
+      description: >
+          Maximum number of passphrases supported for this Memory.
+    - name: PassphraseCapable
+      type: boolean
+      description: >
+          Memory passphrase set capability.
+    - name: ConfigurationLockCapable
+      type: boolean
+      description: >
+          An indication of whether this memory supports the locking.
+    - name: DataLockCapable
+      type: boolean
+      description: >
+          An indication of whether this memory supports data locking.
+    - name: PassphraseLockLimit
+      type: uint32
+      description: >
+          The maximum number of incorrect passphrase attempts
+          allowed before memory is locked.
\ No newline at end of file