1description: >
2    Implement to provide Persistent memory attributes.
3properties:
4    - name: ModuleManufacturerID
5      type: uint16
6      description: >
7          The manufacturer ID of this memory module as defined by JEDEC in
8          JEP-106.
9    - name: ModuleProductID
10      type: uint16
11      description: >
12          The product ID of this memory module as defined by JEDEC in JEP-106.
13    - name: SubsystemVendorID
14      type: uint16
15      description: >
16          The manufacturer ID of the memory subsystem controller of this memory
17          module as defined by JEDEC in JEP-106.
18    - name: SubsystemDeviceID
19      type: uint16
20      description: >
21          The product ID of the memory subsystem controller of this memory
22          moduleas defined by JEDEC in JEP-106.
23    - name: VolatileRegionSizeLimitInKiB
24      type: uint64
25      description: >
26          Total size of volatile regions in kibibytes (KiB).
27    - name: PmRegionSizeLimitInKiB
28      type: uint64
29      description: >
30          Total size of persistent regions in kibibytes (KiB).
31    - name: VolatileSizeInKiB
32      type: uint64
33      description: >
34          Total size of the volatile portion memory in kibibytes (KiB).
35    - name: PmSizeInKiB
36      type: uint64
37      description: >
38          Total size of the non-volatile portion memory in kibibytes (KiB).
39    - name: CacheSizeInKiB
40      type: uint64
41      description: >
42          Total size of the cache portion memory in kibibytes (KiB).
43    - name: VolatileRegionMaxSizeInKiB
44      type: uint64
45      description: >
46          Maximum size of a single volatile region in kibibytes (KiB).
47    - name: PmRegionMaxSizeInKiB
48      type: uint64
49      description: >
50          Maximum size of a single persistent region in kibibytes (KiB).
51    - name: AllocationIncrementInKiB
52      type: uint64
53      description: >
54          The size of the smallest unit of allocation for a memory region in
55          kibibytes (KiB).
56    - name: AllocationAlignmentInKiB
57      type: uint64
58      description: >
59          The boundary that memory regions are allocated on, measured in
60          kibibytes (KiB).
61    - name: VolatileRegionNumberLimit
62      type: uint32
63      description: >
64          Total number of volatile regions this memory can support.
65    - name: PmRegionNumberLimit
66      type: uint32
67      description: >
68          Total number of persistent regions this memory can support.
69    - name: SpareDeviceCount
70      type: uint32
71      description: >
72          Number of unused spare devices available in the memory.
73    - name: IsSpareDeviceInUse
74      type: boolean
75      description: >
76          An indication of whether a spare device is enabled for this memory.
77    - name: IsRankSpareEnabled
78      type: boolean
79      description: >
80          An indication of whether rank spare is enabled for this memory.
81    - name: MaxAveragePowerLimitmW
82      type: array[uint32]
83      description: >
84          Set of maximum power budgets supported by the memory in milliwatts.
85    - name: CurrentSecurityState
86      type: string
87      description: The current security state of this memory.
88    - name: ConfigurationLocked
89      type: boolean
90      description: The current configuration lock state of this memory.
91    - name: AllowedMemoryModes
92      type: array[enum[self.MemoryModes]]
93      description: >
94          Memory modes supported by the memory.
95
96enumerations:
97    - name: MemoryModes
98      description: >
99          Memory modes supported by the memory module.
100      values:
101          - name: Volatile
102            description: >
103                Memory module supports volatile or non-persistent memory mode.
104          - name: Persistent
105            description: >
106                Memory module supports apt direct mode.
107          - name: Block
108            description: >
109                Memory module supports block mode.
110