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/Dimm.interface.yaml b/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
index a7aaa14..0244a44 100644
--- a/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
+++ b/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
@@ -57,113 +57,10 @@
type: uint16
description: >
The bus width, in bits.
- - name: AllowedSpeedsMHz
+ - name: AllowedSpeedsMT
type: array[uint16]
description: >
- Speeds supported by this memory.
- - name: MaxAveragePowerLimitmW
- type: array[uint32]
- description: >
- Set of maximum power budgets supported by the memory in milliwatts.
- - name: SpareDeviceCount
- type: byte
- description: >
- Number of unused spare devices available in the memory.
- - name: Socket
- type: uint16
- description: >
- The socket number to which the memory is connected.
- - name: MemoryController
- type: uint16
- description: >
- The memory controller number to which the memory is connected.
- - name: Channel
- type: uint16
- description: >
- The channel number to which the memory is connected.
- - name: Slot
- type: uint16
- description: >
- The slot number to which the memory is connected.
- - name: VolatileRegionSizeLimitKiB
- type: uint32
- description: >
- Total size of volatile regions in kibibytes (KiB).
- - name: PmRegionSizeLimitKiB
- type: uint32
- description: >
- Total size of persistent regions in kibibytes (KiB).
- - name: AllowedMemoryModes
- type: array[string]
- description: >
- Memory modes supported by the memory.
- - name: IsSpareDeviceInUse
- type: boolean
- description: >
- An indication of whether a spare device is enabled for this memory.
- - name: IsRankSpareEnabled
- type: boolean
- description: >
- An indication of whether rank spare is enabled for this memory.
- - name: VolatileRegionNumberLimit
- type: uint16
- description: >
- Total number of volatile regions this memory can support.
- - name: PmRegionNumberLimit
- type: uint16
- description: >
- Total number of persistent regions this memory can support.
- - name: VolatileRegionMaxSizeKiB
- type: uint32
- description: >
- Maximum size of a single volatile region in kibibytes (KiB).
- - name: PmRegionMaxSizeKiB
- type: uint32
- description: >
- Maximum size of a single persistent region in kibibytes (KiB).
- - name: AllocationIncrementInKiB
- type: uint64
- description: >
- The size of the smallest unit of allocation for a memory region in
- kibibytes (KiB).
- - name: AllocationAlignementInKiB
- type: uint64
- description: >
- The boundary that memory regions are allocated on, measured in
- kibibytes (KiB).
- - name: ModuleManufacturerID
- type: string
- description: >
- The manufacturer ID of this memory module.
- - name: ModuleProductID
- type: string
- description: >
- The product ID of this memory module.
- - name: SubsystemVendorID
- type: string
- description: >
- The manufacturer ID of the memory subsystem controller of this
- memory module.
- - name: SubsystemDeviceID
- type: string
- description: >
- The product ID of the memory subsystem controller of this memory
- module.
- - name: VolatileSizeInKiB
- type: uint32
- description: >
- Total size of the volatile portion memory in kibibytes (KiB).
- - name: PmSizeInKiB
- type: uint32
- description: >
- Total size of the non-volatile portion memory in kibibytes (KiB).
- - name: CacheSizeInKB
- type: uint32
- description: >
- Total size of the cache portion memory in kibibytes (KiB).
- - name: MemoryMedia
- type: array[string]
- description: Media of this memory.
+ Speeds supported by this memory in megatransfers.
enumerations:
- name: Ecc
diff --git a/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation.interface.yaml b/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation.interface.yaml
new file mode 100644
index 0000000..43e838f
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation.interface.yaml
@@ -0,0 +1,20 @@
+description: >
+ Implement to provide Memory connection information to sockets
+ and memory controllers.
+properties:
+ - name: Socket
+ type: byte
+ description: >
+ CPU socket.
+ - name: MemoryController
+ type: byte
+ description: >
+ Memory controller number of given socket.
+ - name: Channel
+ type: byte
+ description: >
+ Channel number of given memory controller.
+ - name: Slot
+ type: byte
+ description: >
+ Slot of given channel.
\ No newline at end of file
diff --git a/xyz/openbmc_project/Inventory/Item/Dimm/SecurityCapabilities.interface.yaml b/xyz/openbmc_project/Inventory/Item/Dimm/SecurityCapabilities.interface.yaml
deleted file mode 100644
index e99c121..0000000
--- a/xyz/openbmc_project/Inventory/Item/Dimm/SecurityCapabilities.interface.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-description: >
- Implement to provide security capability attributes.
-properties:
- - name: MaxPassphraseCount
- type: int32
- description: >
- Maximum number of passphrases supported for this Memory.
- - name: PassphraseCapable
- type: boolean
- description: >
- Memory passphrase set capability.
- - name: SecurityStates
- type: array[string]
- description: >
- Security states supported by the Memory.
diff --git a/xyz/openbmc_project/Inventory/Item/PersistentMemory.interface.yaml b/xyz/openbmc_project/Inventory/Item/PersistentMemory.interface.yaml
new file mode 100644
index 0000000..9396726
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/PersistentMemory.interface.yaml
@@ -0,0 +1,109 @@
+description: >
+ Implement to provide Persistent memory attributes.
+properties:
+ - name: ModuleManufacturerID
+ type: uint16
+ description: >
+ The manufacturer ID of this memory module as defined by JEDEC in
+ JEP-106.
+ - name: ModuleProductID
+ type: uint16
+ description: >
+ The product ID of this memory module as defined by JEDEC in JEP-106.
+ - name: SubsystemVendorID
+ type: uint16
+ description: >
+ The manufacturer ID of the memory subsystem controller of this
+ memory module as defined by JEDEC in JEP-106.
+ - name: SubsystemDeviceID
+ type: uint16
+ description: >
+ The product ID of the memory subsystem controller of this memory
+ moduleas defined by JEDEC in JEP-106.
+ - name: VolatileRegionSizeLimitInKiB
+ type: uint64
+ description: >
+ Total size of volatile regions in kibibytes (KiB).
+ - name: PmRegionSizeLimitInKiB
+ type: uint64
+ description: >
+ Total size of persistent regions in kibibytes (KiB).
+ - name: VolatileSizeInKiB
+ type: uint64
+ description: >
+ Total size of the volatile portion memory in kibibytes (KiB).
+ - name: PmSizeInKiB
+ type: uint64
+ description: >
+ Total size of the non-volatile portion memory in kibibytes (KiB).
+ - name: CacheSizeInKiB
+ type: uint64
+ description: >
+ Total size of the cache portion memory in kibibytes (KiB).
+ - name: VolatileRegionMaxSizeInKiB
+ type: uint64
+ description: >
+ Maximum size of a single volatile region in kibibytes (KiB).
+ - name: PmRegionMaxSizeInKiB
+ type: uint64
+ description: >
+ Maximum size of a single persistent region in kibibytes (KiB).
+ - name: AllocationIncrementInKiB
+ type: uint64
+ description: >
+ The size of the smallest unit of allocation for a memory region in
+ kibibytes (KiB).
+ - name: AllocationAlignmentInKiB
+ type: uint64
+ description: >
+ The boundary that memory regions are allocated on, measured in
+ kibibytes (KiB).
+ - name: VolatileRegionNumberLimit
+ type: uint32
+ description: >
+ Total number of volatile regions this memory can support.
+ - name: PmRegionNumberLimit
+ type: uint32
+ description: >
+ Total number of persistent regions this memory can support.
+ - name: SpareDeviceCount
+ type: uint32
+ description: >
+ Number of unused spare devices available in the memory.
+ - name: IsSpareDeviceInUse
+ type: boolean
+ description: >
+ An indication of whether a spare device is enabled for this memory.
+ - name: IsRankSpareEnabled
+ type: boolean
+ description: >
+ An indication of whether rank spare is enabled for this memory.
+ - name: MaxAveragePowerLimitmW
+ type: array[uint32]
+ description: >
+ Set of maximum power budgets supported by the memory in milliwatts.
+ - name: CurrentSecurityState
+ type: string
+ description: The current security state of this memory.
+ - name: ConfigurationLocked
+ type: boolean
+ description: The current configuration lock state of this memory.
+ - name: AllowedMemoryModes
+ type: array[enum[self.MemoryModes]]
+ description: >
+ Memory modes supported by the memory.
+
+enumerations:
+ - name: MemoryModes
+ description: >
+ Memory modes supported by the memory module.
+ values:
+ - name: Volatile
+ description: >
+ Memory module supports volatile or non-persistent memory mode.
+ - name: Persistent
+ description: >
+ Memory module supports apt direct mode.
+ - name: Block
+ description: >
+ Memory module supports block mode.
\ No newline at end of file
diff --git a/xyz/openbmc_project/Inventory/Item/Dimm/Partition.interface.yaml b/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml
similarity index 90%
rename from xyz/openbmc_project/Inventory/Item/Dimm/Partition.interface.yaml
rename to xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml
index 45105ac..80bb730 100644
--- a/xyz/openbmc_project/Inventory/Item/Dimm/Partition.interface.yaml
+++ b/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml
@@ -5,7 +5,7 @@
type: string
description: >
Unique region ID representing a specific region within the Memory.
- - name: SizeKiB
+ - name: SizeInKiB
type: uint64
description: >
Size of this memory region in kibibytes (KiB).
@@ -13,11 +13,11 @@
type: string
description: >
Classification of memory occupied by the given memory region.
- - name: OffsetMiB
+ - name: OffsetInKiB
type: uint64
description: >
Offset with in the Memory that corresponds to the starting of this
- memory region in MiB.
+ memory region in KiB.
- name: PassphraseState
type: boolean
description: >
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