1*** Settings *** 2Documentation This suite tests checkstop operations through BMC using 3... pdbg utility. 4 5Resource ../../lib/openbmc_ffdc.robot 6Resource ../../lib/openbmc_ffdc_methods.robot 7Resource ../../lib/openbmc_ffdc_utils.robot 8Resource ../../openpower/ras/ras_utils.robot 9Variables ../../lib/ras/variables.py 10Variables ../../data/variables.py 11 12Library DateTime 13Library OperatingSystem 14Library random 15Library Collections 16 17Suite Setup RAS Suite Setup 18Test Setup RAS Test Setup 19Test Teardown FFDC On Test Case Fail 20Suite Teardown RAS Suite Cleanup 21 22Force Tags BMC_RAS 23 24*** Variables *** 25${stack_mode} normal 26 27 28*** Test Cases *** 29 30# Memory Controller Async (MCACALIFIR) related error injection. 31 32Verify Pdbg Recoverable Callout Handling For MCA With Threshold 1 33 [Documentation] Verify recoverable callout handling for MCACALIFIR 34 ... with threshold 1 using pdbg tool. 35 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCA_With_Threshold_1 36 37 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV1 38 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th1 39 Inject Recoverable Error With Threshold Limit 40 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 41 42Verify Pdbg Recoverable Callout Handling For MCA With Threshold 32 43 [Documentation] Verify recoverable callout handling for MCACALIFIR 44 ... with threshold 32 using pdbg tool. 45 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCA_With_Threshold_32 46 47 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV32 48 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th32 49 Inject Recoverable Error With Threshold Limit 50 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 51 52Verify Pdbg Unrecoverable Callout Handling For MCA 53 [Documentation] Verify unrecoverable callout handling for MCACALIFIR 54 ... with pdbg tool. 55 [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_MCA 56 57 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_UE 58 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir 59 Inject Unrecoverable Error BMC 60 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 61 62# Memory controller Interface (MCIFIR) related error injection. 63 64Verify Pdbg Recoverable Callout Handling For MCI With Threshold 1 65 [Documentation] Verify recoverable callout handling for MCI 66 ... with threshold 1 using pdbg tool. 67 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCI_With_Threshold_1 68 69 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCI_RECV1 70 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir_th1 71 Inject Recoverable Error With Threshold Limit 72 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 73 74Verify Pdbg Unrecoverable Callout Handling For MCI 75 [Documentation] Verify unrecoverable callout handling for mci 76 ... with pdbg tool. 77 [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_MCI 78 79 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCI_UE 80 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir 81 Inject Unrecoverable Error BMC 82 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 83 84 85# CAPP accelerator (CXAFIR) related error injection. 86 87Verify Pdbg Recoverable Callout Handling For CXA With Threshold 5 88 [Documentation] Verify recoverable callout handling for CXA 89 ... with threshold 5 using pdbg tool. 90 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CXA_With_Threshold_5 91 92 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV5 93 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th5 94 Inject Recoverable Error With Threshold Limit 95 ... BMC ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path} 96 97Verify Pdbg Recoverable Callout Handling For CXA With Threshold 32 98 [Documentation] Verify recoverable callout handling for CXA 99 ... with threshold 32 using pdbg tool. 100 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CXA_With_Threshold_32 101 102 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV32 103 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th32 104 Inject Recoverable Error With Threshold Limit 105 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 106 107Verify Pdbg Unrecoverable Callout Handling For CXA 108 [Documentation] Verify unrecoverable callout handling for CXAFIR 109 ... with pdbg tool. 110 [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_CXA 111 112 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_UE 113 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_ue 114 Inject Unrecoverable Error BMC 115 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 116 117# Optical BUS (OBUSFIR) related error injection. 118 119Verify Pdbg Recoverable Callout Handling For OBUS With Threshold 32 120 [Documentation] Verify recoverable callout handling for OBUS 121 ... with threshold 32 using pdbg tool. 122 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_OBUS_With_Threshold_32 123 124 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OBUS_RECV32 125 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}obusfir_th32 126 Inject Recoverable Error With Threshold Limit 127 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 128 129# NVIDIA graphics processing units (NPU0FIR) related error injection. 130 131Verify Pdbg Recoverable Callout Handling For NPU0 With Threshold 32 132 [Documentation] Verify recoverable callout handling for NPU0 133 ... with threshold 32 using pdbg tool. 134 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NPU0_With_Threshold_32 135 136 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NPU0_RECV32 137 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}npu0fir_th32 138 Inject Recoverable Error With Threshold Limit 139 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 140 141# NEST accelerator DMA Engine (NXDMAENGFIR) related error injection. 142 143Verify Pdbg Recoverable Callout Handling For NXDMAENG With Threshold 1 144 [Documentation] Verify recoverable callout handling for NXDMAENG 145 ... with threshold 1 using pdbg tool. 146 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_1 147 148 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV1 149 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th1 150 Inject Recoverable Error With Threshold Limit 151 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 152 153 154Verify Pdbg Recoverable Callout Handling For NXDMAENG With Threshold 32 155 [Documentation] Verify recoverable callout handling for NXDMAENG 156 ... with threshold 32 using pdbg tool. 157 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_32 158 159 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV32 160 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th32 161 Inject Recoverable Error With Threshold Limit 162 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 163 164 165# L2FIR related error injection. 166 167Verify Pdbg Recoverable Callout Handling For L2FIR With Threshold 1 168 [Documentation] Verify recoverable callout handling for L2FIR 169 ... with threshold 1 using pdbg tool. 170 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_1 171 172 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV1 173 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 174 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th1 175 Inject Recoverable Error With Threshold Limit 176 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 177 178Verify Pdbg Recoverable Callout Handling For L2FIR With Threshold 32 179 [Documentation] Verify recoverable callout handling for L2FIR 180 ... with threshold 32 using pdbg tool. 181 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_32 182 183 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV32 184 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 185 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th32 186 Inject Recoverable Error With Threshold Limit 187 ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} 188 189Verify Pdbg Unrecoverable Callout Handling For L2FIR 190 [Documentation] Verify unrecoverable callout handling for L2FIR 191 ... with pdbg tool. 192 [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_L2FIR 193 194 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_UE 195 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 196 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_ue 197 Inject Unrecoverable Error BMC 198 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 199 200# L3FIR related error injection. 201 202Verify Pdbg Recoverable Callout Handling For L3FIR With Threshold 1 203 [Documentation] Verify recoverable callout handling for L3FIR 204 ... with threshold 1 using pdbg tool. 205 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_1 206 207 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV1 208 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 209 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th1 210 Inject Recoverable Error With Threshold Limit 211 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 212 213Verify Pdbg Recoverable Callout Handling For L3FIR With Threshold 32 214 [Documentation] Verify recoverable callout handling for L3FIR 215 ... with threshold 32 using pdbg tool. 216 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_32 217 218 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV32 219 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 220 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th32 221 Inject Recoverable Error With Threshold Limit 222 ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} 223 224Verify Pdbg Unrecoverable Callout Handling For L3FIR 225 [Documentation] Verify unrecoverable callout handling for L3FIR 226 ... with pdbg tool. 227 [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_L3FIR 228 229 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_UE 230 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 231 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_ue 232 Inject Unrecoverable Error BMC 233 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 234 235# On chip controller (OCCFIR) related error injection. 236 237Verify Pdbg Recoverable Callout Handling For OCC With Threshold 1 238 [Documentation] Verify recoverable callout handling for OCCFIR 239 ... with threshold 1 using pdbg tool. 240 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_OCC_With_Threshold_1 241 242 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OCCFIR_RECV1 243 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}occfir_th1 244 Inject Recoverable Error With Threshold Limit 245 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 246 247# Core management engine (CMEFIR) related error injection. 248 249Verify Pdbg Recoverable Callout Handling For CMEFIR With Threshold 1 250 [Documentation] Verify recoverable callout handling for CMEFIR 251 ... with threshold 1 using pdbg tool. 252 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CMEFIR_With_Threshold_1 253 254 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CMEFIR_RECV1 255 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 256 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cmefir_th1 257 Inject Recoverable Error With Threshold Limit 258 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 259 260# Nest control vunit (NCUFIR) related error injection. 261 262Verify Pdbg Recoverable Callout Handling For NCUFIR With Threshold 1 263 [Documentation] Verify recoverable callout handling for NCUFIR 264 ... with threshold 1 using pdbg tool. 265 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NCUFIR_With_Threshold_1 266 267 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_RECV1 268 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 269 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_th1 270 Inject Recoverable Error With Threshold Limit 271 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 272 273Verify Pdbg Unrecoverable Callout Handling For NCUFIR 274 [Documentation] Verify unrecoverable callout handling for NCUFIR 275 ... with pdbg tool. 276 [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_NCUFIR 277 278 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_UE 279 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 280 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_ue 281 Inject Unrecoverable Error BMC 282 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 283 284# Core FIR related error injection. 285 286Verify Pdbg Recoverable Callout Handling For CoreFIR With Threshold 5 287 [Documentation] Verify recoverable callout handling for CoreFIR 288 ... with threshold 5 using pdbg tool. 289 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CoreFIR_With_Threshold_5 290 291 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV5 292 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 293 Disable CPU States Through HOST 294 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th5 295 Inject Recoverable Error With Threshold Limit 296 ... BMC ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path} 297 298Verify Pdbg Recoverable Callout Handling For CoreFIR With Threshold 1 299 [Documentation] Verify recoverable callout handling for CoreFIR 300 ... with threshold 1 using pdbg tool. 301 [Tags] Verify_Pdbg_Recoverable_Callout_CoreFIR_Handling_For_With_Threshold_1 302 303 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV1 304 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 305 Disable CPU States Through HOST 306 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th1 307 Inject Recoverable Error With Threshold Limit 308 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 309 310Verify Pdbg Unrecoverable Callout Handling For CoreFIR 311 [Documentation] Verify unrecoverable callout handling for CoreFIR 312 ... with pdbg tool. 313 [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_CoreFIR 314 315 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_UE 316 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 317 Disable CPU States Through HOST 318 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_ue 319 Inject Unrecoverable Error BMC 320 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 321 322Verify Pdbg Recoverable Callout Handling For EQFIR With Threshold 32 323 [Documentation] Verify recoverable callout handling for L3FIR 324 ... with threshold 32 using pdbg tool. 325 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_EQFIR_With_Threshold_32 326 327 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} EQFIR_RECV32 328 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EQ 329 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}eqfir_th32 330 Inject Recoverable Error With Threshold Limit 331 ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} 332