Update d-bus interfaces for dimm
Add new properties to support more persistent memory
module specific information.
Tested:
Successful build and verified changes in
server.hpp and server.cpp.
Signed-off-by: Nirmal Patel <nirmal.patel@intel.com>
Change-Id: I1c5a367e565020fdb707b4e3400c58850755256d
diff --git a/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml b/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
index bb19dc5..a7aaa14 100644
--- a/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
+++ b/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
@@ -43,12 +43,127 @@
description: >
CAS Latency (CL) values are supported. The CAS latency is the delay
between the time at which the column address and the column address
- strobe signal are presented to the memory module and the time at which
- the corresponding data is made available by the memory module.
+ strobe signal are presented to the memory module and the time at
+ which the corresponding data is made available by the memory module.
- name: RevisionCode
type: uint16
description: >
Revision code provided by the individual manufacturer.
+ - name: FormFactor
+ type: enum[self.FormFactor]
+ description: >
+ The base module type of the memory.
+ - name: MemoryTotalWidth
+ type: uint16
+ description: >
+ The bus width, in bits.
+ - name: AllowedSpeedsMHz
+ 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.
enumerations:
- name: Ecc
@@ -64,7 +179,7 @@
- name: MultiBitECC
description: >
Multibit data errors can be corrected by ECC.
- - name: AddressParit
+ - name: AddressParity
description: >
Address parity errors can be corrected.
- name: Type
@@ -199,3 +314,40 @@
- name: DDR4E_SDRAM
description: >
Double Data Rate 4 Extended Compliant SDRAM.
+ - name: FormFactor
+ description: >
+ Implementation form factor for this memory device.
+ values:
+ - name: RDIMM
+ description: >
+ Registered DIMM.
+ - name: UDIMM
+ description: >
+ Unbuffered DIMM.
+ - name: SO_DIMM
+ description: >
+ Small Outline DIMM.
+ - name: LRDIMM
+ description: >
+ Load-reduced DIMMs.
+ - name: Mini_RDIMM
+ description: >
+ mini Registered DIMM.
+ - name: Mini_UDIMM
+ description: >
+ mini Unbuffered DIMM.
+ - name: SO_RDIMM_72b
+ description: >
+ Small Outline Registered DIMM.
+ - name: SO_UDIMM_72b
+ description: >
+ Small Outline Unbuffered DIMM.
+ - name: SO_DIMM_16b
+ description: >
+ Small Outline DIMM 16 bit.
+ - name: SO_DIMM_32b
+ description: >
+ Small Outline DIMM 32 bit.
+ - name: Die
+ description: >
+ A die within a package.
diff --git a/xyz/openbmc_project/Inventory/Item/Dimm/Partition.interface.yaml b/xyz/openbmc_project/Inventory/Item/Dimm/Partition.interface.yaml
new file mode 100644
index 0000000..45105ac
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Dimm/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: SizeKiB
+ 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: OffsetMiB
+ type: uint64
+ description: >
+ Offset with in the Memory that corresponds to the starting of this
+ memory region in MiB.
+ - 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/Dimm/SecurityCapabilities.interface.yaml b/xyz/openbmc_project/Inventory/Item/Dimm/SecurityCapabilities.interface.yaml
new file mode 100644
index 0000000..e99c121
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Dimm/SecurityCapabilities.interface.yaml
@@ -0,0 +1,15 @@
+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.