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