Lines Matching refs:erpt_p
109 pcix_ecc_regs_gather(pci_erpt_t *erpt_p, pcix_ecc_regs_t *pcix_ecc_regs, in pcix_ecc_regs_gather() argument
112 int bdg = erpt_p->pe_dflags & PCI_BRIDGE_DEV; in pcix_ecc_regs_gather()
114 pcix_ecc_regs->pcix_ecc_ctlstat = pci_config_get32(erpt_p->pe_hdl, in pcix_ecc_regs_gather()
117 if (pci_config_check(erpt_p->pe_hdl, fme_flag) == DDI_FM_OK) in pcix_ecc_regs_gather()
121 pcix_ecc_regs->pcix_ecc_fstaddr = pci_config_get32(erpt_p->pe_hdl, in pcix_ecc_regs_gather()
124 pcix_ecc_regs->pcix_ecc_secaddr = pci_config_get32(erpt_p->pe_hdl, in pcix_ecc_regs_gather()
128 ddi_acc_handle_t)erpt_p->pe_hdl, in pcix_ecc_regs_gather()
133 pcix_regs_gather(pci_erpt_t *erpt_p, void *pe_regs, int fme_flag) in pcix_regs_gather() argument
135 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pcix_regs_gather()
143 erpt_p->pe_hdl, (pcix_bdg_cap_ptr + PCI_PCIX_SEC_STATUS)); in pcix_regs_gather()
144 if (pci_config_check(erpt_p->pe_hdl, fme_flag) == DDI_FM_OK) in pcix_regs_gather()
149 pcix_bdg_regs->pcix_bdg_stat = pci_config_get32(erpt_p->pe_hdl, in pcix_regs_gather()
151 if (pci_config_check(erpt_p->pe_hdl, fme_flag) == DDI_FM_OK) in pcix_regs_gather()
161 pci_config_put32(erpt_p->pe_hdl, in pcix_regs_gather()
164 pcix_ecc_regs_gather(erpt_p, in pcix_regs_gather()
175 pcix_regs->pcix_command = pci_config_get16(erpt_p->pe_hdl, in pcix_regs_gather()
177 pcix_regs->pcix_status = pci_config_get32(erpt_p->pe_hdl, in pcix_regs_gather()
179 if (pci_config_check(erpt_p->pe_hdl, fme_flag) == DDI_FM_OK) in pcix_regs_gather()
187 pcix_ecc_regs_gather(erpt_p, pcix_ecc_regs, in pcix_regs_gather()
195 pci_regs_gather(dev_info_t *dip, pci_erpt_t *erpt_p, int fme_flag) in pci_regs_gather() argument
197 pci_error_regs_t *pci_regs = erpt_p->pe_pci_regs; in pci_regs_gather()
203 pci_regs->pci_err_status = pci_config_get16(erpt_p->pe_hdl, in pci_regs_gather()
205 if (pci_config_check(erpt_p->pe_hdl, fme_flag) != DDI_FM_OK) in pci_regs_gather()
208 pci_regs->pci_cfg_comm = pci_config_get16(erpt_p->pe_hdl, in pci_regs_gather()
210 if (pci_config_check(erpt_p->pe_hdl, fme_flag) != DDI_FM_OK) in pci_regs_gather()
216 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pci_regs_gather()
218 pci_config_get16(erpt_p->pe_hdl, PCI_BCNF_SEC_STATUS); in pci_regs_gather()
219 if (pci_config_check(erpt_p->pe_hdl, fme_flag) == DDI_FM_OK) in pci_regs_gather()
223 pci_config_get16(erpt_p->pe_hdl, PCI_BCNF_BCNTRL); in pci_regs_gather()
224 if (pci_config_check(erpt_p->pe_hdl, fme_flag) == DDI_FM_OK) in pci_regs_gather()
230 if (erpt_p->pe_dflags & PCIX_DEV) in pci_regs_gather()
231 pcix_regs_gather(erpt_p, erpt_p->pe_regs, fme_flag); in pci_regs_gather()
236 pcix_regs_clear(pci_erpt_t *erpt_p, void *pe_regs) in pcix_regs_clear() argument
238 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pcix_regs_clear()
247 pci_config_put16(erpt_p->pe_hdl, in pcix_regs_clear()
252 pci_config_put32(erpt_p->pe_hdl, in pcix_regs_clear()
266 pci_config_put32(erpt_p->pe_hdl, in pcix_regs_clear()
271 pci_config_put32(erpt_p->pe_hdl, in pcix_regs_clear()
288 pci_config_put32(erpt_p->pe_hdl, in pcix_regs_clear()
300 pci_config_put32(erpt_p->pe_hdl, in pcix_regs_clear()
310 pci_regs_clear(pci_erpt_t *erpt_p) in pci_regs_clear() argument
315 if (erpt_p->pe_dflags & PCIX_DEV) in pci_regs_clear()
316 pcix_regs_clear(erpt_p, erpt_p->pe_regs); in pci_regs_clear()
318 if (erpt_p->pe_pci_regs->pci_vflags & PCI_ERR_STATUS_VALID) in pci_regs_clear()
319 pci_config_put16(erpt_p->pe_hdl, PCI_CONF_STAT, in pci_regs_clear()
320 erpt_p->pe_pci_regs->pci_err_status); in pci_regs_clear()
322 erpt_p->pe_pci_regs->pci_vflags = 0x0; in pci_regs_clear()
324 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pci_regs_clear()
325 if (erpt_p->pe_pci_regs->pci_bdg_regs->pci_bdg_vflags & in pci_regs_clear()
327 pci_config_put16(erpt_p->pe_hdl, PCI_BCNF_SEC_STATUS, in pci_regs_clear()
328 erpt_p->pe_pci_regs->pci_bdg_regs-> in pci_regs_clear()
330 if (erpt_p->pe_pci_regs->pci_bdg_regs->pci_bdg_vflags & in pci_regs_clear()
332 pci_config_put16(erpt_p->pe_hdl, PCI_BCNF_BCNTRL, in pci_regs_clear()
333 erpt_p->pe_pci_regs->pci_bdg_regs->pci_bdg_ctrl); in pci_regs_clear()
335 erpt_p->pe_pci_regs->pci_bdg_regs->pci_bdg_vflags = 0x0; in pci_regs_clear()
345 pcix_ereport_setup(dev_info_t *dip, pci_erpt_t *erpt_p) in pcix_ereport_setup() argument
357 erpt_p->pe_dflags |= PCIX_DEV; in pcix_ereport_setup()
361 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pcix_ereport_setup()
364 erpt_p->pe_regs = kmem_zalloc(sizeof (pcix_bdg_error_regs_t), in pcix_ereport_setup()
366 pcix_bdg_regs = (pcix_bdg_error_regs_t *)erpt_p->pe_regs; in pcix_ereport_setup()
368 pcix_bdg_regs->pcix_bdg_ver = pci_config_get16(erpt_p->pe_hdl, in pcix_ereport_setup()
380 erpt_p->pe_regs = kmem_zalloc(sizeof (pcix_error_regs_t), in pcix_ereport_setup()
382 pcix_regs = (pcix_error_regs_t *)erpt_p->pe_regs; in pcix_ereport_setup()
384 pcix_regs->pcix_ver = pci_config_get16(erpt_p->pe_hdl, in pcix_ereport_setup()
402 pci_erpt_t *erpt_p; in pci_ereport_setup() local
424 erpt_p = kmem_zalloc(sizeof (pci_erpt_t), KM_SLEEP); in pci_ereport_setup()
426 if (pci_config_setup(dip, &erpt_p->pe_hdl) != DDI_SUCCESS) in pci_ereport_setup()
429 erpt_p->pe_pci_regs = kmem_zalloc(sizeof (pci_error_regs_t), KM_SLEEP); in pci_ereport_setup()
431 pci_status = pci_config_get16(erpt_p->pe_hdl, PCI_CONF_STAT); in pci_ereport_setup()
432 if (pci_config_check(erpt_p->pe_hdl, DDI_FM_ERR_UNEXPECTED) != in pci_ereport_setup()
439 pci_hdr_type = pci_config_get8(erpt_p->pe_hdl, PCI_CONF_HEADER); in pci_ereport_setup()
440 if (pci_config_check(erpt_p->pe_hdl, DDI_FM_ERR_UNEXPECTED) != in pci_ereport_setup()
449 erpt_p->pe_dflags |= PCI_BRIDGE_DEV; in pci_ereport_setup()
450 erpt_p->pe_pci_regs->pci_bdg_regs = kmem_zalloc( in pci_ereport_setup()
459 erpt_p->pe_bdf = (uint16_t)(PCI_REG_BDFR_G(phys_hi) >> in pci_ereport_setup()
468 pcix_ereport_setup(dip, erpt_p); in pci_ereport_setup()
471 pci_regs_gather(dip, erpt_p, DDI_FM_ERR_UNEXPECTED); in pci_ereport_setup()
472 pci_regs_clear(erpt_p); in pci_ereport_setup()
478 fmhdl->fh_bus_specific = (void *)erpt_p; in pci_ereport_setup()
482 if (erpt_p->pe_pci_regs) in pci_ereport_setup()
483 kmem_free(erpt_p->pe_pci_regs, sizeof (pci_error_regs_t)); in pci_ereport_setup()
484 kmem_free(erpt_p, sizeof (pci_erpt_t)); in pci_ereport_setup()
485 erpt_p = NULL; in pci_ereport_setup()
489 pcix_ereport_teardown(pci_erpt_t *erpt_p) in pcix_ereport_teardown() argument
491 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pcix_ereport_teardown()
495 pcix_bdg_regs = (pcix_bdg_error_regs_t *)erpt_p->pe_regs; in pcix_ereport_teardown()
503 kmem_free(erpt_p->pe_regs, sizeof (pcix_bdg_error_regs_t)); in pcix_ereport_teardown()
508 pcix_regs = (pcix_error_regs_t *)erpt_p->pe_regs; in pcix_ereport_teardown()
514 kmem_free(erpt_p->pe_regs, sizeof (pcix_error_regs_t)); in pcix_ereport_teardown()
522 pci_erpt_t *erpt_p; in pci_ereport_teardown() local
531 erpt_p = (pci_erpt_t *)fmhdl->fh_bus_specific; in pci_ereport_teardown()
532 if (erpt_p == NULL) in pci_ereport_teardown()
535 if (erpt_p->pe_dflags & PCIX_DEV) in pci_ereport_teardown()
536 pcix_ereport_teardown(erpt_p); in pci_ereport_teardown()
537 pci_config_teardown((ddi_acc_handle_t *)&erpt_p->pe_hdl); in pci_ereport_teardown()
538 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) in pci_ereport_teardown()
539 kmem_free(erpt_p->pe_pci_regs->pci_bdg_regs, in pci_ereport_teardown()
541 kmem_free(erpt_p->pe_pci_regs, sizeof (pci_error_regs_t)); in pci_ereport_teardown()
542 kmem_free(erpt_p, sizeof (pci_erpt_t)); in pci_ereport_teardown()
612 pci_bdg_error_report(dev_info_t *dip, ddi_fm_error_t *derr, pci_erpt_t *erpt_p) in pci_bdg_error_report() argument
614 pci_bdg_error_regs_t *pci_bdg_regs = erpt_p->pe_pci_regs->pci_bdg_regs; in pci_bdg_error_report()
694 if (erpt_p->pe_pci_regs->pci_err_status & PCI_STAT_S_SYSERR) in pci_bdg_error_report()
708 pcix_ecc_error_report(dev_info_t *dip, ddi_fm_error_t *derr, pci_erpt_t *erpt_p, in pcix_ecc_error_report() argument
726 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pcix_ecc_error_report()
777 erpt_p->pe_pci_regs; in pcix_ecc_error_report()
873 pcix_bdg_error_report(dev_info_t *dip, ddi_fm_error_t *derr, pci_erpt_t *erpt_p, in pcix_bdg_error_report() argument
925 ret = pcix_ecc_error_report(dip, derr, erpt_p, in pcix_bdg_error_report()
934 pcix_error_report(dev_info_t *dip, ddi_fm_error_t *derr, pci_erpt_t *erpt_p) in pcix_error_report() argument
936 pcix_error_regs_t *pcix_regs = (pcix_error_regs_t *)erpt_p->pe_regs; in pcix_error_report()
962 int ret = pcix_ecc_error_report(dip, derr, erpt_p, in pcix_error_report()
972 pci_error_report(dev_info_t *dip, ddi_fm_error_t *derr, pci_erpt_t *erpt_p) in pci_error_report() argument
986 if (!(erpt_p->pe_pci_regs->pci_err_status & in pci_error_report()
988 !(erpt_p->pe_pci_regs->pci_vflags & in pci_error_report()
999 erpt_p->pe_pci_regs->pci_err_status, in pci_error_report()
1001 erpt_p->pe_pci_regs->pci_cfg_comm, NULL); in pci_error_report()
1005 if (erpt_p->pe_dflags & PCIX_DEV) { in pci_error_report()
1006 if (erpt_p->pe_dflags & PCI_BRIDGE_DEV) { in pci_error_report()
1008 erpt_p, erpt_p->pe_regs); in pci_error_report()
1011 int ret = pcix_error_report(dip, derr, erpt_p); in pci_error_report()
1017 if ((erpt_p->pe_dflags & PCI_BRIDGE_DEV)) { in pci_error_report()
1018 int ret = pci_bdg_error_report(dip, derr, erpt_p); in pci_error_report()
1041 pci_fme_bsp->pci_bs_bdf == erpt_p->pe_bdf) { in pci_error_report()
1056 pci_erpt_t *erpt_p; in pci_ereport_post() local
1119 erpt_p = (pci_erpt_t *)fmhdl->fh_bus_specific; in pci_ereport_post()
1120 if (erpt_p == NULL) in pci_ereport_post()
1123 pci_regs_gather(dip, erpt_p, de.fme_flag); in pci_ereport_post()
1124 pci_error_report(dip, &de, erpt_p); in pci_ereport_post()
1125 pci_regs_clear(erpt_p); in pci_ereport_post()
1132 *xx_status = erpt_p->pe_pci_regs->pci_err_status; in pci_ereport_post()