Lines Matching defs:softsp

83 sysio_ue_intr(struct sbus_soft_state *softsp);
86 sysio_ce_intr(struct sbus_soft_state *softsp);
89 sbus_err_intr(struct sbus_soft_state *softsp);
98 sbus_clear_intr(struct sbus_soft_state *softsp, uint64_t *pafsr);
101 sbus_log_error(struct sbus_soft_state *softsp, uint64_t *pafsr, uint64_t *pafar,
106 sbus_check_bto(struct sbus_soft_state *softsp);
112 sbus_ctrl_ecc_err(struct sbus_soft_state *softsp);
115 sysio_dis_err(struct sbus_soft_state *softsp);
118 sysio_init_err(struct sbus_soft_state *softsp);
121 sysio_thermal_warn_intr(struct sbus_soft_state *softsp);
126 sysio_err_init(struct sbus_soft_state *softsp, caddr_t address)
144 softsp->sysio_ecc_reg = REG_ADDR(address, OFF_SYSIO_ECC_REGS);
145 softsp->sysio_ue_reg = REG_ADDR(address, OFF_SYSIO_UE_REGS);
146 softsp->sysio_ce_reg = REG_ADDR(address, OFF_SYSIO_CE_REGS);
147 softsp->sbus_err_reg = REG_ADDR(address, OFF_SBUS_ERR_REGS);
159 if (ddi_getproplen(DDI_DEV_T_ANY, softsp->dip,
164 softsp->dip, "interrupt-priorities",
169 (void) ddi_add_intr(softsp->dip, 0, NULL, NULL,
170 (uint_t (*)())sysio_ue_intr, (caddr_t)softsp);
171 (void) ddi_add_intr(softsp->dip, 1, NULL, NULL,
172 (uint_t (*)())sysio_ce_intr, (caddr_t)softsp);
173 (void) ddi_add_intr(softsp->dip, 2, NULL, NULL,
174 (uint_t (*)())sbus_err_intr, (caddr_t)softsp);
180 thermal_interrupt_enabled = ddi_getprop(DDI_DEV_T_ANY, softsp->dip,
184 (void) ddi_add_intr(softsp->dip, 4, NULL, NULL,
185 (uint_t (*)())sysio_thermal_warn_intr, (caddr_t)softsp);
188 bus_func_register(BF_TYPE_UE, (busfunc_t)sbus_ctrl_ecc_err, softsp);
189 bus_func_register(BF_TYPE_ERRDIS, (busfunc_t)sysio_dis_err, softsp);
191 (void) sysio_init_err(softsp);
197 sysio_err_resume_init(struct sbus_soft_state *softsp)
199 (void) sysio_init_err(softsp);
204 sysio_err_uninit(struct sbus_soft_state *softsp)
207 (void) sysio_dis_err(softsp);
209 ddi_remove_intr(softsp->dip, 0, NULL);
210 ddi_remove_intr(softsp->dip, 1, NULL);
211 ddi_remove_intr(softsp->dip, 2, NULL);
214 ddi_remove_intr(softsp->dip, 4, NULL);
217 bus_func_unregister(BF_TYPE_UE, (busfunc_t)sbus_ctrl_ecc_err, softsp);
218 bus_func_unregister(BF_TYPE_ERRDIS, (busfunc_t)sysio_dis_err, softsp);
224 sysio_init_err(struct sbus_soft_state *softsp)
236 mondo_vec_reg = (uint64_t *)(softsp->intr_mapping_reg + UE_ECC_MAPREG);
239 cpu_id = pc_translate_tgtid(softsp->ittrans_cookie, cpu_id,
245 mondo_vec_reg = (uint64_t *)(softsp->intr_mapping_reg + CE_ECC_MAPREG);
248 cpu_id = pc_translate_tgtid(softsp->ittrans_cookie, cpu_id,
255 (uint64_t *)(softsp->intr_mapping_reg + SBUS_ERR_MAPREG);
258 cpu_id = pc_translate_tgtid(softsp->ittrans_cookie, cpu_id,
266 mondo_vec_reg = (softsp->intr_mapping_reg + THERMAL_MAPREG);
274 tmpreg = *softsp->sbus_ctrl_reg;
280 *softsp->sysio_ctrl_reg |= tmpreg;
282 *softsp->sysio_ecc_reg = tmpreg;
284 *softsp->sbus_err_reg |= tmpreg;
287 softsp->bto_timestamp = 0;
288 softsp->bto_ctr = 0;
294 sysio_dis_err(struct sbus_soft_state *softsp)
299 *softsp->sysio_ctrl_reg &= ~SYSIO_APCKEN;
300 *softsp->sysio_ecc_reg = 0;
301 *softsp->sbus_err_reg &= ~SB_CSR_ERRINT_EN;
304 tmpreg = *softsp->sbus_ctrl_reg;
310 mondo_vec_reg = (softsp->intr_mapping_reg + UE_ECC_MAPREG);
311 clear_vec_reg = (softsp->clr_intr_reg + UE_ECC_CLEAR);
317 pc_ittrans_cleanup(softsp->ittrans_cookie, mondo_vec_reg);
322 mondo_vec_reg = (softsp->intr_mapping_reg + CE_ECC_MAPREG);
323 clear_vec_reg = (softsp->clr_intr_reg + CE_ECC_CLEAR);
329 pc_ittrans_cleanup(softsp->ittrans_cookie, mondo_vec_reg);
334 mondo_vec_reg = (softsp->intr_mapping_reg + SBUS_ERR_MAPREG);
335 clear_vec_reg = (softsp->clr_intr_reg + SBUS_ERR_CLEAR);
341 pc_ittrans_cleanup(softsp->ittrans_cookie, mondo_vec_reg);
347 tmpreg = *softsp->sbus_ctrl_reg;
357 sysio_ue_intr(struct sbus_soft_state *softsp)
369 (void) sysio_dis_err(softsp); /* disabled sysio errors */
374 ue_reg = (uint64_t *)softsp->sysio_ue_reg;
380 clear_reg = (softsp->clr_intr_reg + UE_ECC_CLEAR);
395 ecc.flt_bus_id = softsp->upa_id;
396 ecc.flt_inst = ddi_get_instance(softsp->dip);
490 sysio_ce_intr(struct sbus_soft_state *softsp)
498 ce_reg = (uint64_t *)softsp->sysio_ce_reg;
504 clear_reg = (softsp->clr_intr_reg + CE_ECC_CLEAR);
519 ecc.flt_bus_id = softsp->upa_id;
520 ecc.flt_inst = ddi_get_instance(softsp->dip);
634 sbus_err_intr(struct sbus_soft_state *softsp)
641 on_trap_data_t *otp = softsp->ontrap_data;
643 t_afsr = *softsp->sbus_err_reg;
644 afar_reg = (uint64_t *)softsp->sbus_err_reg + 1;
648 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
652 id = (ushort_t)softsp->upa_id;
653 inst = (ushort_t)ddi_get_instance(softsp->dip);
659 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
668 sbus_log_error(softsp, (uint64_t *)&t_afsr,
672 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
679 sbus_clear_intr(struct sbus_soft_state *softsp, uint64_t *pafsr)
683 *softsp->sbus_err_reg = *pafsr;
684 clear_reg = (softsp->clr_intr_reg + SBUS_ERR_CLEAR);
689 sbus_log_error(struct sbus_soft_state *softsp, uint64_t *pafsr, uint64_t *pafar,
700 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
711 if (sbus_check_bto(softsp)) {
713 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
726 if (sbus_check_bto(softsp)) {
728 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
739 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
746 if (sbus_check_bto(softsp)) {
748 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
757 if (sbus_check_bto(softsp)) {
759 sbus_clear_intr(softsp, (uint64_t *)&t_afsr);
771 sbus_check_bto(struct sbus_soft_state *softsp)
774 hrtime_t diff = now - softsp->bto_timestamp;
781 softsp->bto_timestamp = now;
782 softsp->bto_ctr = 0;
784 if (softsp->bto_ctr++ >= bto_cnt)
790 sbus_ctrl_ecc_err(struct sbus_soft_state *softsp)
795 t_sb_csr = *softsp->sbus_ctrl_reg;
796 id = (ushort_t)softsp->upa_id;
797 inst = (ushort_t)ddi_get_instance(softsp->dip);
808 *softsp->sbus_ctrl_reg = t_sb_csr; /* clear error bits */
909 sysio_thermal_warn_intr(struct sbus_soft_state *softsp)
921 mondo_vec_reg = (softsp->intr_mapping_reg + THERMAL_MAPREG);
926 ddi_remove_intr(softsp->dip, 4, NULL);
928 clear_reg = (softsp->clr_intr_reg + THERMAL_CLEAR);