Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 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; |
Sunny Srivastava | 78c9107 | 2025-02-05 14:09:50 +0530 | [diff] [blame] | 93 | static constexpr auto VALUE_21 = 21; |
Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 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 | |
Sunny Srivastava | c6ef42d | 2025-02-19 19:17:10 +0530 | [diff] [blame] | 116 | static constexpr auto HEX_VALUE_50 = 0x50; |
| 117 | static constexpr auto HEX_VALUE_30 = 0x30; |
| 118 | static constexpr auto HEX_VALUE_10 = 0x10; |
| 119 | static constexpr auto HEX_VALUE_00 = 0x00; |
| 120 | |
Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 121 | constexpr auto systemInvPath = "/xyz/openbmc_project/inventory/system"; |
| 122 | constexpr auto pimPath = "/xyz/openbmc_project/inventory"; |
| 123 | constexpr auto pimIntf = "xyz.openbmc_project.Inventory.Manager"; |
| 124 | constexpr auto ipzVpdInf = "com.ibm.ipzvpd."; |
| 125 | constexpr auto kwdVpdInf = "com.ibm.ipzvpd.VINI"; |
| 126 | constexpr auto vsysInf = "com.ibm.ipzvpd.VSYS"; |
| 127 | constexpr auto utilInf = "com.ibm.ipzvpd.UTIL"; |
| 128 | constexpr auto vcenInf = "com.ibm.ipzvpd.VCEN"; |
Sunny Srivastava | 78c9107 | 2025-02-05 14:09:50 +0530 | [diff] [blame] | 129 | constexpr auto viniInf = "com.ibm.ipzvpd.VINI"; |
| 130 | constexpr auto vsbpInf = "com.ibm.ipzvpd.VSBP"; |
Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 131 | constexpr auto kwdCCIN = "CC"; |
| 132 | constexpr auto kwdRG = "RG"; |
| 133 | constexpr auto kwdAMM = "D0"; |
| 134 | constexpr auto kwdClearNVRAM_CreateLPAR = "D1"; |
| 135 | constexpr auto kwdKeepAndClear = "D1"; |
| 136 | constexpr auto kwdFC = "FC"; |
| 137 | constexpr auto kwdTM = "TM"; |
| 138 | constexpr auto kwdSE = "SE"; |
Sunny Srivastava | 78c9107 | 2025-02-05 14:09:50 +0530 | [diff] [blame] | 139 | constexpr auto kwdHW = "HW"; |
| 140 | constexpr auto kwdIM = "IM"; |
Sunny Srivastava | 022112b | 2025-02-19 19:53:29 +0530 | [diff] [blame] | 141 | constexpr auto kwdPN = "PN"; |
Sunny Srivastava | 2279383 | 2025-03-20 12:09:09 +0530 | [diff] [blame] | 142 | constexpr auto kwdFN = "FN"; |
Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 143 | constexpr auto recVSYS = "VSYS"; |
| 144 | constexpr auto recVCEN = "VCEN"; |
RekhaAparna01 | d3e693e | 2025-03-04 05:08:30 -0600 | [diff] [blame] | 145 | constexpr auto recVSBP = "VSBP"; |
Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 146 | constexpr auto locationCodeInf = "com.ibm.ipzvpd.Location"; |
| 147 | constexpr auto xyzLocationCodeInf = |
| 148 | "xyz.openbmc_project.Inventory.Decorator.LocationCode"; |
| 149 | constexpr auto operationalStatusInf = |
| 150 | "xyz.openbmc_project.State.Decorator.OperationalStatus"; |
| 151 | constexpr auto enableInf = "xyz.openbmc_project.Object.Enable"; |
| 152 | constexpr auto assetInf = "xyz.openbmc_project.Inventory.Decorator.Asset"; |
| 153 | constexpr auto inventoryItemInf = "xyz.openbmc_project.Inventory.Item"; |
| 154 | constexpr auto pldmServiceName = "xyz.openbmc_project.PLDM"; |
| 155 | constexpr auto pimServiceName = "xyz.openbmc_project.Inventory.Manager"; |
| 156 | constexpr auto biosConfigMgrObjPath = |
| 157 | "/xyz/openbmc_project/bios_config/manager"; |
| 158 | constexpr auto biosConfigMgrService = "xyz.openbmc_project.BIOSConfigManager"; |
| 159 | constexpr auto biosConfigMgrInterface = |
| 160 | "xyz.openbmc_project.BIOSConfig.Manager"; |
| 161 | constexpr auto objectMapperService = "xyz.openbmc_project.ObjectMapper"; |
| 162 | constexpr auto objectMapperPath = "/xyz/openbmc_project/object_mapper"; |
| 163 | constexpr auto objectMapperInf = "xyz.openbmc_project.ObjectMapper"; |
| 164 | constexpr auto systemVpdInvPath = |
| 165 | "/xyz/openbmc_project/inventory/system/chassis/motherboard"; |
| 166 | constexpr auto assetTagInf = "xyz.openbmc_project.Inventory.Decorator.AssetTag"; |
| 167 | constexpr auto hostObjectPath = "/xyz/openbmc_project/state/host0"; |
| 168 | constexpr auto hostInterface = "xyz.openbmc_project.State.Host"; |
| 169 | constexpr auto hostService = "xyz.openbmc_project.State.Host"; |
| 170 | constexpr auto hostRunningState = |
| 171 | "xyz.openbmc_project.State.Host.HostState.Running"; |
Sunny Srivastava | c6ef42d | 2025-02-19 19:17:10 +0530 | [diff] [blame] | 172 | constexpr auto imageUpdateService = "xyz.openbmc_project.Software.BMC.Updater"; |
| 173 | constexpr auto imagePrirotyInf = |
| 174 | "xyz.openbmc_project.Software.RedundancyPriority"; |
| 175 | constexpr auto imageExtendedVerInf = |
| 176 | "xyz.openbmc_project.Software.ExtendedVersion"; |
| 177 | constexpr auto functionalImageObjPath = |
| 178 | "/xyz/openbmc_project/software/functional"; |
| 179 | constexpr auto associationInterface = "xyz.openbmc_project.Association"; |
| 180 | constexpr auto powerVsImagePrefix_MY = "MY"; |
| 181 | constexpr auto powerVsImagePrefix_MZ = "MZ"; |
| 182 | constexpr auto powerVsImagePrefix_NY = "NY"; |
| 183 | constexpr auto powerVsImagePrefix_NZ = "NZ"; |
Souvik Roy | 0f37043 | 2025-04-08 01:55:58 -0500 | [diff] [blame] | 184 | constexpr auto badVpdDir = "/var/lib/vpd/dumps/"; |
Sunny Srivastava | c6ef42d | 2025-02-19 19:17:10 +0530 | [diff] [blame] | 185 | |
Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 186 | static constexpr auto BD_YEAR_END = 4; |
| 187 | static constexpr auto BD_MONTH_END = 7; |
| 188 | static constexpr auto BD_DAY_END = 10; |
| 189 | static constexpr auto BD_HOUR_END = 13; |
| 190 | |
| 191 | constexpr uint8_t UNEXP_LOCATION_CODE_MIN_LENGTH = 4; |
| 192 | constexpr uint8_t EXP_LOCATION_CODE_MIN_LENGTH = 17; |
| 193 | static constexpr auto SE_KWD_LENGTH = 7; |
| 194 | static constexpr auto INVALID_NODE_NUMBER = -1; |
| 195 | |
| 196 | static constexpr auto CMD_BUFFER_LENGTH = 256; |
| 197 | |
| 198 | // To be explicitly used for string comparision. |
| 199 | static constexpr auto STR_CMP_SUCCESS = 0; |
| 200 | |
| 201 | // Just a random value. Can be adjusted as required. |
| 202 | static constexpr uint8_t MAX_THREADS = 10; |
| 203 | |
| 204 | static constexpr auto FAILURE = -1; |
| 205 | static constexpr auto SUCCESS = 0; |
| 206 | |
| 207 | constexpr auto bmcStateService = "xyz.openbmc_project.State.BMC"; |
| 208 | constexpr auto bmcZeroStateObject = "/xyz/openbmc_project/state/bmc0"; |
| 209 | constexpr auto bmcStateInterface = "xyz.openbmc_project.State.BMC"; |
| 210 | constexpr auto currentBMCStateProperty = "CurrentBMCState"; |
| 211 | constexpr auto bmcReadyState = "xyz.openbmc_project.State.BMC.BMCState.Ready"; |
| 212 | |
| 213 | static constexpr auto eventLoggingServiceName = "xyz.openbmc_project.Logging"; |
| 214 | static constexpr auto eventLoggingObjectPath = "/xyz/openbmc_project/logging"; |
| 215 | static constexpr auto eventLoggingInterface = |
| 216 | "xyz.openbmc_project.Logging.Create"; |
| 217 | |
| 218 | static constexpr auto systemdService = "org.freedesktop.systemd1"; |
| 219 | static constexpr auto systemdObjectPath = "/org/freedesktop/systemd1"; |
| 220 | static constexpr auto systemdManagerInterface = |
| 221 | "org.freedesktop.systemd1.Manager"; |
Priyanga Ramasamy | 1aad783 | 2024-12-12 22:13:52 -0600 | [diff] [blame] | 222 | |
| 223 | static constexpr auto vpdCollectionInterface = "com.ibm.VPD.Collection"; |
| 224 | |
| 225 | // enumerated values of CollectionStatus D-bus property defined under |
| 226 | // com.ibm.VPD.Collection interface. |
| 227 | static constexpr auto vpdCollectionSuccess = |
| 228 | "com.ibm.VPD.Collection.Status.Success"; |
| 229 | static constexpr auto vpdCollectionFailure = |
| 230 | "com.ibm.VPD.Collection.Status.Failure"; |
| 231 | static constexpr auto vpdCollectionInProgress = |
| 232 | "com.ibm.VPD.Collection.Status.InProgress"; |
| 233 | static constexpr auto vpdCollectionNotStarted = |
| 234 | "com.ibm.VPD.Collection.Status.NotStarted"; |
Sunny Srivastava | 022112b | 2025-02-19 19:53:29 +0530 | [diff] [blame] | 235 | static constexpr auto power_vs_50003_json = |
| 236 | "/usr/share/vpd/50003_power_vs.json"; |
| 237 | static constexpr auto power_vs_50001_json = |
| 238 | "/usr/share/vpd/50001_power_vs.json"; |
Sunny Srivastava | fa5e4d3 | 2023-03-12 11:59:49 -0500 | [diff] [blame] | 239 | } // namespace constants |
| 240 | } // namespace vpd |