Lines Matching refs:ch_flt

118 static void cpu_log_diag_info(ch_async_flt_t *ch_flt);
119 static void cpu_queue_one_event(ch_async_flt_t *ch_flt, char *reason,
121 static int cpu_flt_in_memory_one_event(ch_async_flt_t *ch_flt,
125 static int cpu_ecache_line_valid(ch_async_flt_t *ch_flt);
133 static void cpu_flush_ecache_line(ch_async_flt_t *ch_flt);
165 static void cpu_dcache_parity_info(ch_async_flt_t *ch_flt);
166 static void cpu_dcache_parity_check(ch_async_flt_t *ch_flt, int index);
167 static void cpu_record_dc_data_parity(ch_async_flt_t *ch_flt,
169 static void cpu_icache_parity_info(ch_async_flt_t *ch_flt);
170 static void cpu_icache_parity_check(ch_async_flt_t *ch_flt, int index);
171 static void cpu_pcache_parity_info(ch_async_flt_t *ch_flt);
172 static void cpu_pcache_parity_check(ch_async_flt_t *ch_flt, int index);
1189 ch_async_flt_t ch_flt; in cpu_check_cpu_logout() local
1196 bzero(&ch_flt, sizeof (ch_async_flt_t)); in cpu_check_cpu_logout()
1202 ch_flt.afar2 = clop->clo_data.chd_afar2; in cpu_check_cpu_logout()
1214 aflt = (struct async_flt *)&ch_flt; in cpu_check_cpu_logout()
1216 ch_flt.afsr_ext = t_afsr_ext; in cpu_check_cpu_logout()
1217 ch_flt.afsr_errs = t_afsr_errs; in cpu_check_cpu_logout()
1234 if (cpu_queue_events(&ch_flt, NULL, t_afsr_errs, clop) == 0) { in cpu_check_cpu_logout()
1235 ch_flt.flt_type = CPU_INV_AFSR; in cpu_check_cpu_logout()
1237 (void *)&ch_flt, sizeof (ch_async_flt_t), ue_queue, in cpu_check_cpu_logout()
1343 ch_async_flt_t ch_flt; in cpu_log_fast_ecc_error() local
1348 bzero(&ch_flt, sizeof (ch_async_flt_t)); in cpu_log_fast_ecc_error()
1354 ch_flt.flt_diag_data.chd_afar = LOGOUT_INVALID; in cpu_log_fast_ecc_error()
1361 ch_flt.afar2 = cpu_error_regs.afar2; in cpu_log_fast_ecc_error()
1368 ch_flt.afar2 = clop->clo_data.chd_afar2; in cpu_log_fast_ecc_error()
1382 aflt = (struct async_flt *)&ch_flt; in cpu_log_fast_ecc_error()
1384 ch_flt.afsr_ext = t_afsr_ext; in cpu_log_fast_ecc_error()
1385 ch_flt.afsr_errs = t_afsr_errs; in cpu_log_fast_ecc_error()
1446 if (cpu_queue_events(&ch_flt, pr_reason, t_afsr_errs, clop) == 0 || in cpu_log_fast_ecc_error()
1448 ch_flt.flt_type = CPU_INV_AFSR; in cpu_log_fast_ecc_error()
1450 (void *)&ch_flt, sizeof (ch_async_flt_t), ue_queue, in cpu_log_fast_ecc_error()
1476 if (clear_errors(&ch_flt)) { in cpu_log_fast_ecc_error()
1477 aflt->flt_panic |= ((ch_flt.afsr_errs & in cpu_log_fast_ecc_error()
1479 (void) cpu_queue_events(&ch_flt, pr_reason, ch_flt.afsr_errs, in cpu_log_fast_ecc_error()
1633 ch_async_flt_t ch_flt; in cpu_disrupting_error() local
1639 bzero(&ch_flt, sizeof (ch_async_flt_t)); in cpu_disrupting_error()
1647 ch_flt.flt_diag_data.chd_afar = LOGOUT_INVALID; in cpu_disrupting_error()
1654 ch_flt.afar2 = cpu_error_regs.afar2; in cpu_disrupting_error()
1662 ch_flt.afar2 = clop->clo_data.chd_afar2; in cpu_disrupting_error()
1676 aflt = (struct async_flt *)&ch_flt; in cpu_disrupting_error()
1677 ch_flt.afsr_ext = t_afsr_ext; in cpu_disrupting_error()
1678 ch_flt.afsr_errs = t_afsr_errs; in cpu_disrupting_error()
1693 ch_flt.flt_trapped_ce = CE_CEEN_DEFER | CE_CEEN_TRAPPED; in cpu_disrupting_error()
1695 ch_flt.flt_trapped_ce = CE_CEEN_NODEFER | CE_CEEN_TRAPPED; in cpu_disrupting_error()
1700 cpu_log_and_clear_ce(&ch_flt); in cpu_disrupting_error()
1710 if (ch_flt.flt_trapped_ce & CE_CEEN_NODEFER) in cpu_disrupting_error()
1712 if (clear_errors(&ch_flt)) { in cpu_disrupting_error()
1713 (void) cpu_queue_events(&ch_flt, pr_reason, ch_flt.afsr_errs, in cpu_disrupting_error()
1741 ch_async_flt_t ch_flt; in cpu_deferred_error() local
1763 bzero(&ch_flt, sizeof (ch_async_flt_t)); in cpu_deferred_error()
1771 ch_flt.flt_diag_data.chd_afar = LOGOUT_INVALID; in cpu_deferred_error()
1778 ch_flt.afar2 = cpu_error_regs.afar2; in cpu_deferred_error()
1787 ch_flt.afar2 = clop->clo_data.chd_afar2; in cpu_deferred_error()
1811 aflt = (struct async_flt *)&ch_flt; in cpu_deferred_error()
1815 ch_flt.afsr_ext = t_afsr_ext; in cpu_deferred_error()
1816 ch_flt.afsr_errs = t_afsr_errs; in cpu_deferred_error()
1917 cpu_queue_events(&ch_flt, pr_reason, log_afsr, clop) == 0) || in cpu_deferred_error()
1919 ch_flt.flt_type = CPU_INV_AFSR; in cpu_deferred_error()
1921 (void *)&ch_flt, sizeof (ch_async_flt_t), ue_queue, in cpu_deferred_error()
1961 if (aflt->flt_panic && cpu_flt_in_memory(&ch_flt, C_AFSR_UE)) { in cpu_deferred_error()
1970 cpu_error_ecache_flush(&ch_flt); in cpu_deferred_error()
1999 if (aflt->flt_panic && cpu_flt_in_memory(&ch_flt, C_AFSR_UE)) { in cpu_deferred_error()
2009 cpu_error_ecache_flush(&ch_flt); in cpu_deferred_error()
2025 if (clear_errors(&ch_flt)) { in cpu_deferred_error()
2030 if (cpu_check_secondary_errors(&ch_flt, t_afsr_errs, in cpu_deferred_error()
2032 aflt->flt_panic |= ((ch_flt.afsr_errs & in cpu_deferred_error()
2035 (void) cpu_queue_events(&ch_flt, pr_reason, ch_flt.afsr_errs, in cpu_deferred_error()
2086 ch_async_flt_t ch_flt; in cpu_parity_error() local
2106 bzero(&ch_flt, sizeof (ch_async_flt_t)); in cpu_parity_error()
2107 aflt = (struct async_flt *)&ch_flt; in cpu_parity_error()
2119 ch_flt.flt_type = iparity ? CPU_IC_PARITY : CPU_DC_PARITY; in cpu_parity_error()
2122 cpu_icache_parity_info(&ch_flt); in cpu_parity_error()
2123 if (ch_flt.parity_data.ipe.cpl_off != -1) in cpu_parity_error()
2125 else if (ch_flt.parity_data.ipe.cpl_way != -1) in cpu_parity_error()
2131 cpu_dcache_parity_info(&ch_flt); in cpu_parity_error()
2132 if (ch_flt.parity_data.dpe.cpl_off != -1) { in cpu_parity_error()
2138 way = ch_flt.parity_data.dpe.cpl_way; in cpu_parity_error()
2180 } else if (ch_flt.parity_data.dpe.cpl_way != -1) in cpu_parity_error()
2189 cpu_pcache_parity_info(&ch_flt); in cpu_parity_error()
2190 if (ch_flt.parity_data.dpe.cpl_cache == CPU_PC_PARITY) { in cpu_parity_error()
2198 cpu_errorq_dispatch(error_class, (void *)&ch_flt, in cpu_parity_error()
2284 cpu_async_log_ic_parity_err(ch_async_flt_t *ch_flt) in cpu_async_log_ic_parity_err() argument
2286 int way = ch_flt->parity_data.ipe.cpl_way; in cpu_async_log_ic_parity_err()
2287 int offset = ch_flt->parity_data.ipe.cpl_off; in cpu_async_log_ic_parity_err()
2289 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_async_log_ic_parity_err()
2296 tag_index = ch_flt->parity_data.ipe.cpl_ic[way].ic_idx; in cpu_async_log_ic_parity_err()
2298 ch_flt->parity_data.ipe.cpl_ic[way].ic_way = in cpu_async_log_ic_parity_err()
2301 ch_flt->parity_data.ipe.cpl_ic[way].ic_way = in cpu_async_log_ic_parity_err()
2303 ch_flt->parity_data.ipe.cpl_ic[way].ic_logflag = in cpu_async_log_ic_parity_err()
2311 tag_index = ch_flt->parity_data.ipe.cpl_ic[way].ic_idx; in cpu_async_log_ic_parity_err()
2313 ch_flt->parity_data.ipe.cpl_ic[way].ic_way = in cpu_async_log_ic_parity_err()
2316 ch_flt->parity_data.ipe.cpl_ic[way].ic_way = in cpu_async_log_ic_parity_err()
2318 ch_flt->parity_data.ipe.cpl_ic[way].ic_logflag = in cpu_async_log_ic_parity_err()
2329 cpu_async_log_dc_parity_err(ch_async_flt_t *ch_flt) in cpu_async_log_dc_parity_err() argument
2331 int way = ch_flt->parity_data.dpe.cpl_way; in cpu_async_log_dc_parity_err()
2332 int offset = ch_flt->parity_data.dpe.cpl_off; in cpu_async_log_dc_parity_err()
2343 if (ch_flt->parity_data.dpe.cpl_cache == CPU_PC_PARITY) { in cpu_async_log_dc_parity_err()
2344 tag_index = ch_flt->parity_data.dpe.cpl_pc[way].pc_idx; in cpu_async_log_dc_parity_err()
2345 ch_flt->parity_data.dpe.cpl_pc[way].pc_way = in cpu_async_log_dc_parity_err()
2347 ch_flt->parity_data.dpe.cpl_pc[way].pc_logflag = in cpu_async_log_dc_parity_err()
2350 tag_index = ch_flt->parity_data.dpe.cpl_dc[way].dc_idx; in cpu_async_log_dc_parity_err()
2351 ch_flt->parity_data.dpe.cpl_dc[way].dc_way = in cpu_async_log_dc_parity_err()
2353 ch_flt->parity_data.dpe.cpl_dc[way].dc_logflag = in cpu_async_log_dc_parity_err()
2360 tag_index = ch_flt->parity_data.dpe.cpl_dc[way].dc_idx; in cpu_async_log_dc_parity_err()
2361 ch_flt->parity_data.dpe.cpl_dc[way].dc_way = in cpu_async_log_dc_parity_err()
2363 ch_flt->parity_data.dpe.cpl_dc[way].dc_logflag = in cpu_async_log_dc_parity_err()
2382 ch_async_flt_t *ch_flt = (ch_async_flt_t *)flt; in cpu_async_log_err() local
2387 switch (ch_flt->flt_type) { in cpu_async_log_err()
2407 cpu_page_retire(ch_flt); in cpu_async_log_err()
2431 if ((ch_flt->afsr_errs & in cpu_async_log_err()
2436 if (ch_flt->flt_trapped_ce & CE_CEEN_DEFER) { in cpu_async_log_err()
2506 if (!panicstr && (ch_flt->afsr_errs & in cpu_async_log_err()
2541 (void *)aflt, ch_flt->flt_type); in cpu_async_log_err()
2550 cpu_page_retire(ch_flt); in cpu_async_log_err()
2569 cpu_page_retire(ch_async_flt_t *ch_flt) in cpu_page_retire() argument
2571 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_page_retire()
2608 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; in cpu_log_err() local
2610 if (cpu_error_is_ecache_data(aflt->flt_inst, ch_flt->flt_bit)) in cpu_log_err()
2618 ch_flt->afsr_errs, ch_flt->flt_bit); in cpu_log_err()
2624 afar_status = afsr_to_afar_status(ch_flt->afsr_errs, in cpu_log_err()
2625 ch_flt->flt_bit); in cpu_log_err()
2630 aflt->flt_synd, ch_flt->flt_bit); in cpu_log_err()
2652 ch_flt->flt_bit); in cpu_log_err()
2659 cpu_log_diag_info(ch_flt); in cpu_log_err()
2669 if (ch_flt->flt_trapped_ce & CE_CEEN_DEFER) { in cpu_log_err()
3377 ch_async_flt_t ch_flt; in cpu_async_panic_callb() local
3389 bzero(&ch_flt, sizeof (ch_async_flt_t)); in cpu_async_panic_callb()
3390 aflt = (struct async_flt *)&ch_flt; in cpu_async_panic_callb()
3400 ch_flt.afsr_ext = cpu_error_regs.afsr_ext; in cpu_async_panic_callb()
3401 ch_flt.afsr_errs = afsr_errs; in cpu_async_panic_callb()
3403 ch_flt.afar2 = cpu_error_regs.afar2; in cpu_async_panic_callb()
3405 (void) cpu_queue_events(&ch_flt, NULL, afsr_errs, NULL); in cpu_async_panic_callb()
3709 clear_errors(ch_async_flt_t *ch_flt) in clear_errors() argument
3711 struct async_flt *aflt = (struct async_flt *)ch_flt; in clear_errors()
3716 if (ch_flt != NULL) { in clear_errors()
3719 ch_flt->afsr_ext = cpu_error_regs.afsr_ext; in clear_errors()
3720 ch_flt->afsr_errs = (cpu_error_regs.afsr & C_AFSR_ALL_ERRS) | in clear_errors()
3723 ch_flt->afar2 = cpu_error_regs.afar2; in clear_errors()
3834 cpu_flush_ecache_line(ch_async_flt_t *ch_flt) in cpu_flush_ecache_line() argument
3836 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_flush_ecache_line()
3876 cpu_ecache_line_valid(ch_async_flt_t *ch_flt) in cpu_ecache_line_valid() argument
3878 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_ecache_line_valid()
3881 ch_ec_data_t *ecp = &ch_flt->flt_diag_data.chd_ec_data[0]; in cpu_ecache_line_valid()
3970 cpu_dcache_parity_info(ch_async_flt_t *ch_flt) in cpu_dcache_parity_info() argument
3979 if (ch_flt->parity_data.dpe.cpl_lcnt == 0) { in cpu_dcache_parity_info()
3980 ch_flt->parity_data.dpe.cpl_way = -1; in cpu_dcache_parity_info()
3981 ch_flt->parity_data.dpe.cpl_off = -1; in cpu_dcache_parity_info()
3984 cpu_dcache_parity_check(ch_flt, index); in cpu_dcache_parity_info()
3991 cpu_dcache_parity_check(ch_async_flt_t *ch_flt, int index) in cpu_dcache_parity_check() argument
3997 ch_dc_data_t *dcp = &ch_flt->parity_data.dpe.cpl_dc[0]; in cpu_dcache_parity_check()
4017 if (ch_flt->parity_data.dpe.cpl_lcnt == 0) { in cpu_dcache_parity_check()
4018 ch_flt->parity_data.dpe.cpl_way = way; in cpu_dcache_parity_check()
4019 ch_flt->parity_data.dpe.cpl_cache = in cpu_dcache_parity_check()
4021 ch_flt->parity_data.dpe.cpl_tag |= CHP_DC_TAG; in cpu_dcache_parity_check()
4025 ch_flt->parity_data.dpe.cpl_tag |= in cpu_dcache_parity_check()
4027 ch_flt->parity_data.dpe.cpl_lcnt++; in cpu_dcache_parity_check()
4033 ch_flt->parity_data.dpe.cpl_lcnt++; in cpu_dcache_parity_check()
4052 ch_flt, dcp, &tmp_dcp, way, in cpu_dcache_parity_check()
4073 cpu_record_dc_data_parity(ch_flt, dcp, in cpu_dcache_parity_check()
4082 cpu_record_dc_data_parity(ch_async_flt_t *ch_flt, in cpu_record_dc_data_parity() argument
4089 if (ch_flt->parity_data.dpe.cpl_lcnt == 0) { in cpu_record_dc_data_parity()
4090 ch_flt->parity_data.dpe.cpl_way = way; in cpu_record_dc_data_parity()
4091 ch_flt->parity_data.dpe.cpl_cache = CPU_DC_PARITY; in cpu_record_dc_data_parity()
4092 ch_flt->parity_data.dpe.cpl_off = word * 8; in cpu_record_dc_data_parity()
4095 ch_flt->parity_data.dpe.cpl_lcnt++; in cpu_record_dc_data_parity()
4104 cpu_icache_parity_info(ch_async_flt_t *ch_flt) in cpu_icache_parity_info() argument
4119 ch_flt->parity_data.ipe.cpl_way = -1; in cpu_icache_parity_info()
4120 ch_flt->parity_data.ipe.cpl_off = -1; in cpu_icache_parity_info()
4123 cpu_icache_parity_check(ch_flt, index); in cpu_icache_parity_info()
4130 cpu_icache_parity_check(ch_async_flt_t *ch_flt, int index) in cpu_icache_parity_check() argument
4136 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_icache_parity_check()
4137 ch_ic_data_t *icp = &ch_flt->parity_data.ipe.cpl_ic[0]; in cpu_icache_parity_check()
4194 ch_flt->parity_data.ipe.cpl_way = way; in cpu_icache_parity_check()
4195 ch_flt->parity_data.ipe.cpl_tag |= CHP_IC_TAG; in cpu_icache_parity_check()
4199 ch_flt->parity_data.ipe.cpl_tag |= in cpu_icache_parity_check()
4201 ch_flt->parity_data.ipe.cpl_lcnt++; in cpu_icache_parity_check()
4205 ch_flt->parity_data.ipe.cpl_lcnt++; in cpu_icache_parity_check()
4227 ch_flt->parity_data.ipe.cpl_way = way; in cpu_icache_parity_check()
4228 ch_flt->parity_data.ipe.cpl_off = in cpu_icache_parity_check()
4231 ch_flt->parity_data.ipe.cpl_lcnt++; in cpu_icache_parity_check()
4242 cpu_pcache_parity_info(ch_async_flt_t *ch_flt) in cpu_pcache_parity_info() argument
4251 if (ch_flt->parity_data.dpe.cpl_lcnt == 0) { in cpu_pcache_parity_info()
4252 ch_flt->parity_data.dpe.cpl_way = -1; in cpu_pcache_parity_info()
4253 ch_flt->parity_data.dpe.cpl_off = -1; in cpu_pcache_parity_info()
4256 cpu_pcache_parity_check(ch_flt, index); in cpu_pcache_parity_info()
4263 cpu_pcache_parity_check(ch_async_flt_t *ch_flt, int index) in cpu_pcache_parity_check() argument
4268 ch_pc_data_t *pcp = &ch_flt->parity_data.dpe.cpl_pc[0]; in cpu_pcache_parity_check()
4303 if (ch_flt->parity_data.dpe.cpl_lcnt == 0) { in cpu_pcache_parity_check()
4304 ch_flt->parity_data.dpe.cpl_way = way; in cpu_pcache_parity_check()
4305 ch_flt->parity_data.dpe.cpl_cache = in cpu_pcache_parity_check()
4307 ch_flt->parity_data.dpe.cpl_off = in cpu_pcache_parity_check()
4312 ch_flt->parity_data.dpe.cpl_lcnt++; in cpu_pcache_parity_check()
4325 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; in cpu_payload_add_dcache() local
4338 if (ch_flt->flt_type == CPU_DC_PARITY) in cpu_payload_add_dcache()
4343 if (ch_flt->flt_type == CPU_DC_PARITY) in cpu_payload_add_dcache()
4344 dcp = &ch_flt->parity_data.dpe.cpl_dc[i]; in cpu_payload_add_dcache()
4346 dcp = &ch_flt->flt_diag_data.chd_dc_data; in cpu_payload_add_dcache()
4372 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; in cpu_payload_add_icache() local
4385 if (ch_flt->flt_type == CPU_IC_PARITY) in cpu_payload_add_icache()
4390 if (ch_flt->flt_type == CPU_IC_PARITY) in cpu_payload_add_icache()
4391 icp = &ch_flt->parity_data.ipe.cpl_ic[i]; in cpu_payload_add_icache()
4393 icp = &ch_flt->flt_diag_data.chd_ic_data; in cpu_payload_add_icache()
4421 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; in cpu_payload_add_ecache() local
4432 ecp = &ch_flt->flt_diag_data.chd_ec_data[i]; in cpu_payload_add_ecache()
4464 ecp = &ch_flt->flt_diag_data.chd_l2_data[i]; in cpu_payload_add_ecache()
4508 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; in cpu_error_to_resource_type() local
4510 switch (ch_flt->flt_type) { in cpu_error_to_resource_type()
4522 ch_flt->flt_bit)) in cpu_error_to_resource_type()
4555 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; in cpu_payload_add_aflt() local
4567 DATA_TYPE_UINT64, ch_flt->afsr_ext, NULL); in cpu_payload_add_aflt()
4571 *afar_status = afsr_to_afar_status(ch_flt->afsr_errs, in cpu_payload_add_aflt()
4572 ch_flt->flt_bit); in cpu_payload_add_aflt()
4611 ch_flt->afsr_errs, ch_flt->flt_bit); in cpu_payload_add_aflt()
4647 (uint32_t *)&ch_flt->flt_fpdata, NULL); in cpu_payload_add_aflt()
4691 aflt->flt_synd, ch_flt->flt_bit); in cpu_payload_add_aflt()
4730 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; in cpu_ereport_init() local
4731 ch_ec_data_t *ecp = &ch_flt->flt_diag_data.chd_ec_data[0]; in cpu_ereport_init()
4732 ch_ec_data_t *l2p = &ch_flt->flt_diag_data.chd_l2_data[0]; in cpu_ereport_init()
4752 cpu_flt_in_memory(ch_async_flt_t *ch_flt, uint64_t t_afsr_bit) in cpu_flt_in_memory() argument
4754 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_flt_in_memory()
4757 afsr_to_afar_status(ch_flt->afsr_errs, t_afsr_bit) == in cpu_flt_in_memory()
4767 cpu_flt_in_memory_one_event(ch_async_flt_t *ch_flt, uint64_t t_afsr_bit) in cpu_flt_in_memory_one_event() argument
4769 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_flt_in_memory_one_event()
4777 afsr_errs = ch_flt->afsr_errs; in cpu_flt_in_memory_one_event()
4814 cpu_log_diag_info(ch_async_flt_t *ch_flt) in cpu_log_diag_info() argument
4816 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_log_diag_info()
4817 ch_dc_data_t *dcp = &ch_flt->flt_diag_data.chd_dc_data; in cpu_log_diag_info()
4818 ch_ic_data_t *icp = &ch_flt->flt_diag_data.chd_ic_data; in cpu_log_diag_info()
4819 ch_ec_data_t *ecp = &ch_flt->flt_diag_data.chd_ec_data[0]; in cpu_log_diag_info()
4827 if (ch_flt->flt_diag_data.chd_afar == LOGOUT_INVALID || in cpu_log_diag_info()
4828 ch_flt->flt_data_incomplete) in cpu_log_diag_info()
4833 i = cpu_ecache_line_valid(ch_flt); in cpu_log_diag_info()
4844 pn_cpu_log_diag_l2_info(ch_flt); in cpu_log_diag_info()
4925 cpu_queue_one_event(ch_async_flt_t *ch_flt, char *reason, in cpu_queue_one_event() argument
4928 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_queue_one_event()
4935 ch_flt->flt_bit = eccp->ec_afsr_bit; in cpu_queue_one_event()
4936 ch_flt->flt_type = eccp->ec_flt_type; in cpu_queue_one_event()
4938 ch_flt->flt_diag_data = *cdp; in cpu_queue_one_event()
4940 ch_flt->flt_diag_data.chd_afar = LOGOUT_INVALID; in cpu_queue_one_event()
4942 cpu_flt_in_memory_one_event(ch_flt, ch_flt->flt_bit); in cpu_queue_one_event()
4944 if (ch_flt->flt_bit & C_AFSR_MSYND_ERRS) in cpu_queue_one_event()
4946 else if (ch_flt->flt_bit & (C_AFSR_ESYND_ERRS | C_AFSR_EXT_ESYND_ERRS)) in cpu_queue_one_event()
4956 (void *)ch_flt, sizeof (ch_async_flt_t), ue_queue, in cpu_queue_one_event()
4960 (void *)ch_flt, sizeof (ch_async_flt_t), ce_queue, in cpu_queue_one_event()
4970 cpu_queue_events(ch_async_flt_t *ch_flt, char *reason, uint64_t t_afsr_errs, in cpu_queue_events() argument
4973 struct async_flt *aflt = (struct async_flt *)ch_flt; in cpu_queue_events()
4980 uint64_t primary_afsr_ext = ch_flt->afsr_ext; in cpu_queue_events()
4981 uint64_t primary_afsr_errs = ch_flt->afsr_errs; in cpu_queue_events()
5000 aflt->flt_addr = ch_flt->flt_sdw_afar = cdp->chd_afar; in cpu_queue_events()
5001 aflt->flt_stat = ch_flt->flt_sdw_afsr = cdp->chd_afsr; in cpu_queue_events()
5002 ch_flt->afsr_ext = ch_flt->flt_sdw_afsr_ext = cdp->chd_afsr_ext; in cpu_queue_events()
5003 ch_flt->afsr_errs = (cdp->chd_afsr_ext & C_AFSR_EXT_ALL_ERRS) | in cpu_queue_events()
5011 (primary_afsr_errs != ch_flt->afsr_errs)) { in cpu_queue_events()
5023 (ch_flt->afsr_errs & t_afsr_errs)) && in cpu_queue_events()
5025 cpu_queue_one_event(ch_flt, reason, eccp, cdp); in cpu_queue_events()
5062 aflt->flt_addr = ch_flt->afar2; in cpu_queue_events()
5072 ch_flt->afsr_ext = primary_afsr_ext; in cpu_queue_events()
5073 ch_flt->afsr_errs = primary_afsr_errs; in cpu_queue_events()
5074 cpu_queue_one_event(ch_flt, reason, eccp, cdp); in cpu_queue_events()
5096 aflt->flt_addr = ch_flt->afar2; in cpu_queue_events()
5106 ch_flt->afsr_ext = primary_afsr_ext; in cpu_queue_events()
5107 ch_flt->afsr_errs = primary_afsr_errs; in cpu_queue_events()
5108 cpu_queue_one_event(ch_flt, reason, eccp, cdp); in cpu_queue_events()
6320 ch_async_flt_t ch_flt; local
6324 bzero(&ch_flt, sizeof (ch_async_flt_t));
6325 ch_flt.flt_trapped_ce = flag;
6326 aflt = (struct async_flt *)&ch_flt;
6328 ch_flt.afsr_ext = cpu_error_regs->afsr_ext;
6329 ch_flt.afsr_errs = (cpu_error_regs->afsr_ext & C_AFSR_EXT_ALL_ERRS) |
6333 ch_flt.afar2 = cpu_error_regs->afar2;
6339 cpu_log_and_clear_ce(&ch_flt);
6344 if (clear_errors(&ch_flt)) {
6346 (void) cpu_queue_events(&ch_flt, pr_reason, ch_flt.afsr_errs,
6355 cpu_log_and_clear_ce(ch_async_flt_t *ch_flt) argument
6363 aflt = (struct async_flt *)ch_flt;
6365 afsr_errs = ch_flt->afsr_errs;
6379 ch_flt->flt_diag_data.chd_afar = LOGOUT_INVALID;
6384 if (clop && ch_flt->flt_trapped_ce & CE_CEEN_TIMEOUT) {
6399 ch_flt->flt_data_incomplete = 1;
6421 (cpu_flt_in_memory(ch_flt, (afsr & C_AFSR_CE)) ||
6422 cpu_flt_in_memory(ch_flt, (afsr & C_AFSR_RCE)))) {
6432 if (cpu_flt_in_memory(ch_flt, (afsr & C_AFSR_CE)) ||
6433 cpu_flt_in_memory(ch_flt, (afsr & C_AFSR_EMC))) {
6449 if (cpu_queue_events(ch_flt, pr_reason, afsr_errs, clop) == 0 ||
6451 ch_flt->flt_type = CPU_INV_AFSR;
6453 (void *)ch_flt, sizeof (ch_async_flt_t), ue_queue,
6476 cpu_error_ecache_flush(ch_flt);
6485 cpu_error_ecache_flush_required(ch_async_flt_t *ch_flt) argument
6489 uint64_t afsr_errs = ch_flt->afsr_errs;
6491 aflt = (struct async_flt *)ch_flt;
6576 cpu_error_ecache_flush(ch_async_flt_t *ch_flt) argument
6579 cpu_error_ecache_flush_required(ch_flt);
6587 cpu_flush_ecache_line(ch_flt);
6671 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt; local
6760 aflt->flt_synd, ch_flt->flt_bit);
6766 plat_ecc_ch_flt.ecaf_sdw_afar = ch_flt->flt_sdw_afar;
6767 plat_ecc_ch_flt.ecaf_sdw_afsr = ch_flt->flt_sdw_afsr;
6768 plat_ecc_ch_flt.ecaf_afsr_ext = ch_flt->afsr_ext;
6770 ch_flt->flt_sdw_afsr_ext;
6988 ch_async_flt_t ch_flt; local
6989 struct async_flt *aflt = (struct async_flt *)&ch_flt;
7008 bzero(&ch_flt, sizeof (ch_async_flt_t));
7014 ch_flt.flt_type = CPU_FPUERR;
7037 ch_flt.flt_fpdata[i] = *sip ^ *cip;
7039 cpu_errorq_dispatch(FM_EREPORT_CPU_USIII_FPU_HWCOPY, (void *)&ch_flt,
7150 cpu_check_secondary_errors(ch_async_flt_t *ch_flt, uint64_t t_afsr_errs, argument
7155 struct async_flt *aflt = (struct async_flt *)ch_flt;
7167 if ((ch_flt->afsr_errs &
7187 if ((ch_flt->afsr_errs & ~(C_AFSR_EDU|C_AFSR_WDU)) != 0)
7219 ch_async_flt_t *ch_flt = (ch_async_flt_t *)aflt;
7221 switch (ch_flt->flt_bit) {
7275 switch (ch_flt->flt_type) {
7281 if (ch_flt->parity_data.dpe.cpl_cache ==