xref: /openbmc/bmcweb/features/redfish/include/generated/enums/memory.hpp (revision c6d7a45d427f9a6d9e761afcf305761dca60d7cf)
140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors
30ec8b83dSEd Tanous #pragma once
40ec8b83dSEd Tanous #include <nlohmann/json.hpp>
50ec8b83dSEd Tanous 
60ec8b83dSEd Tanous namespace memory
70ec8b83dSEd Tanous {
80ec8b83dSEd Tanous // clang-format off
90ec8b83dSEd Tanous 
100ec8b83dSEd Tanous enum class MemoryType{
110ec8b83dSEd Tanous     Invalid,
120ec8b83dSEd Tanous     DRAM,
130ec8b83dSEd Tanous     NVDIMM_N,
140ec8b83dSEd Tanous     NVDIMM_F,
150ec8b83dSEd Tanous     NVDIMM_P,
160ec8b83dSEd Tanous     IntelOptane,
17f2a8e57eSGunnar Mills     Cache,
180ec8b83dSEd Tanous };
190ec8b83dSEd Tanous 
200ec8b83dSEd Tanous enum class MemoryDeviceType{
210ec8b83dSEd Tanous     Invalid,
220ec8b83dSEd Tanous     DDR,
230ec8b83dSEd Tanous     DDR2,
240ec8b83dSEd Tanous     DDR3,
250ec8b83dSEd Tanous     DDR4,
260ec8b83dSEd Tanous     DDR4_SDRAM,
270ec8b83dSEd Tanous     DDR4E_SDRAM,
280ec8b83dSEd Tanous     LPDDR4_SDRAM,
290ec8b83dSEd Tanous     DDR3_SDRAM,
300ec8b83dSEd Tanous     LPDDR3_SDRAM,
310ec8b83dSEd Tanous     DDR2_SDRAM,
320ec8b83dSEd Tanous     DDR2_SDRAM_FB_DIMM,
330ec8b83dSEd Tanous     DDR2_SDRAM_FB_DIMM_PROBE,
340ec8b83dSEd Tanous     DDR_SGRAM,
350ec8b83dSEd Tanous     DDR_SDRAM,
360ec8b83dSEd Tanous     ROM,
370ec8b83dSEd Tanous     SDRAM,
380ec8b83dSEd Tanous     EDO,
390ec8b83dSEd Tanous     FastPageMode,
400ec8b83dSEd Tanous     PipelinedNibble,
410ec8b83dSEd Tanous     Logical,
420ec8b83dSEd Tanous     HBM,
430ec8b83dSEd Tanous     HBM2,
44a8d8f9d8SEd Tanous     HBM2E,
450ec8b83dSEd Tanous     HBM3,
460ec8b83dSEd Tanous     GDDR,
470ec8b83dSEd Tanous     GDDR2,
480ec8b83dSEd Tanous     GDDR3,
490ec8b83dSEd Tanous     GDDR4,
500ec8b83dSEd Tanous     GDDR5,
510ec8b83dSEd Tanous     GDDR5X,
520ec8b83dSEd Tanous     GDDR6,
530ec8b83dSEd Tanous     DDR5,
540ec8b83dSEd Tanous     OEM,
552ae81db9SGunnar Mills     LPDDR5_SDRAM,
56*c6d7a45dSGunnar Mills     DDR5_MRDIMM,
570ec8b83dSEd Tanous };
580ec8b83dSEd Tanous 
590ec8b83dSEd Tanous enum class BaseModuleType{
600ec8b83dSEd Tanous     Invalid,
610ec8b83dSEd Tanous     RDIMM,
620ec8b83dSEd Tanous     UDIMM,
630ec8b83dSEd Tanous     SO_DIMM,
640ec8b83dSEd Tanous     LRDIMM,
650ec8b83dSEd Tanous     Mini_RDIMM,
660ec8b83dSEd Tanous     Mini_UDIMM,
670ec8b83dSEd Tanous     SO_RDIMM_72b,
680ec8b83dSEd Tanous     SO_UDIMM_72b,
690ec8b83dSEd Tanous     SO_DIMM_16b,
700ec8b83dSEd Tanous     SO_DIMM_32b,
710ec8b83dSEd Tanous     Die,
72*c6d7a45dSGunnar Mills     CAMM,
730ec8b83dSEd Tanous };
740ec8b83dSEd Tanous 
750ec8b83dSEd Tanous enum class MemoryMedia{
760ec8b83dSEd Tanous     Invalid,
770ec8b83dSEd Tanous     DRAM,
780ec8b83dSEd Tanous     NAND,
790ec8b83dSEd Tanous     Intel3DXPoint,
800ec8b83dSEd Tanous     Proprietary,
810ec8b83dSEd Tanous };
820ec8b83dSEd Tanous 
830ec8b83dSEd Tanous enum class SecurityStates{
840ec8b83dSEd Tanous     Invalid,
850ec8b83dSEd Tanous     Enabled,
860ec8b83dSEd Tanous     Disabled,
870ec8b83dSEd Tanous     Unlocked,
880ec8b83dSEd Tanous     Locked,
890ec8b83dSEd Tanous     Frozen,
900ec8b83dSEd Tanous     Passphraselimit,
910ec8b83dSEd Tanous };
920ec8b83dSEd Tanous 
930ec8b83dSEd Tanous enum class ErrorCorrection{
940ec8b83dSEd Tanous     Invalid,
950ec8b83dSEd Tanous     NoECC,
960ec8b83dSEd Tanous     SingleBitECC,
970ec8b83dSEd Tanous     MultiBitECC,
980ec8b83dSEd Tanous     AddressParity,
990ec8b83dSEd Tanous };
1000ec8b83dSEd Tanous 
1010ec8b83dSEd Tanous enum class MemoryClassification{
1020ec8b83dSEd Tanous     Invalid,
1030ec8b83dSEd Tanous     Volatile,
1040ec8b83dSEd Tanous     ByteAccessiblePersistent,
1050ec8b83dSEd Tanous     Block,
1060ec8b83dSEd Tanous };
1070ec8b83dSEd Tanous 
1080ec8b83dSEd Tanous enum class OperatingMemoryModes{
1090ec8b83dSEd Tanous     Invalid,
1100ec8b83dSEd Tanous     Volatile,
1110ec8b83dSEd Tanous     PMEM,
1120ec8b83dSEd Tanous     Block,
1130ec8b83dSEd Tanous };
1140ec8b83dSEd Tanous 
1150ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryType, {
1160ec8b83dSEd Tanous     {MemoryType::Invalid, "Invalid"},
1170ec8b83dSEd Tanous     {MemoryType::DRAM, "DRAM"},
1180ec8b83dSEd Tanous     {MemoryType::NVDIMM_N, "NVDIMM_N"},
1190ec8b83dSEd Tanous     {MemoryType::NVDIMM_F, "NVDIMM_F"},
1200ec8b83dSEd Tanous     {MemoryType::NVDIMM_P, "NVDIMM_P"},
1210ec8b83dSEd Tanous     {MemoryType::IntelOptane, "IntelOptane"},
122f2a8e57eSGunnar Mills     {MemoryType::Cache, "Cache"},
1230ec8b83dSEd Tanous });
1240ec8b83dSEd Tanous 
1250ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryDeviceType, {
1260ec8b83dSEd Tanous     {MemoryDeviceType::Invalid, "Invalid"},
1270ec8b83dSEd Tanous     {MemoryDeviceType::DDR, "DDR"},
1280ec8b83dSEd Tanous     {MemoryDeviceType::DDR2, "DDR2"},
1290ec8b83dSEd Tanous     {MemoryDeviceType::DDR3, "DDR3"},
1300ec8b83dSEd Tanous     {MemoryDeviceType::DDR4, "DDR4"},
1310ec8b83dSEd Tanous     {MemoryDeviceType::DDR4_SDRAM, "DDR4_SDRAM"},
1320ec8b83dSEd Tanous     {MemoryDeviceType::DDR4E_SDRAM, "DDR4E_SDRAM"},
1330ec8b83dSEd Tanous     {MemoryDeviceType::LPDDR4_SDRAM, "LPDDR4_SDRAM"},
1340ec8b83dSEd Tanous     {MemoryDeviceType::DDR3_SDRAM, "DDR3_SDRAM"},
1350ec8b83dSEd Tanous     {MemoryDeviceType::LPDDR3_SDRAM, "LPDDR3_SDRAM"},
1360ec8b83dSEd Tanous     {MemoryDeviceType::DDR2_SDRAM, "DDR2_SDRAM"},
1370ec8b83dSEd Tanous     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM, "DDR2_SDRAM_FB_DIMM"},
1380ec8b83dSEd Tanous     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM_PROBE, "DDR2_SDRAM_FB_DIMM_PROBE"},
1390ec8b83dSEd Tanous     {MemoryDeviceType::DDR_SGRAM, "DDR_SGRAM"},
1400ec8b83dSEd Tanous     {MemoryDeviceType::DDR_SDRAM, "DDR_SDRAM"},
1410ec8b83dSEd Tanous     {MemoryDeviceType::ROM, "ROM"},
1420ec8b83dSEd Tanous     {MemoryDeviceType::SDRAM, "SDRAM"},
1430ec8b83dSEd Tanous     {MemoryDeviceType::EDO, "EDO"},
1440ec8b83dSEd Tanous     {MemoryDeviceType::FastPageMode, "FastPageMode"},
1450ec8b83dSEd Tanous     {MemoryDeviceType::PipelinedNibble, "PipelinedNibble"},
1460ec8b83dSEd Tanous     {MemoryDeviceType::Logical, "Logical"},
1470ec8b83dSEd Tanous     {MemoryDeviceType::HBM, "HBM"},
1480ec8b83dSEd Tanous     {MemoryDeviceType::HBM2, "HBM2"},
149a8d8f9d8SEd Tanous     {MemoryDeviceType::HBM2E, "HBM2E"},
1500ec8b83dSEd Tanous     {MemoryDeviceType::HBM3, "HBM3"},
1510ec8b83dSEd Tanous     {MemoryDeviceType::GDDR, "GDDR"},
1520ec8b83dSEd Tanous     {MemoryDeviceType::GDDR2, "GDDR2"},
1530ec8b83dSEd Tanous     {MemoryDeviceType::GDDR3, "GDDR3"},
1540ec8b83dSEd Tanous     {MemoryDeviceType::GDDR4, "GDDR4"},
1550ec8b83dSEd Tanous     {MemoryDeviceType::GDDR5, "GDDR5"},
1560ec8b83dSEd Tanous     {MemoryDeviceType::GDDR5X, "GDDR5X"},
1570ec8b83dSEd Tanous     {MemoryDeviceType::GDDR6, "GDDR6"},
1580ec8b83dSEd Tanous     {MemoryDeviceType::DDR5, "DDR5"},
1590ec8b83dSEd Tanous     {MemoryDeviceType::OEM, "OEM"},
1602ae81db9SGunnar Mills     {MemoryDeviceType::LPDDR5_SDRAM, "LPDDR5_SDRAM"},
161*c6d7a45dSGunnar Mills     {MemoryDeviceType::DDR5_MRDIMM, "DDR5_MRDIMM"},
1620ec8b83dSEd Tanous });
1630ec8b83dSEd Tanous 
1640ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BaseModuleType, {
1650ec8b83dSEd Tanous     {BaseModuleType::Invalid, "Invalid"},
1660ec8b83dSEd Tanous     {BaseModuleType::RDIMM, "RDIMM"},
1670ec8b83dSEd Tanous     {BaseModuleType::UDIMM, "UDIMM"},
1680ec8b83dSEd Tanous     {BaseModuleType::SO_DIMM, "SO_DIMM"},
1690ec8b83dSEd Tanous     {BaseModuleType::LRDIMM, "LRDIMM"},
1700ec8b83dSEd Tanous     {BaseModuleType::Mini_RDIMM, "Mini_RDIMM"},
1710ec8b83dSEd Tanous     {BaseModuleType::Mini_UDIMM, "Mini_UDIMM"},
1720ec8b83dSEd Tanous     {BaseModuleType::SO_RDIMM_72b, "SO_RDIMM_72b"},
1730ec8b83dSEd Tanous     {BaseModuleType::SO_UDIMM_72b, "SO_UDIMM_72b"},
1740ec8b83dSEd Tanous     {BaseModuleType::SO_DIMM_16b, "SO_DIMM_16b"},
1750ec8b83dSEd Tanous     {BaseModuleType::SO_DIMM_32b, "SO_DIMM_32b"},
1760ec8b83dSEd Tanous     {BaseModuleType::Die, "Die"},
177*c6d7a45dSGunnar Mills     {BaseModuleType::CAMM, "CAMM"},
1780ec8b83dSEd Tanous });
1790ec8b83dSEd Tanous 
1800ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryMedia, {
1810ec8b83dSEd Tanous     {MemoryMedia::Invalid, "Invalid"},
1820ec8b83dSEd Tanous     {MemoryMedia::DRAM, "DRAM"},
1830ec8b83dSEd Tanous     {MemoryMedia::NAND, "NAND"},
1840ec8b83dSEd Tanous     {MemoryMedia::Intel3DXPoint, "Intel3DXPoint"},
1850ec8b83dSEd Tanous     {MemoryMedia::Proprietary, "Proprietary"},
1860ec8b83dSEd Tanous });
1870ec8b83dSEd Tanous 
1880ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SecurityStates, {
1890ec8b83dSEd Tanous     {SecurityStates::Invalid, "Invalid"},
1900ec8b83dSEd Tanous     {SecurityStates::Enabled, "Enabled"},
1910ec8b83dSEd Tanous     {SecurityStates::Disabled, "Disabled"},
1920ec8b83dSEd Tanous     {SecurityStates::Unlocked, "Unlocked"},
1930ec8b83dSEd Tanous     {SecurityStates::Locked, "Locked"},
1940ec8b83dSEd Tanous     {SecurityStates::Frozen, "Frozen"},
1950ec8b83dSEd Tanous     {SecurityStates::Passphraselimit, "Passphraselimit"},
1960ec8b83dSEd Tanous });
1970ec8b83dSEd Tanous 
1980ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ErrorCorrection, {
1990ec8b83dSEd Tanous     {ErrorCorrection::Invalid, "Invalid"},
2000ec8b83dSEd Tanous     {ErrorCorrection::NoECC, "NoECC"},
2010ec8b83dSEd Tanous     {ErrorCorrection::SingleBitECC, "SingleBitECC"},
2020ec8b83dSEd Tanous     {ErrorCorrection::MultiBitECC, "MultiBitECC"},
2030ec8b83dSEd Tanous     {ErrorCorrection::AddressParity, "AddressParity"},
2040ec8b83dSEd Tanous });
2050ec8b83dSEd Tanous 
2060ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryClassification, {
2070ec8b83dSEd Tanous     {MemoryClassification::Invalid, "Invalid"},
2080ec8b83dSEd Tanous     {MemoryClassification::Volatile, "Volatile"},
2090ec8b83dSEd Tanous     {MemoryClassification::ByteAccessiblePersistent, "ByteAccessiblePersistent"},
2100ec8b83dSEd Tanous     {MemoryClassification::Block, "Block"},
2110ec8b83dSEd Tanous });
2120ec8b83dSEd Tanous 
2130ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OperatingMemoryModes, {
2140ec8b83dSEd Tanous     {OperatingMemoryModes::Invalid, "Invalid"},
2150ec8b83dSEd Tanous     {OperatingMemoryModes::Volatile, "Volatile"},
2160ec8b83dSEd Tanous     {OperatingMemoryModes::PMEM, "PMEM"},
2170ec8b83dSEd Tanous     {OperatingMemoryModes::Block, "Block"},
2180ec8b83dSEd Tanous });
2190ec8b83dSEd Tanous 
2200ec8b83dSEd Tanous }
2210ec8b83dSEd Tanous // clang-format on
222