xref: /openbmc/openpower-vpd-parser/vpd-manager/include/constants.hpp (revision 78c9107325750f00f03a7407f60f8572eb3d67a8)
1 #pragma once
2 
3 #include <cstdint>
4 #include <iostream>
5 namespace vpd
6 {
7 namespace constants
8 {
9 static constexpr auto KEYWORD_SIZE = 2;
10 static constexpr auto RECORD_SIZE = 4;
11 
12 static constexpr uint8_t IPZ_DATA_START = 11;
13 static constexpr uint8_t IPZ_DATA_START_TAG = 0x84;
14 static constexpr uint8_t IPZ_RECORD_END_TAG = 0x78;
15 
16 static constexpr uint8_t KW_VPD_DATA_START = 0;
17 static constexpr uint8_t KW_VPD_START_TAG = 0x82;
18 static constexpr uint8_t KW_VPD_PAIR_START_TAG = 0x84;
19 static constexpr uint8_t ALT_KW_VPD_PAIR_START_TAG = 0x90;
20 static constexpr uint8_t KW_VPD_END_TAG = 0x78;
21 static constexpr uint8_t KW_VAL_PAIR_END_TAG = 0x79;
22 static constexpr uint8_t AMM_ENABLED_IN_VPD = 2;
23 static constexpr uint8_t AMM_DISABLED_IN_VPD = 1;
24 
25 static constexpr auto DDIMM_11S_BARCODE_START = 416;
26 static constexpr auto DDIMM_11S_BARCODE_START_TAG = "11S";
27 static constexpr auto DDIMM_11S_FORMAT_LEN = 3;
28 static constexpr auto DDIMM_11S_BARCODE_LEN = 26;
29 static constexpr auto PART_NUM_LEN = 7;
30 static constexpr auto SERIAL_NUM_LEN = 12;
31 static constexpr auto CCIN_LEN = 4;
32 static constexpr auto CONVERT_MB_TO_KB = 1024;
33 static constexpr auto CONVERT_GB_TO_KB = 1024 * 1024;
34 
35 static constexpr auto SPD_BYTE_2 = 2;
36 static constexpr auto SPD_BYTE_3 = 3;
37 static constexpr auto SPD_BYTE_4 = 4;
38 static constexpr auto SPD_BYTE_6 = 6;
39 static constexpr auto SPD_BYTE_12 = 12;
40 static constexpr auto SPD_BYTE_13 = 13;
41 static constexpr auto SPD_BYTE_18 = 18;
42 static constexpr auto SPD_BYTE_234 = 234;
43 static constexpr auto SPD_BYTE_235 = 235;
44 static constexpr auto SPD_BYTE_BIT_0_3_MASK = 0x0F;
45 static constexpr auto SPD_BYTE_MASK = 0xFF;
46 static constexpr auto SPD_MODULE_TYPE_DDIMM = 0x0A;
47 static constexpr auto SPD_DRAM_TYPE_DDR5 = 0x12;
48 static constexpr auto SPD_DRAM_TYPE_DDR4 = 0x0C;
49 
50 static constexpr auto JEDEC_SDRAM_CAP_MASK = 0x0F;
51 static constexpr auto JEDEC_PRI_BUS_WIDTH_MASK = 0x07;
52 static constexpr auto JEDEC_SDRAM_WIDTH_MASK = 0x07;
53 static constexpr auto JEDEC_NUM_RANKS_MASK = 0x38;
54 static constexpr auto JEDEC_DIE_COUNT_MASK = 0x70;
55 static constexpr auto JEDEC_SINGLE_LOAD_STACK = 0x02;
56 static constexpr auto JEDEC_SIGNAL_LOADING_MASK = 0x03;
57 
58 static constexpr auto JEDEC_SDRAMCAP_MULTIPLIER = 256;
59 static constexpr auto JEDEC_PRI_BUS_WIDTH_MULTIPLIER = 8;
60 static constexpr auto JEDEC_SDRAM_WIDTH_MULTIPLIER = 4;
61 static constexpr auto JEDEC_SDRAMCAP_RESERVED = 7;
62 static constexpr auto JEDEC_RESERVED_BITS = 3;
63 static constexpr auto JEDEC_DIE_COUNT_RIGHT_SHIFT = 4;
64 
65 static constexpr auto LAST_KW = "PF";
66 static constexpr auto POUND_KW = '#';
67 static constexpr auto POUND_KW_PREFIX = "PD_";
68 static constexpr auto MB_YEAR_END = 4;
69 static constexpr auto MB_MONTH_END = 7;
70 static constexpr auto MB_DAY_END = 10;
71 static constexpr auto MB_HOUR_END = 13;
72 static constexpr auto MB_MIN_END = 16;
73 static constexpr auto MB_RESULT_LEN = 19;
74 static constexpr auto MB_LEN_BYTES = 8;
75 static constexpr auto UUID_LEN_BYTES = 16;
76 static constexpr auto UUID_TIME_LOW_END = 8;
77 static constexpr auto UUID_TIME_MID_END = 13;
78 static constexpr auto UUID_TIME_HIGH_END = 18;
79 static constexpr auto UUID_CLK_SEQ_END = 23;
80 static constexpr auto MAC_ADDRESS_LEN_BYTES = 6;
81 static constexpr auto ONE_BYTE = 1;
82 static constexpr auto TWO_BYTES = 2;
83 
84 static constexpr auto VALUE_0 = 0;
85 static constexpr auto VALUE_1 = 1;
86 static constexpr auto VALUE_2 = 2;
87 static constexpr auto VALUE_3 = 3;
88 static constexpr auto VALUE_4 = 4;
89 static constexpr auto VALUE_5 = 5;
90 static constexpr auto VALUE_6 = 6;
91 static constexpr auto VALUE_7 = 7;
92 static constexpr auto VALUE_8 = 8;
93 static constexpr auto VALUE_21 = 21;
94 
95 static constexpr auto MASK_BYTE_BITS_01 = 0x03;
96 static constexpr auto MASK_BYTE_BITS_345 = 0x38;
97 static constexpr auto MASK_BYTE_BITS_012 = 0x07;
98 static constexpr auto MASK_BYTE_BITS_567 = 0xE0;
99 static constexpr auto MASK_BYTE_BITS_01234 = 0x1F;
100 
101 static constexpr auto MASK_BYTE_BIT_6 = 0x40;
102 static constexpr auto MASK_BYTE_BIT_7 = 0x80;
103 
104 static constexpr auto SHIFT_BITS_0 = 0;
105 static constexpr auto SHIFT_BITS_3 = 3;
106 static constexpr auto SHIFT_BITS_5 = 5;
107 
108 static constexpr auto ASCII_OF_SPACE = 32;
109 
110 // Size of 8 EQs' in CP00's PG keyword
111 static constexpr auto SIZE_OF_8EQ_IN_PG = 24;
112 
113 // Zero based index position of first EQ in CP00's PG keyword
114 static constexpr auto INDEX_OF_EQ0_IN_PG = 97;
115 
116 constexpr auto systemInvPath = "/xyz/openbmc_project/inventory/system";
117 constexpr auto pimPath = "/xyz/openbmc_project/inventory";
118 constexpr auto pimIntf = "xyz.openbmc_project.Inventory.Manager";
119 constexpr auto ipzVpdInf = "com.ibm.ipzvpd.";
120 constexpr auto kwdVpdInf = "com.ibm.ipzvpd.VINI";
121 constexpr auto vsysInf = "com.ibm.ipzvpd.VSYS";
122 constexpr auto utilInf = "com.ibm.ipzvpd.UTIL";
123 constexpr auto vcenInf = "com.ibm.ipzvpd.VCEN";
124 constexpr auto viniInf = "com.ibm.ipzvpd.VINI";
125 constexpr auto vsbpInf = "com.ibm.ipzvpd.VSBP";
126 constexpr auto kwdCCIN = "CC";
127 constexpr auto kwdRG = "RG";
128 constexpr auto kwdAMM = "D0";
129 constexpr auto kwdClearNVRAM_CreateLPAR = "D1";
130 constexpr auto kwdKeepAndClear = "D1";
131 constexpr auto kwdFC = "FC";
132 constexpr auto kwdTM = "TM";
133 constexpr auto kwdSE = "SE";
134 constexpr auto kwdHW = "HW";
135 constexpr auto kwdIM = "IM";
136 constexpr auto recVSYS = "VSYS";
137 constexpr auto recVCEN = "VCEN";
138 constexpr auto locationCodeInf = "com.ibm.ipzvpd.Location";
139 constexpr auto xyzLocationCodeInf =
140     "xyz.openbmc_project.Inventory.Decorator.LocationCode";
141 constexpr auto operationalStatusInf =
142     "xyz.openbmc_project.State.Decorator.OperationalStatus";
143 constexpr auto enableInf = "xyz.openbmc_project.Object.Enable";
144 constexpr auto assetInf = "xyz.openbmc_project.Inventory.Decorator.Asset";
145 constexpr auto inventoryItemInf = "xyz.openbmc_project.Inventory.Item";
146 constexpr auto pldmServiceName = "xyz.openbmc_project.PLDM";
147 constexpr auto pimServiceName = "xyz.openbmc_project.Inventory.Manager";
148 constexpr auto biosConfigMgrObjPath =
149     "/xyz/openbmc_project/bios_config/manager";
150 constexpr auto biosConfigMgrService = "xyz.openbmc_project.BIOSConfigManager";
151 constexpr auto biosConfigMgrInterface =
152     "xyz.openbmc_project.BIOSConfig.Manager";
153 constexpr auto objectMapperService = "xyz.openbmc_project.ObjectMapper";
154 constexpr auto objectMapperPath = "/xyz/openbmc_project/object_mapper";
155 constexpr auto objectMapperInf = "xyz.openbmc_project.ObjectMapper";
156 constexpr auto systemVpdInvPath =
157     "/xyz/openbmc_project/inventory/system/chassis/motherboard";
158 constexpr auto assetTagInf = "xyz.openbmc_project.Inventory.Decorator.AssetTag";
159 constexpr auto hostObjectPath = "/xyz/openbmc_project/state/host0";
160 constexpr auto hostInterface = "xyz.openbmc_project.State.Host";
161 constexpr auto hostService = "xyz.openbmc_project.State.Host";
162 constexpr auto hostRunningState =
163     "xyz.openbmc_project.State.Host.HostState.Running";
164 static constexpr auto BD_YEAR_END = 4;
165 static constexpr auto BD_MONTH_END = 7;
166 static constexpr auto BD_DAY_END = 10;
167 static constexpr auto BD_HOUR_END = 13;
168 
169 constexpr uint8_t UNEXP_LOCATION_CODE_MIN_LENGTH = 4;
170 constexpr uint8_t EXP_LOCATION_CODE_MIN_LENGTH = 17;
171 static constexpr auto SE_KWD_LENGTH = 7;
172 static constexpr auto INVALID_NODE_NUMBER = -1;
173 
174 static constexpr auto CMD_BUFFER_LENGTH = 256;
175 
176 // To be explicitly used for string comparision.
177 static constexpr auto STR_CMP_SUCCESS = 0;
178 
179 // Just a random value. Can be adjusted as required.
180 static constexpr uint8_t MAX_THREADS = 10;
181 
182 static constexpr auto FAILURE = -1;
183 static constexpr auto SUCCESS = 0;
184 
185 constexpr auto bmcStateService = "xyz.openbmc_project.State.BMC";
186 constexpr auto bmcZeroStateObject = "/xyz/openbmc_project/state/bmc0";
187 constexpr auto bmcStateInterface = "xyz.openbmc_project.State.BMC";
188 constexpr auto currentBMCStateProperty = "CurrentBMCState";
189 constexpr auto bmcReadyState = "xyz.openbmc_project.State.BMC.BMCState.Ready";
190 
191 static constexpr auto eventLoggingServiceName = "xyz.openbmc_project.Logging";
192 static constexpr auto eventLoggingObjectPath = "/xyz/openbmc_project/logging";
193 static constexpr auto eventLoggingInterface =
194     "xyz.openbmc_project.Logging.Create";
195 
196 static constexpr auto systemdService = "org.freedesktop.systemd1";
197 static constexpr auto systemdObjectPath = "/org/freedesktop/systemd1";
198 static constexpr auto systemdManagerInterface =
199     "org.freedesktop.systemd1.Manager";
200 } // namespace constants
201 } // namespace vpd
202