xref: /openbmc/bmcweb/features/redfish/include/generated/enums/processor.hpp (revision d1a3caa4eda8ca07cd656b4e4e8aa1e4ffe53e1e)
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 processor
70ec8b83dSEd Tanous {
80ec8b83dSEd Tanous // clang-format off
90ec8b83dSEd Tanous 
100ec8b83dSEd Tanous enum class ProcessorType{
110ec8b83dSEd Tanous     Invalid,
120ec8b83dSEd Tanous     CPU,
130ec8b83dSEd Tanous     GPU,
140ec8b83dSEd Tanous     FPGA,
150ec8b83dSEd Tanous     DSP,
160ec8b83dSEd Tanous     Accelerator,
170ec8b83dSEd Tanous     Core,
180ec8b83dSEd Tanous     Thread,
192ae81db9SGunnar Mills     Partition,
200ec8b83dSEd Tanous     OEM,
210ec8b83dSEd Tanous };
220ec8b83dSEd Tanous 
23*d1a3caa4SChandramohan Harkude enum class ProcessorArchitecture{
24*d1a3caa4SChandramohan Harkude     Invalid,
25*d1a3caa4SChandramohan Harkude     x86,
26*d1a3caa4SChandramohan Harkude     IA64,
27*d1a3caa4SChandramohan Harkude     ARM,
28*d1a3caa4SChandramohan Harkude     MIPS,
29*d1a3caa4SChandramohan Harkude     Power,
30*d1a3caa4SChandramohan Harkude     RISCV,
31*d1a3caa4SChandramohan Harkude     OEM,
32*d1a3caa4SChandramohan Harkude };
33*d1a3caa4SChandramohan Harkude 
34*d1a3caa4SChandramohan Harkude enum class InstructionSet{
35*d1a3caa4SChandramohan Harkude     Invalid,
36*d1a3caa4SChandramohan Harkude     x86,
37*d1a3caa4SChandramohan Harkude     x8664,
38*d1a3caa4SChandramohan Harkude     IA64,
39*d1a3caa4SChandramohan Harkude     ARMA32,
40*d1a3caa4SChandramohan Harkude     ARMA64,
41*d1a3caa4SChandramohan Harkude     MIPS32,
42*d1a3caa4SChandramohan Harkude     MIPS64,
43*d1a3caa4SChandramohan Harkude     PowerISA,
44*d1a3caa4SChandramohan Harkude     RV32,
45*d1a3caa4SChandramohan Harkude     RV64,
46*d1a3caa4SChandramohan Harkude     OEM,
47*d1a3caa4SChandramohan Harkude };
48*d1a3caa4SChandramohan Harkude 
490ec8b83dSEd Tanous enum class ProcessorMemoryType{
500ec8b83dSEd Tanous     Invalid,
51a8d8f9d8SEd Tanous     Cache,
520ec8b83dSEd Tanous     L1Cache,
530ec8b83dSEd Tanous     L2Cache,
540ec8b83dSEd Tanous     L3Cache,
550ec8b83dSEd Tanous     L4Cache,
560ec8b83dSEd Tanous     L5Cache,
570ec8b83dSEd Tanous     L6Cache,
580ec8b83dSEd Tanous     L7Cache,
590ec8b83dSEd Tanous     HBM1,
600ec8b83dSEd Tanous     HBM2,
61a8d8f9d8SEd Tanous     HBM2E,
620ec8b83dSEd Tanous     HBM3,
630ec8b83dSEd Tanous     SGRAM,
640ec8b83dSEd Tanous     GDDR,
650ec8b83dSEd Tanous     GDDR2,
660ec8b83dSEd Tanous     GDDR3,
670ec8b83dSEd Tanous     GDDR4,
680ec8b83dSEd Tanous     GDDR5,
690ec8b83dSEd Tanous     GDDR5X,
700ec8b83dSEd Tanous     GDDR6,
710ec8b83dSEd Tanous     DDR,
720ec8b83dSEd Tanous     DDR2,
730ec8b83dSEd Tanous     DDR3,
740ec8b83dSEd Tanous     DDR4,
750ec8b83dSEd Tanous     DDR5,
760ec8b83dSEd Tanous     SDRAM,
770ec8b83dSEd Tanous     SRAM,
780ec8b83dSEd Tanous     Flash,
790ec8b83dSEd Tanous     OEM,
800ec8b83dSEd Tanous };
810ec8b83dSEd Tanous 
820ec8b83dSEd Tanous enum class FpgaType{
830ec8b83dSEd Tanous     Invalid,
840ec8b83dSEd Tanous     Integrated,
850ec8b83dSEd Tanous     Discrete,
860ec8b83dSEd Tanous };
870ec8b83dSEd Tanous 
880ec8b83dSEd Tanous enum class SystemInterfaceType{
890ec8b83dSEd Tanous     Invalid,
900ec8b83dSEd Tanous     QPI,
910ec8b83dSEd Tanous     UPI,
920ec8b83dSEd Tanous     PCIe,
930ec8b83dSEd Tanous     Ethernet,
940ec8b83dSEd Tanous     AMBA,
950ec8b83dSEd Tanous     CCIX,
960ec8b83dSEd Tanous     CXL,
970ec8b83dSEd Tanous     OEM,
980ec8b83dSEd Tanous };
990ec8b83dSEd Tanous 
1000ec8b83dSEd Tanous enum class TurboState{
1010ec8b83dSEd Tanous     Invalid,
1020ec8b83dSEd Tanous     Enabled,
1030ec8b83dSEd Tanous     Disabled,
1040ec8b83dSEd Tanous };
1050ec8b83dSEd Tanous 
1060ec8b83dSEd Tanous enum class BaseSpeedPriorityState{
1070ec8b83dSEd Tanous     Invalid,
1080ec8b83dSEd Tanous     Enabled,
1090ec8b83dSEd Tanous     Disabled,
1100ec8b83dSEd Tanous };
1110ec8b83dSEd Tanous 
1120ec8b83dSEd Tanous enum class ThrottleCause{
1130ec8b83dSEd Tanous     Invalid,
1140ec8b83dSEd Tanous     PowerLimit,
1150ec8b83dSEd Tanous     ThermalLimit,
1160ec8b83dSEd Tanous     ClockLimit,
117f263e09cSEd Tanous     ManagementDetectedFault,
1180ec8b83dSEd Tanous     Unknown,
1190ec8b83dSEd Tanous     OEM,
1200ec8b83dSEd Tanous };
1210ec8b83dSEd Tanous 
1220ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ProcessorType, {
1230ec8b83dSEd Tanous     {ProcessorType::Invalid, "Invalid"},
1240ec8b83dSEd Tanous     {ProcessorType::CPU, "CPU"},
1250ec8b83dSEd Tanous     {ProcessorType::GPU, "GPU"},
1260ec8b83dSEd Tanous     {ProcessorType::FPGA, "FPGA"},
1270ec8b83dSEd Tanous     {ProcessorType::DSP, "DSP"},
1280ec8b83dSEd Tanous     {ProcessorType::Accelerator, "Accelerator"},
1290ec8b83dSEd Tanous     {ProcessorType::Core, "Core"},
1300ec8b83dSEd Tanous     {ProcessorType::Thread, "Thread"},
1312ae81db9SGunnar Mills     {ProcessorType::Partition, "Partition"},
1320ec8b83dSEd Tanous     {ProcessorType::OEM, "OEM"},
1330ec8b83dSEd Tanous });
1340ec8b83dSEd Tanous 
135*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(ProcessorArchitecture, {
136*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::Invalid, "Invalid"},
137*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::x86, "x86"},
138*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::IA64, "IA-64"},
139*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::ARM, "ARM"},
140*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::MIPS, "MIPS"},
141*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::Power, "Power"},
142*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::RISCV, "RISC-V"},
143*d1a3caa4SChandramohan Harkude     {ProcessorArchitecture::OEM, "OEM"},
144*d1a3caa4SChandramohan Harkude });
145*d1a3caa4SChandramohan Harkude 
146*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(InstructionSet, {
147*d1a3caa4SChandramohan Harkude     {InstructionSet::Invalid, "Invalid"},
148*d1a3caa4SChandramohan Harkude     {InstructionSet::x86, "x86"},
149*d1a3caa4SChandramohan Harkude     {InstructionSet::x8664, "x86-64"},
150*d1a3caa4SChandramohan Harkude     {InstructionSet::IA64, "IA-64"},
151*d1a3caa4SChandramohan Harkude     {InstructionSet::ARMA32, "ARM-A32"},
152*d1a3caa4SChandramohan Harkude     {InstructionSet::ARMA64, "ARM-A64"},
153*d1a3caa4SChandramohan Harkude     {InstructionSet::MIPS32, "MIPS32"},
154*d1a3caa4SChandramohan Harkude     {InstructionSet::MIPS64, "MIPS64"},
155*d1a3caa4SChandramohan Harkude     {InstructionSet::PowerISA, "PowerISA"},
156*d1a3caa4SChandramohan Harkude     {InstructionSet::RV32, "RV32"},
157*d1a3caa4SChandramohan Harkude     {InstructionSet::RV64, "RV64"},
158*d1a3caa4SChandramohan Harkude     {InstructionSet::OEM, "OEM"},
159*d1a3caa4SChandramohan Harkude });
160*d1a3caa4SChandramohan Harkude 
1610ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ProcessorMemoryType, {
1620ec8b83dSEd Tanous     {ProcessorMemoryType::Invalid, "Invalid"},
163a8d8f9d8SEd Tanous     {ProcessorMemoryType::Cache, "Cache"},
1640ec8b83dSEd Tanous     {ProcessorMemoryType::L1Cache, "L1Cache"},
1650ec8b83dSEd Tanous     {ProcessorMemoryType::L2Cache, "L2Cache"},
1660ec8b83dSEd Tanous     {ProcessorMemoryType::L3Cache, "L3Cache"},
1670ec8b83dSEd Tanous     {ProcessorMemoryType::L4Cache, "L4Cache"},
1680ec8b83dSEd Tanous     {ProcessorMemoryType::L5Cache, "L5Cache"},
1690ec8b83dSEd Tanous     {ProcessorMemoryType::L6Cache, "L6Cache"},
1700ec8b83dSEd Tanous     {ProcessorMemoryType::L7Cache, "L7Cache"},
1710ec8b83dSEd Tanous     {ProcessorMemoryType::HBM1, "HBM1"},
1720ec8b83dSEd Tanous     {ProcessorMemoryType::HBM2, "HBM2"},
173a8d8f9d8SEd Tanous     {ProcessorMemoryType::HBM2E, "HBM2E"},
1740ec8b83dSEd Tanous     {ProcessorMemoryType::HBM3, "HBM3"},
1750ec8b83dSEd Tanous     {ProcessorMemoryType::SGRAM, "SGRAM"},
1760ec8b83dSEd Tanous     {ProcessorMemoryType::GDDR, "GDDR"},
1770ec8b83dSEd Tanous     {ProcessorMemoryType::GDDR2, "GDDR2"},
1780ec8b83dSEd Tanous     {ProcessorMemoryType::GDDR3, "GDDR3"},
1790ec8b83dSEd Tanous     {ProcessorMemoryType::GDDR4, "GDDR4"},
1800ec8b83dSEd Tanous     {ProcessorMemoryType::GDDR5, "GDDR5"},
1810ec8b83dSEd Tanous     {ProcessorMemoryType::GDDR5X, "GDDR5X"},
1820ec8b83dSEd Tanous     {ProcessorMemoryType::GDDR6, "GDDR6"},
1830ec8b83dSEd Tanous     {ProcessorMemoryType::DDR, "DDR"},
1840ec8b83dSEd Tanous     {ProcessorMemoryType::DDR2, "DDR2"},
1850ec8b83dSEd Tanous     {ProcessorMemoryType::DDR3, "DDR3"},
1860ec8b83dSEd Tanous     {ProcessorMemoryType::DDR4, "DDR4"},
1870ec8b83dSEd Tanous     {ProcessorMemoryType::DDR5, "DDR5"},
1880ec8b83dSEd Tanous     {ProcessorMemoryType::SDRAM, "SDRAM"},
1890ec8b83dSEd Tanous     {ProcessorMemoryType::SRAM, "SRAM"},
1900ec8b83dSEd Tanous     {ProcessorMemoryType::Flash, "Flash"},
1910ec8b83dSEd Tanous     {ProcessorMemoryType::OEM, "OEM"},
1920ec8b83dSEd Tanous });
1930ec8b83dSEd Tanous 
1940ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FpgaType, {
1950ec8b83dSEd Tanous     {FpgaType::Invalid, "Invalid"},
1960ec8b83dSEd Tanous     {FpgaType::Integrated, "Integrated"},
1970ec8b83dSEd Tanous     {FpgaType::Discrete, "Discrete"},
1980ec8b83dSEd Tanous });
1990ec8b83dSEd Tanous 
2000ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SystemInterfaceType, {
2010ec8b83dSEd Tanous     {SystemInterfaceType::Invalid, "Invalid"},
2020ec8b83dSEd Tanous     {SystemInterfaceType::QPI, "QPI"},
2030ec8b83dSEd Tanous     {SystemInterfaceType::UPI, "UPI"},
2040ec8b83dSEd Tanous     {SystemInterfaceType::PCIe, "PCIe"},
2050ec8b83dSEd Tanous     {SystemInterfaceType::Ethernet, "Ethernet"},
2060ec8b83dSEd Tanous     {SystemInterfaceType::AMBA, "AMBA"},
2070ec8b83dSEd Tanous     {SystemInterfaceType::CCIX, "CCIX"},
2080ec8b83dSEd Tanous     {SystemInterfaceType::CXL, "CXL"},
2090ec8b83dSEd Tanous     {SystemInterfaceType::OEM, "OEM"},
2100ec8b83dSEd Tanous });
2110ec8b83dSEd Tanous 
2120ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TurboState, {
2130ec8b83dSEd Tanous     {TurboState::Invalid, "Invalid"},
2140ec8b83dSEd Tanous     {TurboState::Enabled, "Enabled"},
2150ec8b83dSEd Tanous     {TurboState::Disabled, "Disabled"},
2160ec8b83dSEd Tanous });
2170ec8b83dSEd Tanous 
2180ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BaseSpeedPriorityState, {
2190ec8b83dSEd Tanous     {BaseSpeedPriorityState::Invalid, "Invalid"},
2200ec8b83dSEd Tanous     {BaseSpeedPriorityState::Enabled, "Enabled"},
2210ec8b83dSEd Tanous     {BaseSpeedPriorityState::Disabled, "Disabled"},
2220ec8b83dSEd Tanous });
2230ec8b83dSEd Tanous 
2240ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ThrottleCause, {
2250ec8b83dSEd Tanous     {ThrottleCause::Invalid, "Invalid"},
2260ec8b83dSEd Tanous     {ThrottleCause::PowerLimit, "PowerLimit"},
2270ec8b83dSEd Tanous     {ThrottleCause::ThermalLimit, "ThermalLimit"},
2280ec8b83dSEd Tanous     {ThrottleCause::ClockLimit, "ClockLimit"},
229f263e09cSEd Tanous     {ThrottleCause::ManagementDetectedFault, "ManagementDetectedFault"},
2300ec8b83dSEd Tanous     {ThrottleCause::Unknown, "Unknown"},
2310ec8b83dSEd Tanous     {ThrottleCause::OEM, "OEM"},
2320ec8b83dSEd Tanous });
2330ec8b83dSEd Tanous 
2340ec8b83dSEd Tanous }
2350ec8b83dSEd Tanous // clang-format on
236