Lines Matching refs:mcp

34 qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)  in qla2x00_mailbox_command()  argument
82 mcp->mb[0] = MBS_LINK_DOWN_ERROR; in qla2x00_mailbox_command()
93 if (!wait_for_completion_timeout(&ha->mbx_cmd_comp, mcp->tov * HZ)) { in qla2x00_mailbox_command()
97 mcp->mb[0]); in qla2x00_mailbox_command()
103 ha->mcp = mcp; in qla2x00_mailbox_command()
106 "Prepare to issue mbox cmd=0x%x.\n", mcp->mb[0]); in qla2x00_mailbox_command()
118 iptr = mcp->mb; in qla2x00_mailbox_command()
119 command = mcp->mb[0]; in qla2x00_mailbox_command()
120 mboxes = mcp->out_mb; in qla2x00_mailbox_command()
175 mcp->tov * HZ)) { in qla2x00_mailbox_command()
204 wait_time = jiffies + mcp->tov * HZ; /* wait at most tov secs */ in qla2x00_mailbox_command()
219 (uint)((jiffies - (wait_time - (mcp->tov * HZ)))/HZ)); in qla2x00_mailbox_command()
236 mcp->mb[0] = MBS_LINK_DOWN_ERROR; in qla2x00_mailbox_command()
237 ha->mcp = NULL; in qla2x00_mailbox_command()
248 iptr2 = mcp->mb; in qla2x00_mailbox_command()
250 mboxes = mcp->in_mb; in qla2x00_mailbox_command()
287 if (mcp->mb[0] != MBC_GEN_SYSTEM_ERROR) in qla2x00_mailbox_command()
296 ha->mcp = NULL; in qla2x00_mailbox_command()
307 mcp->mb[0] != MBC_GEN_SYSTEM_ERROR) { in qla2x00_mailbox_command()
308 if (!io_lock_on || (mcp->flags & IOCTL_CMD) || in qla2x00_mailbox_command()
329 "abort.\n", command, mcp->mb[0], in qla2x00_mailbox_command()
354 command, mcp->mb[0]); in qla2x00_mailbox_command()
380 mcp->mb[0], mcp->mb[1], mcp->mb[2], mcp->mb[3], command); in qla2x00_mailbox_command()
407 mbx_cmd_t *mcp = &mc; in qla2x00_load_ram() local
413 mcp->mb[0] = MBC_LOAD_RISC_RAM_EXTENDED; in qla2x00_load_ram()
414 mcp->mb[8] = MSW(risc_addr); in qla2x00_load_ram()
415 mcp->out_mb = MBX_8|MBX_0; in qla2x00_load_ram()
417 mcp->mb[0] = MBC_LOAD_RISC_RAM; in qla2x00_load_ram()
418 mcp->out_mb = MBX_0; in qla2x00_load_ram()
420 mcp->mb[1] = LSW(risc_addr); in qla2x00_load_ram()
421 mcp->mb[2] = MSW(req_dma); in qla2x00_load_ram()
422 mcp->mb[3] = LSW(req_dma); in qla2x00_load_ram()
423 mcp->mb[6] = MSW(MSD(req_dma)); in qla2x00_load_ram()
424 mcp->mb[7] = LSW(MSD(req_dma)); in qla2x00_load_ram()
425 mcp->out_mb |= MBX_7|MBX_6|MBX_3|MBX_2|MBX_1; in qla2x00_load_ram()
427 mcp->mb[4] = MSW(risc_code_size); in qla2x00_load_ram()
428 mcp->mb[5] = LSW(risc_code_size); in qla2x00_load_ram()
429 mcp->out_mb |= MBX_5|MBX_4; in qla2x00_load_ram()
431 mcp->mb[4] = LSW(risc_code_size); in qla2x00_load_ram()
432 mcp->out_mb |= MBX_4; in qla2x00_load_ram()
435 mcp->in_mb = MBX_0; in qla2x00_load_ram()
436 mcp->tov = MBX_TOV_SECONDS; in qla2x00_load_ram()
437 mcp->flags = 0; in qla2x00_load_ram()
438 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_load_ram()
442 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_load_ram()
473 mbx_cmd_t *mcp = &mc; in qla2x00_execute_fw() local
478 mcp->mb[0] = MBC_EXECUTE_FIRMWARE; in qla2x00_execute_fw()
479 mcp->out_mb = MBX_0; in qla2x00_execute_fw()
480 mcp->in_mb = MBX_0; in qla2x00_execute_fw()
482 mcp->mb[1] = MSW(risc_addr); in qla2x00_execute_fw()
483 mcp->mb[2] = LSW(risc_addr); in qla2x00_execute_fw()
484 mcp->mb[3] = 0; in qla2x00_execute_fw()
488 mcp->mb[4] = (nv->enhanced_features & in qla2x00_execute_fw()
491 mcp->mb[4] = 0; in qla2x00_execute_fw()
492 mcp->out_mb |= MBX_4|MBX_3|MBX_2|MBX_1; in qla2x00_execute_fw()
493 mcp->in_mb |= MBX_1; in qla2x00_execute_fw()
495 mcp->mb[1] = LSW(risc_addr); in qla2x00_execute_fw()
496 mcp->out_mb |= MBX_1; in qla2x00_execute_fw()
498 mcp->mb[2] = 0; in qla2x00_execute_fw()
499 mcp->out_mb |= MBX_2; in qla2x00_execute_fw()
503 mcp->tov = MBX_TOV_SECONDS; in qla2x00_execute_fw()
504 mcp->flags = 0; in qla2x00_execute_fw()
505 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_execute_fw()
509 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_execute_fw()
513 "Done exchanges=%x.\n", mcp->mb[1]); in qla2x00_execute_fw()
544 mbx_cmd_t *mcp = &mc; in qla2x00_get_fw_version() local
550 mcp->mb[0] = MBC_GET_FIRMWARE_VERSION; in qla2x00_get_fw_version()
551 mcp->out_mb = MBX_0; in qla2x00_get_fw_version()
552 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_fw_version()
554 mcp->in_mb |= MBX_13|MBX_12|MBX_11|MBX_10|MBX_9|MBX_8; in qla2x00_get_fw_version()
556 mcp->in_mb |= MBX_17|MBX_16|MBX_15; in qla2x00_get_fw_version()
558 mcp->in_mb |= MBX_21|MBX_20|MBX_19|MBX_18; in qla2x00_get_fw_version()
559 mcp->flags = 0; in qla2x00_get_fw_version()
560 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_fw_version()
561 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_fw_version()
566 ha->fw_major_version = mcp->mb[1]; in qla2x00_get_fw_version()
567 ha->fw_minor_version = mcp->mb[2]; in qla2x00_get_fw_version()
568 ha->fw_subminor_version = mcp->mb[3]; in qla2x00_get_fw_version()
569 ha->fw_attributes = mcp->mb[6]; in qla2x00_get_fw_version()
573 ha->fw_memory_size = (mcp->mb[5] << 16) | mcp->mb[4]; in qla2x00_get_fw_version()
575 ha->mpi_version[0] = mcp->mb[10] & 0xff; in qla2x00_get_fw_version()
576 ha->mpi_version[1] = mcp->mb[11] >> 8; in qla2x00_get_fw_version()
577 ha->mpi_version[2] = mcp->mb[11] & 0xff; in qla2x00_get_fw_version()
578 ha->mpi_capabilities = (mcp->mb[12] << 16) | mcp->mb[13]; in qla2x00_get_fw_version()
579 ha->phy_version[0] = mcp->mb[8] & 0xff; in qla2x00_get_fw_version()
580 ha->phy_version[1] = mcp->mb[9] >> 8; in qla2x00_get_fw_version()
581 ha->phy_version[2] = mcp->mb[9] & 0xff; in qla2x00_get_fw_version()
584 ha->fw_attributes_h = mcp->mb[15]; in qla2x00_get_fw_version()
585 ha->fw_attributes_ext[0] = mcp->mb[16]; in qla2x00_get_fw_version()
586 ha->fw_attributes_ext[1] = mcp->mb[17]; in qla2x00_get_fw_version()
589 __func__, mcp->mb[15], mcp->mb[6]); in qla2x00_get_fw_version()
592 __func__, mcp->mb[17], mcp->mb[16]); in qla2x00_get_fw_version()
595 ha->fw_shared_ram_start = (mcp->mb[19] << 16) | mcp->mb[18]; in qla2x00_get_fw_version()
596 ha->fw_shared_ram_end = (mcp->mb[21] << 16) | mcp->mb[20]; in qla2x00_get_fw_version()
630 mbx_cmd_t *mcp = &mc; in qla2x00_get_fw_options() local
635 mcp->mb[0] = MBC_GET_FIRMWARE_OPTION; in qla2x00_get_fw_options()
636 mcp->out_mb = MBX_0; in qla2x00_get_fw_options()
637 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_fw_options()
638 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_fw_options()
639 mcp->flags = 0; in qla2x00_get_fw_options()
640 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_fw_options()
646 fwopts[0] = mcp->mb[0]; in qla2x00_get_fw_options()
647 fwopts[1] = mcp->mb[1]; in qla2x00_get_fw_options()
648 fwopts[2] = mcp->mb[2]; in qla2x00_get_fw_options()
649 fwopts[3] = mcp->mb[3]; in qla2x00_get_fw_options()
678 mbx_cmd_t *mcp = &mc; in qla2x00_set_fw_options() local
683 mcp->mb[0] = MBC_SET_FIRMWARE_OPTION; in qla2x00_set_fw_options()
684 mcp->mb[1] = fwopts[1]; in qla2x00_set_fw_options()
685 mcp->mb[2] = fwopts[2]; in qla2x00_set_fw_options()
686 mcp->mb[3] = fwopts[3]; in qla2x00_set_fw_options()
687 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_set_fw_options()
688 mcp->in_mb = MBX_0; in qla2x00_set_fw_options()
690 mcp->in_mb |= MBX_1; in qla2x00_set_fw_options()
692 mcp->mb[10] = fwopts[10]; in qla2x00_set_fw_options()
693 mcp->mb[11] = fwopts[11]; in qla2x00_set_fw_options()
694 mcp->mb[12] = 0; /* Undocumented, but used */ in qla2x00_set_fw_options()
695 mcp->out_mb |= MBX_12|MBX_11|MBX_10; in qla2x00_set_fw_options()
697 mcp->tov = MBX_TOV_SECONDS; in qla2x00_set_fw_options()
698 mcp->flags = 0; in qla2x00_set_fw_options()
699 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_set_fw_options()
701 fwopts[0] = mcp->mb[0]; in qla2x00_set_fw_options()
706 "Failed=%x (%x/%x).\n", rval, mcp->mb[0], mcp->mb[1]); in qla2x00_set_fw_options()
736 mbx_cmd_t *mcp = &mc; in qla2x00_mbx_reg_test() local
741 mcp->mb[0] = MBC_MAILBOX_REGISTER_TEST; in qla2x00_mbx_reg_test()
742 mcp->mb[1] = 0xAAAA; in qla2x00_mbx_reg_test()
743 mcp->mb[2] = 0x5555; in qla2x00_mbx_reg_test()
744 mcp->mb[3] = 0xAA55; in qla2x00_mbx_reg_test()
745 mcp->mb[4] = 0x55AA; in qla2x00_mbx_reg_test()
746 mcp->mb[5] = 0xA5A5; in qla2x00_mbx_reg_test()
747 mcp->mb[6] = 0x5A5A; in qla2x00_mbx_reg_test()
748 mcp->mb[7] = 0x2525; in qla2x00_mbx_reg_test()
749 mcp->out_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_mbx_reg_test()
750 mcp->in_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_mbx_reg_test()
751 mcp->tov = MBX_TOV_SECONDS; in qla2x00_mbx_reg_test()
752 mcp->flags = 0; in qla2x00_mbx_reg_test()
753 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_mbx_reg_test()
756 if (mcp->mb[1] != 0xAAAA || mcp->mb[2] != 0x5555 || in qla2x00_mbx_reg_test()
757 mcp->mb[3] != 0xAA55 || mcp->mb[4] != 0x55AA) in qla2x00_mbx_reg_test()
759 if (mcp->mb[5] != 0xA5A5 || mcp->mb[6] != 0x5A5A || in qla2x00_mbx_reg_test()
760 mcp->mb[7] != 0x2525) in qla2x00_mbx_reg_test()
796 mbx_cmd_t *mcp = &mc; in qla2x00_verify_checksum() local
801 mcp->mb[0] = MBC_VERIFY_CHECKSUM; in qla2x00_verify_checksum()
802 mcp->out_mb = MBX_0; in qla2x00_verify_checksum()
803 mcp->in_mb = MBX_0; in qla2x00_verify_checksum()
805 mcp->mb[1] = MSW(risc_addr); in qla2x00_verify_checksum()
806 mcp->mb[2] = LSW(risc_addr); in qla2x00_verify_checksum()
807 mcp->out_mb |= MBX_2|MBX_1; in qla2x00_verify_checksum()
808 mcp->in_mb |= MBX_2|MBX_1; in qla2x00_verify_checksum()
810 mcp->mb[1] = LSW(risc_addr); in qla2x00_verify_checksum()
811 mcp->out_mb |= MBX_1; in qla2x00_verify_checksum()
812 mcp->in_mb |= MBX_1; in qla2x00_verify_checksum()
815 mcp->tov = MBX_TOV_SECONDS; in qla2x00_verify_checksum()
816 mcp->flags = 0; in qla2x00_verify_checksum()
817 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_verify_checksum()
822 (mcp->mb[2] << 16) | mcp->mb[1] : mcp->mb[1]); in qla2x00_verify_checksum()
855 mbx_cmd_t *mcp = &mc; in qla2x00_issue_iocb_timeout() local
860 mcp->mb[0] = MBC_IOCB_COMMAND_A64; in qla2x00_issue_iocb_timeout()
861 mcp->mb[1] = 0; in qla2x00_issue_iocb_timeout()
862 mcp->mb[2] = MSW(phys_addr); in qla2x00_issue_iocb_timeout()
863 mcp->mb[3] = LSW(phys_addr); in qla2x00_issue_iocb_timeout()
864 mcp->mb[6] = MSW(MSD(phys_addr)); in qla2x00_issue_iocb_timeout()
865 mcp->mb[7] = LSW(MSD(phys_addr)); in qla2x00_issue_iocb_timeout()
866 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_issue_iocb_timeout()
867 mcp->in_mb = MBX_2|MBX_0; in qla2x00_issue_iocb_timeout()
868 mcp->tov = tov; in qla2x00_issue_iocb_timeout()
869 mcp->flags = 0; in qla2x00_issue_iocb_timeout()
870 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_issue_iocb_timeout()
917 mbx_cmd_t *mcp = &mc; in qla2x00_abort_command() local
939 mcp->mb[0] = MBC_ABORT_COMMAND; in qla2x00_abort_command()
941 mcp->mb[1] = fcport->loop_id; in qla2x00_abort_command()
943 mcp->mb[1] = fcport->loop_id << 8; in qla2x00_abort_command()
944 mcp->mb[2] = (uint16_t)handle; in qla2x00_abort_command()
945 mcp->mb[3] = (uint16_t)(handle >> 16); in qla2x00_abort_command()
946 mcp->mb[6] = (uint16_t)cmd->device->lun; in qla2x00_abort_command()
947 mcp->out_mb = MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_abort_command()
948 mcp->in_mb = MBX_0; in qla2x00_abort_command()
949 mcp->tov = MBX_TOV_SECONDS; in qla2x00_abort_command()
950 mcp->flags = 0; in qla2x00_abort_command()
951 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_abort_command()
968 mbx_cmd_t *mcp = &mc; in qla2x00_abort_target() local
981 mcp->mb[0] = MBC_ABORT_TARGET; in qla2x00_abort_target()
982 mcp->out_mb = MBX_9|MBX_2|MBX_1|MBX_0; in qla2x00_abort_target()
984 mcp->mb[1] = fcport->loop_id; in qla2x00_abort_target()
985 mcp->mb[10] = 0; in qla2x00_abort_target()
986 mcp->out_mb |= MBX_10; in qla2x00_abort_target()
988 mcp->mb[1] = fcport->loop_id << 8; in qla2x00_abort_target()
990 mcp->mb[2] = vha->hw->loop_reset_delay; in qla2x00_abort_target()
991 mcp->mb[9] = vha->vp_idx; in qla2x00_abort_target()
993 mcp->in_mb = MBX_0; in qla2x00_abort_target()
994 mcp->tov = MBX_TOV_SECONDS; in qla2x00_abort_target()
995 mcp->flags = 0; in qla2x00_abort_target()
996 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_abort_target()
1021 mbx_cmd_t *mcp = &mc; in qla2x00_lun_reset() local
1033 mcp->mb[0] = MBC_LUN_RESET; in qla2x00_lun_reset()
1034 mcp->out_mb = MBX_9|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_lun_reset()
1036 mcp->mb[1] = fcport->loop_id; in qla2x00_lun_reset()
1038 mcp->mb[1] = fcport->loop_id << 8; in qla2x00_lun_reset()
1039 mcp->mb[2] = (u32)l; in qla2x00_lun_reset()
1040 mcp->mb[3] = 0; in qla2x00_lun_reset()
1041 mcp->mb[9] = vha->vp_idx; in qla2x00_lun_reset()
1043 mcp->in_mb = MBX_0; in qla2x00_lun_reset()
1044 mcp->tov = MBX_TOV_SECONDS; in qla2x00_lun_reset()
1045 mcp->flags = 0; in qla2x00_lun_reset()
1046 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_lun_reset()
1091 mbx_cmd_t *mcp = &mc; in qla2x00_get_adapter_id() local
1096 mcp->mb[0] = MBC_GET_ADAPTER_LOOP_ID; in qla2x00_get_adapter_id()
1097 mcp->mb[9] = vha->vp_idx; in qla2x00_get_adapter_id()
1098 mcp->out_mb = MBX_9|MBX_0; in qla2x00_get_adapter_id()
1099 mcp->in_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_adapter_id()
1101 mcp->in_mb |= MBX_13|MBX_12|MBX_11|MBX_10; in qla2x00_get_adapter_id()
1103 mcp->in_mb |= MBX_19|MBX_18|MBX_17|MBX_16; in qla2x00_get_adapter_id()
1104 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_adapter_id()
1105 mcp->flags = 0; in qla2x00_get_adapter_id()
1106 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_adapter_id()
1107 if (mcp->mb[0] == MBS_COMMAND_ERROR) in qla2x00_get_adapter_id()
1109 else if (mcp->mb[0] == MBS_INVALID_COMMAND) in qla2x00_get_adapter_id()
1113 *id = mcp->mb[1]; in qla2x00_get_adapter_id()
1114 *al_pa = LSB(mcp->mb[2]); in qla2x00_get_adapter_id()
1115 *area = MSB(mcp->mb[2]); in qla2x00_get_adapter_id()
1116 *domain = LSB(mcp->mb[3]); in qla2x00_get_adapter_id()
1117 *top = mcp->mb[6]; in qla2x00_get_adapter_id()
1118 *sw_cap = mcp->mb[7]; in qla2x00_get_adapter_id()
1128 vha->fcoe_vlan_id = mcp->mb[9] & 0xfff; in qla2x00_get_adapter_id()
1129 vha->fcoe_fcf_idx = mcp->mb[10]; in qla2x00_get_adapter_id()
1130 vha->fcoe_vn_port_mac[5] = mcp->mb[11] >> 8; in qla2x00_get_adapter_id()
1131 vha->fcoe_vn_port_mac[4] = mcp->mb[11] & 0xff; in qla2x00_get_adapter_id()
1132 vha->fcoe_vn_port_mac[3] = mcp->mb[12] >> 8; in qla2x00_get_adapter_id()
1133 vha->fcoe_vn_port_mac[2] = mcp->mb[12] & 0xff; in qla2x00_get_adapter_id()
1134 vha->fcoe_vn_port_mac[1] = mcp->mb[13] >> 8; in qla2x00_get_adapter_id()
1135 vha->fcoe_vn_port_mac[0] = mcp->mb[13] & 0xff; in qla2x00_get_adapter_id()
1138 if (mcp->mb[7] & BIT_14) { in qla2x00_get_adapter_id()
1139 vha->port_name[0] = MSB(mcp->mb[16]); in qla2x00_get_adapter_id()
1140 vha->port_name[1] = LSB(mcp->mb[16]); in qla2x00_get_adapter_id()
1141 vha->port_name[2] = MSB(mcp->mb[17]); in qla2x00_get_adapter_id()
1142 vha->port_name[3] = LSB(mcp->mb[17]); in qla2x00_get_adapter_id()
1143 vha->port_name[4] = MSB(mcp->mb[18]); in qla2x00_get_adapter_id()
1144 vha->port_name[5] = LSB(mcp->mb[18]); in qla2x00_get_adapter_id()
1145 vha->port_name[6] = MSB(mcp->mb[19]); in qla2x00_get_adapter_id()
1146 vha->port_name[7] = LSB(mcp->mb[19]); in qla2x00_get_adapter_id()
1180 mbx_cmd_t *mcp = &mc; in qla2x00_get_retry_cnt() local
1185 mcp->mb[0] = MBC_GET_RETRY_COUNT; in qla2x00_get_retry_cnt()
1186 mcp->out_mb = MBX_0; in qla2x00_get_retry_cnt()
1187 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_retry_cnt()
1188 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_retry_cnt()
1189 mcp->flags = 0; in qla2x00_get_retry_cnt()
1190 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_retry_cnt()
1195 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_get_retry_cnt()
1198 *r_a_tov = mcp->mb[3] / 2; in qla2x00_get_retry_cnt()
1199 ratov = (mcp->mb[3]/2) / 10; /* mb[3] value is in 100ms */ in qla2x00_get_retry_cnt()
1200 if (mcp->mb[1] * ratov > (*retry_cnt) * (*tov)) { in qla2x00_get_retry_cnt()
1202 *retry_cnt = (uint8_t)mcp->mb[1]; in qla2x00_get_retry_cnt()
1207 "Done %s mb3=%d ratov=%d.\n", __func__, mcp->mb[3], ratov); in qla2x00_get_retry_cnt()
1235 mbx_cmd_t *mcp = &mc; in qla2x00_init_firmware() local
1246 mcp->mb[0] = MBC_MID_INITIALIZE_FIRMWARE; in qla2x00_init_firmware()
1248 mcp->mb[0] = MBC_INITIALIZE_FIRMWARE; in qla2x00_init_firmware()
1250 mcp->mb[1] = 0; in qla2x00_init_firmware()
1251 mcp->mb[2] = MSW(ha->init_cb_dma); in qla2x00_init_firmware()
1252 mcp->mb[3] = LSW(ha->init_cb_dma); in qla2x00_init_firmware()
1253 mcp->mb[6] = MSW(MSD(ha->init_cb_dma)); in qla2x00_init_firmware()
1254 mcp->mb[7] = LSW(MSD(ha->init_cb_dma)); in qla2x00_init_firmware()
1255 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_init_firmware()
1257 mcp->mb[1] = BIT_0; in qla2x00_init_firmware()
1258 mcp->mb[10] = MSW(ha->ex_init_cb_dma); in qla2x00_init_firmware()
1259 mcp->mb[11] = LSW(ha->ex_init_cb_dma); in qla2x00_init_firmware()
1260 mcp->mb[12] = MSW(MSD(ha->ex_init_cb_dma)); in qla2x00_init_firmware()
1261 mcp->mb[13] = LSW(MSD(ha->ex_init_cb_dma)); in qla2x00_init_firmware()
1262 mcp->mb[14] = sizeof(*ha->ex_init_cb); in qla2x00_init_firmware()
1263 mcp->out_mb |= MBX_14|MBX_13|MBX_12|MBX_11|MBX_10; in qla2x00_init_firmware()
1266 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla2x00_init_firmware()
1269 mcp->in_mb |= MBX_3; in qla2x00_init_firmware()
1270 mcp->buf_size = size; in qla2x00_init_firmware()
1271 mcp->flags = MBX_DMA_OUT; in qla2x00_init_firmware()
1272 mcp->tov = MBX_TOV_SECONDS; in qla2x00_init_firmware()
1273 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_init_firmware()
1279 rval, mcp->mb[0], mcp->mb[1], mcp->mb[2], mcp->mb[3]); in qla2x00_init_firmware()
1399 mbx_cmd_t *mcp = &mc; in qla2x00_get_port_database() local
1417 mcp->mb[0] = MBC_GET_PORT_DATABASE; in qla2x00_get_port_database()
1419 mcp->mb[0] = MBC_ENHANCED_GET_PORT_DATABASE; in qla2x00_get_port_database()
1420 mcp->mb[2] = MSW(pd_dma); in qla2x00_get_port_database()
1421 mcp->mb[3] = LSW(pd_dma); in qla2x00_get_port_database()
1422 mcp->mb[6] = MSW(MSD(pd_dma)); in qla2x00_get_port_database()
1423 mcp->mb[7] = LSW(MSD(pd_dma)); in qla2x00_get_port_database()
1424 mcp->mb[9] = vha->vp_idx; in qla2x00_get_port_database()
1425 mcp->out_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; in qla2x00_get_port_database()
1426 mcp->in_mb = MBX_0; in qla2x00_get_port_database()
1428 mcp->mb[1] = fcport->loop_id; in qla2x00_get_port_database()
1429 mcp->mb[10] = opt; in qla2x00_get_port_database()
1430 mcp->out_mb |= MBX_10|MBX_1; in qla2x00_get_port_database()
1431 mcp->in_mb |= MBX_1; in qla2x00_get_port_database()
1433 mcp->mb[1] = fcport->loop_id; in qla2x00_get_port_database()
1434 mcp->mb[10] = opt; in qla2x00_get_port_database()
1435 mcp->out_mb |= MBX_10|MBX_1; in qla2x00_get_port_database()
1437 mcp->mb[1] = fcport->loop_id << 8 | opt; in qla2x00_get_port_database()
1438 mcp->out_mb |= MBX_1; in qla2x00_get_port_database()
1440 mcp->buf_size = IS_FWI2_CAPABLE(ha) ? in qla2x00_get_port_database()
1442 mcp->flags = MBX_DMA_IN; in qla2x00_get_port_database()
1443 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); in qla2x00_get_port_database()
1444 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_port_database()
1543 mcp->mb[0], mcp->mb[1]); in qla2x00_get_port_database()
1573 mbx_cmd_t *mcp = &mc; in qla2x00_get_firmware_state() local
1578 mcp->mb[0] = MBC_GET_FIRMWARE_STATE; in qla2x00_get_firmware_state()
1579 mcp->out_mb = MBX_0; in qla2x00_get_firmware_state()
1581 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_firmware_state()
1583 mcp->in_mb = MBX_1|MBX_0; in qla2x00_get_firmware_state()
1584 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_firmware_state()
1585 mcp->flags = 0; in qla2x00_get_firmware_state()
1586 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_firmware_state()
1589 states[0] = mcp->mb[1]; in qla2x00_get_firmware_state()
1591 states[1] = mcp->mb[2]; in qla2x00_get_firmware_state()
1592 states[2] = mcp->mb[3]; in qla2x00_get_firmware_state()
1593 states[3] = mcp->mb[4]; in qla2x00_get_firmware_state()
1594 states[4] = mcp->mb[5]; in qla2x00_get_firmware_state()
1595 states[5] = mcp->mb[6]; /* DPORT status */ in qla2x00_get_firmware_state()
1634 mbx_cmd_t *mcp = &mc; in qla2x00_get_port_name() local
1639 mcp->mb[0] = MBC_GET_PORT_NAME; in qla2x00_get_port_name()
1640 mcp->mb[9] = vha->vp_idx; in qla2x00_get_port_name()
1641 mcp->out_mb = MBX_9|MBX_1|MBX_0; in qla2x00_get_port_name()
1643 mcp->mb[1] = loop_id; in qla2x00_get_port_name()
1644 mcp->mb[10] = opt; in qla2x00_get_port_name()
1645 mcp->out_mb |= MBX_10; in qla2x00_get_port_name()
1647 mcp->mb[1] = loop_id << 8 | opt; in qla2x00_get_port_name()
1650 mcp->in_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_port_name()
1651 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_port_name()
1652 mcp->flags = 0; in qla2x00_get_port_name()
1653 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_port_name()
1661 name[0] = MSB(mcp->mb[2]); in qla2x00_get_port_name()
1662 name[1] = LSB(mcp->mb[2]); in qla2x00_get_port_name()
1663 name[2] = MSB(mcp->mb[3]); in qla2x00_get_port_name()
1664 name[3] = LSB(mcp->mb[3]); in qla2x00_get_port_name()
1665 name[4] = MSB(mcp->mb[6]); in qla2x00_get_port_name()
1666 name[5] = LSB(mcp->mb[6]); in qla2x00_get_port_name()
1667 name[6] = MSB(mcp->mb[7]); in qla2x00_get_port_name()
1668 name[7] = LSB(mcp->mb[7]); in qla2x00_get_port_name()
1698 mbx_cmd_t *mcp = &mc; in qla24xx_link_initialize() local
1706 mcp->mb[0] = MBC_LINK_INITIALIZATION; in qla24xx_link_initialize()
1707 mcp->mb[1] = BIT_4; in qla24xx_link_initialize()
1709 mcp->mb[1] |= BIT_6; in qla24xx_link_initialize()
1711 mcp->mb[1] |= BIT_5; in qla24xx_link_initialize()
1712 mcp->mb[2] = 0; in qla24xx_link_initialize()
1713 mcp->mb[3] = 0; in qla24xx_link_initialize()
1714 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla24xx_link_initialize()
1715 mcp->in_mb = MBX_0; in qla24xx_link_initialize()
1716 mcp->tov = MBX_TOV_SECONDS; in qla24xx_link_initialize()
1717 mcp->flags = 0; in qla24xx_link_initialize()
1718 rval = qla2x00_mailbox_command(vha, mcp); in qla24xx_link_initialize()
1750 mbx_cmd_t *mcp = &mc; in qla2x00_lip_reset() local
1757 mcp->mb[0] = MBC_LIP_FULL_LOGIN; in qla2x00_lip_reset()
1758 mcp->mb[1] = BIT_1; in qla2x00_lip_reset()
1759 mcp->mb[2] = 0; in qla2x00_lip_reset()
1760 mcp->out_mb = MBX_2|MBX_1|MBX_0; in qla2x00_lip_reset()
1762 mcp->mb[0] = MBC_LIP_FULL_LOGIN; in qla2x00_lip_reset()
1763 mcp->mb[1] = BIT_6; in qla2x00_lip_reset()
1764 mcp->mb[2] = 0; in qla2x00_lip_reset()
1765 mcp->mb[3] = vha->hw->loop_reset_delay; in qla2x00_lip_reset()
1766 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_lip_reset()
1768 mcp->mb[0] = MBC_LIP_RESET; in qla2x00_lip_reset()
1769 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_lip_reset()
1771 mcp->mb[1] = 0x00ff; in qla2x00_lip_reset()
1772 mcp->mb[10] = 0; in qla2x00_lip_reset()
1773 mcp->out_mb |= MBX_10; in qla2x00_lip_reset()
1775 mcp->mb[1] = 0xff00; in qla2x00_lip_reset()
1777 mcp->mb[2] = vha->hw->loop_reset_delay; in qla2x00_lip_reset()
1778 mcp->mb[3] = 0; in qla2x00_lip_reset()
1780 mcp->in_mb = MBX_0; in qla2x00_lip_reset()
1781 mcp->tov = MBX_TOV_SECONDS; in qla2x00_lip_reset()
1782 mcp->flags = 0; in qla2x00_lip_reset()
1783 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_lip_reset()
1821 mbx_cmd_t *mcp = &mc; in qla2x00_send_sns() local
1828 vha->hw->retry_count, vha->hw->login_timeout, mcp->tov); in qla2x00_send_sns()
1830 mcp->mb[0] = MBC_SEND_SNS_COMMAND; in qla2x00_send_sns()
1831 mcp->mb[1] = cmd_size; in qla2x00_send_sns()
1832 mcp->mb[2] = MSW(sns_phys_address); in qla2x00_send_sns()
1833 mcp->mb[3] = LSW(sns_phys_address); in qla2x00_send_sns()
1834 mcp->mb[6] = MSW(MSD(sns_phys_address)); in qla2x00_send_sns()
1835 mcp->mb[7] = LSW(MSD(sns_phys_address)); in qla2x00_send_sns()
1836 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_send_sns()
1837 mcp->in_mb = MBX_0|MBX_1; in qla2x00_send_sns()
1838 mcp->buf_size = buf_size; in qla2x00_send_sns()
1839 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN; in qla2x00_send_sns()
1840 mcp->tov = (vha->hw->login_timeout * 2) + (vha->hw->login_timeout / 2); in qla2x00_send_sns()
1841 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_send_sns()
1847 rval, mcp->mb[0], mcp->mb[1]); in qla2x00_send_sns()
2002 mbx_cmd_t *mcp = &mc; in qla2x00_login_fabric() local
2008 mcp->mb[0] = MBC_LOGIN_FABRIC_PORT; in qla2x00_login_fabric()
2009 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_login_fabric()
2011 mcp->mb[1] = loop_id; in qla2x00_login_fabric()
2012 mcp->mb[10] = opt; in qla2x00_login_fabric()
2013 mcp->out_mb |= MBX_10; in qla2x00_login_fabric()
2015 mcp->mb[1] = (loop_id << 8) | opt; in qla2x00_login_fabric()
2017 mcp->mb[2] = domain; in qla2x00_login_fabric()
2018 mcp->mb[3] = area << 8 | al_pa; in qla2x00_login_fabric()
2020 mcp->in_mb = MBX_7|MBX_6|MBX_2|MBX_1|MBX_0; in qla2x00_login_fabric()
2021 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); in qla2x00_login_fabric()
2022 mcp->flags = 0; in qla2x00_login_fabric()
2023 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_login_fabric()
2027 mb[0] = mcp->mb[0]; in qla2x00_login_fabric()
2028 mb[1] = mcp->mb[1]; in qla2x00_login_fabric()
2029 mb[2] = mcp->mb[2]; in qla2x00_login_fabric()
2030 mb[6] = mcp->mb[6]; in qla2x00_login_fabric()
2031 mb[7] = mcp->mb[7]; in qla2x00_login_fabric()
2043 if (mcp->mb[0] == 0x4001 || mcp->mb[0] == 0x4002 || in qla2x00_login_fabric()
2044 mcp->mb[0] == 0x4003 || mcp->mb[0] == 0x4005 || in qla2x00_login_fabric()
2045 mcp->mb[0] == 0x4006) in qla2x00_login_fabric()
2051 rval, mcp->mb[0], mcp->mb[1], mcp->mb[2]); in qla2x00_login_fabric()
2083 mbx_cmd_t *mcp = &mc; in qla2x00_login_local_device() local
2094 mcp->mb[0] = MBC_LOGIN_LOOP_PORT; in qla2x00_login_local_device()
2096 mcp->mb[1] = fcport->loop_id; in qla2x00_login_local_device()
2098 mcp->mb[1] = fcport->loop_id << 8; in qla2x00_login_local_device()
2099 mcp->mb[2] = opt; in qla2x00_login_local_device()
2100 mcp->out_mb = MBX_2|MBX_1|MBX_0; in qla2x00_login_local_device()
2101 mcp->in_mb = MBX_7|MBX_6|MBX_1|MBX_0; in qla2x00_login_local_device()
2102 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); in qla2x00_login_local_device()
2103 mcp->flags = 0; in qla2x00_login_local_device()
2104 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_login_local_device()
2108 mb_ret[0] = mcp->mb[0]; in qla2x00_login_local_device()
2109 mb_ret[1] = mcp->mb[1]; in qla2x00_login_local_device()
2110 mb_ret[6] = mcp->mb[6]; in qla2x00_login_local_device()
2111 mb_ret[7] = mcp->mb[7]; in qla2x00_login_local_device()
2121 if (mcp->mb[0] == 0x4005 || mcp->mb[0] == 0x4006) in qla2x00_login_local_device()
2126 rval, mcp->mb[0], mcp->mb[1], mcp->mb[6], mcp->mb[7]); in qla2x00_login_local_device()
2223 mbx_cmd_t *mcp = &mc; in qla2x00_fabric_logout() local
2228 mcp->mb[0] = MBC_LOGOUT_FABRIC_PORT; in qla2x00_fabric_logout()
2229 mcp->out_mb = MBX_1|MBX_0; in qla2x00_fabric_logout()
2231 mcp->mb[1] = loop_id; in qla2x00_fabric_logout()
2232 mcp->mb[10] = 0; in qla2x00_fabric_logout()
2233 mcp->out_mb |= MBX_10; in qla2x00_fabric_logout()
2235 mcp->mb[1] = loop_id << 8; in qla2x00_fabric_logout()
2238 mcp->in_mb = MBX_1|MBX_0; in qla2x00_fabric_logout()
2239 mcp->tov = MBX_TOV_SECONDS; in qla2x00_fabric_logout()
2240 mcp->flags = 0; in qla2x00_fabric_logout()
2241 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_fabric_logout()
2246 "Failed=%x mb[1]=%x.\n", rval, mcp->mb[1]); in qla2x00_fabric_logout()
2276 mbx_cmd_t *mcp = &mc; in qla2x00_full_login_lip() local
2281 mcp->mb[0] = MBC_LIP_FULL_LOGIN; in qla2x00_full_login_lip()
2282 mcp->mb[1] = IS_FWI2_CAPABLE(vha->hw) ? BIT_3 : 0; in qla2x00_full_login_lip()
2283 mcp->mb[2] = 0; in qla2x00_full_login_lip()
2284 mcp->mb[3] = 0; in qla2x00_full_login_lip()
2285 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_full_login_lip()
2286 mcp->in_mb = MBX_0; in qla2x00_full_login_lip()
2287 mcp->tov = MBX_TOV_SECONDS; in qla2x00_full_login_lip()
2288 mcp->flags = 0; in qla2x00_full_login_lip()
2289 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_full_login_lip()
2321 mbx_cmd_t *mcp = &mc; in qla2x00_get_id_list() local
2329 mcp->mb[0] = MBC_GET_ID_LIST; in qla2x00_get_id_list()
2330 mcp->out_mb = MBX_0; in qla2x00_get_id_list()
2332 mcp->mb[2] = MSW(id_list_dma); in qla2x00_get_id_list()
2333 mcp->mb[3] = LSW(id_list_dma); in qla2x00_get_id_list()
2334 mcp->mb[6] = MSW(MSD(id_list_dma)); in qla2x00_get_id_list()
2335 mcp->mb[7] = LSW(MSD(id_list_dma)); in qla2x00_get_id_list()
2336 mcp->mb[8] = 0; in qla2x00_get_id_list()
2337 mcp->mb[9] = vha->vp_idx; in qla2x00_get_id_list()
2338 mcp->out_mb |= MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2; in qla2x00_get_id_list()
2340 mcp->mb[1] = MSW(id_list_dma); in qla2x00_get_id_list()
2341 mcp->mb[2] = LSW(id_list_dma); in qla2x00_get_id_list()
2342 mcp->mb[3] = MSW(MSD(id_list_dma)); in qla2x00_get_id_list()
2343 mcp->mb[6] = LSW(MSD(id_list_dma)); in qla2x00_get_id_list()
2344 mcp->out_mb |= MBX_6|MBX_3|MBX_2|MBX_1; in qla2x00_get_id_list()
2346 mcp->in_mb = MBX_1|MBX_0; in qla2x00_get_id_list()
2347 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_id_list()
2348 mcp->flags = 0; in qla2x00_get_id_list()
2349 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_id_list()
2355 *entries = mcp->mb[1]; in qla2x00_get_id_list()
2383 mbx_cmd_t *mcp = &mc; in qla2x00_get_resource_cnts() local
2388 mcp->mb[0] = MBC_GET_RESOURCE_COUNTS; in qla2x00_get_resource_cnts()
2389 mcp->out_mb = MBX_0; in qla2x00_get_resource_cnts()
2390 mcp->in_mb = MBX_11|MBX_10|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_resource_cnts()
2392 mcp->in_mb |= MBX_12; in qla2x00_get_resource_cnts()
2393 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_resource_cnts()
2394 mcp->flags = 0; in qla2x00_get_resource_cnts()
2395 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_resource_cnts()
2400 "Failed mb[0]=%x.\n", mcp->mb[0]); in qla2x00_get_resource_cnts()
2404 "mb11=%x mb12=%x.\n", __func__, mcp->mb[1], mcp->mb[2], in qla2x00_get_resource_cnts()
2405 mcp->mb[3], mcp->mb[6], mcp->mb[7], mcp->mb[10], in qla2x00_get_resource_cnts()
2406 mcp->mb[11], mcp->mb[12]); in qla2x00_get_resource_cnts()
2409 *cur_xchg_cnt = mcp->mb[3]; in qla2x00_get_resource_cnts()
2411 *orig_xchg_cnt = mcp->mb[6]; in qla2x00_get_resource_cnts()
2413 *cur_iocb_cnt = mcp->mb[7]; in qla2x00_get_resource_cnts()
2415 *orig_iocb_cnt = mcp->mb[10]; in qla2x00_get_resource_cnts()
2417 *max_npiv_vports = mcp->mb[11]; in qla2x00_get_resource_cnts()
2419 *max_fcfs = mcp->mb[12]; in qla2x00_get_resource_cnts()
2444 mbx_cmd_t *mcp = &mc; in qla2x00_get_fcal_position_map() local
2460 mcp->mb[0] = MBC_GET_FC_AL_POSITION_MAP; in qla2x00_get_fcal_position_map()
2461 mcp->mb[2] = MSW(pmap_dma); in qla2x00_get_fcal_position_map()
2462 mcp->mb[3] = LSW(pmap_dma); in qla2x00_get_fcal_position_map()
2463 mcp->mb[6] = MSW(MSD(pmap_dma)); in qla2x00_get_fcal_position_map()
2464 mcp->mb[7] = LSW(MSD(pmap_dma)); in qla2x00_get_fcal_position_map()
2465 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; in qla2x00_get_fcal_position_map()
2466 mcp->in_mb = MBX_1|MBX_0; in qla2x00_get_fcal_position_map()
2467 mcp->buf_size = FCAL_MAP_SIZE; in qla2x00_get_fcal_position_map()
2468 mcp->flags = MBX_DMA_IN; in qla2x00_get_fcal_position_map()
2469 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); in qla2x00_get_fcal_position_map()
2470 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_fcal_position_map()
2475 mcp->mb[0], mcp->mb[1], (unsigned)pmap[0]); in qla2x00_get_fcal_position_map()
2513 mbx_cmd_t *mcp = &mc; in qla2x00_get_link_status() local
2520 mcp->mb[0] = MBC_GET_LINK_STATUS; in qla2x00_get_link_status()
2521 mcp->mb[2] = MSW(stats_dma); in qla2x00_get_link_status()
2522 mcp->mb[3] = LSW(stats_dma); in qla2x00_get_link_status()
2523 mcp->mb[6] = MSW(MSD(stats_dma)); in qla2x00_get_link_status()
2524 mcp->mb[7] = LSW(MSD(stats_dma)); in qla2x00_get_link_status()
2525 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; in qla2x00_get_link_status()
2526 mcp->in_mb = MBX_0; in qla2x00_get_link_status()
2528 mcp->mb[1] = loop_id; in qla2x00_get_link_status()
2529 mcp->mb[4] = 0; in qla2x00_get_link_status()
2530 mcp->mb[10] = 0; in qla2x00_get_link_status()
2531 mcp->out_mb |= MBX_10|MBX_4|MBX_1; in qla2x00_get_link_status()
2532 mcp->in_mb |= MBX_1; in qla2x00_get_link_status()
2534 mcp->mb[1] = loop_id; in qla2x00_get_link_status()
2535 mcp->mb[10] = 0; in qla2x00_get_link_status()
2536 mcp->out_mb |= MBX_10|MBX_1; in qla2x00_get_link_status()
2538 mcp->mb[1] = loop_id << 8; in qla2x00_get_link_status()
2539 mcp->out_mb |= MBX_1; in qla2x00_get_link_status()
2541 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_link_status()
2542 mcp->flags = IOCTL_CMD; in qla2x00_get_link_status()
2543 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_link_status()
2546 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) { in qla2x00_get_link_status()
2548 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_get_link_status()
2573 mbx_cmd_t *mcp = &mc; in qla24xx_get_isp_stats() local
2579 mcp->mb[0] = MBC_GET_LINK_PRIV_STATS; in qla24xx_get_isp_stats()
2580 mcp->mb[2] = MSW(stats_dma); in qla24xx_get_isp_stats()
2581 mcp->mb[3] = LSW(stats_dma); in qla24xx_get_isp_stats()
2582 mcp->mb[6] = MSW(MSD(stats_dma)); in qla24xx_get_isp_stats()
2583 mcp->mb[7] = LSW(MSD(stats_dma)); in qla24xx_get_isp_stats()
2584 mcp->mb[8] = sizeof(struct link_statistics) / 4; in qla24xx_get_isp_stats()
2585 mcp->mb[9] = vha->vp_idx; in qla24xx_get_isp_stats()
2586 mcp->mb[10] = 0; in qla24xx_get_isp_stats()
2587 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; in qla24xx_get_isp_stats()
2588 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla24xx_get_isp_stats()
2589 mcp->tov = MBX_TOV_SECONDS; in qla24xx_get_isp_stats()
2590 mcp->flags = IOCTL_CMD; in qla24xx_get_isp_stats()
2591 rval = qla2x00_mailbox_command(vha, mcp); in qla24xx_get_isp_stats()
2594 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) { in qla24xx_get_isp_stats()
2596 "Failed mb[0]=%x.\n", mcp->mb[0]); in qla24xx_get_isp_stats()
2822 mbx_cmd_t *mcp = &mc; in qla2x00_system_error() local
2831 mcp->mb[0] = MBC_GEN_SYSTEM_ERROR; in qla2x00_system_error()
2832 mcp->out_mb = MBX_0; in qla2x00_system_error()
2833 mcp->in_mb = MBX_0; in qla2x00_system_error()
2834 mcp->tov = 5; in qla2x00_system_error()
2835 mcp->flags = 0; in qla2x00_system_error()
2836 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_system_error()
2853 mbx_cmd_t *mcp = &mc; in qla2x00_write_serdes_word() local
2861 mcp->mb[0] = MBC_WRITE_SERDES; in qla2x00_write_serdes_word()
2862 mcp->mb[1] = addr; in qla2x00_write_serdes_word()
2864 mcp->mb[2] = data & 0xff; in qla2x00_write_serdes_word()
2866 mcp->mb[2] = data; in qla2x00_write_serdes_word()
2868 mcp->mb[3] = 0; in qla2x00_write_serdes_word()
2869 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_write_serdes_word()
2870 mcp->in_mb = MBX_0; in qla2x00_write_serdes_word()
2871 mcp->tov = MBX_TOV_SECONDS; in qla2x00_write_serdes_word()
2872 mcp->flags = 0; in qla2x00_write_serdes_word()
2873 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_write_serdes_word()
2877 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_write_serdes_word()
2891 mbx_cmd_t *mcp = &mc; in qla2x00_read_serdes_word() local
2899 mcp->mb[0] = MBC_READ_SERDES; in qla2x00_read_serdes_word()
2900 mcp->mb[1] = addr; in qla2x00_read_serdes_word()
2901 mcp->mb[3] = 0; in qla2x00_read_serdes_word()
2902 mcp->out_mb = MBX_3|MBX_1|MBX_0; in qla2x00_read_serdes_word()
2903 mcp->in_mb = MBX_1|MBX_0; in qla2x00_read_serdes_word()
2904 mcp->tov = MBX_TOV_SECONDS; in qla2x00_read_serdes_word()
2905 mcp->flags = 0; in qla2x00_read_serdes_word()
2906 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_read_serdes_word()
2909 *data = mcp->mb[1] & 0xff; in qla2x00_read_serdes_word()
2911 *data = mcp->mb[1]; in qla2x00_read_serdes_word()
2915 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_read_serdes_word()
2929 mbx_cmd_t *mcp = &mc; in qla8044_write_serdes_word() local
2937 mcp->mb[0] = MBC_SET_GET_ETH_SERDES_REG; in qla8044_write_serdes_word()
2938 mcp->mb[1] = HCS_WRITE_SERDES; in qla8044_write_serdes_word()
2939 mcp->mb[3] = LSW(addr); in qla8044_write_serdes_word()
2940 mcp->mb[4] = MSW(addr); in qla8044_write_serdes_word()
2941 mcp->mb[5] = LSW(data); in qla8044_write_serdes_word()
2942 mcp->mb[6] = MSW(data); in qla8044_write_serdes_word()
2943 mcp->out_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_1|MBX_0; in qla8044_write_serdes_word()
2944 mcp->in_mb = MBX_0; in qla8044_write_serdes_word()
2945 mcp->tov = MBX_TOV_SECONDS; in qla8044_write_serdes_word()
2946 mcp->flags = 0; in qla8044_write_serdes_word()
2947 rval = qla2x00_mailbox_command(vha, mcp); in qla8044_write_serdes_word()
2951 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla8044_write_serdes_word()
2965 mbx_cmd_t *mcp = &mc; in qla8044_read_serdes_word() local
2973 mcp->mb[0] = MBC_SET_GET_ETH_SERDES_REG; in qla8044_read_serdes_word()
2974 mcp->mb[1] = HCS_READ_SERDES; in qla8044_read_serdes_word()
2975 mcp->mb[3] = LSW(addr); in qla8044_read_serdes_word()
2976 mcp->mb[4] = MSW(addr); in qla8044_read_serdes_word()
2977 mcp->out_mb = MBX_4|MBX_3|MBX_1|MBX_0; in qla8044_read_serdes_word()
2978 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla8044_read_serdes_word()
2979 mcp->tov = MBX_TOV_SECONDS; in qla8044_read_serdes_word()
2980 mcp->flags = 0; in qla8044_read_serdes_word()
2981 rval = qla2x00_mailbox_command(vha, mcp); in qla8044_read_serdes_word()
2983 *data = mcp->mb[2] << 16 | mcp->mb[1]; in qla8044_read_serdes_word()
2987 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla8044_read_serdes_word()
3008 mbx_cmd_t *mcp = &mc; in qla2x00_set_serdes_params() local
3013 mcp->mb[0] = MBC_SERDES_PARAMS; in qla2x00_set_serdes_params()
3014 mcp->mb[1] = BIT_0; in qla2x00_set_serdes_params()
3015 mcp->mb[2] = sw_em_1g | BIT_15; in qla2x00_set_serdes_params()
3016 mcp->mb[3] = sw_em_2g | BIT_15; in qla2x00_set_serdes_params()
3017 mcp->mb[4] = sw_em_4g | BIT_15; in qla2x00_set_serdes_params()
3018 mcp->out_mb = MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_set_serdes_params()
3019 mcp->in_mb = MBX_0; in qla2x00_set_serdes_params()
3020 mcp->tov = MBX_TOV_SECONDS; in qla2x00_set_serdes_params()
3021 mcp->flags = 0; in qla2x00_set_serdes_params()
3022 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_set_serdes_params()
3027 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_set_serdes_params()
3042 mbx_cmd_t *mcp = &mc; in qla2x00_stop_firmware() local
3050 mcp->mb[0] = MBC_STOP_FIRMWARE; in qla2x00_stop_firmware()
3051 mcp->mb[1] = 0; in qla2x00_stop_firmware()
3052 mcp->out_mb = MBX_1|MBX_0; in qla2x00_stop_firmware()
3053 mcp->in_mb = MBX_0; in qla2x00_stop_firmware()
3054 mcp->tov = 5; in qla2x00_stop_firmware()
3055 mcp->flags = 0; in qla2x00_stop_firmware()
3056 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_stop_firmware()
3060 if (mcp->mb[0] == MBS_INVALID_COMMAND) in qla2x00_stop_firmware()
3076 mbx_cmd_t *mcp = &mc; in qla2x00_enable_eft_trace() local
3087 mcp->mb[0] = MBC_TRACE_CONTROL; in qla2x00_enable_eft_trace()
3088 mcp->mb[1] = TC_EFT_ENABLE; in qla2x00_enable_eft_trace()
3089 mcp->mb[2] = LSW(eft_dma); in qla2x00_enable_eft_trace()
3090 mcp->mb[3] = MSW(eft_dma); in qla2x00_enable_eft_trace()
3091 mcp->mb[4] = LSW(MSD(eft_dma)); in qla2x00_enable_eft_trace()
3092 mcp->mb[5] = MSW(MSD(eft_dma)); in qla2x00_enable_eft_trace()
3093 mcp->mb[6] = buffers; in qla2x00_enable_eft_trace()
3094 mcp->mb[7] = TC_AEN_DISABLE; in qla2x00_enable_eft_trace()
3095 mcp->out_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_enable_eft_trace()
3096 mcp->in_mb = MBX_1|MBX_0; in qla2x00_enable_eft_trace()
3097 mcp->tov = MBX_TOV_SECONDS; in qla2x00_enable_eft_trace()
3098 mcp->flags = 0; in qla2x00_enable_eft_trace()
3099 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_enable_eft_trace()
3103 rval, mcp->mb[0], mcp->mb[1]); in qla2x00_enable_eft_trace()
3117 mbx_cmd_t *mcp = &mc; in qla2x00_disable_eft_trace() local
3128 mcp->mb[0] = MBC_TRACE_CONTROL; in qla2x00_disable_eft_trace()
3129 mcp->mb[1] = TC_EFT_DISABLE; in qla2x00_disable_eft_trace()
3130 mcp->out_mb = MBX_1|MBX_0; in qla2x00_disable_eft_trace()
3131 mcp->in_mb = MBX_1|MBX_0; in qla2x00_disable_eft_trace()
3132 mcp->tov = MBX_TOV_SECONDS; in qla2x00_disable_eft_trace()
3133 mcp->flags = 0; in qla2x00_disable_eft_trace()
3134 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_disable_eft_trace()
3138 rval, mcp->mb[0], mcp->mb[1]); in qla2x00_disable_eft_trace()
3153 mbx_cmd_t *mcp = &mc; in qla2x00_enable_fce_trace() local
3165 mcp->mb[0] = MBC_TRACE_CONTROL; in qla2x00_enable_fce_trace()
3166 mcp->mb[1] = TC_FCE_ENABLE; in qla2x00_enable_fce_trace()
3167 mcp->mb[2] = LSW(fce_dma); in qla2x00_enable_fce_trace()
3168 mcp->mb[3] = MSW(fce_dma); in qla2x00_enable_fce_trace()
3169 mcp->mb[4] = LSW(MSD(fce_dma)); in qla2x00_enable_fce_trace()
3170 mcp->mb[5] = MSW(MSD(fce_dma)); in qla2x00_enable_fce_trace()
3171 mcp->mb[6] = buffers; in qla2x00_enable_fce_trace()
3172 mcp->mb[7] = TC_AEN_DISABLE; in qla2x00_enable_fce_trace()
3173 mcp->mb[8] = 0; in qla2x00_enable_fce_trace()
3174 mcp->mb[9] = TC_FCE_DEFAULT_RX_SIZE; in qla2x00_enable_fce_trace()
3175 mcp->mb[10] = TC_FCE_DEFAULT_TX_SIZE; in qla2x00_enable_fce_trace()
3176 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2| in qla2x00_enable_fce_trace()
3178 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_enable_fce_trace()
3179 mcp->tov = MBX_TOV_SECONDS; in qla2x00_enable_fce_trace()
3180 mcp->flags = 0; in qla2x00_enable_fce_trace()
3181 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_enable_fce_trace()
3185 rval, mcp->mb[0], mcp->mb[1]); in qla2x00_enable_fce_trace()
3191 memcpy(mb, mcp->mb, 8 * sizeof(*mb)); in qla2x00_enable_fce_trace()
3204 mbx_cmd_t *mcp = &mc; in qla2x00_disable_fce_trace() local
3215 mcp->mb[0] = MBC_TRACE_CONTROL; in qla2x00_disable_fce_trace()
3216 mcp->mb[1] = TC_FCE_DISABLE; in qla2x00_disable_fce_trace()
3217 mcp->mb[2] = TC_FCE_DISABLE_TRACE; in qla2x00_disable_fce_trace()
3218 mcp->out_mb = MBX_2|MBX_1|MBX_0; in qla2x00_disable_fce_trace()
3219 mcp->in_mb = MBX_9|MBX_8|MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2| in qla2x00_disable_fce_trace()
3221 mcp->tov = MBX_TOV_SECONDS; in qla2x00_disable_fce_trace()
3222 mcp->flags = 0; in qla2x00_disable_fce_trace()
3223 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_disable_fce_trace()
3227 rval, mcp->mb[0], mcp->mb[1]); in qla2x00_disable_fce_trace()
3233 *wr = (uint64_t) mcp->mb[5] << 48 | in qla2x00_disable_fce_trace()
3234 (uint64_t) mcp->mb[4] << 32 | in qla2x00_disable_fce_trace()
3235 (uint64_t) mcp->mb[3] << 16 | in qla2x00_disable_fce_trace()
3236 (uint64_t) mcp->mb[2]; in qla2x00_disable_fce_trace()
3238 *rd = (uint64_t) mcp->mb[9] << 48 | in qla2x00_disable_fce_trace()
3239 (uint64_t) mcp->mb[8] << 32 | in qla2x00_disable_fce_trace()
3240 (uint64_t) mcp->mb[7] << 16 | in qla2x00_disable_fce_trace()
3241 (uint64_t) mcp->mb[6]; in qla2x00_disable_fce_trace()
3253 mbx_cmd_t *mcp = &mc; in qla2x00_get_idma_speed() local
3261 mcp->mb[0] = MBC_PORT_PARAMS; in qla2x00_get_idma_speed()
3262 mcp->mb[1] = loop_id; in qla2x00_get_idma_speed()
3263 mcp->mb[2] = mcp->mb[3] = 0; in qla2x00_get_idma_speed()
3264 mcp->mb[9] = vha->vp_idx; in qla2x00_get_idma_speed()
3265 mcp->out_mb = MBX_9|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_idma_speed()
3266 mcp->in_mb = MBX_3|MBX_1|MBX_0; in qla2x00_get_idma_speed()
3267 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_idma_speed()
3268 mcp->flags = 0; in qla2x00_get_idma_speed()
3269 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_idma_speed()
3273 mb[0] = mcp->mb[0]; in qla2x00_get_idma_speed()
3274 mb[1] = mcp->mb[1]; in qla2x00_get_idma_speed()
3275 mb[3] = mcp->mb[3]; in qla2x00_get_idma_speed()
3284 *port_speed = mcp->mb[3]; in qla2x00_get_idma_speed()
3296 mbx_cmd_t *mcp = &mc; in qla2x00_set_idma_speed() local
3304 mcp->mb[0] = MBC_PORT_PARAMS; in qla2x00_set_idma_speed()
3305 mcp->mb[1] = loop_id; in qla2x00_set_idma_speed()
3306 mcp->mb[2] = BIT_0; in qla2x00_set_idma_speed()
3308 mcp->mb[3] = port_speed & (BIT_5|BIT_4|BIT_3|BIT_2|BIT_1|BIT_0); in qla2x00_set_idma_speed()
3310 mcp->mb[3] = port_speed & (BIT_2|BIT_1|BIT_0); in qla2x00_set_idma_speed()
3311 mcp->mb[9] = vha->vp_idx; in qla2x00_set_idma_speed()
3312 mcp->out_mb = MBX_9|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_set_idma_speed()
3313 mcp->in_mb = MBX_3|MBX_1|MBX_0; in qla2x00_set_idma_speed()
3314 mcp->tov = MBX_TOV_SECONDS; in qla2x00_set_idma_speed()
3315 mcp->flags = 0; in qla2x00_set_idma_speed()
3316 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_set_idma_speed()
3320 mb[0] = mcp->mb[0]; in qla2x00_set_idma_speed()
3321 mb[1] = mcp->mb[1]; in qla2x00_set_idma_speed()
3322 mb[3] = mcp->mb[3]; in qla2x00_set_idma_speed()
3606 mbx_cmd_t *mcp = &mc; in qla2x00_send_change_request() local
3611 mcp->mb[0] = MBC_SEND_CHANGE_REQUEST; in qla2x00_send_change_request()
3612 mcp->mb[1] = format; in qla2x00_send_change_request()
3613 mcp->mb[9] = vp_idx; in qla2x00_send_change_request()
3614 mcp->out_mb = MBX_9|MBX_1|MBX_0; in qla2x00_send_change_request()
3615 mcp->in_mb = MBX_0|MBX_1; in qla2x00_send_change_request()
3616 mcp->tov = MBX_TOV_SECONDS; in qla2x00_send_change_request()
3617 mcp->flags = 0; in qla2x00_send_change_request()
3618 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_send_change_request()
3621 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) { in qla2x00_send_change_request()
3636 mbx_cmd_t *mcp = &mc; in qla2x00_dump_ram() local
3642 mcp->mb[0] = MBC_DUMP_RISC_RAM_EXTENDED; in qla2x00_dump_ram()
3643 mcp->mb[8] = MSW(addr); in qla2x00_dump_ram()
3644 mcp->out_mb = MBX_8|MBX_0; in qla2x00_dump_ram()
3646 mcp->mb[0] = MBC_DUMP_RISC_RAM; in qla2x00_dump_ram()
3647 mcp->out_mb = MBX_0; in qla2x00_dump_ram()
3649 mcp->mb[1] = LSW(addr); in qla2x00_dump_ram()
3650 mcp->mb[2] = MSW(req_dma); in qla2x00_dump_ram()
3651 mcp->mb[3] = LSW(req_dma); in qla2x00_dump_ram()
3652 mcp->mb[6] = MSW(MSD(req_dma)); in qla2x00_dump_ram()
3653 mcp->mb[7] = LSW(MSD(req_dma)); in qla2x00_dump_ram()
3654 mcp->out_mb |= MBX_7|MBX_6|MBX_3|MBX_2|MBX_1; in qla2x00_dump_ram()
3656 mcp->mb[4] = MSW(size); in qla2x00_dump_ram()
3657 mcp->mb[5] = LSW(size); in qla2x00_dump_ram()
3658 mcp->out_mb |= MBX_5|MBX_4; in qla2x00_dump_ram()
3660 mcp->mb[4] = LSW(size); in qla2x00_dump_ram()
3661 mcp->out_mb |= MBX_4; in qla2x00_dump_ram()
3664 mcp->in_mb = MBX_0; in qla2x00_dump_ram()
3665 mcp->tov = MBX_TOV_SECONDS; in qla2x00_dump_ram()
3666 mcp->flags = 0; in qla2x00_dump_ram()
3667 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_dump_ram()
3671 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_dump_ram()
3787 mbx_cmd_t *mcp = &mc; in qla25xx_init_req_que() local
3796 mcp->mb[0] = MBC_INITIALIZE_MULTIQ; in qla25xx_init_req_que()
3797 mcp->mb[1] = req->options; in qla25xx_init_req_que()
3798 mcp->mb[2] = MSW(LSD(req->dma)); in qla25xx_init_req_que()
3799 mcp->mb[3] = LSW(LSD(req->dma)); in qla25xx_init_req_que()
3800 mcp->mb[6] = MSW(MSD(req->dma)); in qla25xx_init_req_que()
3801 mcp->mb[7] = LSW(MSD(req->dma)); in qla25xx_init_req_que()
3802 mcp->mb[5] = req->length; in qla25xx_init_req_que()
3804 mcp->mb[10] = req->rsp->id; in qla25xx_init_req_que()
3805 mcp->mb[12] = req->qos; in qla25xx_init_req_que()
3806 mcp->mb[11] = req->vp_idx; in qla25xx_init_req_que()
3807 mcp->mb[13] = req->rid; in qla25xx_init_req_que()
3809 mcp->mb[15] = 0; in qla25xx_init_req_que()
3811 mcp->mb[4] = req->id; in qla25xx_init_req_que()
3813 mcp->mb[8] = 0; in qla25xx_init_req_que()
3815 mcp->mb[9] = *req->out_ptr = 0; in qla25xx_init_req_que()
3816 mcp->out_mb = MBX_14|MBX_13|MBX_12|MBX_11|MBX_10|MBX_9|MBX_8|MBX_7| in qla25xx_init_req_que()
3818 mcp->in_mb = MBX_0; in qla25xx_init_req_que()
3819 mcp->flags = MBX_DMA_OUT; in qla25xx_init_req_que()
3820 mcp->tov = MBX_TOV_SECONDS * 2; in qla25xx_init_req_que()
3823 mcp->in_mb |= MBX_1; in qla25xx_init_req_que()
3825 mcp->out_mb |= MBX_15; in qla25xx_init_req_que()
3827 mcp->in_mb |= MBX_9 | MBX_8 | MBX_7; in qla25xx_init_req_que()
3838 rval = qla2x00_mailbox_command(vha, mcp); in qla25xx_init_req_que()
3841 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla25xx_init_req_que()
3856 mbx_cmd_t *mcp = &mc; in qla25xx_init_rsp_que() local
3865 mcp->mb[0] = MBC_INITIALIZE_MULTIQ; in qla25xx_init_rsp_que()
3866 mcp->mb[1] = rsp->options; in qla25xx_init_rsp_que()
3867 mcp->mb[2] = MSW(LSD(rsp->dma)); in qla25xx_init_rsp_que()
3868 mcp->mb[3] = LSW(LSD(rsp->dma)); in qla25xx_init_rsp_que()
3869 mcp->mb[6] = MSW(MSD(rsp->dma)); in qla25xx_init_rsp_que()
3870 mcp->mb[7] = LSW(MSD(rsp->dma)); in qla25xx_init_rsp_que()
3871 mcp->mb[5] = rsp->length; in qla25xx_init_rsp_que()
3872 mcp->mb[14] = rsp->msix->entry; in qla25xx_init_rsp_que()
3873 mcp->mb[13] = rsp->rid; in qla25xx_init_rsp_que()
3875 mcp->mb[15] = 0; in qla25xx_init_rsp_que()
3877 mcp->mb[4] = rsp->id; in qla25xx_init_rsp_que()
3879 mcp->mb[8] = *rsp->in_ptr = 0; in qla25xx_init_rsp_que()
3881 mcp->mb[9] = 0; in qla25xx_init_rsp_que()
3882 mcp->out_mb = MBX_14|MBX_13|MBX_9|MBX_8|MBX_7 in qla25xx_init_rsp_que()
3884 mcp->in_mb = MBX_0; in qla25xx_init_rsp_que()
3885 mcp->flags = MBX_DMA_OUT; in qla25xx_init_rsp_que()
3886 mcp->tov = MBX_TOV_SECONDS * 2; in qla25xx_init_rsp_que()
3889 mcp->out_mb |= MBX_12|MBX_11|MBX_10; in qla25xx_init_rsp_que()
3890 mcp->in_mb |= MBX_1; in qla25xx_init_rsp_que()
3892 mcp->out_mb |= MBX_15|MBX_12|MBX_11|MBX_10; in qla25xx_init_rsp_que()
3893 mcp->in_mb |= MBX_1; in qla25xx_init_rsp_que()
3895 mcp->in_mb |= MBX_9 | MBX_8 | MBX_7; in qla25xx_init_rsp_que()
3907 rval = qla2x00_mailbox_command(vha, mcp); in qla25xx_init_rsp_que()
3910 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla25xx_init_rsp_que()
3924 mbx_cmd_t *mcp = &mc; in qla81xx_idc_ack() local
3929 mcp->mb[0] = MBC_IDC_ACK; in qla81xx_idc_ack()
3930 memcpy(&mcp->mb[1], mb, QLA_IDC_ACK_REGS * sizeof(uint16_t)); in qla81xx_idc_ack()
3931 mcp->out_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla81xx_idc_ack()
3932 mcp->in_mb = MBX_0; in qla81xx_idc_ack()
3933 mcp->tov = MBX_TOV_SECONDS; in qla81xx_idc_ack()
3934 mcp->flags = 0; in qla81xx_idc_ack()
3935 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_idc_ack()
3939 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla81xx_idc_ack()
3953 mbx_cmd_t *mcp = &mc; in qla81xx_fac_get_sector_size() local
3962 mcp->mb[0] = MBC_FLASH_ACCESS_CTRL; in qla81xx_fac_get_sector_size()
3963 mcp->mb[1] = FAC_OPT_CMD_GET_SECTOR_SIZE; in qla81xx_fac_get_sector_size()
3964 mcp->out_mb = MBX_1|MBX_0; in qla81xx_fac_get_sector_size()
3965 mcp->in_mb = MBX_1|MBX_0; in qla81xx_fac_get_sector_size()
3966 mcp->tov = MBX_TOV_SECONDS; in qla81xx_fac_get_sector_size()
3967 mcp->flags = 0; in qla81xx_fac_get_sector_size()
3968 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_fac_get_sector_size()
3973 rval, mcp->mb[0], mcp->mb[1]); in qla81xx_fac_get_sector_size()
3977 *sector_size = mcp->mb[1]; in qla81xx_fac_get_sector_size()
3988 mbx_cmd_t *mcp = &mc; in qla81xx_fac_do_write_enable() local
3997 mcp->mb[0] = MBC_FLASH_ACCESS_CTRL; in qla81xx_fac_do_write_enable()
3998 mcp->mb[1] = enable ? FAC_OPT_CMD_WRITE_ENABLE : in qla81xx_fac_do_write_enable()
4000 mcp->out_mb = MBX_1|MBX_0; in qla81xx_fac_do_write_enable()
4001 mcp->in_mb = MBX_1|MBX_0; in qla81xx_fac_do_write_enable()
4002 mcp->tov = MBX_TOV_SECONDS; in qla81xx_fac_do_write_enable()
4003 mcp->flags = 0; in qla81xx_fac_do_write_enable()
4004 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_fac_do_write_enable()
4009 rval, mcp->mb[0], mcp->mb[1]); in qla81xx_fac_do_write_enable()
4023 mbx_cmd_t *mcp = &mc; in qla81xx_fac_erase_sector() local
4032 mcp->mb[0] = MBC_FLASH_ACCESS_CTRL; in qla81xx_fac_erase_sector()
4033 mcp->mb[1] = FAC_OPT_CMD_ERASE_SECTOR; in qla81xx_fac_erase_sector()
4034 mcp->mb[2] = LSW(start); in qla81xx_fac_erase_sector()
4035 mcp->mb[3] = MSW(start); in qla81xx_fac_erase_sector()
4036 mcp->mb[4] = LSW(finish); in qla81xx_fac_erase_sector()
4037 mcp->mb[5] = MSW(finish); in qla81xx_fac_erase_sector()
4038 mcp->out_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla81xx_fac_erase_sector()
4039 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla81xx_fac_erase_sector()
4040 mcp->tov = MBX_TOV_SECONDS; in qla81xx_fac_erase_sector()
4041 mcp->flags = 0; in qla81xx_fac_erase_sector()
4042 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_fac_erase_sector()
4047 rval, mcp->mb[0], mcp->mb[1], mcp->mb[2]); in qla81xx_fac_erase_sector()
4061 mbx_cmd_t *mcp = &mc; in qla81xx_restart_mpi_firmware() local
4066 mcp->mb[0] = MBC_RESTART_MPI_FW; in qla81xx_restart_mpi_firmware()
4067 mcp->out_mb = MBX_0; in qla81xx_restart_mpi_firmware()
4068 mcp->in_mb = MBX_0|MBX_1; in qla81xx_restart_mpi_firmware()
4069 mcp->tov = MBX_TOV_SECONDS; in qla81xx_restart_mpi_firmware()
4070 mcp->flags = 0; in qla81xx_restart_mpi_firmware()
4071 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_restart_mpi_firmware()
4076 rval, mcp->mb[0], mcp->mb[1]); in qla81xx_restart_mpi_firmware()
4090 mbx_cmd_t *mcp = &mc; in qla82xx_set_driver_version() local
4105 mcp->mb[0] = MBC_SET_RNID_PARAMS; in qla82xx_set_driver_version()
4106 mcp->mb[1] = RNID_TYPE_SET_VERSION << 8; in qla82xx_set_driver_version()
4107 mcp->out_mb = MBX_1|MBX_0; in qla82xx_set_driver_version()
4109 mcp->mb[i] = cpu_to_le16p(str); in qla82xx_set_driver_version()
4110 mcp->out_mb |= 1<<i; in qla82xx_set_driver_version()
4113 mcp->mb[i] = 0; in qla82xx_set_driver_version()
4114 mcp->out_mb |= 1<<i; in qla82xx_set_driver_version()
4116 mcp->in_mb = MBX_1|MBX_0; in qla82xx_set_driver_version()
4117 mcp->tov = MBX_TOV_SECONDS; in qla82xx_set_driver_version()
4118 mcp->flags = 0; in qla82xx_set_driver_version()
4119 rval = qla2x00_mailbox_command(vha, mcp); in qla82xx_set_driver_version()
4123 "Failed=%x mb[0]=%x,%x.\n", rval, mcp->mb[0], mcp->mb[1]); in qla82xx_set_driver_version()
4137 mbx_cmd_t *mcp = &mc; in qla25xx_set_driver_version() local
4166 mcp->mb[0] = MBC_SET_RNID_PARAMS; in qla25xx_set_driver_version()
4167 mcp->mb[1] = RNID_TYPE_SET_VERSION << 8 | dwlen; in qla25xx_set_driver_version()
4168 mcp->mb[2] = MSW(LSD(str_dma)); in qla25xx_set_driver_version()
4169 mcp->mb[3] = LSW(LSD(str_dma)); in qla25xx_set_driver_version()
4170 mcp->mb[6] = MSW(MSD(str_dma)); in qla25xx_set_driver_version()
4171 mcp->mb[7] = LSW(MSD(str_dma)); in qla25xx_set_driver_version()
4172 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla25xx_set_driver_version()
4173 mcp->in_mb = MBX_1|MBX_0; in qla25xx_set_driver_version()
4174 mcp->tov = MBX_TOV_SECONDS; in qla25xx_set_driver_version()
4175 mcp->flags = 0; in qla25xx_set_driver_version()
4176 rval = qla2x00_mailbox_command(vha, mcp); in qla25xx_set_driver_version()
4180 "Failed=%x mb[0]=%x,%x.\n", rval, mcp->mb[0], mcp->mb[1]); in qla25xx_set_driver_version()
4196 mbx_cmd_t *mcp = &mc; in qla2x00_read_asic_temperature() local
4204 mcp->mb[0] = MBC_GET_RNID_PARAMS; in qla2x00_read_asic_temperature()
4205 mcp->mb[1] = RNID_TYPE_ASIC_TEMP << 8; in qla2x00_read_asic_temperature()
4206 mcp->out_mb = MBX_1|MBX_0; in qla2x00_read_asic_temperature()
4207 mcp->in_mb = MBX_1|MBX_0; in qla2x00_read_asic_temperature()
4208 mcp->tov = MBX_TOV_SECONDS; in qla2x00_read_asic_temperature()
4209 mcp->flags = 0; in qla2x00_read_asic_temperature()
4210 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_read_asic_temperature()
4211 *temp = mcp->mb[1]; in qla2x00_read_asic_temperature()
4215 "Failed=%x mb[0]=%x,%x.\n", rval, mcp->mb[0], mcp->mb[1]); in qla2x00_read_asic_temperature()
4230 mbx_cmd_t *mcp = &mc; in qla2x00_read_sfp() local
4242 mcp->mb[0] = MBC_READ_SFP; in qla2x00_read_sfp()
4243 mcp->mb[1] = dev; in qla2x00_read_sfp()
4244 mcp->mb[2] = MSW(sfp_dma); in qla2x00_read_sfp()
4245 mcp->mb[3] = LSW(sfp_dma); in qla2x00_read_sfp()
4246 mcp->mb[6] = MSW(MSD(sfp_dma)); in qla2x00_read_sfp()
4247 mcp->mb[7] = LSW(MSD(sfp_dma)); in qla2x00_read_sfp()
4248 mcp->mb[8] = len; in qla2x00_read_sfp()
4249 mcp->mb[9] = off; in qla2x00_read_sfp()
4250 mcp->mb[10] = opt; in qla2x00_read_sfp()
4251 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_read_sfp()
4252 mcp->in_mb = MBX_1|MBX_0; in qla2x00_read_sfp()
4253 mcp->tov = MBX_TOV_SECONDS; in qla2x00_read_sfp()
4254 mcp->flags = 0; in qla2x00_read_sfp()
4255 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_read_sfp()
4258 *sfp = mcp->mb[1]; in qla2x00_read_sfp()
4262 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_read_sfp()
4277 mbx_cmd_t *mcp = &mc; in qla2x00_write_sfp() local
4292 mcp->mb[0] = MBC_WRITE_SFP; in qla2x00_write_sfp()
4293 mcp->mb[1] = dev; in qla2x00_write_sfp()
4294 mcp->mb[2] = MSW(sfp_dma); in qla2x00_write_sfp()
4295 mcp->mb[3] = LSW(sfp_dma); in qla2x00_write_sfp()
4296 mcp->mb[6] = MSW(MSD(sfp_dma)); in qla2x00_write_sfp()
4297 mcp->mb[7] = LSW(MSD(sfp_dma)); in qla2x00_write_sfp()
4298 mcp->mb[8] = len; in qla2x00_write_sfp()
4299 mcp->mb[9] = off; in qla2x00_write_sfp()
4300 mcp->mb[10] = opt; in qla2x00_write_sfp()
4301 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_write_sfp()
4302 mcp->in_mb = MBX_1|MBX_0; in qla2x00_write_sfp()
4303 mcp->tov = MBX_TOV_SECONDS; in qla2x00_write_sfp()
4304 mcp->flags = 0; in qla2x00_write_sfp()
4305 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_write_sfp()
4309 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_write_sfp()
4324 mbx_cmd_t *mcp = &mc; in qla2x00_get_xgmac_stats() local
4332 mcp->mb[0] = MBC_GET_XGMAC_STATS; in qla2x00_get_xgmac_stats()
4333 mcp->mb[2] = MSW(stats_dma); in qla2x00_get_xgmac_stats()
4334 mcp->mb[3] = LSW(stats_dma); in qla2x00_get_xgmac_stats()
4335 mcp->mb[6] = MSW(MSD(stats_dma)); in qla2x00_get_xgmac_stats()
4336 mcp->mb[7] = LSW(MSD(stats_dma)); in qla2x00_get_xgmac_stats()
4337 mcp->mb[8] = size_in_bytes >> 2; in qla2x00_get_xgmac_stats()
4338 mcp->out_mb = MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; in qla2x00_get_xgmac_stats()
4339 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla2x00_get_xgmac_stats()
4340 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_xgmac_stats()
4341 mcp->flags = 0; in qla2x00_get_xgmac_stats()
4342 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_xgmac_stats()
4347 rval, mcp->mb[0], mcp->mb[1], mcp->mb[2]); in qla2x00_get_xgmac_stats()
4353 *actual_size = mcp->mb[2] << 2; in qla2x00_get_xgmac_stats()
4365 mbx_cmd_t *mcp = &mc; in qla2x00_get_dcbx_params() local
4373 mcp->mb[0] = MBC_GET_DCBX_PARAMS; in qla2x00_get_dcbx_params()
4374 mcp->mb[1] = 0; in qla2x00_get_dcbx_params()
4375 mcp->mb[2] = MSW(tlv_dma); in qla2x00_get_dcbx_params()
4376 mcp->mb[3] = LSW(tlv_dma); in qla2x00_get_dcbx_params()
4377 mcp->mb[6] = MSW(MSD(tlv_dma)); in qla2x00_get_dcbx_params()
4378 mcp->mb[7] = LSW(MSD(tlv_dma)); in qla2x00_get_dcbx_params()
4379 mcp->mb[8] = size; in qla2x00_get_dcbx_params()
4380 mcp->out_mb = MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_get_dcbx_params()
4381 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla2x00_get_dcbx_params()
4382 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_dcbx_params()
4383 mcp->flags = 0; in qla2x00_get_dcbx_params()
4384 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_dcbx_params()
4389 rval, mcp->mb[0], mcp->mb[1], mcp->mb[2]); in qla2x00_get_dcbx_params()
4403 mbx_cmd_t *mcp = &mc; in qla2x00_read_ram_word() local
4411 mcp->mb[0] = MBC_READ_RAM_EXTENDED; in qla2x00_read_ram_word()
4412 mcp->mb[1] = LSW(risc_addr); in qla2x00_read_ram_word()
4413 mcp->mb[8] = MSW(risc_addr); in qla2x00_read_ram_word()
4414 mcp->out_mb = MBX_8|MBX_1|MBX_0; in qla2x00_read_ram_word()
4415 mcp->in_mb = MBX_3|MBX_2|MBX_0; in qla2x00_read_ram_word()
4416 mcp->tov = 30; in qla2x00_read_ram_word()
4417 mcp->flags = 0; in qla2x00_read_ram_word()
4418 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_read_ram_word()
4421 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_read_ram_word()
4425 *data = mcp->mb[3] << 16 | mcp->mb[2]; in qla2x00_read_ram_word()
4437 mbx_cmd_t *mcp = &mc; in qla2x00_loopback_test() local
4442 memset(mcp->mb, 0 , sizeof(mcp->mb)); in qla2x00_loopback_test()
4443 mcp->mb[0] = MBC_DIAGNOSTIC_LOOP_BACK; in qla2x00_loopback_test()
4444 mcp->mb[1] = mreq->options | BIT_6; // BIT_6 specifies 64 bit addressing in qla2x00_loopback_test()
4447 mcp->mb[10] = LSW(mreq->transfer_size); in qla2x00_loopback_test()
4448 mcp->mb[11] = MSW(mreq->transfer_size); in qla2x00_loopback_test()
4451 mcp->mb[14] = LSW(mreq->send_dma); in qla2x00_loopback_test()
4452 mcp->mb[15] = MSW(mreq->send_dma); in qla2x00_loopback_test()
4453 mcp->mb[20] = LSW(MSD(mreq->send_dma)); in qla2x00_loopback_test()
4454 mcp->mb[21] = MSW(MSD(mreq->send_dma)); in qla2x00_loopback_test()
4457 mcp->mb[16] = LSW(mreq->rcv_dma); in qla2x00_loopback_test()
4458 mcp->mb[17] = MSW(mreq->rcv_dma); in qla2x00_loopback_test()
4459 mcp->mb[6] = LSW(MSD(mreq->rcv_dma)); in qla2x00_loopback_test()
4460 mcp->mb[7] = MSW(MSD(mreq->rcv_dma)); in qla2x00_loopback_test()
4463 mcp->mb[18] = LSW(mreq->iteration_count); in qla2x00_loopback_test()
4464 mcp->mb[19] = MSW(mreq->iteration_count); in qla2x00_loopback_test()
4466 mcp->out_mb = MBX_21|MBX_20|MBX_19|MBX_18|MBX_17|MBX_16|MBX_15| in qla2x00_loopback_test()
4469 mcp->out_mb |= MBX_2; in qla2x00_loopback_test()
4470 mcp->in_mb = MBX_19|MBX_18|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_loopback_test()
4472 mcp->buf_size = mreq->transfer_size; in qla2x00_loopback_test()
4473 mcp->tov = MBX_TOV_SECONDS; in qla2x00_loopback_test()
4474 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD; in qla2x00_loopback_test()
4476 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_loopback_test()
4481 "mb[19]=%x.\n", rval, mcp->mb[0], mcp->mb[1], mcp->mb[2], in qla2x00_loopback_test()
4482 mcp->mb[3], mcp->mb[18], mcp->mb[19]); in qla2x00_loopback_test()
4489 memcpy( mresp, mcp->mb, 64); in qla2x00_loopback_test()
4499 mbx_cmd_t *mcp = &mc; in qla2x00_echo_test() local
4505 memset(mcp->mb, 0 , sizeof(mcp->mb)); in qla2x00_echo_test()
4506 mcp->mb[0] = MBC_DIAGNOSTIC_ECHO; in qla2x00_echo_test()
4507 mcp->mb[1] = mreq->options | BIT_6; /* BIT_6 specifies 64bit address */ in qla2x00_echo_test()
4509 mcp->mb[1] |= BIT_15; in qla2x00_echo_test()
4510 mcp->mb[2] = vha->fcoe_fcf_idx; in qla2x00_echo_test()
4512 mcp->mb[16] = LSW(mreq->rcv_dma); in qla2x00_echo_test()
4513 mcp->mb[17] = MSW(mreq->rcv_dma); in qla2x00_echo_test()
4514 mcp->mb[6] = LSW(MSD(mreq->rcv_dma)); in qla2x00_echo_test()
4515 mcp->mb[7] = MSW(MSD(mreq->rcv_dma)); in qla2x00_echo_test()
4517 mcp->mb[10] = LSW(mreq->transfer_size); in qla2x00_echo_test()
4519 mcp->mb[14] = LSW(mreq->send_dma); in qla2x00_echo_test()
4520 mcp->mb[15] = MSW(mreq->send_dma); in qla2x00_echo_test()
4521 mcp->mb[20] = LSW(MSD(mreq->send_dma)); in qla2x00_echo_test()
4522 mcp->mb[21] = MSW(MSD(mreq->send_dma)); in qla2x00_echo_test()
4524 mcp->out_mb = MBX_21|MBX_20|MBX_17|MBX_16|MBX_15| in qla2x00_echo_test()
4527 mcp->out_mb |= MBX_2; in qla2x00_echo_test()
4529 mcp->in_mb = MBX_0; in qla2x00_echo_test()
4532 mcp->in_mb |= MBX_1; in qla2x00_echo_test()
4534 mcp->in_mb |= MBX_3; in qla2x00_echo_test()
4536 mcp->tov = MBX_TOV_SECONDS; in qla2x00_echo_test()
4537 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD; in qla2x00_echo_test()
4538 mcp->buf_size = mreq->transfer_size; in qla2x00_echo_test()
4540 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_echo_test()
4545 rval, mcp->mb[0], mcp->mb[1]); in qla2x00_echo_test()
4552 memcpy(mresp, mcp->mb, 64); in qla2x00_echo_test()
4561 mbx_cmd_t *mcp = &mc; in qla84xx_reset_chip() local
4566 mcp->mb[0] = MBC_ISP84XX_RESET; in qla84xx_reset_chip()
4567 mcp->mb[1] = enable_diagnostic; in qla84xx_reset_chip()
4568 mcp->out_mb = MBX_1|MBX_0; in qla84xx_reset_chip()
4569 mcp->in_mb = MBX_1|MBX_0; in qla84xx_reset_chip()
4570 mcp->tov = MBX_TOV_SECONDS; in qla84xx_reset_chip()
4571 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD; in qla84xx_reset_chip()
4572 rval = qla2x00_mailbox_command(vha, mcp); in qla84xx_reset_chip()
4588 mbx_cmd_t *mcp = &mc; in qla2x00_write_ram_word() local
4596 mcp->mb[0] = MBC_WRITE_RAM_WORD_EXTENDED; in qla2x00_write_ram_word()
4597 mcp->mb[1] = LSW(risc_addr); in qla2x00_write_ram_word()
4598 mcp->mb[2] = LSW(data); in qla2x00_write_ram_word()
4599 mcp->mb[3] = MSW(data); in qla2x00_write_ram_word()
4600 mcp->mb[8] = MSW(risc_addr); in qla2x00_write_ram_word()
4601 mcp->out_mb = MBX_8|MBX_3|MBX_2|MBX_1|MBX_0; in qla2x00_write_ram_word()
4602 mcp->in_mb = MBX_0; in qla2x00_write_ram_word()
4603 mcp->tov = 30; in qla2x00_write_ram_word()
4604 mcp->flags = 0; in qla2x00_write_ram_word()
4605 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_write_ram_word()
4608 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_write_ram_word()
4684 mbx_cmd_t *mcp = &mc; in qla2x00_get_data_rate() local
4693 mcp->mb[0] = MBC_DATA_RATE; in qla2x00_get_data_rate()
4694 mcp->mb[1] = 0; in qla2x00_get_data_rate()
4695 mcp->out_mb = MBX_1|MBX_0; in qla2x00_get_data_rate()
4696 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla2x00_get_data_rate()
4698 mcp->in_mb |= MBX_3; in qla2x00_get_data_rate()
4699 mcp->tov = MBX_TOV_SECONDS; in qla2x00_get_data_rate()
4700 mcp->flags = 0; in qla2x00_get_data_rate()
4701 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_get_data_rate()
4704 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_get_data_rate()
4708 if (mcp->mb[1] != 0x7) in qla2x00_get_data_rate()
4709 ha->link_data_rate = mcp->mb[1]; in qla2x00_get_data_rate()
4720 mbx_cmd_t *mcp = &mc; in qla81xx_get_port_config() local
4729 mcp->mb[0] = MBC_GET_PORT_CONFIG; in qla81xx_get_port_config()
4730 mcp->out_mb = MBX_0; in qla81xx_get_port_config()
4731 mcp->in_mb = MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla81xx_get_port_config()
4732 mcp->tov = MBX_TOV_SECONDS; in qla81xx_get_port_config()
4733 mcp->flags = 0; in qla81xx_get_port_config()
4735 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_get_port_config()
4739 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla81xx_get_port_config()
4742 memcpy(mb, &mcp->mb[1], sizeof(uint16_t) * 4); in qla81xx_get_port_config()
4755 mbx_cmd_t *mcp = &mc; in qla81xx_set_port_config() local
4760 mcp->mb[0] = MBC_SET_PORT_CONFIG; in qla81xx_set_port_config()
4762 memcpy(&mcp->mb[1], mb, sizeof(uint16_t) * 4); in qla81xx_set_port_config()
4763 mcp->out_mb = MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla81xx_set_port_config()
4764 mcp->in_mb = MBX_0; in qla81xx_set_port_config()
4765 mcp->tov = MBX_TOV_SECONDS; in qla81xx_set_port_config()
4766 mcp->flags = 0; in qla81xx_set_port_config()
4767 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_set_port_config()
4771 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla81xx_set_port_config()
4786 mbx_cmd_t *mcp = &mc; in qla24xx_set_fcp_prio() local
4795 mcp->mb[0] = MBC_PORT_PARAMS; in qla24xx_set_fcp_prio()
4796 mcp->mb[1] = loop_id; in qla24xx_set_fcp_prio()
4798 mcp->mb[2] = BIT_1; in qla24xx_set_fcp_prio()
4800 mcp->mb[2] = BIT_2; in qla24xx_set_fcp_prio()
4801 mcp->mb[4] = priority & 0xf; in qla24xx_set_fcp_prio()
4802 mcp->mb[9] = vha->vp_idx; in qla24xx_set_fcp_prio()
4803 mcp->out_mb = MBX_9|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla24xx_set_fcp_prio()
4804 mcp->in_mb = MBX_4|MBX_3|MBX_1|MBX_0; in qla24xx_set_fcp_prio()
4805 mcp->tov = 30; in qla24xx_set_fcp_prio()
4806 mcp->flags = 0; in qla24xx_set_fcp_prio()
4807 rval = qla2x00_mailbox_command(vha, mcp); in qla24xx_set_fcp_prio()
4809 mb[0] = mcp->mb[0]; in qla24xx_set_fcp_prio()
4810 mb[1] = mcp->mb[1]; in qla24xx_set_fcp_prio()
4811 mb[3] = mcp->mb[3]; in qla24xx_set_fcp_prio()
4812 mb[4] = mcp->mb[4]; in qla24xx_set_fcp_prio()
4878 mbx_cmd_t *mcp = &mc; in qla82xx_mbx_intr_enable() local
4886 memset(mcp, 0, sizeof(mbx_cmd_t)); in qla82xx_mbx_intr_enable()
4887 mcp->mb[0] = MBC_TOGGLE_INTERRUPT; in qla82xx_mbx_intr_enable()
4888 mcp->mb[1] = 1; in qla82xx_mbx_intr_enable()
4890 mcp->out_mb = MBX_1|MBX_0; in qla82xx_mbx_intr_enable()
4891 mcp->in_mb = MBX_0; in qla82xx_mbx_intr_enable()
4892 mcp->tov = 30; in qla82xx_mbx_intr_enable()
4893 mcp->flags = 0; in qla82xx_mbx_intr_enable()
4895 rval = qla2x00_mailbox_command(vha, mcp); in qla82xx_mbx_intr_enable()
4898 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla82xx_mbx_intr_enable()
4913 mbx_cmd_t *mcp = &mc; in qla82xx_mbx_intr_disable() local
4921 memset(mcp, 0, sizeof(mbx_cmd_t)); in qla82xx_mbx_intr_disable()
4922 mcp->mb[0] = MBC_TOGGLE_INTERRUPT; in qla82xx_mbx_intr_disable()
4923 mcp->mb[1] = 0; in qla82xx_mbx_intr_disable()
4925 mcp->out_mb = MBX_1|MBX_0; in qla82xx_mbx_intr_disable()
4926 mcp->in_mb = MBX_0; in qla82xx_mbx_intr_disable()
4927 mcp->tov = 30; in qla82xx_mbx_intr_disable()
4928 mcp->flags = 0; in qla82xx_mbx_intr_disable()
4930 rval = qla2x00_mailbox_command(vha, mcp); in qla82xx_mbx_intr_disable()
4933 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla82xx_mbx_intr_disable()
4947 mbx_cmd_t *mcp = &mc; in qla82xx_md_get_template_size() local
4953 memset(mcp->mb, 0 , sizeof(mcp->mb)); in qla82xx_md_get_template_size()
4954 mcp->mb[0] = LSW(MBC_DIAGNOSTIC_MINIDUMP_TEMPLATE); in qla82xx_md_get_template_size()
4955 mcp->mb[1] = MSW(MBC_DIAGNOSTIC_MINIDUMP_TEMPLATE); in qla82xx_md_get_template_size()
4956 mcp->mb[2] = LSW(RQST_TMPLT_SIZE); in qla82xx_md_get_template_size()
4957 mcp->mb[3] = MSW(RQST_TMPLT_SIZE); in qla82xx_md_get_template_size()
4959 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla82xx_md_get_template_size()
4960 mcp->in_mb = MBX_14|MBX_13|MBX_12|MBX_11|MBX_10|MBX_9|MBX_8| in qla82xx_md_get_template_size()
4963 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD; in qla82xx_md_get_template_size()
4964 mcp->tov = MBX_TOV_SECONDS; in qla82xx_md_get_template_size()
4965 rval = qla2x00_mailbox_command(vha, mcp); in qla82xx_md_get_template_size()
4971 (mcp->mb[1] << 16) | mcp->mb[0], in qla82xx_md_get_template_size()
4972 (mcp->mb[3] << 16) | mcp->mb[2]); in qla82xx_md_get_template_size()
4976 ha->md_template_size = ((mcp->mb[3] << 16) | mcp->mb[2]); in qla82xx_md_get_template_size()
4991 mbx_cmd_t *mcp = &mc; in qla82xx_md_get_template() local
5005 memset(mcp->mb, 0 , sizeof(mcp->mb)); in qla82xx_md_get_template()
5006 mcp->mb[0] = LSW(MBC_DIAGNOSTIC_MINIDUMP_TEMPLATE); in qla82xx_md_get_template()
5007 mcp->mb[1] = MSW(MBC_DIAGNOSTIC_MINIDUMP_TEMPLATE); in qla82xx_md_get_template()
5008 mcp->mb[2] = LSW(RQST_TMPLT); in qla82xx_md_get_template()
5009 mcp->mb[3] = MSW(RQST_TMPLT); in qla82xx_md_get_template()
5010 mcp->mb[4] = LSW(LSD(ha->md_tmplt_hdr_dma)); in qla82xx_md_get_template()
5011 mcp->mb[5] = MSW(LSD(ha->md_tmplt_hdr_dma)); in qla82xx_md_get_template()
5012 mcp->mb[6] = LSW(MSD(ha->md_tmplt_hdr_dma)); in qla82xx_md_get_template()
5013 mcp->mb[7] = MSW(MSD(ha->md_tmplt_hdr_dma)); in qla82xx_md_get_template()
5014 mcp->mb[8] = LSW(ha->md_template_size); in qla82xx_md_get_template()
5015 mcp->mb[9] = MSW(ha->md_template_size); in qla82xx_md_get_template()
5017 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD; in qla82xx_md_get_template()
5018 mcp->tov = MBX_TOV_SECONDS; in qla82xx_md_get_template()
5019 mcp->out_mb = MBX_11|MBX_10|MBX_9|MBX_8| in qla82xx_md_get_template()
5021 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla82xx_md_get_template()
5022 rval = qla2x00_mailbox_command(vha, mcp); in qla82xx_md_get_template()
5027 ((mcp->mb[1] << 16) | mcp->mb[0]), in qla82xx_md_get_template()
5028 ((mcp->mb[3] << 16) | mcp->mb[2])); in qla82xx_md_get_template()
5040 mbx_cmd_t *mcp = &mc; in qla8044_md_get_template() local
5054 memset(mcp->mb, 0 , sizeof(mcp->mb)); in qla8044_md_get_template()
5056 mcp->mb[0] = LSW(MBC_DIAGNOSTIC_MINIDUMP_TEMPLATE); in qla8044_md_get_template()
5057 mcp->mb[1] = MSW(MBC_DIAGNOSTIC_MINIDUMP_TEMPLATE); in qla8044_md_get_template()
5058 mcp->mb[2] = LSW(RQST_TMPLT); in qla8044_md_get_template()
5059 mcp->mb[3] = MSW(RQST_TMPLT); in qla8044_md_get_template()
5060 mcp->mb[4] = LSW(LSD(ha->md_tmplt_hdr_dma + offset)); in qla8044_md_get_template()
5061 mcp->mb[5] = MSW(LSD(ha->md_tmplt_hdr_dma + offset)); in qla8044_md_get_template()
5062 mcp->mb[6] = LSW(MSD(ha->md_tmplt_hdr_dma + offset)); in qla8044_md_get_template()
5063 mcp->mb[7] = MSW(MSD(ha->md_tmplt_hdr_dma + offset)); in qla8044_md_get_template()
5064 mcp->mb[8] = LSW(size); in qla8044_md_get_template()
5065 mcp->mb[9] = MSW(size); in qla8044_md_get_template()
5066 mcp->mb[10] = offset & 0x0000FFFF; in qla8044_md_get_template()
5067 mcp->mb[11] = offset & 0xFFFF0000; in qla8044_md_get_template()
5068 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD; in qla8044_md_get_template()
5069 mcp->tov = MBX_TOV_SECONDS; in qla8044_md_get_template()
5070 mcp->out_mb = MBX_11|MBX_10|MBX_9|MBX_8| in qla8044_md_get_template()
5072 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0; in qla8044_md_get_template()
5073 rval = qla2x00_mailbox_command(vha, mcp); in qla8044_md_get_template()
5078 ((mcp->mb[1] << 16) | mcp->mb[0]), in qla8044_md_get_template()
5079 ((mcp->mb[3] << 16) | mcp->mb[2])); in qla8044_md_get_template()
5095 mbx_cmd_t *mcp = &mc; in qla81xx_set_led_config() local
5103 memset(mcp, 0, sizeof(mbx_cmd_t)); in qla81xx_set_led_config()
5104 mcp->mb[0] = MBC_SET_LED_CONFIG; in qla81xx_set_led_config()
5105 mcp->mb[1] = led_cfg[0]; in qla81xx_set_led_config()
5106 mcp->mb[2] = led_cfg[1]; in qla81xx_set_led_config()
5108 mcp->mb[3] = led_cfg[2]; in qla81xx_set_led_config()
5109 mcp->mb[4] = led_cfg[3]; in qla81xx_set_led_config()
5110 mcp->mb[5] = led_cfg[4]; in qla81xx_set_led_config()
5111 mcp->mb[6] = led_cfg[5]; in qla81xx_set_led_config()
5114 mcp->out_mb = MBX_2|MBX_1|MBX_0; in qla81xx_set_led_config()
5116 mcp->out_mb |= MBX_6|MBX_5|MBX_4|MBX_3; in qla81xx_set_led_config()
5117 mcp->in_mb = MBX_0; in qla81xx_set_led_config()
5118 mcp->tov = 30; in qla81xx_set_led_config()
5119 mcp->flags = 0; in qla81xx_set_led_config()
5121 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_set_led_config()
5124 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla81xx_set_led_config()
5139 mbx_cmd_t *mcp = &mc; in qla81xx_get_led_config() local
5147 memset(mcp, 0, sizeof(mbx_cmd_t)); in qla81xx_get_led_config()
5148 mcp->mb[0] = MBC_GET_LED_CONFIG; in qla81xx_get_led_config()
5150 mcp->out_mb = MBX_0; in qla81xx_get_led_config()
5151 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla81xx_get_led_config()
5153 mcp->in_mb |= MBX_6|MBX_5|MBX_4|MBX_3; in qla81xx_get_led_config()
5154 mcp->tov = 30; in qla81xx_get_led_config()
5155 mcp->flags = 0; in qla81xx_get_led_config()
5157 rval = qla2x00_mailbox_command(vha, mcp); in qla81xx_get_led_config()
5160 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla81xx_get_led_config()
5162 led_cfg[0] = mcp->mb[1]; in qla81xx_get_led_config()
5163 led_cfg[1] = mcp->mb[2]; in qla81xx_get_led_config()
5165 led_cfg[2] = mcp->mb[3]; in qla81xx_get_led_config()
5166 led_cfg[3] = mcp->mb[4]; in qla81xx_get_led_config()
5167 led_cfg[4] = mcp->mb[5]; in qla81xx_get_led_config()
5168 led_cfg[5] = mcp->mb[6]; in qla81xx_get_led_config()
5183 mbx_cmd_t *mcp = &mc; in qla82xx_mbx_beacon_ctl() local
5191 memset(mcp, 0, sizeof(mbx_cmd_t)); in qla82xx_mbx_beacon_ctl()
5192 mcp->mb[0] = MBC_SET_LED_CONFIG; in qla82xx_mbx_beacon_ctl()
5194 mcp->mb[7] = 0xE; in qla82xx_mbx_beacon_ctl()
5196 mcp->mb[7] = 0xD; in qla82xx_mbx_beacon_ctl()
5198 mcp->out_mb = MBX_7|MBX_0; in qla82xx_mbx_beacon_ctl()
5199 mcp->in_mb = MBX_0; in qla82xx_mbx_beacon_ctl()
5200 mcp->tov = MBX_TOV_SECONDS; in qla82xx_mbx_beacon_ctl()
5201 mcp->flags = 0; in qla82xx_mbx_beacon_ctl()
5203 rval = qla2x00_mailbox_command(vha, mcp); in qla82xx_mbx_beacon_ctl()
5206 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla82xx_mbx_beacon_ctl()
5221 mbx_cmd_t *mcp = &mc; in qla83xx_wr_reg() local
5229 mcp->mb[0] = MBC_WRITE_REMOTE_REG; in qla83xx_wr_reg()
5230 mcp->mb[1] = LSW(reg); in qla83xx_wr_reg()
5231 mcp->mb[2] = MSW(reg); in qla83xx_wr_reg()
5232 mcp->mb[3] = LSW(data); in qla83xx_wr_reg()
5233 mcp->mb[4] = MSW(data); in qla83xx_wr_reg()
5234 mcp->out_mb = MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; in qla83xx_wr_reg()
5236 mcp->in_mb = MBX_1|MBX_0; in qla83xx_wr_reg()
5237 mcp->tov = MBX_TOV_SECONDS; in qla83xx_wr_reg()
5238 mcp->flags = 0; in qla83xx_wr_reg()
5239 rval = qla2x00_mailbox_command(vha, mcp); in qla83xx_wr_reg()
5243 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla83xx_wr_reg()
5258 mbx_cmd_t *mcp = &mc; in qla2x00_port_logout() local
5271 mcp->mb[0] = MBC_PORT_LOGOUT; in qla2x00_port_logout()
5272 mcp->mb[1] = fcport->loop_id; in qla2x00_port_logout()
5273 mcp->mb[10] = BIT_15; in qla2x00_port_logout()
5274 mcp->out_mb = MBX_10|MBX_1|MBX_0; in qla2x00_port_logout()
5275 mcp->in_mb = MBX_0; in qla2x00_port_logout()
5276 mcp->tov = MBX_TOV_SECONDS; in qla2x00_port_logout()
5277 mcp->flags = 0; in qla2x00_port_logout()
5278 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_port_logout()
5281 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_port_logout()
5294 mbx_cmd_t *mcp = &mc; in qla83xx_rd_reg() local
5304 mcp->mb[0] = MBC_READ_REMOTE_REG; in qla83xx_rd_reg()
5305 mcp->mb[1] = LSW(reg); in qla83xx_rd_reg()
5306 mcp->mb[2] = MSW(reg); in qla83xx_rd_reg()
5307 mcp->out_mb = MBX_2|MBX_1|MBX_0; in qla83xx_rd_reg()
5308 mcp->in_mb = MBX_4|MBX_3|MBX_1|MBX_0; in qla83xx_rd_reg()
5309 mcp->tov = MBX_TOV_SECONDS; in qla83xx_rd_reg()
5310 mcp->flags = 0; in qla83xx_rd_reg()
5311 rval = qla2x00_mailbox_command(vha, mcp); in qla83xx_rd_reg()
5316 rval, mcp->mb[0], mcp->mb[1]); in qla83xx_rd_reg()
5318 *data = (mcp->mb[3] | (mcp->mb[4] << 16)); in qla83xx_rd_reg()
5345 mbx_cmd_t *mcp = &mc; in qla83xx_restart_nic_firmware() local
5353 mcp->mb[0] = MBC_RESTART_NIC_FIRMWARE; in qla83xx_restart_nic_firmware()
5354 mcp->out_mb = MBX_0; in qla83xx_restart_nic_firmware()
5355 mcp->in_mb = MBX_1|MBX_0; in qla83xx_restart_nic_firmware()
5356 mcp->tov = MBX_TOV_SECONDS; in qla83xx_restart_nic_firmware()
5357 mcp->flags = 0; in qla83xx_restart_nic_firmware()
5358 rval = qla2x00_mailbox_command(vha, mcp); in qla83xx_restart_nic_firmware()
5363 rval, mcp->mb[0], mcp->mb[1]); in qla83xx_restart_nic_firmware()
5378 mbx_cmd_t *mcp = &mc; in qla83xx_access_control() local
5387 mcp->mb[0] = MBC_SET_ACCESS_CONTROL; in qla83xx_access_control()
5388 mcp->mb[1] = options; in qla83xx_access_control()
5389 mcp->out_mb = MBX_1|MBX_0; in qla83xx_access_control()
5391 mcp->mb[2] = LSW(start_addr); in qla83xx_access_control()
5392 mcp->mb[3] = MSW(start_addr); in qla83xx_access_control()
5393 mcp->mb[4] = LSW(end_addr); in qla83xx_access_control()
5394 mcp->mb[5] = MSW(end_addr); in qla83xx_access_control()
5395 mcp->out_mb |= MBX_5|MBX_4|MBX_3|MBX_2; in qla83xx_access_control()
5397 mcp->in_mb = MBX_2|MBX_1|MBX_0; in qla83xx_access_control()
5399 mcp->in_mb |= MBX_4|MBX_3; in qla83xx_access_control()
5400 mcp->tov = MBX_TOV_SECONDS; in qla83xx_access_control()
5401 mcp->flags = 0; in qla83xx_access_control()
5402 rval = qla2x00_mailbox_command(vha, mcp); in qla83xx_access_control()
5407 rval, mcp->mb[0], mcp->mb[1], mcp->mb[2], mcp->mb[3], in qla83xx_access_control()
5408 mcp->mb[4]); in qla83xx_access_control()
5412 *sector_size = mcp->mb[1]; in qla83xx_access_control()
5415 "Driver-lock id=%x%x", mcp->mb[4], mcp->mb[3]); in qla83xx_access_control()
5418 "Flash-lock id=%x%x", mcp->mb[4], mcp->mb[3]); in qla83xx_access_control()
5432 mbx_cmd_t *mcp = &mc; in qla2x00_dump_mctp_data() local
5440 mcp->mb[0] = MBC_DUMP_RISC_RAM_EXTENDED; in qla2x00_dump_mctp_data()
5441 mcp->mb[1] = LSW(addr); in qla2x00_dump_mctp_data()
5442 mcp->mb[2] = MSW(req_dma); in qla2x00_dump_mctp_data()
5443 mcp->mb[3] = LSW(req_dma); in qla2x00_dump_mctp_data()
5444 mcp->mb[4] = MSW(size); in qla2x00_dump_mctp_data()
5445 mcp->mb[5] = LSW(size); in qla2x00_dump_mctp_data()
5446 mcp->mb[6] = MSW(MSD(req_dma)); in qla2x00_dump_mctp_data()
5447 mcp->mb[7] = LSW(MSD(req_dma)); in qla2x00_dump_mctp_data()
5448 mcp->mb[8] = MSW(addr); in qla2x00_dump_mctp_data()
5450 mcp->mb[10] |= BIT_7; in qla2x00_dump_mctp_data()
5452 mcp->mb[10] |= 0x40; in qla2x00_dump_mctp_data()
5454 mcp->out_mb |= MBX_10|MBX_8|MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1| in qla2x00_dump_mctp_data()
5457 mcp->in_mb = MBX_0; in qla2x00_dump_mctp_data()
5458 mcp->tov = MBX_TOV_SECONDS; in qla2x00_dump_mctp_data()
5459 mcp->flags = 0; in qla2x00_dump_mctp_data()
5460 rval = qla2x00_mailbox_command(vha, mcp); in qla2x00_dump_mctp_data()
5464 "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); in qla2x00_dump_mctp_data()