blob: fc83939030a8103c5315f278eddd86a2a27a3610 [file] [log] [blame]
Sridevi Ramesh3ed96342018-01-15 05:14:37 -06001*** Settings ***
2Documentation This suite tests checkstop operations through HOST.
George Keishingbba33902018-06-06 13:39:27 -05003Resource ../../lib/utils.robot
4Resource ../../lib/openbmc_ffdc.robot
5Resource ../../lib/ras/host_utils.robot
Sandhya Somashekar839a0c22019-01-31 05:05:43 -06006Resource ../../lib/resource.robot
George Keishingbba33902018-06-06 13:39:27 -05007Resource ../../lib/state_manager.robot
8Resource ../../lib/openbmc_ffdc_methods.robot
9Resource ../../lib/boot_utils.robot
10Variables ../../lib/ras/variables.py
11Variables ../../data/variables.py
12Resource ../../lib/dump_utils.robot
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060013Resource ../../openpower/ras/ras_utils.robot
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060014
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060039 Inject Recoverable Error With Threshold Limit
40 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060041
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060049 Inject Recoverable Error With Threshold Limit
50 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060051
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -050052Verify 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
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060061# 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} MCS_RECV1
69 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060070 Inject Recoverable Error With Threshold Limit
71 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060072
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -050073Verify 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} MCS_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
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060082# 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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060091 Inject Recoverable Error With Threshold Limit
92 ... HOST ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060093
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600101 Inject Recoverable Error With Threshold Limit
102 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600103
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500104Verify 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
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600113
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600123 Inject Recoverable Error With Threshold Limit
124 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600125
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600135 Inject Recoverable Error With Threshold Limit
136 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600137
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600147 Inject Recoverable Error With Threshold Limit
148 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600149
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600158 Inject Recoverable Error With Threshold Limit
159 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600160
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500161Verify 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}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600169
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600180 Inject Recoverable Error With Threshold Limit
181 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600182
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600191 Inject Recoverable Error With Threshold Limit
192 ... HOST ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600193
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500194Verify 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
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600204
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600215 Inject Recoverable Error With Threshold Limit
216 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600217
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600226 Inject Recoverable Error With Threshold Limit
227 ... HOST ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600228
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500229Verify 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
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600239
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600249 Inject Recoverable Error With Threshold Limit
250 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600251
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600262 Inject Recoverable Error With Threshold Limit
263 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600264
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600275 Inject Recoverable Error With Threshold Limit
276 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600277
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500278Verify 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
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600288
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600300 Inject Recoverable Error With Threshold Limit
301 ... HOST ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600302
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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600312 Inject Recoverable Error With Threshold Limit
313 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600314
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500315Verify 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
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600326Verify 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
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600334 Inject Recoverable Error With Threshold Limit
335 ... HOST ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}