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