xref: /openbmc/bmcweb/redfish-core/include/generated/enums/memory.hpp (revision 5ecf7b4e1bb6988dd3403fa80b723afbe2be30ae)
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     GDDR7,
54     DDR5,
55     OEM,
56     LPDDR5_SDRAM,
57     DDR5_MRDIMM,
58 };
59 
60 enum class BaseModuleType{
61     Invalid,
62     RDIMM,
63     UDIMM,
64     SO_DIMM,
65     LRDIMM,
66     Mini_RDIMM,
67     Mini_UDIMM,
68     SO_RDIMM_72b,
69     SO_UDIMM_72b,
70     SO_DIMM_16b,
71     SO_DIMM_32b,
72     Die,
73     CAMM,
74 };
75 
76 enum class MemoryMedia{
77     Invalid,
78     DRAM,
79     NAND,
80     Intel3DXPoint,
81     Proprietary,
82 };
83 
84 enum class SecurityStates{
85     Invalid,
86     Enabled,
87     Disabled,
88     Unlocked,
89     Locked,
90     Frozen,
91     Passphraselimit,
92 };
93 
94 enum class ErrorCorrection{
95     Invalid,
96     NoECC,
97     SingleBitECC,
98     MultiBitECC,
99     AddressParity,
100 };
101 
102 enum class MemoryClassification{
103     Invalid,
104     Volatile,
105     ByteAccessiblePersistent,
106     Block,
107 };
108 
109 enum class OperatingMemoryModes{
110     Invalid,
111     Volatile,
112     PMEM,
113     Block,
114 };
115 
116 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryType, {
117     {MemoryType::Invalid, "Invalid"},
118     {MemoryType::DRAM, "DRAM"},
119     {MemoryType::NVDIMM_N, "NVDIMM_N"},
120     {MemoryType::NVDIMM_F, "NVDIMM_F"},
121     {MemoryType::NVDIMM_P, "NVDIMM_P"},
122     {MemoryType::IntelOptane, "IntelOptane"},
123     {MemoryType::Cache, "Cache"},
124 });
125 
126 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryDeviceType, {
127     {MemoryDeviceType::Invalid, "Invalid"},
128     {MemoryDeviceType::DDR, "DDR"},
129     {MemoryDeviceType::DDR2, "DDR2"},
130     {MemoryDeviceType::DDR3, "DDR3"},
131     {MemoryDeviceType::DDR4, "DDR4"},
132     {MemoryDeviceType::DDR4_SDRAM, "DDR4_SDRAM"},
133     {MemoryDeviceType::DDR4E_SDRAM, "DDR4E_SDRAM"},
134     {MemoryDeviceType::LPDDR4_SDRAM, "LPDDR4_SDRAM"},
135     {MemoryDeviceType::DDR3_SDRAM, "DDR3_SDRAM"},
136     {MemoryDeviceType::LPDDR3_SDRAM, "LPDDR3_SDRAM"},
137     {MemoryDeviceType::DDR2_SDRAM, "DDR2_SDRAM"},
138     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM, "DDR2_SDRAM_FB_DIMM"},
139     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM_PROBE, "DDR2_SDRAM_FB_DIMM_PROBE"},
140     {MemoryDeviceType::DDR_SGRAM, "DDR_SGRAM"},
141     {MemoryDeviceType::DDR_SDRAM, "DDR_SDRAM"},
142     {MemoryDeviceType::ROM, "ROM"},
143     {MemoryDeviceType::SDRAM, "SDRAM"},
144     {MemoryDeviceType::EDO, "EDO"},
145     {MemoryDeviceType::FastPageMode, "FastPageMode"},
146     {MemoryDeviceType::PipelinedNibble, "PipelinedNibble"},
147     {MemoryDeviceType::Logical, "Logical"},
148     {MemoryDeviceType::HBM, "HBM"},
149     {MemoryDeviceType::HBM2, "HBM2"},
150     {MemoryDeviceType::HBM2E, "HBM2E"},
151     {MemoryDeviceType::HBM3, "HBM3"},
152     {MemoryDeviceType::GDDR, "GDDR"},
153     {MemoryDeviceType::GDDR2, "GDDR2"},
154     {MemoryDeviceType::GDDR3, "GDDR3"},
155     {MemoryDeviceType::GDDR4, "GDDR4"},
156     {MemoryDeviceType::GDDR5, "GDDR5"},
157     {MemoryDeviceType::GDDR5X, "GDDR5X"},
158     {MemoryDeviceType::GDDR6, "GDDR6"},
159     {MemoryDeviceType::GDDR7, "GDDR7"},
160     {MemoryDeviceType::DDR5, "DDR5"},
161     {MemoryDeviceType::OEM, "OEM"},
162     {MemoryDeviceType::LPDDR5_SDRAM, "LPDDR5_SDRAM"},
163     {MemoryDeviceType::DDR5_MRDIMM, "DDR5_MRDIMM"},
164 });
165 
166 NLOHMANN_JSON_SERIALIZE_ENUM(BaseModuleType, {
167     {BaseModuleType::Invalid, "Invalid"},
168     {BaseModuleType::RDIMM, "RDIMM"},
169     {BaseModuleType::UDIMM, "UDIMM"},
170     {BaseModuleType::SO_DIMM, "SO_DIMM"},
171     {BaseModuleType::LRDIMM, "LRDIMM"},
172     {BaseModuleType::Mini_RDIMM, "Mini_RDIMM"},
173     {BaseModuleType::Mini_UDIMM, "Mini_UDIMM"},
174     {BaseModuleType::SO_RDIMM_72b, "SO_RDIMM_72b"},
175     {BaseModuleType::SO_UDIMM_72b, "SO_UDIMM_72b"},
176     {BaseModuleType::SO_DIMM_16b, "SO_DIMM_16b"},
177     {BaseModuleType::SO_DIMM_32b, "SO_DIMM_32b"},
178     {BaseModuleType::Die, "Die"},
179     {BaseModuleType::CAMM, "CAMM"},
180 });
181 
182 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryMedia, {
183     {MemoryMedia::Invalid, "Invalid"},
184     {MemoryMedia::DRAM, "DRAM"},
185     {MemoryMedia::NAND, "NAND"},
186     {MemoryMedia::Intel3DXPoint, "Intel3DXPoint"},
187     {MemoryMedia::Proprietary, "Proprietary"},
188 });
189 
190 NLOHMANN_JSON_SERIALIZE_ENUM(SecurityStates, {
191     {SecurityStates::Invalid, "Invalid"},
192     {SecurityStates::Enabled, "Enabled"},
193     {SecurityStates::Disabled, "Disabled"},
194     {SecurityStates::Unlocked, "Unlocked"},
195     {SecurityStates::Locked, "Locked"},
196     {SecurityStates::Frozen, "Frozen"},
197     {SecurityStates::Passphraselimit, "Passphraselimit"},
198 });
199 
200 NLOHMANN_JSON_SERIALIZE_ENUM(ErrorCorrection, {
201     {ErrorCorrection::Invalid, "Invalid"},
202     {ErrorCorrection::NoECC, "NoECC"},
203     {ErrorCorrection::SingleBitECC, "SingleBitECC"},
204     {ErrorCorrection::MultiBitECC, "MultiBitECC"},
205     {ErrorCorrection::AddressParity, "AddressParity"},
206 });
207 
208 NLOHMANN_JSON_SERIALIZE_ENUM(MemoryClassification, {
209     {MemoryClassification::Invalid, "Invalid"},
210     {MemoryClassification::Volatile, "Volatile"},
211     {MemoryClassification::ByteAccessiblePersistent, "ByteAccessiblePersistent"},
212     {MemoryClassification::Block, "Block"},
213 });
214 
215 NLOHMANN_JSON_SERIALIZE_ENUM(OperatingMemoryModes, {
216     {OperatingMemoryModes::Invalid, "Invalid"},
217     {OperatingMemoryModes::Volatile, "Volatile"},
218     {OperatingMemoryModes::PMEM, "PMEM"},
219     {OperatingMemoryModes::Block, "Block"},
220 });
221 
222 }
223 // clang-format on
224