Zero mbox[0] for INIT_FIRMWARE to fix version 7.3 firmware.

While there, add new fields to isp_icb_2400_t structure.
This commit is contained in:
Alexander Motin 2015-10-20 10:16:03 +00:00
parent 3f862b56a1
commit b363245a31
2 changed files with 13 additions and 5 deletions

View file

@ -1954,6 +1954,7 @@ isp_fibre_init(ispsoftc_t *isp)
* Init the firmware
*/
MBSINIT(&mbs, MBOX_INIT_FIRMWARE, MBLOGALL, 30000000);
mbs.param[1] = 0;
mbs.param[2] = DMA_WD1(fcp->isp_scdma);
mbs.param[3] = DMA_WD0(fcp->isp_scdma);
mbs.param[6] = DMA_WD3(fcp->isp_scdma);
@ -2253,6 +2254,7 @@ isp_fibre_init_2400(ispsoftc_t *isp)
} else {
mbs.param[0] = MBOX_INIT_FIRMWARE;
}
mbs.param[1] = 0;
mbs.param[2] = DMA_WD1(fcp->isp_scdma);
mbs.param[3] = DMA_WD0(fcp->isp_scdma);
mbs.param[6] = DMA_WD3(fcp->isp_scdma);
@ -7108,7 +7110,7 @@ static const uint32_t mbpfc[] = {
ISP_FC_OPMAP(0x00, 0x00), /* 0x45: */
ISP_FC_OPMAP(0x00, 0x00), /* 0x46: */
ISP_FC_OPMAP(0xcf, 0x03), /* 0x47: GET PORT_DATABASE ENHANCED */
ISP_FC_OPMAP(0xcd, 0x01), /* 0x48: MBOX_INIT_FIRMWARE_MULTI_ID */
ISP_FC_OPMAP(0xcf, 0x0f), /* 0x48: MBOX_INIT_FIRMWARE_MULTI_ID */
ISP_FC_OPMAP(0xcd, 0x01), /* 0x49: MBOX_GET_VP_DATABASE */
ISP_FC_OPMAP_HALF(0x2, 0xcd, 0x0, 0x01), /* 0x4a: MBOX_GET_VP_DATABASE_ENTRY */
ISP_FC_OPMAP(0x00, 0x00), /* 0x4b: */
@ -7132,7 +7134,7 @@ static const uint32_t mbpfc[] = {
ISP_FC_OPMAP(0x07, 0x03), /* 0x5d: MBOX_GET_SET_DATA_RATE */
ISP_FC_OPMAP(0x00, 0x00), /* 0x5e: */
ISP_FC_OPMAP(0x00, 0x00), /* 0x5f: */
ISP_FC_OPMAP(0xcd, 0x01), /* 0x60: MBOX_INIT_FIRMWARE */
ISP_FC_OPMAP(0xcf, 0x0f), /* 0x60: MBOX_INIT_FIRMWARE */
ISP_FC_OPMAP(0x00, 0x00), /* 0x61: */
ISP_FC_OPMAP(0x01, 0x01), /* 0x62: MBOX_INIT_LIP */
ISP_FC_OPMAP(0xcd, 0x03), /* 0x63: MBOX_GET_FC_AL_POSITION_MAP */

View file

@ -1055,8 +1055,10 @@ typedef struct {
uint16_t icb_prqstqlen;
uint16_t icb_rqstaddr[4];
uint16_t icb_respaddr[4];
uint16_t icb_priaddr[4];
uint16_t icb_reserved1[4];
uint16_t icb_priaddr[4];
uint16_t icb_msixresp;
uint16_t icb_msixatio;
uint16_t icb_reserved1[2];
uint16_t icb_atio_in;
uint16_t icb_atioqlen;
uint16_t icb_atioqaddr[4];
@ -1065,7 +1067,11 @@ typedef struct {
uint32_t icb_fwoptions1;
uint32_t icb_fwoptions2;
uint32_t icb_fwoptions3;
uint16_t icb_reserved2[12];
uint16_t icb_qos;
uint16_t icb_reserved2[3];
uint16_t icb_enodemac[3];
uint16_t icb_disctime;
uint16_t icb_reserved3[4];
} isp_icb_2400_t;
#define RQRSP_ADDR0015 0