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.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