Home | History | Annotate | Download | only in ic

Lines Matching defs:mbs

162 	mbreg_t mbs;
689 ISP_MEMZERO(&mbs, sizeof (mbs));
690 mbs.param[0] = MBOX_NO_OP;
691 mbs.logval = MBLOGALL;
692 isp_mboxcmd(isp, &mbs);
693 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
694 isp_prt(isp, ISP_LOGERR, "NOP command failed (%x)", mbs.param[0]);
704 ISP_MEMZERO(&mbs, sizeof (mbs));
705 mbs.param[0] = MBOX_MAILBOX_REG_TEST;
706 mbs.param[1] = 0xdead;
707 mbs.param[2] = 0xbeef;
708 mbs.param[3] = 0xffff;
709 mbs.param[4] = 0x1111;
710 mbs.param[5] = 0xa5a5;
711 mbs.param[6] = 0x0000;
712 mbs.param[7] = 0x0000;
713 mbs.logval = MBLOGALL;
714 isp_mboxcmd(isp, &mbs);
715 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
719 if (mbs.param[1] != 0xdead || mbs.param[2] != 0xbeef ||
720 mbs.param[3] != 0xffff || mbs.param[4] != 0x1111 ||
721 mbs.param[5] != 0xa5a5) {
723 isp_prt(isp, ISP_LOGERR, "Register Test Failed (0x%x 0x%x 0x%x 0x%x 0x%x)", mbs.param[1], mbs.param[2], mbs.param[3], mbs.param[4], mbs.param[5]);
781 ISP_MEMZERO(&mbs, sizeof (mbs));
783 mbs.param[0] = MBOX_LOAD_RISC_RAM_2100;
784 mbs.param[1] = la;
785 mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
786 mbs.param[3] = DMA_WD0(isp->isp_rquest_dma);
787 mbs.param[4] = nw;
788 mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
789 mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
791 mbs.param[0] = MBOX_LOAD_RISC_RAM;
792 mbs.param[1] = la;
793 mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
794 mbs.param[3] = DMA_WD0(isp->isp_rquest_dma);
795 mbs.param[4] = nw >> 16;
796 mbs.param[5] = nw;
797 mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
798 mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
799 mbs.param[8] = la >> 16;
801 mbs.logval = MBLOGALL;
802 isp_mboxcmd(isp, &mbs);
803 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
850 ISP_MEMZERO(&mbs, sizeof (mbs));
852 mbs.param[0] = MBOX_LOAD_RISC_RAM_2100;
853 mbs.param[1] = la;
854 mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
855 mbs.param[3] = DMA_WD0(isp->isp_rquest_dma);
856 mbs.param[4] = nw;
857 mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
858 mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
860 mbs.param[0] = MBOX_LOAD_RISC_RAM;
861 mbs.param[1] = la;
862 mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
863 mbs.param[3] = DMA_WD0(isp->isp_rquest_dma);
864 mbs.param[4] = nw;
865 mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
866 mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
867 mbs.param[8] = la >> 16;
869 mbs.logval = MBLOGALL;
870 isp_mboxcmd(isp, &mbs);
871 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
909 ISP_MEMZERO(&mbs, sizeof (mbs));
910 mbs.param[0] = MBOX_WRITE_RAM_WORD;
911 mbs.param[1] = code_org;
912 mbs.param[2] = ucd.np[0];
913 mbs.logval = MBLOGNONE;
914 isp_mboxcmd(isp, &mbs);
915 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
929 ISP_MEMZERO(&mbs, sizeof (mbs));
930 mbs.param[0] = MBOX_VERIFY_CHECKSUM;
932 mbs.param[1] = code_org >> 16;
933 mbs.param[2] = code_org;
935 mbs.param[1] = code_org;
937 isp_mboxcmd(isp, &mbs);
938 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
953 MBSINIT(&mbs, MBOX_EXEC_FIRMWARE, MBLOGALL, 1000000);
955 mbs.param[1] = code_org >> 16;
956 mbs.param[2] = code_org;
958 mbs.param[3] = 0;
960 mbs.param[3] = 1;
963 mbs.ibits |= 0x10;
966 mbs.param[1] = code_org;
968 mbs.param[2] = 0;
970 mbs.param[2] = 1;
973 mbs.param[1] = code_org;
975 isp_mboxcmd(isp, &mbs);
977 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
992 if (mbs.param[1] == 0xdead) {
1004 mbs.param[0] = MBOX_SET_CLOCK_RATE;
1005 mbs.param[1] = isp->isp_clock;
1006 mbs.logval = MBLOGNONE;
1007 isp_mboxcmd(isp, &mbs);
1017 MBSINIT(&mbs, MBOX_ABOUT_FIRMWARE, MBLOGALL, 0);
1018 isp_mboxcmd(isp, &mbs);
1019 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1041 isp->isp_fwrev[0] = mbs.param[1];
1042 isp->isp_fwrev[1] = mbs.param[2];
1043 isp->isp_fwrev[2] = mbs.param[3];
1064 isp->isp_fwattr = mbs.param[6];
1065 isp_prt(isp, ISP_LOGDEBUG0, "Firmware Attributes = 0x%x", mbs.param[6]);
1076 MBSINIT(&mbs, MBOX_GET_FIRMWARE_STATUS, MBLOGALL, 0);
1077 isp_mboxcmd(isp, &mbs);
1078 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1082 if (isp->isp_maxcmds >= mbs.param[2]) {
1083 isp->isp_maxcmds = mbs.param[2];
1185 mbreg_t mbs;
1206 MBSINIT(&mbs, MBOX_SET_RETRY_COUNT, MBLOGALL, 0);
1207 mbs.param[1] = sdp_chan0->isp_retry_count;
1208 mbs.param[2] = sdp_chan0->isp_retry_delay;
1209 mbs.param[6] = sdp_chan1->isp_retry_count;
1210 mbs.param[7] = sdp_chan1->isp_retry_delay;
1211 isp_mboxcmd(isp, &mbs);
1212 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1219 MBSINIT(&mbs, MBOX_SET_ASYNC_DATA_SETUP_TIME, MBLOGALL, 0);
1220 mbs.param[1] = sdp_chan0->isp_async_data_setup;
1221 mbs.param[2] = sdp_chan1->isp_async_data_setup;
1222 isp_mboxcmd(isp, &mbs);
1223 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1230 MBSINIT(&mbs, MBOX_SET_ACT_NEG_STATE, MBLOGNONE, 0);
1231 mbs.param[1] =
1234 mbs.param[2] =
1237 isp_mboxcmd(isp, &mbs);
1238 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1253 MBSINIT(&mbs, MBOX_SET_TAG_AGE_LIMIT, MBLOGALL, 0);
1254 mbs.param[1] = sdp_chan0->isp_tag_aging;
1255 mbs.param[2] = sdp_chan1->isp_tag_aging;
1256 isp_mboxcmd(isp, &mbs);
1257 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1266 MBSINIT(&mbs, MBOX_SET_SELECT_TIMEOUT, MBLOGALL, 0);
1267 mbs.param[1] = sdp_chan0->isp_selection_timeout;
1268 mbs.param[2] = sdp_chan1->isp_selection_timeout;
1269 isp_mboxcmd(isp, &mbs);
1270 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1284 MBSINIT(&mbs, MBOX_INIT_RES_QUEUE_A64, MBLOGALL, 0);
1285 mbs.param[1] = RESULT_QUEUE_LEN(isp);
1286 mbs.param[2] = DMA_WD1(isp->isp_result_dma);
1287 mbs.param[3] = DMA_WD0(isp->isp_result_dma);
1288 mbs.param[4] = 0;
1289 mbs.param[6] = DMA_WD3(isp->isp_result_dma);
1290 mbs.param[7] = DMA_WD2(isp->isp_result_dma);
1291 isp_mboxcmd(isp, &mbs);
1292 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1295 isp->isp_residx = mbs.param[5];
1297 MBSINIT(&mbs, MBOX_INIT_REQ_QUEUE_A64, MBLOGALL, 0);
1298 mbs.param[1] = RQUEST_QUEUE_LEN(isp);
1299 mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
1300 mbs.param[3] = DMA_WD0(isp->isp_rquest_dma);
1301 mbs.param[5] = 0;
1302 mbs.param[6] = DMA_WD3(isp->isp_result_dma);
1303 mbs.param[7] = DMA_WD2(isp->isp_result_dma);
1304 isp_mboxcmd(isp, &mbs);
1305 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1308 isp->isp_reqidx = isp->isp_reqodx = mbs.param[4];
1310 MBSINIT(&mbs, MBOX_INIT_RES_QUEUE, MBLOGALL, 0);
1311 mbs.param[1] = RESULT_QUEUE_LEN(isp);
1312 mbs.param[2] = DMA_WD1(isp->isp_result_dma);
1313 mbs.param[3] = DMA_WD0(isp->isp_result_dma);
1314 mbs.param[4] = 0;
1315 isp_mboxcmd(isp, &mbs);
1316 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1319 isp->isp_residx = mbs.param[5];
1321 MBSINIT(&mbs, MBOX_INIT_REQ_QUEUE, MBLOGALL, 0);
1322 mbs.param[1] = RQUEST_QUEUE_LEN(isp);
1323 mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
1324 mbs.param[3] = DMA_WD0(isp->isp_rquest_dma);
1325 mbs.param[5] = 0;
1326 isp_mboxcmd(isp, &mbs);
1327 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1330 isp->isp_reqidx = isp->isp_reqodx = mbs.param[4];
1343 MBSINIT(&mbs, MBOX_SET_FW_FEATURES, MBLOGALL, 0);
1345 mbs.param[1] |= FW_FEATURE_LVD_NOTIFY;
1348 mbs.param[1] |= FW_FEATURE_FAST_POST;
1351 mbs.param[1] |= FW_FEATURE_RIO_32BIT;
1353 if (mbs.param[1] != 0) {
1354 uint16_t sfeat = mbs.param[1];
1355 isp_mboxcmd(isp, &mbs);
1356 if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
1369 mbreg_t mbs;
1377 MBSINIT(&mbs, MBOX_SET_INIT_SCSI_ID, MBLOGALL, 0);
1378 mbs.param[1] = (chan << 7) | sdp->isp_initiator_id;
1379 isp_mboxcmd(isp, &mbs);
1380 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1420 MBSINIT(&mbs, MBOX_SET_TARGET_PARAMS, MBLOGNONE, 0);
1421 mbs.param[1] = (chan << 15) | (tgt << 8);
1422 mbs.param[2] = sdf;
1424 mbs.param[3] = 0;
1426 mbs.param[3] =
1431 chan, tgt, mbs.param[2], mbs.param[3] >> 8, mbs.param[3] & 0xff);
1432 isp_mboxcmd(isp, &mbs);
1433 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1435 MBSINIT(&mbs, MBOX_SET_TARGET_PARAMS, MBLOGALL, 0);
1436 mbs.param[1] = (tgt << 8) | (chan << 15);
1437 mbs.param[2] = sdf;
1438 mbs.param[3] = 0;
1439 isp_mboxcmd(isp, &mbs);
1440 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1458 MBSINIT(&mbs, MBOX_SET_DEV_QUEUE_PARAMS, MBLOGALL, 0);
1459 mbs.param[1] = (chan << 15) | (tgt << 8) | lun;
1460 mbs.param[2] = sdp->isp_max_queue_depth;
1461 mbs.param[3] = sdp->isp_devparam[tgt].exc_throttle;
1462 isp_mboxcmd(isp, &mbs);
1463 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1485 mbreg_t mbs;
1648 MBSINIT(&mbs, MBOX_SET_FIRMWARE_OPTIONS, MBLOGALL, 0);
1649 mbs.param[1] = IFCOPT1_DISF7SWTCH|IFCOPT1_LIPASYNC|IFCOPT1_LIPF8;
1650 mbs.param[2] = 0;
1651 mbs.param[3] = 0;
1653 mbs.param[1] |= IFCOPT1_EQFQASYNC|IFCOPT1_CTIO_RETRY;
1655 mbs.param[3] = IFCOPT3_NOPRLI;
1658 isp_mboxcmd(isp, &mbs);
1659 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1716 MBSINIT(&mbs, MBOX_INIT_FIRMWARE, MBLOGALL, 30000000);
1717 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
1718 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
1719 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
1720 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
1721 mbs.logval = MBLOGALL;
1726 isp_mboxcmd(isp, &mbs);
1728 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1747 mbreg_t mbs;
1773 MBSINIT(&mbs, MBOX_SET_FIRMWARE_OPTIONS, MBLOGALL, 0);
1774 mbs.param[1] = 1;
1775 isp_mboxcmd(isp, &mbs);
1776 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1811 MBSINIT(&mbs, MBOX_GET_RESOURCE_COUNT, MBLOGALL, 0);
1812 mbs.obits = 0x4cf;
1813 isp_mboxcmd(isp, &mbs);
1814 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1817 icbp->icb_xchgcnt = mbs.param[3];
2006 MBSINIT(&mbs, 0, MBLOGALL, 30000000);
2008 mbs.param[0] = MBOX_INIT_FIRMWARE_MULTI_ID;
2010 mbs.param[0] = MBOX_INIT_FIRMWARE;
2012 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
2013 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
2014 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
2015 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
2018 isp_mboxcmd(isp, &mbs);
2021 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
2082 mbreg_t mbs;
2128 MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 500000);
2129 mbs.param[1] = QENTRY_LEN;
2130 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
2131 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
2132 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
2133 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
2135 isp_mboxcmd(isp, &mbs);
2136 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
2137 rval = mbs.param[0];
2234 mbreg_t mbs;
2236 MBSINIT(&mbs, MBOX_FABRIC_LOGIN, MBLOGNONE, 500000);
2238 mbs.param[1] = handle;
2239 mbs.ibits = (1 << 10);
2241 mbs.param[1] = handle << 8;
2243 mbs.param[2] = portid >> 16;
2244 mbs.param[3] = portid;
2245 mbs.logval = MBLOGNONE;
2246 mbs.timeout = 500000;
2247 isp_mboxcmd(isp, &mbs);
2249 switch (mbs.param[0]) {
2253 portid, mbs.param[1]);
2254 return (MBOX_PORT_ID_USED | (mbs.param[1] << 16));
2259 handle, mbs.param[1] & 0xff);
2268 mbs.param[1], portid);
2279 mbs.param[0], portid, handle);
2280 return (mbs.param[0]);
2287 mbreg_t mbs;
2289 MBSINIT(&mbs, MBOX_FABRIC_LOGOUT, MBLOGNONE, 500000);
2291 mbs.param[1] = handle;
2292 mbs.ibits = (1 << 10);
2294 mbs.param[1] = handle << 8;
2296 isp_mboxcmd(isp, &mbs);
2297 return (mbs.param[0] == MBOX_COMMAND_COMPLETE? 0 : mbs.param[0]);
2304 mbreg_t mbs;
2310 MBSINIT(&mbs, MBOX_GET_PORT_DB, MBLOGALL & ~MBOX_COMMAND_PARAM_ERROR, 250000);
2312 mbs.ibits = (1 << 9)|(1 << 10);
2313 mbs.param[1] = id;
2314 mbs.param[9] = chan;
2316 mbs.param[1] = id;
2318 mbs.param[1] = id << 8;
2320 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
2321 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
2322 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
2323 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
2331 isp_mboxcmd(isp, &mbs);
2332 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
2336 return (mbs.param[0]);
2351 mbs.param[0] = MBOX_NOT_LOGGED_IN;
2355 return (mbs.param[0]);
2399 mbreg_t mbs;
2405 MBSINIT(&mbs, MBOX_GET_PORT_NAME, MBLOGALL & ~MBOX_COMMAND_PARAM_ERROR, 500000);
2407 mbs.param[1] = loopid;
2408 mbs.ibits = (1 << 10);
2410 mbs.param[10] = 1;
2413 mbs.ibits |= (1 << 9);
2414 mbs.param[9] = chan;
2417 mbs.param[1] = loopid << 8;
2419 mbs.param[1] |= 1;
2422 isp_mboxcmd(isp, &mbs);
2423 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
2428 (((uint64_t)(mbs.param[2] >> 8)) << 56) |
2429 (((uint64_t)(mbs.param[2] & 0xff)) << 48) |
2430 (((uint64_t)(mbs.param[3] >> 8)) << 40) |
2431 (((uint64_t)(mbs.param[3] & 0xff)) << 32) |
2432 (((uint64_t)(mbs.param[6] >> 8)) << 24) |
2433 (((uint64_t)(mbs.param[6] & 0xff)) << 16) |
2434 (((uint64_t)(mbs.param[7] >> 8)) << 8) |
2435 (((uint64_t)(mbs.param[7] & 0xff)));
2438 (((uint64_t)(mbs.param[2] & 0xff)) << 56) |
2439 (((uint64_t)(mbs.param[2] >> 8)) << 48) |
2440 (((uint64_t)(mbs.param[3] & 0xff)) << 40) |
2441 (((uint64_t)(mbs.param[3] >> 8)) << 32) |
2442 (((uint64_t)(mbs.param[6] & 0xff)) << 24) |
2443 (((uint64_t)(mbs.param[6] >> 8)) << 16) |
2444 (((uint64_t)(mbs.param[7] & 0xff)) << 8) |
2445 (((uint64_t)(mbs.param[7] >> 8)));
2457 mbreg_t mbs;
2541 MBSINIT(&mbs, MBOX_GET_LOOP_ID, MBLOGALL, 0);
2543 mbs.param[9] = chan;
2544 mbs.ibits = (1 << 9);
2545 mbs.obits = (1 << 7);
2547 isp_mboxcmd(isp, &mbs);
2548 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
2553 fcp->isp_loopid = mbs.param[1];
2555 fcp->isp_loopid = mbs.param[1] & 0xff;
2561 int topo = (int) mbs.param[6];
2567 fcp->isp_portid = mbs.param[2] | (mbs.param[3] << 16);
2649 fcp->inorder = (mbs.param[7] & ISP24XX_INORDER) != 0;
2651 fcp->npiv_fabric = (mbs.param[7] & ISP24XX_NPIV_SAN) != 0;
2682 MBSINIT(&mbs, MBOX_GET_SET_DATA_RATE, MBLOGALL, 3000000);
2683 mbs.param[1] = MBGSD_GET_RATE;
2684 /* mbs.param[2] undefined if we're just getting rate */
2685 isp_mboxcmd(isp, &mbs);
2686 if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
2687 if (mbs.param[1] == MBGSD_EIGHTGB) {
2690 } else if (mbs.param[1] == MBGSD_FOURGB) {
2693 } else if (mbs.param[1] == MBGSD_TWOGB) {
2696 } else if (mbs.param[1] == MBGSD_ONEGB) {
3204 mbreg_t mbs;
3223 MBSINIT(&mbs, MBOX_SEND_SNS, MBLOGALL, 10000000);
3224 mbs.param[0] = MBOX_SEND_SNS;
3225 mbs.param[1] = SNS_GID_FT_REQ_SIZE >> 1;
3226 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
3227 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
3228 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
3229 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
3230 isp_mboxcmd(isp, &mbs);
3231 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
3232 if (mbs.param[0] == MBOX_INVALID_COMMAND) {
3244 mbreg_t mbs;
3310 MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 500000);
3311 mbs.param[1] = QENTRY_LEN;
3312 mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF);
3313 mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF);
3314 mbs.param[6] = DMA_WD3(fcp->isp_scdma + CTXOFF);
3315 mbs.param[7] = DMA_WD2(fcp->isp_scdma + CTXOFF);
3317 isp_mboxcmd(isp, &mbs);
3318 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
3990 mbreg_t mbs;
4008 MBSINIT(&mbs, MBOX_SEND_SNS, MBLOGALL, 1000000);
4009 mbs.param[1] = SNS_RFT_ID_REQ_SIZE >> 1;
4010 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
4011 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
4012 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
4013 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
4015 isp_mboxcmd(isp, &mbs);
4017 if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
4027 mbreg_t mbs;
4094 MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 1000000);
4095 mbs.param[1] = QENTRY_LEN;
4096 mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF);
4097 mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF);
4098 mbs.param[6] = DMA_WD3(fcp->isp_scdma + CTXOFF);
4099 mbs.param[7] = DMA_WD2(fcp->isp_scdma + CTXOFF);
4101 isp_mboxcmd(isp, &mbs);
4102 if (mbs
4469 mbreg_t *mbr, mbs;
4483 mbs.param[1] = 10;
4489 mbs.param[1] = SDPARAM(isp, chan)->isp_bus_reset_delay;
4490 if (mbs.param[1] < 2) {
4491 mbs.param[1] = 2;
4493 mbs.param[2] = chan;
4495 MBSINIT(&mbs, MBOX_BUS_RESET, MBLOGALL, 0);
4497 isp_mboxcmd(isp, &mbs);
4498 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
4546 MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 5000000);
4547 mbs.param[1] = QENTRY_LEN;
4548 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
4549 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
4550 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
4551 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
4560 isp_mboxcmd(isp, &mbs);
4561 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
4580 mbs.param[1] = tgt;
4581 mbs.ibits = (1 << 10);
4583 mbs.param[1] = (tgt << 8);
4586 mbs.param[1] = (chan << 15) | (tgt << 8);
4588 MBSINIT(&mbs, MBOX_ABORT_TARGET, MBLOGALL, 0);
4589 mbs.param[2] = 3; /* 'delay', in seconds */
4590 isp_mboxcmd(isp, &mbs);
4591 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
4646 ISP_MEMZERO(&mbs, sizeof (mbs));
4647 MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 5000000);
4648 mbs.param[1] = QENTRY_LEN;
4649 mbs.param[2] = DMA_WD1(fcp->isp_scdma);
4650 mbs.param[3] = DMA_WD0(fcp->isp_scdma);
4651 mbs.param[6] = DMA_WD3(fcp->isp_scdma);
4652 mbs.param[7] = DMA_WD2(fcp->isp_scdma);
4663 isp_mboxcmd(isp, &mbs);
4664 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
4682 mbs.param[1] = tgt;
4684 mbs.param[1] = tgt << 8;
4686 mbs.param[6] = XS_LUN(xs);
4688 mbs.param[1] = tgt << 8 | XS_LUN(xs);
4691 mbs.param[1] = (chan << 15) | (tgt << 8) | XS_LUN(xs);
4693 MBSINIT(&mbs, MBOX_ABORT, MBLOGALL & ~MBOX_COMMAND_ERROR, 0);
4694 mbs.param[2] = handle;
4695 isp_mboxcmd(isp, &mbs);
4696 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
4757 MBSINIT(&mbs, MBOX_INIT_LIP, MBLOGALL, 0);
4759 mbs.ibits = (1 << 10);
4761 isp_mboxcmd(isp, &mbs);
4762 if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
6318 mbreg_t mbs;
6319 MBSINIT(&mbs, MBOX_INIT_LIP, MBLOGALL, 0);
6321 mbs.ibits = (1 << 10);
6323 isp_mboxcmd_qnw(isp, &mbs, 1);
6553 mbreg_t mbs;
6584 ISP_MEMZERO(&mbs, sizeof (mbs));
6588 mbs.param[1] = isp->isp_mbxwrk1++;
6589 mbs.param[2] = *ptr++;
6593 mbs.param[1] = isp->isp_mbxwrk1++;
6599 mbs.param[2] = *ptr++;
6600 mbs.param[1] = offset;
6601 mbs.param[8] = offset >> 16;
6610 mbs.param[1] = offset;
6611 mbs.param[8] = offset >> 16;
6618 mbs.param[0] = isp->isp_lastmbxcmd;
6619 mbs.logval = MBLOGALL;
6620 isp_mboxcmd_qnw(isp, &mbs, 0);
7309 mbreg_t mbs;
7312 MBSINIT(&mbs, MBOX_GET_FW_STATE, MBLOGALL, 0);
7313 isp_mboxcmd(isp, &mbs);
7314 if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
7315 fcp->isp_fwstate = mbs.param[1];
7324 mbreg_t mbs;
7353 MBSINIT(&mbs, 0, MBLOGALL, 0);
7359 mbs.param[0] = MBOX_GET_TARGET_PARAMS;
7362 mbs.param[0] = MBOX_SET_TARGET_PARAMS;
7370 mbs.param[2] = sdp->isp_devparam[tgt].goal_flags;
7376 if ((mbs.param[2] & (DPARM_SYNC|DPARM_WIDE)) != 0) {
7377 mbs.param[2] |= DPARM_PARITY;
7380 if (mbs.param[2] & DPARM_SYNC) {
7381 mbs.param[3] =
7400 chan, tgt, mbs.param[2], mbs.param[3] >> 8, mbs.param[3] & 0xff);
7405 mbs.param[1] = (chan << 15) | (tgt << 8);
7406 isp_mboxcmd(isp, &mbs);
7407 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
7416 flags = mbs.param[2];
7417 period = mbs.param[3] & 0xff;
7418 offset = mbs.param[3] >> 8;
7540 mbreg_t mbs;
7549 MBSINIT(&mbs, MBOX_GET_ACT_NEG_STATE, MBLOGNONE, 0);
7550 isp_mboxcmd(isp, &mbs);
7551 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
7560 (mbs.param[1] >> 4) & 0x1;
7562 (mbs.param[1] >> 5) & 0x1;
7565 (mbs.param[2] >> 4) & 0x1;
7567 (mbs.param[2] >> 5) & 0x1;