Lines Matching refs:erpt_p

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