| 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; | 
|  | 93 |  | 
|  | 94 | static constexpr auto MASK_BYTE_BITS_01 = 0x03; | 
|  | 95 | static constexpr auto MASK_BYTE_BITS_345 = 0x38; | 
|  | 96 | static constexpr auto MASK_BYTE_BITS_012 = 0x07; | 
|  | 97 | static constexpr auto MASK_BYTE_BITS_567 = 0xE0; | 
|  | 98 | static constexpr auto MASK_BYTE_BITS_01234 = 0x1F; | 
|  | 99 |  | 
|  | 100 | static constexpr auto MASK_BYTE_BIT_6 = 0x40; | 
|  | 101 | static constexpr auto MASK_BYTE_BIT_7 = 0x80; | 
|  | 102 |  | 
|  | 103 | static constexpr auto SHIFT_BITS_0 = 0; | 
|  | 104 | static constexpr auto SHIFT_BITS_3 = 3; | 
|  | 105 | static constexpr auto SHIFT_BITS_5 = 5; | 
|  | 106 |  | 
|  | 107 | static constexpr auto ASCII_OF_SPACE = 32; | 
|  | 108 |  | 
|  | 109 | // Size of 8 EQs' in CP00's PG keyword | 
|  | 110 | static constexpr auto SIZE_OF_8EQ_IN_PG = 24; | 
|  | 111 |  | 
|  | 112 | // Zero based index position of first EQ in CP00's PG keyword | 
|  | 113 | static constexpr auto INDEX_OF_EQ0_IN_PG = 97; | 
|  | 114 |  | 
|  | 115 | constexpr auto systemInvPath = "/xyz/openbmc_project/inventory/system"; | 
|  | 116 | constexpr auto pimPath = "/xyz/openbmc_project/inventory"; | 
|  | 117 | constexpr auto pimIntf = "xyz.openbmc_project.Inventory.Manager"; | 
|  | 118 | constexpr auto ipzVpdInf = "com.ibm.ipzvpd."; | 
|  | 119 | constexpr auto kwdVpdInf = "com.ibm.ipzvpd.VINI"; | 
|  | 120 | constexpr auto vsysInf = "com.ibm.ipzvpd.VSYS"; | 
|  | 121 | constexpr auto utilInf = "com.ibm.ipzvpd.UTIL"; | 
|  | 122 | constexpr auto vcenInf = "com.ibm.ipzvpd.VCEN"; | 
|  | 123 | constexpr auto kwdCCIN = "CC"; | 
|  | 124 | constexpr auto kwdRG = "RG"; | 
|  | 125 | constexpr auto kwdAMM = "D0"; | 
|  | 126 | constexpr auto kwdClearNVRAM_CreateLPAR = "D1"; | 
|  | 127 | constexpr auto kwdKeepAndClear = "D1"; | 
|  | 128 | constexpr auto kwdFC = "FC"; | 
|  | 129 | constexpr auto kwdTM = "TM"; | 
|  | 130 | constexpr auto kwdSE = "SE"; | 
|  | 131 | constexpr auto recVSYS = "VSYS"; | 
|  | 132 | constexpr auto recVCEN = "VCEN"; | 
|  | 133 | constexpr auto locationCodeInf = "com.ibm.ipzvpd.Location"; | 
|  | 134 | constexpr auto xyzLocationCodeInf = | 
|  | 135 | "xyz.openbmc_project.Inventory.Decorator.LocationCode"; | 
|  | 136 | constexpr auto operationalStatusInf = | 
|  | 137 | "xyz.openbmc_project.State.Decorator.OperationalStatus"; | 
|  | 138 | constexpr auto enableInf = "xyz.openbmc_project.Object.Enable"; | 
|  | 139 | constexpr auto assetInf = "xyz.openbmc_project.Inventory.Decorator.Asset"; | 
|  | 140 | constexpr auto inventoryItemInf = "xyz.openbmc_project.Inventory.Item"; | 
|  | 141 | constexpr auto pldmServiceName = "xyz.openbmc_project.PLDM"; | 
|  | 142 | constexpr auto pimServiceName = "xyz.openbmc_project.Inventory.Manager"; | 
|  | 143 | constexpr auto biosConfigMgrObjPath = | 
|  | 144 | "/xyz/openbmc_project/bios_config/manager"; | 
|  | 145 | constexpr auto biosConfigMgrService = "xyz.openbmc_project.BIOSConfigManager"; | 
|  | 146 | constexpr auto biosConfigMgrInterface = | 
|  | 147 | "xyz.openbmc_project.BIOSConfig.Manager"; | 
|  | 148 | constexpr auto objectMapperService = "xyz.openbmc_project.ObjectMapper"; | 
|  | 149 | constexpr auto objectMapperPath = "/xyz/openbmc_project/object_mapper"; | 
|  | 150 | constexpr auto objectMapperInf = "xyz.openbmc_project.ObjectMapper"; | 
|  | 151 | constexpr auto systemVpdInvPath = | 
|  | 152 | "/xyz/openbmc_project/inventory/system/chassis/motherboard"; | 
|  | 153 | constexpr auto assetTagInf = "xyz.openbmc_project.Inventory.Decorator.AssetTag"; | 
|  | 154 | constexpr auto hostObjectPath = "/xyz/openbmc_project/state/host0"; | 
|  | 155 | constexpr auto hostInterface = "xyz.openbmc_project.State.Host"; | 
|  | 156 | constexpr auto hostService = "xyz.openbmc_project.State.Host"; | 
|  | 157 | constexpr auto hostRunningState = | 
|  | 158 | "xyz.openbmc_project.State.Host.HostState.Running"; | 
|  | 159 | static constexpr auto BD_YEAR_END = 4; | 
|  | 160 | static constexpr auto BD_MONTH_END = 7; | 
|  | 161 | static constexpr auto BD_DAY_END = 10; | 
|  | 162 | static constexpr auto BD_HOUR_END = 13; | 
|  | 163 |  | 
|  | 164 | constexpr uint8_t UNEXP_LOCATION_CODE_MIN_LENGTH = 4; | 
|  | 165 | constexpr uint8_t EXP_LOCATION_CODE_MIN_LENGTH = 17; | 
|  | 166 | static constexpr auto SE_KWD_LENGTH = 7; | 
|  | 167 | static constexpr auto INVALID_NODE_NUMBER = -1; | 
|  | 168 |  | 
|  | 169 | static constexpr auto CMD_BUFFER_LENGTH = 256; | 
|  | 170 |  | 
|  | 171 | // To be explicitly used for string comparision. | 
|  | 172 | static constexpr auto STR_CMP_SUCCESS = 0; | 
|  | 173 |  | 
|  | 174 | // Just a random value. Can be adjusted as required. | 
|  | 175 | static constexpr uint8_t MAX_THREADS = 10; | 
|  | 176 |  | 
|  | 177 | static constexpr auto FAILURE = -1; | 
|  | 178 | static constexpr auto SUCCESS = 0; | 
|  | 179 |  | 
|  | 180 | constexpr auto bmcStateService = "xyz.openbmc_project.State.BMC"; | 
|  | 181 | constexpr auto bmcZeroStateObject = "/xyz/openbmc_project/state/bmc0"; | 
|  | 182 | constexpr auto bmcStateInterface = "xyz.openbmc_project.State.BMC"; | 
|  | 183 | constexpr auto currentBMCStateProperty = "CurrentBMCState"; | 
|  | 184 | constexpr auto bmcReadyState = "xyz.openbmc_project.State.BMC.BMCState.Ready"; | 
|  | 185 |  | 
|  | 186 | static constexpr auto eventLoggingServiceName = "xyz.openbmc_project.Logging"; | 
|  | 187 | static constexpr auto eventLoggingObjectPath = "/xyz/openbmc_project/logging"; | 
|  | 188 | static constexpr auto eventLoggingInterface = | 
|  | 189 | "xyz.openbmc_project.Logging.Create"; | 
|  | 190 |  | 
|  | 191 | static constexpr auto systemdService = "org.freedesktop.systemd1"; | 
|  | 192 | static constexpr auto systemdObjectPath = "/org/freedesktop/systemd1"; | 
|  | 193 | static constexpr auto systemdManagerInterface = | 
|  | 194 | "org.freedesktop.systemd1.Manager"; | 
|  | 195 | } // namespace constants | 
|  | 196 | } // namespace vpd |