Lines Matching +full:0 +full:x209c
106 ql_dbg(ql_dbg_async, sp->vha, 0x507c, in qla24xx_abort_iocb_timeout()
111 ql_dbg(ql_dbg_async, sp->vha, 0x507c, in qla24xx_abort_iocb_timeout()
177 ql_dbg(ql_dbg_async, vha, 0x507c, in qla24xx_async_abort_cmd()
207 ql_dbg(ql_dbg_disc, fcport->vha, 0x2071, in qla2x00_async_iocb_timeout()
222 lio->u.logio.data[0] = MBS_COMMAND_ERROR; in qla2x00_async_iocb_timeout()
225 QLA_LOGIO_LOGIN_RETRIED : 0; in qla2x00_async_iocb_timeout()
273 ql_dbg(ql_dbg_disc, vha, 0x20dd, in qla2x00_async_login_sp_done()
279 memset(&ea, 0, sizeof(ea)); in qla2x00_async_login_sp_done()
281 ea.data[0] = lio->u.logio.data[0]; in qla2x00_async_login_sp_done()
283 ea.iop[0] = lio->u.logio.iop[0]; in qla2x00_async_login_sp_done()
318 ql_log(ql_log_warn, vha, 0xffff, in qla2x00_async_login()
330 fcport->logout_completed = 0; in qla2x00_async_login()
350 ql_dbg(ql_dbg_disc, vha, 0x2072, in qla2x00_async_login()
402 ql_dbg(ql_dbg_disc, vha, 0x2070, in qla2x00_async_logout()
428 qlt_logo_completion_handler(fcport, data[0]); in qla2x00_async_prlo_done()
464 ql_dbg(ql_dbg_disc, vha, 0x2070, in qla2x00_async_prlo()
487 ql_dbg(ql_dbg_disc, vha, 0x20d2, in qla24xx_handle_adisc_event()
493 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", in qla24xx_handle_adisc_event()
494 ea->data[0]); in qla24xx_handle_adisc_event()
496 if (ea->data[0] != MBS_COMMAND_COMPLETE) { in qla24xx_handle_adisc_event()
497 ql_dbg(ql_dbg_disc, vha, 0x2066, in qla24xx_handle_adisc_event()
500 /* deleted = 0 & logout_on_delete = force fw cleanup */ in qla24xx_handle_adisc_event()
501 fcport->deleted = 0; in qla24xx_handle_adisc_event()
512 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_adisc_event()
545 ql_dbg(ql_dbg_disc, vha, 0x2066, in qla2x00_async_adisc_sp_done()
551 memset(&ea, 0, sizeof(ea)); in qla2x00_async_adisc_sp_done()
553 ea.data[0] = lio->u.logio.data[0]; in qla2x00_async_adisc_sp_done()
555 ea.iop[0] = lio->u.logio.iop[0]; in qla2x00_async_adisc_sp_done()
574 ql_log(ql_log_warn, vha, 0xffff, in qla2x00_async_adisc()
602 ql_dbg(ql_dbg_disc, vha, 0x206f, in qla2x00_async_adisc()
646 unsigned long flags = 0; in qla2x00_find_new_loop_id()
663 ql_dbg(ql_dbg_disc, dev->vha, 0x2086, in qla2x00_find_new_loop_id()
667 ql_log(ql_log_warn, dev->vha, 0x2087, in qla2x00_find_new_loop_id()
691 u16 i, n, found = 0, loop_id; in qla24xx_handle_gnl_done_event()
698 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_gnl_done_event()
709 if (fcport->login_retry == 0) { in qla24xx_handle_gnl_done_event()
710 ql_dbg(ql_dbg_disc, vha, 0x20de, in qla24xx_handle_gnl_done_event()
722 ql_dbg(ql_dbg_disc, vha, 0x20e0, in qla24xx_handle_gnl_done_event()
728 n = ea->data[0] / sizeof(struct get_name_list_extended); in qla24xx_handle_gnl_done_event()
730 ql_dbg(ql_dbg_disc, vha, 0x20e1, in qla24xx_handle_gnl_done_event()
736 for (i = 0; i < n; i++) { in qla24xx_handle_gnl_done_event()
741 id.b.al_pa = e->port_id[0]; in qla24xx_handle_gnl_done_event()
742 id.b.rsvd_1 = 0; in qla24xx_handle_gnl_done_event()
753 loop_id = (loop_id & 0x7fff); in qla24xx_handle_gnl_done_event()
755 current_login_state = e->current_login_state & 0xf; in qla24xx_handle_gnl_done_event()
766 ql_dbg(ql_dbg_disc, vha, 0x20e2, in qla24xx_handle_gnl_done_event()
783 ql_dbg(ql_dbg_disc, vha, 0x20e3, in qla24xx_handle_gnl_done_event()
787 fcport->d_id.b24 = 0; in qla24xx_handle_gnl_done_event()
817 vha, 0x20e4, "%s %d %8phC post gpdb\n", in qla24xx_handle_gnl_done_event()
820 if ((e->prli_svc_param_word_3[0] & BIT_4) == 0) in qla24xx_handle_gnl_done_event()
824 data[0] = data[1] = 0; in qla24xx_handle_gnl_done_event()
835 ql_dbg(ql_dbg_disc, vha, 0x20e5, in qla24xx_handle_gnl_done_event()
857 if ((e->prli_svc_param_word_3[0] & BIT_4) == 0) in qla24xx_handle_gnl_done_event()
862 data[0] = data[1] = 0; in qla24xx_handle_gnl_done_event()
898 for (i = 0; i < n; i++) { in qla24xx_handle_gnl_done_event()
900 id.b.domain = e->port_id[0]; in qla24xx_handle_gnl_done_event()
903 id.b.rsvd_1 = 0; in qla24xx_handle_gnl_done_event()
909 e->port_name, 0); in qla24xx_handle_gnl_done_event()
912 vha, 0x20e5, in qla24xx_handle_gnl_done_event()
943 ql_log(ql_log_info, vha, 0x705d, in qla24xx_handle_gnl_done_event()
949 ql_log(ql_log_info, vha, 0x705d, in qla24xx_handle_gnl_done_event()
952 fcport->scan_state = 0; in qla24xx_handle_gnl_done_event()
978 u16 i, n = 0, loop_id; in qla24xx_async_gnl_sp_done()
985 ql_dbg(ql_dbg_disc, vha, 0x20e7, in qla24xx_async_gnl_sp_done()
992 memset(&ea, 0, sizeof(ea)); in qla24xx_async_gnl_sp_done()
1000 ea.data[0] = sp->u.iocb_cmd.u.mbx.in_mb[1]; /* amnt xfered */ in qla24xx_async_gnl_sp_done()
1003 for (i = 0; i < n; i++) { in qla24xx_async_gnl_sp_done()
1007 loop_id = (loop_id & 0x7fff); in qla24xx_async_gnl_sp_done()
1011 ql_dbg(ql_dbg_disc, vha, 0x20e8, in qla24xx_async_gnl_sp_done()
1014 e->port_id[0], e->current_login_state, e->last_login_state, in qla24xx_async_gnl_sp_done()
1015 (loop_id & 0x7fff)); in qla24xx_async_gnl_sp_done()
1037 for (i = 0; i < n; i++) { in qla24xx_async_gnl_sp_done()
1055 id.b.al_pa = e->port_id[0]; in qla24xx_async_gnl_sp_done()
1056 id.b.rsvd_1 = 0; in qla24xx_async_gnl_sp_done()
1059 ql_dbg(ql_dbg_disc, vha, 0x2065, in qla24xx_async_gnl_sp_done()
1064 (u8 *)&wwnn, NULL, 0); in qla24xx_async_gnl_sp_done()
1069 vha->gnl.sent = 0; in qla24xx_async_gnl_sp_done()
1096 ql_dbg(ql_dbg_disc, vha, 0x20d9, in qla24xx_async_gnl()
1127 mb[0] = MBC_PORT_NODE_NAME_LIST; in qla24xx_async_gnl()
1138 ql_dbg(ql_dbg_disc, vha, 0x20da, in qla24xx_async_gnl()
1176 ql_dbg(ql_dbg_disc, vha, 0x20db, in qla24xx_async_gpdb_sp_done()
1185 memset(&ea, 0, sizeof(ea)); in qla24xx_async_gpdb_sp_done()
1220 ql_dbg(ql_dbg_disc, vha, 0x2129, in qla2x00_async_prli_sp_done()
1227 memset(&ea, 0, sizeof(ea)); in qla2x00_async_prli_sp_done()
1229 ea.data[0] = lio->u.logio.data[0]; in qla2x00_async_prli_sp_done()
1231 ea.iop[0] = lio->u.logio.iop[0]; in qla2x00_async_prli_sp_done()
1249 ql_dbg(ql_dbg_disc, vha, 0xffff, "%s %d %8phC exit\n", in qla24xx_async_prli()
1257 ql_dbg(ql_dbg_disc, vha, 0xffff, "%s %d %8phC exit\n", in qla24xx_async_prli()
1267 fcport->logout_completed = 0; in qla24xx_async_prli()
1277 lio->u.logio.flags = 0; in qla24xx_async_prli()
1282 ql_dbg(ql_dbg_disc, vha, 0x211b, in qla24xx_async_prli()
1328 ql_log(ql_log_warn, vha, 0xffff, in qla24xx_async_gpdb()
1336 ql_log(ql_log_warn, vha, 0xffff, in qla24xx_async_gpdb()
1360 ql_log(ql_log_warn, vha, 0xd043, in qla24xx_async_gpdb()
1366 mb[0] = MBC_GET_PORT_DATABASE; in qla24xx_async_gpdb()
1380 ql_dbg(ql_dbg_disc, vha, 0x20dc, in qla24xx_async_gpdb()
1408 ea->fcport->deleted = 0; in __qla24xx_handle_gpdb_event()
1424 ql_dbg(ql_dbg_disc, vha, 0x20d6, in __qla24xx_handle_gpdb_event()
1444 ql_dbg(ql_dbg_disc, vha, 0x20d2, in qla24xx_handle_gpdb_event()
1455 ls = pd->current_login_state & 0xf; in qla24xx_handle_gpdb_event()
1460 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_gpdb_event()
1488 ql_dbg(ql_dbg_disc, vha, 0x20d5, "%s %d %8phC post del sess\n", in qla24xx_handle_gpdb_event()
1498 u8 login = 0; in qla_chk_n2n_b4_login()
1501 ql_dbg(ql_dbg_disc, vha, 0x307b, in qla_chk_n2n_b4_login()
1535 ql_dbg(ql_dbg_disc, vha, 0x20e6, in qla_chk_n2n_b4_login()
1538 fcport->scan_state = 0; in qla_chk_n2n_b4_login()
1543 ql_dbg(ql_dbg_disc, vha, 0x20bf, in qla_chk_n2n_b4_login()
1556 ql_dbg(ql_dbg_disc, vha, 0x20d8, in qla24xx_fcport_handle_login()
1565 return 0; in qla24xx_fcport_handle_login()
1571 return 0; in qla24xx_fcport_handle_login()
1577 return 0; in qla24xx_fcport_handle_login()
1583 return 0; in qla24xx_fcport_handle_login()
1587 return 0; in qla24xx_fcport_handle_login()
1607 ql_log(ql_log_info, vha, 0x705d, in qla24xx_fcport_handle_login()
1616 if (wwn == 0) { in qla24xx_fcport_handle_login()
1617 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_fcport_handle_login()
1622 ql_dbg(ql_dbg_disc, vha, 0x20bd, in qla24xx_fcport_handle_login()
1636 if ((fcport->current_login_state & 0xf) == 0x6) { in qla24xx_fcport_handle_login()
1637 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_fcport_handle_login()
1642 qla24xx_post_gpdb_work(vha, fcport, 0); in qla24xx_fcport_handle_login()
1644 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_fcport_handle_login()
1654 ql_dbg(ql_dbg_disc, vha, 0x20d8, in qla24xx_fcport_handle_login()
1677 data[0] = data[1] = 0; in qla24xx_fcport_handle_login()
1692 ql_dbg(ql_dbg_disc, fcport->vha, 0xffff, in qla24xx_fcport_handle_login()
1706 return 0; in qla24xx_fcport_handle_login()
1739 ql_dbg(ql_dbg_disc, vha, 0x2115, in qla2x00_handle_rscn()
1754 if ((ea->id.b24 & 0xffff00) == (fcport->d_id.b24 & 0xffff00)) { in qla2x00_handle_rscn()
1766 if ((ea->id.b24 & 0xff0000) == (fcport->d_id.b24 & 0xff0000)) { in qla2x00_handle_rscn()
1786 if (vha->scan.scan_flags == 0) { in qla2x00_handle_rscn()
1787 ql_dbg(ql_dbg_disc, vha, 0xffff, "%s: schedule\n", __func__); in qla2x00_handle_rscn()
1802 ql_dbg(ql_dbg_disc, vha, 0x2102, in qla24xx_handle_relogin_event()
1812 ql_dbg(ql_dbg_disc, vha, 0x20e9, "%s %d %8phC post gnl\n", in qla24xx_handle_relogin_event()
1828 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla_handle_els_plogi_done()
1850 memset(&ea, 0, sizeof(ea)); in qla_rscn_replay()
1914 ql_dbg(ql_dbg_taskm, vha, 0x802f, in qla2x00_async_tm_cmd()
1927 ql_log(ql_log_warn, vha, 0x8030, in qla2x00_async_tm_cmd()
1951 unsigned long flags = 0; in qla24xx_async_abort_command()
1980 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", in qla24xx_handle_prli_done_event()
1981 ea->data[0]); in qla24xx_handle_prli_done_event()
1983 switch (ea->data[0]) { in qla24xx_handle_prli_done_event()
1985 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_handle_prli_done_event()
1991 ea->fcport->nvme_prli_service_param = ea->iop[0]; in qla24xx_handle_prli_done_event()
1992 if (ea->iop[0] & NVME_PRLI_SP_FIRST_BURST) in qla24xx_handle_prli_done_event()
1994 (ea->iop[1] & 0xffff) * 512; in qla24xx_handle_prli_done_event()
1996 ea->fcport->nvme_first_burst_size = 0; in qla24xx_handle_prli_done_event()
1997 qla24xx_post_gpdb_work(vha, ea->fcport, 0); in qla24xx_handle_prli_done_event()
2000 if ((ea->iop[0] == LSC_SCODE_ELS_REJECT) && in qla24xx_handle_prli_done_event()
2001 (ea->iop[1] == 0x50000)) { /* reson 5=busy expl:0x0 */ in qla24xx_handle_prli_done_event()
2007 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_handle_prli_done_event()
2031 ql_log(ql_log_warn, vha, 0x2119, in qla24xx_handle_prli_done_event()
2042 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_handle_prli_done_event()
2055 ea->fcport->keep_nport_handle = 0; in qla24xx_handle_prli_done_event()
2072 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_plogi_done_event()
2077 ea->data[0], ea->data[1], ea->iop[0], ea->iop[1]); in qla24xx_handle_plogi_done_event()
2081 ql_dbg(ql_dbg_disc, vha, 0x20ea, in qla24xx_handle_plogi_done_event()
2095 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_plogi_done_event()
2101 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_plogi_done_event()
2109 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", in qla24xx_handle_plogi_done_event()
2110 ea->data[0]); in qla24xx_handle_plogi_done_event()
2112 switch (ea->data[0]) { in qla24xx_handle_plogi_done_event()
2120 ql_dbg(ql_dbg_disc, vha, 0x2117, in qla24xx_handle_plogi_done_event()
2125 ql_dbg(ql_dbg_disc, vha, 0x20ea, in qla24xx_handle_plogi_done_event()
2126 "%s %d %8phC LoopID 0x%x in use with %06x. post gpdb\n", in qla24xx_handle_plogi_done_event()
2134 ea->fcport->send_els_logo = 0; in qla24xx_handle_plogi_done_event()
2138 qla24xx_post_gpdb_work(vha, ea->fcport, 0); in qla24xx_handle_plogi_done_event()
2142 ql_dbg(ql_dbg_disc, vha, 0x20eb, "%s %d %8phC cmd error %x\n", in qla24xx_handle_plogi_done_event()
2149 cid.b.domain = (ea->iop[1] >> 16) & 0xff; in qla24xx_handle_plogi_done_event()
2150 cid.b.area = (ea->iop[1] >> 8) & 0xff; in qla24xx_handle_plogi_done_event()
2151 cid.b.al_pa = ea->iop[1] & 0xff; in qla24xx_handle_plogi_done_event()
2152 cid.b.rsvd_1 = 0; in qla24xx_handle_plogi_done_event()
2154 ql_dbg(ql_dbg_disc, vha, 0x20ec, in qla24xx_handle_plogi_done_event()
2164 lid = ea->iop[1] & 0xffff; in qla24xx_handle_plogi_done_event()
2178 ql_dbg(ql_dbg_disc, vha, 0x20ed, in qla24xx_handle_plogi_done_event()
2179 "%s %d %8phC NPortId %06x inuse with loopid 0x%x. post gidpn\n", in qla24xx_handle_plogi_done_event()
2183 ql_dbg(ql_dbg_disc, vha, 0x20ed, in qla24xx_handle_plogi_done_event()
2184 "%s %d %8phC NPortId %06x inuse with loopid 0x%x. sched delete\n", in qla24xx_handle_plogi_done_event()
2191 ea->fcport->keep_nport_handle = 0; in qla24xx_handle_plogi_done_event()
2212 qla83xx_idc_lock(vha, 0); in qla83xx_nic_core_fw_load()
2222 ql_dbg(ql_dbg_p3p, vha, 0xb077, in qla83xx_nic_core_fw_load()
2244 qla83xx_wr_reg(vha, QLA83XX_IDC_LOCK_RECOVERY, 0); in qla83xx_nic_core_fw_load()
2250 ql_log(ql_log_warn, vha, 0xb07d, in qla83xx_nic_core_fw_load()
2263 memset(config, 0, sizeof(config)); in qla83xx_nic_core_fw_load()
2272 qla83xx_idc_unlock(vha, 0); in qla83xx_nic_core_fw_load()
2285 * 0 = success
2292 struct req_que *req = ha->req_q_map[0]; in qla2x00_initialize_adapter()
2295 memset(&vha->qla_stats, 0, sizeof(vha->qla_stats)); in qla2x00_initialize_adapter()
2296 memset(&vha->fc_host_stat, 0, sizeof(vha->fc_host_stat)); in qla2x00_initialize_adapter()
2299 vha->flags.online = 0; in qla2x00_initialize_adapter()
2300 ha->flags.chip_reset_done = 0; in qla2x00_initialize_adapter()
2301 vha->flags.reset_active = 0; in qla2x00_initialize_adapter()
2302 ha->flags.pci_channel_io_perm_failure = 0; in qla2x00_initialize_adapter()
2303 ha->flags.eeh_busy = 0; in qla2x00_initialize_adapter()
2308 vha->dpc_flags = 0; in qla2x00_initialize_adapter()
2309 vha->flags.management_server_logged_in = 0; in qla2x00_initialize_adapter()
2310 vha->marker_needed = 0; in qla2x00_initialize_adapter()
2311 ha->isp_abort_cnt = 0; in qla2x00_initialize_adapter()
2312 ha->beacon_blink_led = 0; in qla2x00_initialize_adapter()
2314 set_bit(0, ha->req_qid_map); in qla2x00_initialize_adapter()
2315 set_bit(0, ha->rsp_qid_map); in qla2x00_initialize_adapter()
2317 ql_dbg(ql_dbg_init, vha, 0x0040, in qla2x00_initialize_adapter()
2321 ql_log(ql_log_warn, vha, 0x0044, in qla2x00_initialize_adapter()
2332 ql_log(ql_log_info, vha, 0xffff, "Secure Adapter: %s\n", in qla2x00_initialize_adapter()
2339 ql_log(ql_log_fatal, vha, 0x004f, in qla2x00_initialize_adapter()
2356 ql_dbg(ql_dbg_init, vha, 0x0061, in qla2x00_initialize_adapter()
2368 ql_log(ql_log_info, vha, 0xffff, "FC4 priority set to %s\n", in qla2x00_initialize_adapter()
2373 ql_log(ql_log_info, vha, 0x0077, in qla2x00_initialize_adapter()
2378 ql_dbg(ql_dbg_init, vha, 0x0078, in qla2x00_initialize_adapter()
2399 ql_log(ql_log_warn, vha, 0x00d0, in qla2x00_initialize_adapter()
2418 ql_log(ql_log_warn, vha, 0x00d4, in qla2x00_initialize_adapter()
2428 ql_log(ql_log_warn, vha, 0x0124, in qla2x00_initialize_adapter()
2447 * Returns 0 on success.
2478 * Returns 0 on success.
2484 unsigned long flags = 0; in qla2300_pci_config()
2511 for (cnt = 0; cnt < 30000; cnt++) { in qla2300_pci_config()
2512 if ((rd_reg_word(®->hccr) & HCCR_RISC_PAUSE) != 0) in qla2300_pci_config()
2519 wrt_reg_word(®->ctrl_status, 0x20); in qla2300_pci_config()
2529 wrt_reg_word(®->ctrl_status, 0x0); in qla2300_pci_config()
2534 for (cnt = 0; cnt < 30000; cnt++) { in qla2300_pci_config()
2535 if ((rd_reg_word(®->hccr) & HCCR_RISC_PAUSE) == 0) in qla2300_pci_config()
2544 pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80); in qla2300_pci_config()
2560 * Returns 0 on success.
2566 unsigned long flags = 0; in qla24xx_pci_config()
2578 pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80); in qla24xx_pci_config()
2604 * Returns 0 on success.
2635 * Returns 0 on success.
2649 ql_log(ql_log_info, vha, 0x0079, "RISC CODE NOT loaded.\n"); in qla2x00_isp_firmware()
2661 ql_dbg(ql_dbg_init, vha, 0x007a, in qla2x00_isp_firmware()
2671 * Returns 0 on success.
2676 unsigned long flags = 0; in qla2x00_reset_chip()
2691 cmd = 0; in qla2x00_reset_chip()
2700 for (cnt = 0; cnt < 30000; cnt++) { in qla2x00_reset_chip()
2702 HCCR_RISC_PAUSE) != 0) in qla2x00_reset_chip()
2712 wrt_reg_word(®->ctrl_status, 0x20); in qla2x00_reset_chip()
2716 wrt_reg_word(®->fpm_diag_config, 0x100); in qla2x00_reset_chip()
2721 wrt_reg_word(®->fpm_diag_config, 0x0); in qla2x00_reset_chip()
2726 wrt_reg_word(®->ctrl_status, 0x10); in qla2x00_reset_chip()
2731 WRT_FB_CMD_REG(ha, reg, 0xa000); in qla2x00_reset_chip()
2734 WRT_FB_CMD_REG(ha, reg, 0x00fc); in qla2x00_reset_chip()
2737 for (cnt = 0; cnt < 3000; cnt++) { in qla2x00_reset_chip()
2738 if ((RD_FB_CMD_REG(ha, reg) & 0xff) == 0) in qla2x00_reset_chip()
2745 wrt_reg_word(®->ctrl_status, 0); in qla2x00_reset_chip()
2773 CSR_ISP_SOFT_RESET) == 0) in qla2x00_reset_chip()
2783 wrt_reg_word(®->semaphore, 0); in qla2x00_reset_chip()
2790 for (cnt = 0; cnt < 30000; cnt++) { in qla2x00_reset_chip()
2791 if (RD_MAILBOX_REG(ha, reg, 0) != MBS_BUSY) in qla2x00_reset_chip()
2818 * Returns 0 on success.
2823 uint16_t mb[4] = {0x1010, 0, 1, 0}; in qla81xx_reset_mpi()
2835 * Returns 0 on success.
2840 unsigned long flags = 0; in qla24xx_reset_risc()
2852 for (cnt = 0; cnt < 30000; cnt++) { in qla24xx_reset_risc()
2853 if ((rd_reg_dword(®->ctrl_status) & CSRX_DMA_ACTIVE) == 0) in qla24xx_reset_risc()
2862 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x017e, in qla24xx_reset_risc()
2863 "HCCR: 0x%x, Control Status %x, DMA active status:0x%x\n", in qla24xx_reset_risc()
2876 for (cnt = 10000; rd_reg_word(®->mailbox0) != 0 && in qla24xx_reset_risc()
2888 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x017f, in qla24xx_reset_risc()
2889 "HCCR: 0x%x, MailBox0 Status 0x%x\n", in qla24xx_reset_risc()
2895 for (cnt = 0; cnt < 60; cnt++) { in qla24xx_reset_risc()
2898 CSRX_ISP_SOFT_RESET) == 0) in qla24xx_reset_risc()
2906 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x015d, in qla24xx_reset_risc()
2907 "HCCR: 0x%x, Soft Reset status: 0x%x\n", in qla24xx_reset_risc()
2922 abts_cnt = 0; in qla24xx_reset_risc()
2923 vha->flags.online = 0; in qla24xx_reset_risc()
2938 for (cnt = 60; rd_reg_word(®->mailbox0) != 0 && in qla24xx_reset_risc()
2949 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x015e, in qla24xx_reset_risc()
2950 "Host Risc 0x%x, mailbox0 0x%x\n", in qla24xx_reset_risc()
2956 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x015f, in qla24xx_reset_risc()
2987 uint32_t wd32 = 0; in qla25xx_manipulate_risc_semaphore()
2989 uint elapsed_msec = 0; in qla25xx_manipulate_risc_semaphore()
2993 if (vha->hw->pdev->subsystem_device != 0x0175 && in qla25xx_manipulate_risc_semaphore()
2994 vha->hw->pdev->subsystem_device != 0x0240) in qla25xx_manipulate_risc_semaphore()
3049 * Returns 0 on success.
3076 * Returns 0 on success.
3084 unsigned long flags = 0; in qla2x00_chip_diag()
3088 struct req_que *req = ha->req_q_map[0]; in qla2x00_chip_diag()
3093 ql_dbg(ql_dbg_init, vha, 0x007b, "Testing device at %p.\n", in qla2x00_chip_diag()
3116 ql_dbg(ql_dbg_init, vha, 0x007c, in qla2x00_chip_diag()
3125 data = qla2x00_debounce_register(MAILBOX_REG(ha, reg, 0)); in qla2x00_chip_diag()
3128 data = RD_MAILBOX_REG(ha, reg, 0); in qla2x00_chip_diag()
3138 ql_dbg(ql_dbg_init, vha, 0x007d, "Checking product ID of chip.\n"); in qla2x00_chip_diag()
3146 ql_log(ql_log_warn, vha, 0x0062, in qla2x00_chip_diag()
3147 "Wrong product ID = 0x%x,0x%x,0x%x.\n", in qla2x00_chip_diag()
3152 ha->product_id[0] = mb[1]; in qla2x00_chip_diag()
3167 ql_dbg(ql_dbg_init, vha, 0x007e, "Found QLA2200A Chip.\n"); in qla2x00_chip_diag()
3176 ql_dbg(ql_dbg_init, vha, 0x007f, "Checking mailboxes.\n"); in qla2x00_chip_diag()
3179 ql_log(ql_log_warn, vha, 0x0080, in qla2x00_chip_diag()
3188 ql_log(ql_log_info, vha, 0x0081, in qla2x00_chip_diag()
3200 * Returns 0 on success.
3207 struct req_que *req = ha->req_q_map[0]; in qla24xx_chip_diag()
3216 ql_log(ql_log_warn, vha, 0x0082, in qla24xx_chip_diag()
3242 ql_dbg(ql_dbg_init, vha, 0x00bd, in qla2x00_init_fce_trace()
3252 ql_log(ql_log_warn, vha, 0x00be, in qla2x00_init_fce_trace()
3261 ql_log(ql_log_warn, vha, 0x00bf, in qla2x00_init_fce_trace()
3267 ql_dbg(ql_dbg_init, vha, 0x00c0, in qla2x00_init_fce_trace()
3287 ql_dbg(ql_dbg_init, vha, 0x00bd, in qla2x00_init_eft_trace()
3297 ql_log(ql_log_warn, vha, 0x00c1, in qla2x00_init_eft_trace()
3305 ql_log(ql_log_warn, vha, 0x00c2, in qla2x00_init_eft_trace()
3311 ql_dbg(ql_dbg_init, vha, 0x00c3, in qla2x00_init_eft_trace()
3331 struct req_que *req = ha->req_q_map[0]; in qla2x00_alloc_fw_dump()
3332 struct rsp_que *rsp = ha->rsp_q_map[0]; in qla2x00_alloc_fw_dump()
3336 ql_dbg(ql_dbg_init, vha, 0x00bd, in qla2x00_alloc_fw_dump()
3341 ha->fw_dumped = 0; in qla2x00_alloc_fw_dump()
3342 ha->fw_dump_cap_flags = 0; in qla2x00_alloc_fw_dump()
3343 dump_size = fixed_size = mem_size = eft_size = fce_size = mq_size = 0; in qla2x00_alloc_fw_dump()
3344 req_q_size = rsp_q_size = 0; in qla2x00_alloc_fw_dump()
3350 mem_size = (ha->fw_memory_size - 0x11000 + 1) * in qla2x00_alloc_fw_dump()
3362 mem_size = (ha->fw_memory_size - 0x100000 + 1) * in qla2x00_alloc_fw_dump()
3391 for (j = 0; j < 2; j++, fwdt++) { in qla2x00_alloc_fw_dump()
3393 ql_dbg(ql_dbg_init, vha, 0x00ba, in qla2x00_alloc_fw_dump()
3397 ql_dbg(ql_dbg_init, vha, 0x00fa, in qla2x00_alloc_fw_dump()
3401 ql_dbg(ql_dbg_init, vha, 0x00fa, in qla2x00_alloc_fw_dump()
3426 ql_dbg(ql_dbg_init, vha, 0x00c5, in qla2x00_alloc_fw_dump()
3433 ql_log(ql_log_warn, vha, 0x00c4, in qla2x00_alloc_fw_dump()
3443 ql_dbg(ql_dbg_init, vha, 0x00c5, in qla2x00_alloc_fw_dump()
3453 ql_dbg(ql_dbg_init, vha, 0x00c5, in qla2x00_alloc_fw_dump()
3464 ha->fw_dump->signature[0] = 'Q'; in qla2x00_alloc_fw_dump()
3493 #define MPS_MASK 0xe0 in qla81xx_mpi_sync()
3501 rval = qla2x00_write_ram_word(vha, 0x7c00, 1); in qla81xx_mpi_sync()
3503 ql_log(ql_log_warn, vha, 0x0105, in qla81xx_mpi_sync()
3508 pci_read_config_word(vha->hw->pdev, 0x54, &dc); in qla81xx_mpi_sync()
3509 rval = qla2x00_read_ram_word(vha, 0x7a15, &dw); in qla81xx_mpi_sync()
3511 ql_log(ql_log_warn, vha, 0x0067, "Unable to read sync.\n"); in qla81xx_mpi_sync()
3521 rval = qla2x00_write_ram_word(vha, 0x7a15, dw); in qla81xx_mpi_sync()
3523 ql_log(ql_log_warn, vha, 0x0114, "Unable to gain sync.\n"); in qla81xx_mpi_sync()
3527 rval = qla2x00_write_ram_word(vha, 0x7c00, 0); in qla81xx_mpi_sync()
3529 ql_log(ql_log_warn, vha, 0x006d, in qla81xx_mpi_sync()
3568 ql_log(ql_log_fatal, NULL, 0x0126, in qla2x00_alloc_outstanding_cmds()
3571 req->num_outstanding_cmds = 0; in qla2x00_alloc_outstanding_cmds()
3600 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3602 ql_dbg(ql_dbg_init, vha, 0x015a, in qla2xxx_print_sfp_info()
3605 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3607 ql_dbg(ql_dbg_init, vha, 0x015c, in qla2xxx_print_sfp_info()
3611 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3614 p = len = 0; in qla2xxx_print_sfp_info()
3622 ql_dbg(ql_dbg_init, vha, 0x0160, in qla2xxx_print_sfp_info()
3626 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3629 p = len = 0; in qla2xxx_print_sfp_info()
3635 ql_dbg(ql_dbg_init, vha, 0x0196, in qla2xxx_print_sfp_info()
3638 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3641 p = len = 0; in qla2xxx_print_sfp_info()
3647 ql_dbg(ql_dbg_init, vha, 0x016e, in qla2xxx_print_sfp_info()
3651 ql_dbg(ql_dbg_init, vha, 0x016f, in qla2xxx_print_sfp_info()
3654 ql_dbg(ql_dbg_init, vha, 0x0170, in qla2xxx_print_sfp_info()
3657 ql_dbg(ql_dbg_init, vha, 0x0189, in qla2xxx_print_sfp_info()
3660 ql_dbg(ql_dbg_init, vha, 0x018a, in qla2xxx_print_sfp_info()
3663 ql_dbg(ql_dbg_init, vha, 0x0194, in qla2xxx_print_sfp_info()
3666 ql_dbg(ql_dbg_init, vha, 0x0195, in qla2xxx_print_sfp_info()
3677 * 0 -- Configure firmware to use short-range settings -- normal
3695 u8 ll = 0; in qla24xx_detect_sfp()
3698 used_nvram = 0; in qla24xx_detect_sfp()
3699 ha->flags.lr_detected = 0; in qla24xx_detect_sfp()
3712 rc = qla2x00_read_sfp_dev(vha, NULL, 0); in qla24xx_detect_sfp()
3716 used_nvram = 0; in qla24xx_detect_sfp()
3720 ha->flags.lr_detected = 0; in qla24xx_detect_sfp()
3733 ql_dbg(ql_dbg_async, vha, 0x507b, in qla24xx_detect_sfp()
3754 ha->base_qpair->fwres.iocbs_used = 0; in qla_init_iocb_limit()
3755 for (i = 0; i < ha->max_qpairs; i++) { in qla_init_iocb_limit()
3762 ha->queue_pair_map[i]->fwres.iocbs_used = 0; in qla_init_iocb_limit()
3771 * Returns 0 on success.
3777 uint32_t srisc_address = 0; in qla2x00_setup_chip()
3782 int done_once = 0; in qla2x00_setup_chip()
3796 wrt_reg_word(®->hccr, (HCCR_ENABLE_PARITY + 0x0)); in qla2x00_setup_chip()
3807 ql_dbg(ql_dbg_init, vha, 0x00c9, in qla2x00_setup_chip()
3813 ql_dbg(ql_dbg_init, vha, 0x00ca, in qla2x00_setup_chip()
3827 ql_dbg(ql_dbg_init, vha, 0x00ca, in qla2x00_setup_chip()
3855 ha->flags.npiv_supported = 0; in qla2x00_setup_chip()
3887 ql_log(ql_log_fatal, vha, 0x00cd, in qla2x00_setup_chip()
3903 wrt_reg_word(®->hccr, HCCR_ENABLE_PARITY + 0x1); in qla2x00_setup_chip()
3906 wrt_reg_word(®->hccr, HCCR_ENABLE_PARITY + 0x7); in qla2x00_setup_chip()
3921 ql_log(ql_log_warn, vha, 0x00ce, in qla2x00_setup_chip()
3927 ha->flags.fac_supported = 0; in qla2x00_setup_chip()
3934 ql_log(ql_log_fatal, vha, 0x00cf, in qla2x00_setup_chip()
3948 * Returns 0 on success.
3957 rsp->ring_index = 0; in qla2x00_init_response_q_entries()
3960 for (cnt = 0; cnt < rsp->length; cnt++) { in qla2x00_init_response_q_entries()
3970 * Returns 0 on success.
3978 memset(ha->fw_options, 0, sizeof(ha->fw_options)); in qla2x00_update_fw_options()
3985 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x0115, in qla2x00_update_fw_options()
3987 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x0109, in qla2x00_update_fw_options()
3998 tx_sens = ha->fw_seriallink_options[0] & in qla2x00_update_fw_options()
4000 rx_sens = (ha->fw_seriallink_options[0] & in qla2x00_update_fw_options()
4004 if (rx_sens == 0x0) in qla2x00_update_fw_options()
4005 rx_sens = 0x3; in qla2x00_update_fw_options()
4022 if (rx_sens == 0x0) in qla2x00_update_fw_options()
4023 rx_sens = 0x3; in qla2x00_update_fw_options()
4046 ql_dbg(ql_dbg_disc, vha, 0x2100, in qla2x00_update_fw_options()
4047 "(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n", in qla2x00_update_fw_options()
4071 ql_dbg(ql_dbg_disc, vha, 0x2101, in qla24xx_update_fw_options()
4072 "(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n", in qla24xx_update_fw_options()
4112 ql_dbg(ql_dbg_init, vha, 0x00e8, in qla24xx_update_fw_options()
4113 "%s, add FW options 1-3 = 0x%04x 0x%04x 0x%04x mode %x\n", in qla24xx_update_fw_options()
4121 if ((le16_to_cpu(ha->fw_seriallink_options24[0]) & BIT_0) == 0) in qla24xx_update_fw_options()
4129 ql_log(ql_log_warn, vha, 0x0104, in qla24xx_update_fw_options()
4139 struct req_que *req = ha->req_q_map[0]; in qla2x00_config_rings()
4140 struct rsp_que *rsp = ha->rsp_q_map[0]; in qla2x00_config_rings()
4143 ha->init_cb->request_q_outpointer = cpu_to_le16(0); in qla2x00_config_rings()
4144 ha->init_cb->response_q_inpointer = cpu_to_le16(0); in qla2x00_config_rings()
4150 wrt_reg_word(ISP_REQ_Q_IN(ha, reg), 0); in qla2x00_config_rings()
4151 wrt_reg_word(ISP_REQ_Q_OUT(ha, reg), 0); in qla2x00_config_rings()
4152 wrt_reg_word(ISP_RSP_Q_IN(ha, reg), 0); in qla2x00_config_rings()
4153 wrt_reg_word(ISP_RSP_Q_OUT(ha, reg), 0); in qla2x00_config_rings()
4161 device_reg_t *reg = ISP_QUE_REG(ha, 0); in qla24xx_config_rings()
4165 uint16_t rid = 0; in qla24xx_config_rings()
4166 struct req_que *req = ha->req_q_map[0]; in qla24xx_config_rings()
4167 struct rsp_que *rsp = ha->rsp_q_map[0]; in qla24xx_config_rings()
4171 icb->request_q_outpointer = cpu_to_le16(0); in qla24xx_config_rings()
4172 icb->response_q_inpointer = cpu_to_le16(0); in qla24xx_config_rings()
4179 icb->atio_q_inpointer = cpu_to_le16(0); in qla24xx_config_rings()
4192 ql_dbg(ql_dbg_init, vha, 0x0019, in qla24xx_config_rings()
4193 "Registering vector 0x%x for base que.\n", in qla24xx_config_rings()
4209 ql_dbg(ql_dbg_init, vha, 0x00fe, in qla24xx_config_rings()
4216 wrt_reg_dword(®->isp25mq.req_q_in, 0); in qla24xx_config_rings()
4217 wrt_reg_dword(®->isp25mq.req_q_out, 0); in qla24xx_config_rings()
4218 wrt_reg_dword(®->isp25mq.rsp_q_in, 0); in qla24xx_config_rings()
4219 wrt_reg_dword(®->isp25mq.rsp_q_out, 0); in qla24xx_config_rings()
4221 wrt_reg_dword(®->isp24.req_q_in, 0); in qla24xx_config_rings()
4222 wrt_reg_dword(®->isp24.req_q_out, 0); in qla24xx_config_rings()
4223 wrt_reg_dword(®->isp24.rsp_q_in, 0); in qla24xx_config_rings()
4224 wrt_reg_dword(®->isp24.rsp_q_out, 0); in qla24xx_config_rings()
4231 ql_dbg(ql_dbg_init, vha, 0x00fd, in qla24xx_config_rings()
4248 * Returns 0 on success.
4254 unsigned long flags = 0; in qla2x00_init_rings()
4265 for (que = 0; que < ha->max_req_queues; que++) { in qla2x00_init_rings()
4270 *req->out_ptr = 0; in qla2x00_init_rings()
4278 req->ring_index = 0; in qla2x00_init_rings()
4282 for (que = 0; que < ha->max_rsp_queues; que++) { in qla2x00_init_rings()
4287 *rsp->in_ptr = 0; in qla2x00_init_rings()
4296 ha->tgt.atio_ring_index = 0; in qla2x00_init_rings()
4304 ql_dbg(ql_dbg_init, vha, 0x00d1, "Issue init firmware.\n"); in qla2x00_init_rings()
4326 BIT_7) != 0; in qla2x00_init_rings()
4327 ql_dbg(ql_dbg_init, vha, 0x0191, "DPORT Support: %s.\n", in qla2x00_init_rings()
4332 BIT_6) != 0; in qla2x00_init_rings()
4333 ql_dbg(ql_dbg_init, vha, 0x00bc, "FA-WWPN Support: %s.\n", in qla2x00_init_rings()
4342 ql_log(ql_log_fatal, vha, 0x00d2, in qla2x00_init_rings()
4345 ql_dbg(ql_dbg_init, vha, 0x00d3, in qla2x00_init_rings()
4348 vha->u_ql2xexchoffld = vha->u_ql2xiniexchg = 0; in qla2x00_init_rings()
4358 * Returns 0 on success.
4397 ql_log(ql_log_info, vha, 0x801e, in qla2x00_fw_ready()
4404 if (state[0] < FSTATE_LOSS_OF_SYNC) { in qla2x00_fw_ready()
4407 if (IS_QLA84XX(ha) && state[0] != FSTATE_READY) { in qla2x00_fw_ready()
4408 ql_dbg(ql_dbg_taskm, vha, 0x801f, in qla2x00_fw_ready()
4409 "fw_state=%x 84xx=%x.\n", state[0], in qla2x00_fw_ready()
4413 ql_dbg(ql_dbg_taskm, vha, 0x8028, in qla2x00_fw_ready()
4420 vha, 0x8007, in qla2x00_fw_ready()
4429 ql_dbg(ql_dbg_taskm, vha, 0x8008, in qla2x00_fw_ready()
4434 } else if (state[0] == FSTATE_READY) { in qla2x00_fw_ready()
4435 ql_dbg(ql_dbg_taskm, vha, 0x8037, in qla2x00_fw_ready()
4448 state[0] != FSTATE_READY) { in qla2x00_fw_ready()
4453 ql_log(ql_log_info, vha, 0x8038, in qla2x00_fw_ready()
4474 ql_dbg(ql_dbg_taskm, vha, 0x803a, in qla2x00_fw_ready()
4475 "fw_state=%x (%x, %x, %x, %x %x) curr time=%lx.\n", state[0], in qla2x00_fw_ready()
4479 ql_log(ql_log_warn, vha, 0x803b, in qla2x00_fw_ready()
4494 * 0 = success
4521 (rval == QLA_COMMAND_ERROR && loop_id == 0x7)) { in qla2x00_configure_hba()
4522 ql_dbg(ql_dbg_disc, vha, 0x2008, in qla2x00_configure_hba()
4525 ql_log(ql_log_warn, vha, 0x2009, in qla2x00_configure_hba()
4528 (rval == QLA_COMMAND_ERROR && loop_id == 0x1b)) { in qla2x00_configure_hba()
4529 ql_log(ql_log_warn, vha, 0x1151, in qla2x00_configure_hba()
4540 ql_log(ql_log_info, vha, 0x200a, in qla2x00_configure_hba()
4550 ha->switch_cap = 0; in qla2x00_configure_hba()
4553 case 0: in qla2x00_configure_hba()
4554 ql_dbg(ql_dbg_disc, vha, 0x200b, "HBA in NL topology.\n"); in qla2x00_configure_hba()
4560 ql_dbg(ql_dbg_disc, vha, 0x200c, "HBA in FL topology.\n"); in qla2x00_configure_hba()
4567 ql_dbg(ql_dbg_disc, vha, 0x200d, "HBA in N P2P topology.\n"); in qla2x00_configure_hba()
4574 ql_dbg(ql_dbg_disc, vha, 0x200e, "HBA in F P2P topology.\n"); in qla2x00_configure_hba()
4582 ql_dbg(ql_dbg_disc, vha, 0x200f, in qla2x00_configure_hba()
4594 id.b.rsvd_1 = 0; in qla2x00_configure_hba()
4601 ql_log(ql_log_info, vha, 0x2010, in qla2x00_configure_hba()
4602 "Topology - %s, Host Loop address 0x%x.\n", in qla2x00_configure_hba()
4614 uint64_t zero[2] = { 0 }; in qla2x00_set_model_info()
4621 if (memcmp(model, &zero, len) != 0) { in qla2x00_set_model_info()
4626 if (*en != 0x20 && *en != 0x00) in qla2x00_set_model_info()
4628 *en-- = '\0'; in qla2x00_set_model_info()
4631 index = (ha->pdev->subsystem_device & 0xff); in qla2x00_set_model_info()
4639 index = (ha->pdev->subsystem_device & 0xff); in qla2x00_set_model_info()
4692 * 0 = success.
4698 uint8_t chksum = 0; in qla2x00_nvram_config()
4711 ha->nvram_base = 0; in qla2x00_nvram_config()
4714 ha->nvram_base = 0x80; in qla2x00_nvram_config()
4718 for (cnt = 0, chksum = 0; cnt < ha->nvram_size; cnt++) in qla2x00_nvram_config()
4721 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x010f, in qla2x00_nvram_config()
4723 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x0110, in qla2x00_nvram_config()
4730 ql_log(ql_log_warn, vha, 0x0064, in qla2x00_nvram_config()
4733 ql_log(ql_log_warn, vha, 0x0065, in qla2x00_nvram_config()
4740 memset(nv, 0, ha->nvram_size); in qla2x00_nvram_config()
4744 nv->firmware_options[0] = BIT_2 | BIT_1; in qla2x00_nvram_config()
4746 nv->add_firmware_options[0] = BIT_5; in qla2x00_nvram_config()
4751 nv->firmware_options[0] = BIT_2 | BIT_1; in qla2x00_nvram_config()
4753 nv->add_firmware_options[0] = BIT_5; in qla2x00_nvram_config()
4757 nv->firmware_options[0] = BIT_3 | BIT_1; in qla2x00_nvram_config()
4767 nv->port_name[0] = 33; in qla2x00_nvram_config()
4788 memset(icb, 0, ha->init_cb_size); in qla2x00_nvram_config()
4793 nv->firmware_options[0] |= (BIT_6 | BIT_1); in qla2x00_nvram_config()
4794 nv->firmware_options[0] &= ~(BIT_5 | BIT_4); in qla2x00_nvram_config()
4799 nv->firmware_options[0] |= BIT_2; in qla2x00_nvram_config()
4800 nv->firmware_options[0] &= ~BIT_3; in qla2x00_nvram_config()
4801 nv->special_options[0] &= ~BIT_6; in qla2x00_nvram_config()
4815 nv->firmware_options[0] |= BIT_2; in qla2x00_nvram_config()
4820 if ((nv->add_firmware_options[0] & (BIT_6 | BIT_5 | BIT_4)) == in qla2x00_nvram_config()
4823 nv->add_firmware_options[0] &= ~(BIT_6 | BIT_5 | BIT_4); in qla2x00_nvram_config()
4824 nv->add_firmware_options[0] |= BIT_5; in qla2x00_nvram_config()
4853 if ((icb->firmware_options[1] & BIT_6) == 0) { in qla2x00_nvram_config()
4859 icb->node_name[0] &= 0xF0; in qla2x00_nvram_config()
4870 if (nv->host_p[0] & BIT_7) in qla2x00_nvram_config()
4872 ha->flags.disable_risc_code_load = ((nv->host_p[0] & BIT_4) ? 1 : 0); in qla2x00_nvram_config()
4875 ha->flags.disable_risc_code_load = 0; in qla2x00_nvram_config()
4876 ha->flags.enable_lip_reset = ((nv->host_p[1] & BIT_1) ? 1 : 0); in qla2x00_nvram_config()
4877 ha->flags.enable_lip_full_login = ((nv->host_p[1] & BIT_2) ? 1 : 0); in qla2x00_nvram_config()
4878 ha->flags.enable_target_reset = ((nv->host_p[1] & BIT_3) ? 1 : 0); in qla2x00_nvram_config()
4879 ha->flags.enable_led_scheme = (nv->special_options[1] & BIT_4) ? 1 : 0; in qla2x00_nvram_config()
4880 ha->flags.disable_serdes = 0; in qla2x00_nvram_config()
4883 (icb->add_firmware_options[0] & (BIT_6 | BIT_5 | BIT_4)) >> 4; in qla2x00_nvram_config()
4895 icb->execution_throttle = cpu_to_le16(0xFFFF); in qla2x00_nvram_config()
4911 /* Link Down Timeout = 0: in qla2x00_nvram_config()
4916 * Link Down Timeout != 0: in qla2x00_nvram_config()
4921 if (nv->link_down_timeout == 0) { in qla2x00_nvram_config()
4946 icb->lun_enables = cpu_to_le16(0); in qla2x00_nvram_config()
4947 icb->command_resource_count = 0; in qla2x00_nvram_config()
4948 icb->immediate_notify_resource_count = 0; in qla2x00_nvram_config()
4949 icb->timeout = cpu_to_le16(0); in qla2x00_nvram_config()
4953 icb->firmware_options[0] &= ~BIT_3; in qla2x00_nvram_config()
4954 icb->add_firmware_options[0] &= in qla2x00_nvram_config()
4956 icb->add_firmware_options[0] |= BIT_2; in qla2x00_nvram_config()
4964 ha->zio_mode = icb->add_firmware_options[0] & in qla2x00_nvram_config()
4969 icb->add_firmware_options[0] &= in qla2x00_nvram_config()
4971 vha->flags.process_response_queue = 0; in qla2x00_nvram_config()
4975 ql_log(ql_log_info, vha, 0x0068, in qla2x00_nvram_config()
4979 icb->add_firmware_options[0] |= (uint8_t)ha->zio_mode; in qla2x00_nvram_config()
4986 ql_log(ql_log_warn, vha, 0x0069, in qla2x00_nvram_config()
5004 ql_dbg(ql_dbg_disc, fcport->vha, 0x210b, in qla2x00_rport_del()
5022 ql_dbg(ql_dbg_disc, fcport->vha, 0x207d, in qla2x00_set_fcport_state()
5050 ql_log(ql_log_warn, vha, 0xd049, in qla2x00_alloc_fcport()
5072 ql_log(ql_log_warn, vha, 0xd049, in qla2x00_alloc_fcport()
5109 memset(ha->init_cb, 0, ha->init_cb_size); in qla_get_login_template()
5114 ql_dbg(ql_dbg_init, vha, 0x00d1, in qla_get_login_template()
5133 * 0 = success.
5150 ql_dbg(ql_dbg_disc, vha, 0x2013, in qla2x00_configure_loop()
5157 ql_dbg(ql_dbg_disc, vha, 0x2014, in qla2x00_configure_loop()
5158 "Configure loop -- dpc flags = 0x%lx.\n", flags); in qla2x00_configure_loop()
5190 ql_dbg(ql_dbg_disc, vha, 0x2015, in qla2x00_configure_loop()
5199 ql_dbg(ql_dbg_disc, vha, 0x2099, in qla2x00_configure_loop()
5213 ql_dbg(ql_dbg_disc, vha, 0x2069, in qla2x00_configure_loop()
5224 qlt_24xx_process_atio_queue(vha, 0); in qla2x00_configure_loop()
5232 ql_dbg(ql_dbg_disc, vha, 0x206a, in qla2x00_configure_loop()
5235 ql_dbg(ql_dbg_disc, vha, 0x206b, in qla2x00_configure_loop()
5286 ql_dbg(ql_dbg_disc, vha, 0xd050, "Link reinitialized\n"); in qla_reinitialize_link()
5288 ql_dbg(ql_dbg_disc, vha, 0xd051, in qla_reinitialize_link()
5301 * 0 = success.
5322 found_devs = 0; in qla2x00_configure_local_loop()
5327 memset(ha->gid_list, 0, qla2x00_gid_list_size(ha)); in qla2x00_configure_local_loop()
5333 ql_dbg(ql_dbg_disc, vha, 0x2011, in qla2x00_configure_local_loop()
5335 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x2075, in qla2x00_configure_local_loop()
5338 if (entries == 0) { in qla2x00_configure_local_loop()
5344 u8 loop_map_entries = 0; in qla2x00_configure_local_loop()
5361 vha->scan.scan_retry = 0; in qla2x00_configure_local_loop()
5371 ql_log(ql_log_warn, vha, 0x2012, in qla2x00_configure_local_loop()
5380 for (index = 0; index < entries; index++) { in qla2x00_configure_local_loop()
5391 if ((domain & 0xf0) == 0xf0) in qla2x00_configure_local_loop()
5405 memset(new_fcport->port_name, 0, WWN_SIZE); in qla2x00_configure_local_loop()
5414 rval2 = qla2x00_get_port_database(vha, new_fcport, 0); in qla2x00_configure_local_loop()
5416 ql_dbg(ql_dbg_disc, vha, 0x2097, in qla2x00_configure_local_loop()
5418 "-- get_port_database=%x, loop_id=0x%04x.\n", in qla2x00_configure_local_loop()
5422 ql_dbg(ql_dbg_disc, vha, 0x2105, in qla2x00_configure_local_loop()
5431 found = 0; in qla2x00_configure_local_loop()
5445 if (fcport->login_retry == 0) { in qla2x00_configure_local_loop()
5447 ql_dbg(ql_dbg_disc, vha, 0x2135, in qla2x00_configure_local_loop()
5448 "Port login retry %8phN, lid 0x%04x retry cnt=%d.\n", in qla2x00_configure_local_loop()
5468 ql_log(ql_log_warn, vha, 0xd031, in qla2x00_configure_local_loop()
5496 (fcport->flags & FCF_FCP2_DEVICE) == 0 && in qla2x00_configure_local_loop()
5499 ql_dbg(ql_dbg_disc, vha, 0x20f0, in qla2x00_configure_local_loop()
5519 ql_dbg(ql_dbg_disc, vha, 0x2098, in qla2x00_configure_local_loop()
5545 ql_dbg(ql_dbg_disc, vha, 0x2004, in qla2x00_iidma_fcport()
5547 fcport->port_name, rval, fcport->fp_speed, mb[0], mb[1]); in qla2x00_iidma_fcport()
5549 ql_dbg(ql_dbg_disc, vha, 0x2005, in qla2x00_iidma_fcport()
5590 fcport->rport = rport = fc_remote_port_add(vha->host, 0, &rport_ids); in qla2x00_reg_remote_port()
5592 ql_log(ql_log_warn, vha, 0x2006, in qla2x00_reg_remote_port()
5615 ql_dbg(ql_dbg_disc, vha, 0x20ee, in qla2x00_reg_remote_port()
5633 * 0 - Success
5645 ql_dbg(ql_dbg_disc, vha, 0x20ef, "%s %8phC\n", in qla2x00_update_fcport()
5651 fcport->deleted = 0; in qla2x00_update_fcport()
5653 fcport->logout_on_delete = 0; in qla2x00_update_fcport()
5656 fcport->n2n_chip_reset = fcport->n2n_link_reset_cnt = 0; in qla2x00_update_fcport()
5703 fcport->id_changed = 0; in qla2x00_update_fcport()
5704 ql_dbg(ql_dbg_disc, vha, 0x20d7, in qla2x00_update_fcport()
5710 ql_dbg(ql_dbg_disc, vha, 0x20d7, in qla2x00_update_fcport()
5739 data[0] = data[1] = 0; in qla_register_fcport_fn()
5757 * 0 = success.
5778 ql_dbg(ql_dbg_disc, vha, 0x20a0, in qla2x00_configure_fabric()
5786 rval = qla2x00_get_port_name(vha, loop_id, vha->fabric_port_name, 0); in qla2x00_configure_fabric()
5788 ql_dbg(ql_dbg_disc, vha, 0x20ff, in qla2x00_configure_fabric()
5792 rval = qla2x00_send_change_request(vha, 0x3, 0); in qla2x00_configure_fabric()
5794 ql_log(ql_log_warn, vha, 0x121, in qla2x00_configure_fabric()
5795 "Failed to enable receiving of RSCN requests: 0x%x.\n", in qla2x00_configure_fabric()
5804 rval = ha->isp_ops->fabric_login(vha, loop_id, 0xff, 0xff, in qla2x00_configure_fabric()
5805 0xfc, mb, BIT_1|BIT_0); in qla2x00_configure_fabric()
5806 if (rval != QLA_SUCCESS || mb[0] != MBS_COMMAND_COMPLETE) { in qla2x00_configure_fabric()
5807 ql_dbg(ql_dbg_disc, vha, 0x20a1, in qla2x00_configure_fabric()
5808 "Failed SNS login: loop_id=%x mb[0]=%x mb[1]=%x mb[2]=%x mb[6]=%x mb[7]=%x (%x).\n", in qla2x00_configure_fabric()
5809 loop_id, mb[0], mb[1], mb[2], mb[6], mb[7], rval); in qla2x00_configure_fabric()
5822 ql_dbg(ql_dbg_disc, vha, 0x20a2, in qla2x00_configure_fabric()
5830 ql_dbg(ql_dbg_disc, vha, 0x209a, in qla2x00_configure_fabric()
5838 ql_dbg(ql_dbg_disc, vha, 0x2049, in qla2x00_configure_fabric()
5844 ql_dbg(ql_dbg_disc, vha, 0x2104, in qla2x00_configure_fabric()
5851 ql_dbg(ql_dbg_disc, vha, 0x209b, in qla2x00_configure_fabric()
5880 } while (0); in qla2x00_configure_fabric()
5886 ql_dbg(ql_dbg_disc, vha, 0x2068, in qla2x00_configure_fabric()
5900 * 0 = success.
5930 ql_dbg(ql_dbg_disc, vha, 0x209c, in qla2x00_find_all_fabric_devs()
5933 memset(swl, 0, ha->max_fibre_devices * sizeof(sw_info_t)); in qla2x00_find_all_fabric_devs()
5959 swl_idx = 0; in qla2x00_find_all_fabric_devs()
5964 ql_log(ql_log_warn, vha, 0x209d, in qla2x00_find_all_fabric_devs()
5971 last_dev = 0; in qla2x00_find_all_fabric_devs()
5982 atomic_set(&vha->loop_down_timer, 0); in qla2x00_find_all_fabric_devs()
6002 new_fcport->nvme_flag = 0; in qla2x00_find_all_fabric_devs()
6005 ql_log(ql_log_info, vha, 0x2131, in qla2x00_find_all_fabric_devs()
6010 if (swl[swl_idx].d_id.b.rsvd_1 != 0) { in qla2x00_find_all_fabric_devs()
6019 ql_log(ql_log_warn, vha, 0x209e, in qla2x00_find_all_fabric_devs()
6030 first_dev = 0; in qla2x00_find_all_fabric_devs()
6032 ql_dbg(ql_dbg_disc, vha, 0x209f, in qla2x00_find_all_fabric_devs()
6049 if (((new_fcport->d_id.b24 & 0xffff00) == in qla2x00_find_all_fabric_devs()
6050 (vha->d_id.b24 & 0xffff00)) && ha->current_topology == in qla2x00_find_all_fabric_devs()
6055 if ((new_fcport->d_id.b.domain & 0xf0) == 0xf0) in qla2x00_find_all_fabric_devs()
6061 new_fcport->fc4_type != 0)) in qla2x00_find_all_fabric_devs()
6067 found = 0; in qla2x00_find_all_fabric_devs()
6095 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla2x00_find_all_fabric_devs()
6109 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf080, in qla2x00_find_all_fabric_devs()
6111 " old %x:%x:%x (loop_id 0x%04x)-> new %x:%x:%x\n", in qla2x00_find_all_fabric_devs()
6133 fcport->login_succ = 0; in qla2x00_find_all_fabric_devs()
6152 ql_log(ql_log_warn, vha, 0xd032, in qla2x00_find_all_fabric_devs()
6169 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) in qla2x00_find_all_fabric_devs()
6179 (fcport->flags & FCF_FCP2_DEVICE) == 0 && in qla2x00_find_all_fabric_devs()
6182 ql_dbg(ql_dbg_disc, vha, 0x20f0, in qla2x00_find_all_fabric_devs()
6193 (fcport->flags & FCF_LOGIN_NEEDED) != 0) in qla2x00_find_all_fabric_devs()
6208 if (vha->vp_idx == 0) { in qla2x00_reserve_mgmt_server_loop_id()
6215 for (; lid > 0; lid--) { in qla2x00_reserve_mgmt_server_loop_id()
6236 * 0 - Login successfully
6251 retry = 0; in qla2x00_fabric_login()
6252 tmp_loopid = 0; in qla2x00_fabric_login()
6255 ql_dbg(ql_dbg_disc, vha, 0x2000, in qla2x00_fabric_login()
6256 "Trying Fabric Login w/loop id 0x%04x for port " in qla2x00_fabric_login()
6268 if (mb[0] == MBS_PORT_ID_USED) { in qla2x00_fabric_login()
6280 ql_dbg(ql_dbg_disc, vha, 0x2001, in qla2x00_fabric_login()
6282 "id=0x%04x, port id= %02x%02x%02x.\n", in qla2x00_fabric_login()
6286 } else if (mb[0] == MBS_COMMAND_COMPLETE) { in qla2x00_fabric_login()
6323 } else if (mb[0] == MBS_LOOP_ID_USED) { in qla2x00_fabric_login()
6333 } else if (mb[0] == MBS_COMMAND_ERROR) { in qla2x00_fabric_login()
6351 ql_dbg(ql_dbg_disc, vha, 0x2002, in qla2x00_fabric_login()
6353 "jiffies=%lx.\n", mb[0], fcport->d_id.b.domain, in qla2x00_fabric_login()
6362 fcport->login_retry = 0; in qla2x00_fabric_login()
6381 * 0 - Login successfully
6391 memset(mb, 0, sizeof(mb)); in qla2x00_local_device_login()
6395 if (mb[0] == MBS_COMMAND_ERROR) in qla2x00_local_device_login()
6397 else if (mb[0] == MBS_COMMAND_PARAMETER_ERROR) in qla2x00_local_device_login()
6413 * 0 = success
6433 0, 0, MK_SYNC_ALL); in qla2x00_loop_resync()
6434 vha->marker_needed = 0; in qla2x00_loop_resync()
6457 ql_dbg(ql_dbg_disc, vha, 0x206c, in qla2x00_loop_resync()
6473 int32_t rval = 0; in qla2x00_perform_loop_resync()
6477 atomic_set(&ha->loop_down_timer, 0); in qla2x00_perform_loop_resync()
6528 uint32_t class_type_mask = 0x3; in qla83xx_reset_ownership()
6529 uint16_t fcoe_other_function = 0xffff, i; in qla83xx_reset_ownership()
6543 for (i = 0; i < 8; i++) { in qla83xx_reset_ownership()
6551 if (fcoe_other_function == 0xffff) { in qla83xx_reset_ownership()
6552 for (i = 0; i < 8; i++) { in qla83xx_reset_ownership()
6564 * However consider only valid physical fcoe function numbers (0-15). in qla83xx_reset_ownership()
6567 ((fcoe_other_function == 0xffff) ? in qla83xx_reset_ownership()
6568 0 : (1 << (fcoe_other_function)))); in qla83xx_reset_ownership()
6575 ql_dbg(ql_dbg_p3p, vha, 0xb07f, in qla83xx_reset_ownership()
6641 uint32_t idc_audit_reg = 0, duration_secs = 0; in qla83xx_idc_audit()
6660 ql_log(ql_log_warn, vha, 0xb078, in qla83xx_idc_audit()
6675 ql_log(ql_log_info, vha, 0xb080, in qla83xx_initiating_reset()
6676 "NIC Core reset has been disabled. idc-control=0x%x\n", in qla83xx_initiating_reset()
6686 ql_log(ql_log_info, vha, 0xb056, "HW State: NEED RESET.\n"); in qla83xx_initiating_reset()
6691 ql_log(ql_log_info, vha, 0xb057, "HW State: %s.\n", state); in qla83xx_initiating_reset()
6696 qla83xx_idc_unlock(vha, 0); in qla83xx_initiating_reset()
6698 qla83xx_idc_lock(vha, 0); in qla83xx_initiating_reset()
6724 uint32_t drv_presence = 0; in qla83xx_check_driver_presence()
6740 ql_dbg(ql_dbg_p3p, vha, 0xb058, in qla83xx_nic_core_reset()
6744 ql_log(ql_log_warn, vha, 0xb059, in qla83xx_nic_core_reset()
6749 qla83xx_idc_lock(vha, 0); in qla83xx_nic_core_reset()
6752 ql_log(ql_log_warn, vha, 0xb05a, in qla83xx_nic_core_reset()
6753 "Function=0x%x has been removed from IDC participation.\n", in qla83xx_nic_core_reset()
6771 ha->flags.nic_core_hung = 0; in qla83xx_nic_core_reset()
6776 qla83xx_idc_unlock(vha, 0); in qla83xx_nic_core_reset()
6778 ql_dbg(ql_dbg_p3p, vha, 0xb05b, "Exiting %s.\n", __func__); in qla83xx_nic_core_reset()
6791 ql_log(ql_log_info, vha, 0x506d, in qla2xxx_mctp_dump()
6801 ql_log(ql_log_warn, vha, 0x506e, in qla2xxx_mctp_dump()
6807 #define MCTP_DUMP_STR_ADDR 0x00000000 in qla2xxx_mctp_dump()
6811 ql_log(ql_log_warn, vha, 0x506f, in qla2xxx_mctp_dump()
6814 ql_log(ql_log_info, vha, 0x5070, in qla2xxx_mctp_dump()
6825 ql_log(ql_log_warn, vha, 0x5071, in qla2xxx_mctp_dump()
6828 ql_dbg(ql_dbg_p3p, vha, 0xb084, in qla2xxx_mctp_dump()
6830 ha->flags.nic_core_reset_hdlr_active = 0; in qla2xxx_mctp_dump()
6851 ql_dbg(ql_dbg_dpc, vha, 0x401d, in qla2x00_quiesce_io()
6866 WARN_ON_ONCE(qla2x00_eh_wait_for_pending_commands(vha, 0, 0, WAIT_HOST) in qla2x00_quiesce_io()
6883 vha->flags.online = 0; in qla2x00_abort_isp_cleanup()
6884 ha->flags.chip_reset_done = 0; in qla2x00_abort_isp_cleanup()
6888 ql_log(ql_log_info, vha, 0x00af, in qla2x00_abort_isp_cleanup()
6901 ha->flags.rida_fmt2 = 0; in qla2x00_abort_isp_cleanup()
6902 ha->flags.n2n_ae = 0; in qla2x00_abort_isp_cleanup()
6903 ha->flags.lip_ae = 0; in qla2x00_abort_isp_cleanup()
6904 ha->current_topology = 0; in qla2x00_abort_isp_cleanup()
6906 ha->flags.fw_init_done = 0; in qla2x00_abort_isp_cleanup()
6909 for (i = 0; i < ha->max_qpairs; i++) { in qla2x00_abort_isp_cleanup()
6921 i = 0; in qla2x00_abort_isp_cleanup()
6930 ha->flags.purge_mbox = 0; in qla2x00_abort_isp_cleanup()
6957 fcport->scan_state = 0; in qla2x00_abort_isp_cleanup()
6976 ql_log(ql_log_info, vha, 0x00b4, in qla2x00_abort_isp_cleanup()
6982 vha->flags.online = 0; in qla2x00_abort_isp_cleanup()
7000 * 0 = success
7006 uint8_t status = 0; in qla2x00_abort_isp()
7009 struct req_que *req = ha->req_q_map[0]; in qla2x00_abort_isp()
7018 status = 0; in qla2x00_abort_isp()
7024 ql_dbg(ql_dbg_p3p, vha, 0xb05c, in qla2x00_abort_isp()
7027 ql_dbg(ql_dbg_p3p, vha, 0xb073, in qla2x00_abort_isp()
7034 status = 0; in qla2x00_abort_isp()
7041 return 0; in qla2x00_abort_isp()
7046 return 0; in qla2x00_abort_isp()
7072 ha->isp_abort_cnt = 0; in qla2x00_abort_isp()
7079 memset(ha->fce, 0, in qla2x00_abort_isp()
7085 ql_log(ql_log_warn, vha, 0x8033, in qla2x00_abort_isp()
7088 ha->flags.fce_enabled = 0; in qla2x00_abort_isp()
7093 memset(ha->eft, 0, EFT_SIZE); in qla2x00_abort_isp()
7097 ql_log(ql_log_warn, vha, 0x8034, in qla2x00_abort_isp()
7105 if (ha->isp_abort_cnt == 0) { in qla2x00_abort_isp()
7106 ql_log(ql_log_fatal, vha, 0x8035, in qla2x00_abort_isp()
7114 vha->flags.online = 0; in qla2x00_abort_isp()
7117 status = 0; in qla2x00_abort_isp()
7120 ql_dbg(ql_dbg_taskm, vha, 0x8020, in qla2x00_abort_isp()
7127 ql_dbg(ql_dbg_taskm, vha, 0x8021, in qla2x00_abort_isp()
7138 ql_dbg(ql_dbg_taskm, vha, 0x8022, "%s succeeded.\n", __func__); in qla2x00_abort_isp()
7155 ql_dbg(ql_dbg_p3p, vha, 0xb05d, in qla2x00_abort_isp()
7158 ql_dbg(ql_dbg_p3p, vha, 0xb074, in qla2x00_abort_isp()
7162 ql_log(ql_log_warn, vha, 0x8023, "%s **** FAILED ****.\n", in qla2x00_abort_isp()
7177 * 0 = success
7187 vha->flags.online = 0; in qla2x00_restart_isp()
7209 return vha->device_flags & DFLG_NO_CABLE ? 0 : status; in qla2x00_restart_isp()
7213 qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL); in qla2x00_restart_isp()
7216 return 0; in qla2x00_restart_isp()
7234 ql_dbg(ql_dbg_init, base_vha, 0x00ff, in qla25xx_init_queues()
7238 ql_dbg(ql_dbg_init, base_vha, 0x0100, in qla25xx_init_queues()
7250 ql_dbg(ql_dbg_init, base_vha, 0x0101, in qla25xx_init_queues()
7254 ql_dbg(ql_dbg_init, base_vha, 0x0102, in qla25xx_init_queues()
7272 unsigned long flags = 0; in qla2x00_reset_adapter()
7276 vha->flags.online = 0; in qla2x00_reset_adapter()
7292 unsigned long flags = 0; in qla24xx_reset_adapter()
7299 vha->flags.online = 0; in qla24xx_reset_adapter()
7355 if (ha->port_no == 0) { in qla24xx_nvram_config()
7374 for (cnt = 0, chksum = 0; cnt < ha->nvram_size >> 2; cnt++, dptr++) in qla24xx_nvram_config()
7377 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x006a, in qla24xx_nvram_config()
7379 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x010d, in qla24xx_nvram_config()
7386 ql_log(ql_log_warn, vha, 0x006b, in qla24xx_nvram_config()
7389 ql_dump_buffer(ql_dbg_init, vha, 0x006b, nv, sizeof(*nv)); in qla24xx_nvram_config()
7390 ql_log(ql_log_warn, vha, 0x006c, in qla24xx_nvram_config()
7397 memset(nv, 0, ha->nvram_size); in qla24xx_nvram_config()
7401 nv->execution_throttle = cpu_to_le16(0xFFFF); in qla24xx_nvram_config()
7402 nv->exchange_count = cpu_to_le16(0); in qla24xx_nvram_config()
7404 nv->port_name[0] = 0x21; in qla24xx_nvram_config()
7405 nv->port_name[1] = 0x00 + ha->port_no + 1; in qla24xx_nvram_config()
7406 nv->port_name[2] = 0x00; in qla24xx_nvram_config()
7407 nv->port_name[3] = 0xe0; in qla24xx_nvram_config()
7408 nv->port_name[4] = 0x8b; in qla24xx_nvram_config()
7409 nv->port_name[5] = 0x1c; in qla24xx_nvram_config()
7410 nv->port_name[6] = 0x55; in qla24xx_nvram_config()
7411 nv->port_name[7] = 0x86; in qla24xx_nvram_config()
7412 nv->node_name[0] = 0x20; in qla24xx_nvram_config()
7413 nv->node_name[1] = 0x00; in qla24xx_nvram_config()
7414 nv->node_name[2] = 0x00; in qla24xx_nvram_config()
7415 nv->node_name[3] = 0xe0; in qla24xx_nvram_config()
7416 nv->node_name[4] = 0x8b; in qla24xx_nvram_config()
7417 nv->node_name[5] = 0x1c; in qla24xx_nvram_config()
7418 nv->node_name[6] = 0x55; in qla24xx_nvram_config()
7419 nv->node_name[7] = 0x86; in qla24xx_nvram_config()
7422 nv->interrupt_delay_timer = cpu_to_le16(0); in qla24xx_nvram_config()
7423 nv->login_timeout = cpu_to_le16(0); in qla24xx_nvram_config()
7430 nv->efi_parameters = cpu_to_le32(0); in qla24xx_nvram_config()
7449 memset(icb, 0, ha->init_cb_size); in qla24xx_nvram_config()
7484 if ((icb->firmware_options_1 & cpu_to_le32(BIT_14)) == 0) { in qla24xx_nvram_config()
7490 icb->node_name[0] &= 0xF0; in qla24xx_nvram_config()
7494 ha->flags.disable_risc_code_load = 0; in qla24xx_nvram_config()
7495 ha->flags.enable_lip_reset = 0; in qla24xx_nvram_config()
7497 le32_to_cpu(nv->host_p) & BIT_10 ? 1 : 0; in qla24xx_nvram_config()
7499 le32_to_cpu(nv->host_p) & BIT_11 ? 1 : 0; in qla24xx_nvram_config()
7500 ha->flags.enable_led_scheme = 0; in qla24xx_nvram_config()
7501 ha->flags.disable_serdes = le32_to_cpu(nv->host_p) & BIT_5 ? 1 : 0; in qla24xx_nvram_config()
7516 icb->execution_throttle = cpu_to_le16(0xFFFF); in qla24xx_nvram_config()
7532 /* Link Down Timeout = 0: in qla24xx_nvram_config()
7537 * Link Down Timeout != 0: in qla24xx_nvram_config()
7542 if (le16_to_cpu(nv->link_down_timeout) == 0) { in qla24xx_nvram_config()
7582 ql_log(ql_log_info, vha, 0x006f, in qla24xx_nvram_config()
7592 ql_log(ql_log_warn, vha, 0x0070, in qla24xx_nvram_config()
7602 ql_dbg(ql_dbg_init, vha, 0x018b, in qla27xx_print_image()
7638 uint32_t sum = 0; in qla27xx_image_status_checksum()
7680 ql_dbg(ql_dbg_init, NULL, 0x0180, "generation delta = %d\n", delta); in qla27xx_compare_image_generation()
7695 ql_dbg(ql_dbg_init, vha, 0x018a, "Primary aux image not addressed\n"); in qla28xx_get_aux_images()
7705 ql_dbg(ql_dbg_init, vha, 0x018b, in qla28xx_get_aux_images()
7712 ql_dbg(ql_dbg_init, vha, 0x018c, in qla28xx_get_aux_images()
7720 ql_dbg(ql_dbg_init, vha, 0x018d, in qla28xx_get_aux_images()
7727 ql_dbg(ql_dbg_init, vha, 0x018a, in qla28xx_get_aux_images()
7738 ql_dbg(ql_dbg_init, vha, 0x018b, in qla28xx_get_aux_images()
7745 ql_dbg(ql_dbg_init, vha, 0x018c, in qla28xx_get_aux_images()
7753 ql_dbg(ql_dbg_init, vha, 0x018d, in qla28xx_get_aux_images()
7762 &sec_aux_image_status) >= 0) { in qla28xx_get_aux_images()
7775 ql_dbg(ql_dbg_init, vha, 0x018f, in qla28xx_get_aux_images()
7793 ql_dbg(ql_dbg_init, vha, 0x018a, "Primary image not addressed\n"); in qla27xx_get_active_image()
7806 ql_dbg(ql_dbg_init, vha, 0x018b, in qla27xx_get_active_image()
7813 ql_dbg(ql_dbg_init, vha, 0x018c, in qla27xx_get_active_image()
7821 ql_dbg(ql_dbg_init, vha, 0x018d, in qla27xx_get_active_image()
7828 ql_dbg(ql_dbg_init, vha, 0x018a, "Secondary image not addressed\n"); in qla27xx_get_active_image()
7837 ql_dbg(ql_dbg_init, vha, 0x018b, in qla27xx_get_active_image()
7844 ql_dbg(ql_dbg_init, vha, 0x018c, in qla27xx_get_active_image()
7852 ql_dbg(ql_dbg_init, vha, 0x018d, in qla27xx_get_active_image()
7864 &pri_image_status, &sec_image_status) < 0) { in qla27xx_get_active_image()
7869 ql_dbg(ql_dbg_init, vha, 0x018f, "active image %s (%u)\n", in qla27xx_get_active_image()
7896 uint32_t risc_addr, risc_size, risc_attr = 0; in qla24xx_load_risc_flash()
7898 struct req_que *req = ha->req_q_map[0]; in qla24xx_load_risc_flash()
7901 ql_dbg(ql_dbg_init, vha, 0x008b, in qla24xx_load_risc_flash()
7907 ql_log(ql_log_fatal, vha, 0x008c, in qla24xx_load_risc_flash()
7910 ql_log(ql_log_fatal, vha, 0x008d, in qla24xx_load_risc_flash()
7912 dcode[0], dcode[1], dcode[2], dcode[3]); in qla24xx_load_risc_flash()
7918 *srisc_addr = 0; in qla24xx_load_risc_flash()
7920 for (j = 0; j < segments; j++) { in qla24xx_load_risc_flash()
7921 ql_dbg(ql_dbg_init, vha, 0x008d, in qla24xx_load_risc_flash()
7932 for (fragment = 0; risc_size; fragment++) { in qla24xx_load_risc_flash()
7936 ql_dbg(ql_dbg_init, vha, 0x008e, in qla24xx_load_risc_flash()
7940 for (i = 0; i < dlen; i++) in qla24xx_load_risc_flash()
7945 ql_log(ql_log_fatal, vha, 0x008f, in qla24xx_load_risc_flash()
7961 ql_dbg(ql_dbg_init, vha, 0x0160, "-> templates = %u\n", templates); in qla24xx_load_risc_flash()
7962 for (j = 0; j < templates; j++, fwdt++) { in qla24xx_load_risc_flash()
7966 fwdt->length = 0; in qla24xx_load_risc_flash()
7971 ql_dbg(ql_dbg_init, vha, 0x0161, in qla24xx_load_risc_flash()
7975 ql_dbg(ql_dbg_init, vha, 0x0162, in qla24xx_load_risc_flash()
7984 ql_dbg(ql_dbg_init, vha, 0x0163, in qla24xx_load_risc_flash()
7989 ql_log(ql_log_warn, vha, 0x0164, in qla24xx_load_risc_flash()
7998 ql_log(ql_log_warn, vha, 0x0165, in qla24xx_load_risc_flash()
8004 ql_dbg(ql_dbg_init, vha, 0x0166, in qla24xx_load_risc_flash()
8008 ql_log(ql_log_warn, vha, 0x0167, in qla24xx_load_risc_flash()
8015 ql_dbg(ql_dbg_init, vha, 0x0168, in qla24xx_load_risc_flash()
8027 fwdt->length = 0; in qla24xx_load_risc_flash()
8044 struct req_que *req = ha->req_q_map[0]; in qla2x00_load_risc()
8049 ql_log(ql_log_info, vha, 0x0083, in qla2x00_load_risc()
8051 ql_log(ql_log_info, vha, 0x0084, in qla2x00_load_risc()
8059 *srisc_addr = 0; in qla2x00_load_risc()
8061 fwclen = 0; in qla2x00_load_risc()
8065 ql_log(ql_log_fatal, vha, 0x0085, in qla2x00_load_risc()
8070 for (i = 0; i < 4; i++) in qla2x00_load_risc()
8072 if ((wcode[0] == 0xffff && wcode[1] == 0xffff && wcode[2] == 0xffff && in qla2x00_load_risc()
8073 wcode[3] == 0xffff) || (wcode[0] == 0 && wcode[1] == 0 && in qla2x00_load_risc()
8074 wcode[2] == 0 && wcode[3] == 0)) { in qla2x00_load_risc()
8075 ql_log(ql_log_fatal, vha, 0x0086, in qla2x00_load_risc()
8077 ql_log(ql_log_fatal, vha, 0x0087, in qla2x00_load_risc()
8079 wcode[0], wcode[1], wcode[2], wcode[3]); in qla2x00_load_risc()
8086 *srisc_addr = *srisc_addr == 0 ? *seg : *srisc_addr; in qla2x00_load_risc()
8092 ql_log(ql_log_fatal, vha, 0x0088, in qla2x00_load_risc()
8098 fragment = 0; in qla2x00_load_risc()
8099 while (risc_size > 0 && rval == QLA_SUCCESS) { in qla2x00_load_risc()
8103 ql_dbg(ql_dbg_init, vha, 0x0089, in qla2x00_load_risc()
8105 "words 0x%x.\n", risc_addr, wlen); in qla2x00_load_risc()
8107 for (i = 0; i < wlen; i++) in qla2x00_load_risc()
8113 ql_log(ql_log_fatal, vha, 0x008a, in qla2x00_load_risc()
8141 uint32_t risc_addr, risc_size, risc_attr = 0; in qla24xx_load_risc_blob()
8147 struct req_que *req = ha->req_q_map[0]; in qla24xx_load_risc_blob()
8150 ql_dbg(ql_dbg_init, vha, 0x0090, in qla24xx_load_risc_blob()
8155 ql_log(ql_log_warn, vha, 0x0092, in qla24xx_load_risc_blob()
8164 ql_log(ql_log_fatal, vha, 0x0093, in qla24xx_load_risc_blob()
8167 ql_log(ql_log_fatal, vha, 0x0095, in qla24xx_load_risc_blob()
8169 dcode[0], dcode[1], dcode[2], dcode[3]); in qla24xx_load_risc_blob()
8174 *srisc_addr = 0; in qla24xx_load_risc_blob()
8176 for (j = 0; j < segments; j++) { in qla24xx_load_risc_blob()
8177 ql_dbg(ql_dbg_init, vha, 0x0096, in qla24xx_load_risc_blob()
8188 for (fragment = 0; risc_size; fragment++) { in qla24xx_load_risc_blob()
8192 ql_dbg(ql_dbg_init, vha, 0x0097, in qla24xx_load_risc_blob()
8198 for (i = 0; i < dlen; i++) in qla24xx_load_risc_blob()
8203 ql_log(ql_log_fatal, vha, 0x0098, in qla24xx_load_risc_blob()
8219 ql_dbg(ql_dbg_init, vha, 0x0170, "-> templates = %u\n", templates); in qla24xx_load_risc_blob()
8220 for (j = 0; j < templates; j++, fwdt++) { in qla24xx_load_risc_blob()
8224 fwdt->length = 0; in qla24xx_load_risc_blob()
8227 ql_dbg(ql_dbg_init, vha, 0x0171, in qla24xx_load_risc_blob()
8232 ql_dbg(ql_dbg_init, vha, 0x0172, in qla24xx_load_risc_blob()
8241 ql_dbg(ql_dbg_init, vha, 0x0173, in qla24xx_load_risc_blob()
8246 ql_log(ql_log_warn, vha, 0x0174, in qla24xx_load_risc_blob()
8252 for (i = 0; i < risc_size; i++) in qla24xx_load_risc_blob()
8256 ql_log(ql_log_warn, vha, 0x0175, in qla24xx_load_risc_blob()
8262 ql_dbg(ql_dbg_init, vha, 0x0176, in qla24xx_load_risc_blob()
8266 ql_log(ql_log_warn, vha, 0x0177, in qla24xx_load_risc_blob()
8273 ql_dbg(ql_dbg_init, vha, 0x0178, in qla24xx_load_risc_blob()
8285 fwdt->length = 0; in qla24xx_load_risc_blob()
8335 ql_dbg(ql_dbg_init, vha, 0x008b, in qla81xx_load_risc()
8342 ql_dbg(ql_dbg_init, vha, 0x008b, in qla81xx_load_risc()
8353 ql_log(ql_log_info, vha, 0x0099, in qla81xx_load_risc()
8359 ql_log(ql_log_info, vha, 0x009a, "Need firmware flash update.\n"); in qla81xx_load_risc()
8387 ql_log(ql_log_info, vha, 0x8015, in qla2x00_try_to_stop_firmware()
8393 ha->flags.fw_init_done = 0; in qla2x00_try_to_stop_firmware()
8412 qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL); in qla24xx_configure_vhba()
8415 vha->flags.management_server_logged_in = 0; in qla24xx_configure_vhba()
8418 rval2 = ha->isp_ops->fabric_login(vha, NPH_SNS, 0xff, 0xff, 0xfc, mb, in qla24xx_configure_vhba()
8420 if (rval2 != QLA_SUCCESS || mb[0] != MBS_COMMAND_COMPLETE) { in qla24xx_configure_vhba()
8422 ql_dbg(ql_dbg_init, vha, 0x0120, in qla24xx_configure_vhba()
8426 ql_dbg(ql_dbg_init, vha, 0x0103, in qla24xx_configure_vhba()
8427 "Failed SNS login: loop_id=%x mb[0]=%x mb[1]=%x " in qla24xx_configure_vhba()
8429 NPH_SNS, mb[0], mb[1], mb[2], mb[6], mb[7]); in qla24xx_configure_vhba()
8433 atomic_set(&vha->loop_down_timer, 0); in qla24xx_configure_vhba()
8512 return rval != QLA_SUCCESS || status[0] ? QLA_FUNCTION_FAILED : in qla84xx_init_chip()
8552 ql_dbg(ql_dbg_init, vha, 0x0110, in qla81xx_nvram_config()
8565 ql_dbg(ql_dbg_init, vha, 0x0110, in qla81xx_nvram_config()
8572 for (cnt = 0, chksum = 0; cnt < ha->nvram_size >> 2; cnt++, dptr++) in qla81xx_nvram_config()
8575 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x0111, in qla81xx_nvram_config()
8577 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x0112, in qla81xx_nvram_config()
8584 ql_log(ql_log_info, vha, 0x0073, in qla81xx_nvram_config()
8587 ql_dump_buffer(ql_dbg_init, vha, 0x0073, nv, sizeof(*nv)); in qla81xx_nvram_config()
8588 ql_log(ql_log_info, vha, 0x0074, in qla81xx_nvram_config()
8595 memset(nv, 0, ha->nvram_size); in qla81xx_nvram_config()
8599 nv->execution_throttle = cpu_to_le16(0xFFFF); in qla81xx_nvram_config()
8600 nv->exchange_count = cpu_to_le16(0); in qla81xx_nvram_config()
8601 nv->port_name[0] = 0x21; in qla81xx_nvram_config()
8602 nv->port_name[1] = 0x00 + ha->port_no + 1; in qla81xx_nvram_config()
8603 nv->port_name[2] = 0x00; in qla81xx_nvram_config()
8604 nv->port_name[3] = 0xe0; in qla81xx_nvram_config()
8605 nv->port_name[4] = 0x8b; in qla81xx_nvram_config()
8606 nv->port_name[5] = 0x1c; in qla81xx_nvram_config()
8607 nv->port_name[6] = 0x55; in qla81xx_nvram_config()
8608 nv->port_name[7] = 0x86; in qla81xx_nvram_config()
8609 nv->node_name[0] = 0x20; in qla81xx_nvram_config()
8610 nv->node_name[1] = 0x00; in qla81xx_nvram_config()
8611 nv->node_name[2] = 0x00; in qla81xx_nvram_config()
8612 nv->node_name[3] = 0xe0; in qla81xx_nvram_config()
8613 nv->node_name[4] = 0x8b; in qla81xx_nvram_config()
8614 nv->node_name[5] = 0x1c; in qla81xx_nvram_config()
8615 nv->node_name[6] = 0x55; in qla81xx_nvram_config()
8616 nv->node_name[7] = 0x86; in qla81xx_nvram_config()
8618 nv->interrupt_delay_timer = cpu_to_le16(0); in qla81xx_nvram_config()
8619 nv->login_timeout = cpu_to_le16(0); in qla81xx_nvram_config()
8626 nv->efi_parameters = cpu_to_le32(0); in qla81xx_nvram_config()
8631 nv->enode_mac[0] = 0x00; in qla81xx_nvram_config()
8632 nv->enode_mac[1] = 0xC0; in qla81xx_nvram_config()
8633 nv->enode_mac[2] = 0xDD; in qla81xx_nvram_config()
8634 nv->enode_mac[3] = 0x04; in qla81xx_nvram_config()
8635 nv->enode_mac[4] = 0x05; in qla81xx_nvram_config()
8636 nv->enode_mac[5] = 0x06 + ha->port_no + 1; in qla81xx_nvram_config()
8647 memset(icb, 0, ha->init_cb_size); in qla81xx_nvram_config()
8668 if (!memcmp(icb->enode_mac, "\0\0\0\0\0\0", sizeof(icb->enode_mac))) { in qla81xx_nvram_config()
8669 icb->enode_mac[0] = 0x00; in qla81xx_nvram_config()
8670 icb->enode_mac[1] = 0xC0; in qla81xx_nvram_config()
8671 icb->enode_mac[2] = 0xDD; in qla81xx_nvram_config()
8672 icb->enode_mac[3] = 0x04; in qla81xx_nvram_config()
8673 icb->enode_mac[4] = 0x05; in qla81xx_nvram_config()
8674 icb->enode_mac[5] = 0x06 + ha->port_no + 1; in qla81xx_nvram_config()
8695 if ((icb->firmware_options_1 & cpu_to_le32(BIT_14)) == 0) { in qla81xx_nvram_config()
8701 icb->node_name[0] &= 0xF0; in qla81xx_nvram_config()
8705 if ((nv->enhanced_features & BIT_7) == 0) in qla81xx_nvram_config()
8710 ha->flags.disable_risc_code_load = 0; in qla81xx_nvram_config()
8711 ha->flags.enable_lip_reset = 0; in qla81xx_nvram_config()
8713 le32_to_cpu(nv->host_p) & BIT_10 ? 1 : 0; in qla81xx_nvram_config()
8715 le32_to_cpu(nv->host_p) & BIT_11 ? 1 : 0; in qla81xx_nvram_config()
8716 ha->flags.enable_led_scheme = 0; in qla81xx_nvram_config()
8717 ha->flags.disable_serdes = le32_to_cpu(nv->host_p) & BIT_5 ? 1 : 0; in qla81xx_nvram_config()
8729 icb->execution_throttle = cpu_to_le16(0xFFFF); in qla81xx_nvram_config()
8745 /* Link Down Timeout = 0: in qla81xx_nvram_config()
8750 * Link Down Timeout != 0: in qla81xx_nvram_config()
8755 if (le16_to_cpu(nv->link_down_timeout) == 0) { in qla81xx_nvram_config()
8794 vha->flags.process_response_queue = 0; in qla81xx_nvram_config()
8798 ql_log(ql_log_info, vha, 0x0075, in qla81xx_nvram_config()
8819 ql_log(ql_log_warn, vha, 0x0076, in qla81xx_nvram_config()
8841 qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL); in qla82xx_restart_isp()
8848 status = 0; in qla82xx_restart_isp()
8864 ha->isp_abort_cnt = 0; in qla82xx_restart_isp()
8872 memset(ha->fce, 0, in qla82xx_restart_isp()
8878 ql_log(ql_log_warn, vha, 0x8001, in qla82xx_restart_isp()
8881 ha->flags.fce_enabled = 0; in qla82xx_restart_isp()
8886 memset(ha->eft, 0, EFT_SIZE); in qla82xx_restart_isp()
8890 ql_log(ql_log_warn, vha, 0x8010, in qla82xx_restart_isp()
8898 ql_dbg(ql_dbg_taskm, vha, 0x8011, in qla82xx_restart_isp()
8916 ql_log(ql_log_warn, vha, 0x8016, in qla82xx_restart_isp()
8957 pri_entry = &ha->fcp_prio_cfg->entry[0]; in qla24xx_get_fcp_prio()
8959 for (i = 0; i < entries; i++) { in qla24xx_get_fcp_prio()
8960 pid_match = wwn_match = 0; in qla24xx_get_fcp_prio()
9046 if (priority < 0) in qla24xx_update_fcport_fcp_prio()
9050 fcport->fcp_prio = priority & 0xf; in qla24xx_update_fcport_fcp_prio()
9057 ql_dbg(ql_dbg_user, vha, 0x709e, in qla24xx_update_fcport_fcp_prio()
9062 fcport->fcp_prio = priority & 0xf; in qla24xx_update_fcport_fcp_prio()
9064 ql_dbg(ql_dbg_user, vha, 0x704f, in qla24xx_update_fcport_fcp_prio()
9065 "Unable to update FCP_CMND priority - ret=0x%x for " in qla24xx_update_fcport_fcp_prio()
9102 int rsp_id = 0; in qla2xxx_create_qpair()
9103 int req_id = 0; in qla2xxx_create_qpair()
9106 uint16_t qpair_id = 0; in qla2xxx_create_qpair()
9111 ql_log(ql_log_warn, vha, 0x00181, in qla2xxx_create_qpair()
9119 ql_log(ql_log_warn, vha, 0x0182, in qla2xxx_create_qpair()
9128 qpair->use_shadow_reg = IS_SHADOW_REG_CAPABLE(ha) ? 1 : 0; in qla2xxx_create_qpair()
9135 ql_log(ql_log_warn, vha, 0x0183, in qla2xxx_create_qpair()
9151 for (i = 0; i < ha->msix_count; i++) { in qla2xxx_create_qpair()
9156 ql_dbg(ql_dbg_multiq, vha, 0xc00f, in qla2xxx_create_qpair()
9161 ql_log(ql_log_warn, vha, 0x0184, in qla2xxx_create_qpair()
9175 rsp_id = qla25xx_create_rsp_que(ha, 0, 0, 0, qpair, startqp); in qla2xxx_create_qpair()
9177 ql_log(ql_log_warn, vha, 0x0185, in qla2xxx_create_qpair()
9185 req_id = qla25xx_create_req_que(ha, 0, vp_idx, 0, rsp_id, qos, in qla2xxx_create_qpair()
9188 ql_log(ql_log_warn, vha, 0x0186, in qla2xxx_create_qpair()
9206 ql_log(ql_log_warn, vha, 0xd036, in qla2xxx_create_qpair()
9218 ql_dbg(ql_dbg_multiq, vha, 0xc00d, in qla2xxx_create_qpair()
9221 ql_dbg(ql_dbg_init, vha, 0x0187, in qla2xxx_create_qpair()
9232 qpair->msix->in_use = 0; in qla2xxx_create_qpair()
9235 vha->flags.qpairs_available = 0; in qla2xxx_create_qpair()
9267 vha->flags.qpairs_available = 0; in qla2xxx_delete_qpair()
9268 vha->flags.qpairs_req_created = 0; in qla2xxx_delete_qpair()
9269 vha->flags.qpairs_rsp_created = 0; in qla2xxx_delete_qpair()