xref: /openbmc/bmcweb/redfish-core/include/generated/enums/memory.hpp (revision c6d7a45d427f9a6d9e761afcf305761dca60d7cf)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace memory
7 {
8 // clang-format off
9 
10 enum class MemoryType{
11     Invalid,
12     DRAM,
13     NVDIMM_N,
14     NVDIMM_F,
15     NVDIMM_P,
16     IntelOptane,
17     Cache,
18 };
19 
20 enum class MemoryDeviceType{
21     Invalid,
22     DDR,
23     DDR2,
24     DDR3,
25     DDR4,
26     DDR4_SDRAM,
27     DDR4E_SDRAM,
28     LPDDR4_SDRAM,
29     DDR3_SDRAM,
30     LPDDR3_SDRAM,
31     DDR2_SDRAM,
32     DDR2_SDRAM_FB_DIMM,
33     DDR2_SDRAM_FB_DIMM_PROBE,
34     DDR_SGRAM,
35     DDR_SDRAM,
36     ROM,
37     SDRAM,
38     EDO,
39     FastPageMode,
40     PipelinedNibble,
41     Logical,
42     HBM,
43     HBM2,
44     HBM2E,
45     HBM3,
46     GDDR,
47     GDDR2,
48     GDDR3,
49     GDDR4,
50     GDDR5,
51     GDDR5X,
52     GDDR6,
53     DDR5,
54     OEM,
55     LPDDR5_SDRAM,
56     DDR5_MRDIMM,
57 };
58 
59 enum class BaseModuleType{
60     Invalid,
61     RDIMM,
62     UDIMM,
63     SO_DIMM,
64     LRDIMM,
65     Mini_RDIMM,
66     Mini_UDIMM,
67     SO_RDIMM_72b,
68     SO_UDIMM_72b,
69     SO_DIMM_16b,
70     SO_DIMM_32b,
71     Die,
72     CAMM,
73 };
74 
75 enum class MemoryMedia{
76     Invalid,
77     DRAM,
78     NAND,
79     Intel3DXPoint,
80     Proprietary,
81 };
82 
83 enum class SecurityStates{
84     Invalid,
85     Enabled,
86     Disabled,
87     Unlocked,
88     Locked,
89     Frozen,
90     Passphraselimit,
91 };
92 
93 enum class ErrorCorrection{
94     Invalid,
95     NoECC,
96     SingleBitECC,
97     MultiBitECC,
98     AddressParity,
99 };
100 
101 enum class MemoryClassification{
102     Invalid,
103     Volatile,
104     ByteAccessiblePersistent,
105     Block,
106 };
107 
108 enum class OperatingMemoryModes{
109     Invalid,
110     Volatile,
111     PMEM,
112     Block,
113 };
114 
115 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryType, {
116     {MemoryType::Invalid, "Invalid"},
117     {MemoryType::DRAM, "DRAM"},
118     {MemoryType::NVDIMM_N, "NVDIMM_N"},
119     {MemoryType::NVDIMM_F, "NVDIMM_F"},
120     {MemoryType::NVDIMM_P, "NVDIMM_P"},
121     {MemoryType::IntelOptane, "IntelOptane"},
122     {MemoryType::Cache, "Cache"},
123 });
124 
125 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryDeviceType, {
126     {MemoryDeviceType::Invalid, "Invalid"},
127     {MemoryDeviceType::DDR, "DDR"},
128     {MemoryDeviceType::DDR2, "DDR2"},
129     {MemoryDeviceType::DDR3, "DDR3"},
130     {MemoryDeviceType::DDR4, "DDR4"},
131     {MemoryDeviceType::DDR4_SDRAM, "DDR4_SDRAM"},
132     {MemoryDeviceType::DDR4E_SDRAM, "DDR4E_SDRAM"},
133     {MemoryDeviceType::LPDDR4_SDRAM, "LPDDR4_SDRAM"},
134     {MemoryDeviceType::DDR3_SDRAM, "DDR3_SDRAM"},
135     {MemoryDeviceType::LPDDR3_SDRAM, "LPDDR3_SDRAM"},
136     {MemoryDeviceType::DDR2_SDRAM, "DDR2_SDRAM"},
137     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM, "DDR2_SDRAM_FB_DIMM"},
138     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM_PROBE, "DDR2_SDRAM_FB_DIMM_PROBE"},
139     {MemoryDeviceType::DDR_SGRAM, "DDR_SGRAM"},
140     {MemoryDeviceType::DDR_SDRAM, "DDR_SDRAM"},
141     {MemoryDeviceType::ROM, "ROM"},
142     {MemoryDeviceType::SDRAM, "SDRAM"},
143     {MemoryDeviceType::EDO, "EDO"},
144     {MemoryDeviceType::FastPageMode, "FastPageMode"},
145     {MemoryDeviceType::PipelinedNibble, "PipelinedNibble"},
146     {MemoryDeviceType::Logical, "Logical"},
147     {MemoryDeviceType::HBM, "HBM"},
148     {MemoryDeviceType::HBM2, "HBM2"},
149     {MemoryDeviceType::HBM2E, "HBM2E"},
150     {MemoryDeviceType::HBM3, "HBM3"},
151     {MemoryDeviceType::GDDR, "GDDR"},
152     {MemoryDeviceType::GDDR2, "GDDR2"},
153     {MemoryDeviceType::GDDR3, "GDDR3"},
154     {MemoryDeviceType::GDDR4, "GDDR4"},
155     {MemoryDeviceType::GDDR5, "GDDR5"},
156     {MemoryDeviceType::GDDR5X, "GDDR5X"},
157     {MemoryDeviceType::GDDR6, "GDDR6"},
158     {MemoryDeviceType::DDR5, "DDR5"},
159     {MemoryDeviceType::OEM, "OEM"},
160     {MemoryDeviceType::LPDDR5_SDRAM, "LPDDR5_SDRAM"},
161     {MemoryDeviceType::DDR5_MRDIMM, "DDR5_MRDIMM"},
162 });
163 
164 NLOHMANN_JSON_SERIALIZE_ENUM(BaseModuleType, {
165     {BaseModuleType::Invalid, "Invalid"},
166     {BaseModuleType::RDIMM, "RDIMM"},
167     {BaseModuleType::UDIMM, "UDIMM"},
168     {BaseModuleType::SO_DIMM, "SO_DIMM"},
169     {BaseModuleType::LRDIMM, "LRDIMM"},
170     {BaseModuleType::Mini_RDIMM, "Mini_RDIMM"},
171     {BaseModuleType::Mini_UDIMM, "Mini_UDIMM"},
172     {BaseModuleType::SO_RDIMM_72b, "SO_RDIMM_72b"},
173     {BaseModuleType::SO_UDIMM_72b, "SO_UDIMM_72b"},
174     {BaseModuleType::SO_DIMM_16b, "SO_DIMM_16b"},
175     {BaseModuleType::SO_DIMM_32b, "SO_DIMM_32b"},
176     {BaseModuleType::Die, "Die"},
177     {BaseModuleType::CAMM, "CAMM"},
178 });
179 
180 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryMedia, {
181     {MemoryMedia::Invalid, "Invalid"},
182     {MemoryMedia::DRAM, "DRAM"},
183     {MemoryMedia::NAND, "NAND"},
184     {MemoryMedia::Intel3DXPoint, "Intel3DXPoint"},
185     {MemoryMedia::Proprietary, "Proprietary"},
186 });
187 
188 NLOHMANN_JSON_SERIALIZE_ENUM(SecurityStates, {
189     {SecurityStates::Invalid, "Invalid"},
190     {SecurityStates::Enabled, "Enabled"},
191     {SecurityStates::Disabled, "Disabled"},
192     {SecurityStates::Unlocked, "Unlocked"},
193     {SecurityStates::Locked, "Locked"},
194     {SecurityStates::Frozen, "Frozen"},
195     {SecurityStates::Passphraselimit, "Passphraselimit"},
196 });
197 
198 NLOHMANN_JSON_SERIALIZE_ENUM(ErrorCorrection, {
199     {ErrorCorrection::Invalid, "Invalid"},
200     {ErrorCorrection::NoECC, "NoECC"},
201     {ErrorCorrection::SingleBitECC, "SingleBitECC"},
202     {ErrorCorrection::MultiBitECC, "MultiBitECC"},
203     {ErrorCorrection::AddressParity, "AddressParity"},
204 });
205 
206 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryClassification, {
207     {MemoryClassification::Invalid, "Invalid"},
208     {MemoryClassification::Volatile, "Volatile"},
209     {MemoryClassification::ByteAccessiblePersistent, "ByteAccessiblePersistent"},
210     {MemoryClassification::Block, "Block"},
211 });
212 
213 NLOHMANN_JSON_SERIALIZE_ENUM(OperatingMemoryModes, {
214     {OperatingMemoryModes::Invalid, "Invalid"},
215     {OperatingMemoryModes::Volatile, "Volatile"},
216     {OperatingMemoryModes::PMEM, "PMEM"},
217     {OperatingMemoryModes::Block, "Block"},
218 });
219 
220 }
221 // clang-format on
222