#define RISC_START_ADDRESS_2100 0x1000
 #define RISC_START_ADDRESS_2300 0x800
 #define RISC_START_ADDRESS_2400 0x100000
+       uint16_t        fw_xcb_count;
 
        uint16_t        fw_options[16];         /* slots: 1,2,3,10,11 */
        uint8_t         fw_seriallink_options[4];
 
                                                ha->max_npiv_vports =
                                                    MIN_MULTI_ID_FABRIC - 1;
                                }
-                               qla2x00_get_resource_cnts(vha, NULL, NULL,
-                                   NULL, NULL, &ha->max_npiv_vports);
+                               qla2x00_get_resource_cnts(vha, NULL,
+                                   &ha->fw_xcb_count, NULL, NULL,
+                                   &ha->max_npiv_vports);
 
                                if (!fw_major_version && ql2xallocfwdump)
                                        qla2x00_alloc_fw_dump(vha);
                mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports);
        }
 
-
-       mid_init_cb->options = __constant_cpu_to_le16(BIT_1);
+       if (IS_FWI2_CAPABLE(ha)) {
+               mid_init_cb->options = __constant_cpu_to_le16(BIT_1);
+               mid_init_cb->init_cb.execution_throttle =
+                   cpu_to_le16(ha->fw_xcb_count);
+       }
 
        rval = qla2x00_init_firmware(vha, ha->init_cb_size);
        if (rval) {