[SCSI] qla1280: always load microcode
we have the most recent microcode, make sure to always load it. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
748422d92a
commit
5c79d6154f
|
@ -1733,69 +1733,6 @@ qla1280_initialize_adapter(struct scsi_qla_host *ha)
|
|||
return status;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ISP Firmware Test
|
||||
* Checks if present version of RISC firmware is older than
|
||||
* driver firmware.
|
||||
*
|
||||
* Input:
|
||||
* ha = adapter block pointer.
|
||||
*
|
||||
* Returns:
|
||||
* 0 = firmware does not need to be loaded.
|
||||
*/
|
||||
static int
|
||||
qla1280_isp_firmware(struct scsi_qla_host *ha)
|
||||
{
|
||||
struct nvram *nv = (struct nvram *) ha->response_ring;
|
||||
int status = 0; /* dg 2/27 always loads RISC */
|
||||
uint16_t mb[MAILBOX_REGISTER_COUNT];
|
||||
|
||||
ENTER("qla1280_isp_firmware");
|
||||
|
||||
dprintk(1, "scsi(%li): Determining if RISC is loaded\n", ha->host_no);
|
||||
|
||||
/* Bad NVRAM data, load RISC code. */
|
||||
if (!ha->nvram_valid) {
|
||||
ha->flags.disable_risc_code_load = 0;
|
||||
} else
|
||||
ha->flags.disable_risc_code_load =
|
||||
nv->cntr_flags_1.disable_loading_risc_code;
|
||||
|
||||
if (ha->flags.disable_risc_code_load) {
|
||||
dprintk(3, "qla1280_isp_firmware: Telling RISC to verify "
|
||||
"checksum of loaded BIOS code.\n");
|
||||
|
||||
/* Verify checksum of loaded RISC code. */
|
||||
mb[0] = MBC_VERIFY_CHECKSUM;
|
||||
/* mb[1] = ql12_risc_code_addr01; */
|
||||
mb[1] = *ql1280_board_tbl[ha->devnum].fwstart;
|
||||
|
||||
if (!(status =
|
||||
qla1280_mailbox_command(ha, BIT_1 | BIT_0, &mb[0]))) {
|
||||
/* Start firmware execution. */
|
||||
dprintk(3, "qla1280_isp_firmware: Startng F/W "
|
||||
"execution.\n");
|
||||
|
||||
mb[0] = MBC_EXECUTE_FIRMWARE;
|
||||
/* mb[1] = ql12_risc_code_addr01; */
|
||||
mb[1] = *ql1280_board_tbl[ha->devnum].fwstart;
|
||||
qla1280_mailbox_command(ha, BIT_1 | BIT_0, &mb[0]);
|
||||
} else
|
||||
printk(KERN_INFO "qla1280: RISC checksum failed.\n");
|
||||
} else {
|
||||
dprintk(1, "qla1280: NVRAM configured to load RISC load.\n");
|
||||
status = 1;
|
||||
}
|
||||
|
||||
if (status)
|
||||
dprintk(2, "qla1280_isp_firmware: **** Load RISC code ****\n");
|
||||
|
||||
LEAVE("qla1280_isp_firmware");
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
* Chip diagnostics
|
||||
* Test chip for proper operation.
|
||||
|
@ -2080,14 +2017,7 @@ qla1280_start_firmware(struct scsi_qla_host *ha)
|
|||
static int
|
||||
qla1280_load_firmware(struct scsi_qla_host *ha)
|
||||
{
|
||||
int err = -ENODEV;
|
||||
|
||||
/* If firmware needs to be loaded */
|
||||
if (!qla1280_isp_firmware(ha)) {
|
||||
printk(KERN_ERR "scsi(%li): isp_firmware() failed!\n",
|
||||
ha->host_no);
|
||||
goto out;
|
||||
}
|
||||
int err;
|
||||
|
||||
err = qla1280_chip_diag(ha);
|
||||
if (err)
|
||||
|
|
Loading…
Reference in New Issue