Skip to contentSkip to conversation

PATCH [3/11] qla2xxx: NVRAM updates

PATCH Andrew Vasquez 1 participant 1 message Dec 9, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

ChangeSet
1.2237 04/12/08 14:24:05 [email protected] +4 -0 Address several NVRAM access issues:
o Add support for write-protected NVRAM chips used with ISP2322 and ISP6322.
o Correct code to not perform an erase data during NVRAM update.
o Correct issuance of NVRAM delay after PCI posting call.

 drivers/scsi/qla2xxx/qla_def.h |    2 
 drivers/scsi/qla2xxx/qla_gbl.h |    1 
 drivers/scsi/qla2xxx/qla_os.c  |    1 
 drivers/scsi/qla2xxx/qla_sup.c |   93 ++++++++++++++++++++++++++---------------
 4 files changed, 64 insertions(+), 33 deletions(-)
drivers/scsi/qla2xxx/qla_def.h +2 -0
diff -Nru a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
@@ -346,6 +346,8 @@
 	volatile uint16_t nvram;	/* NVRAM register. */
 #define NVR_DESELECT		0
 #define NVR_BUSY		BIT_15
+#define NVR_WRT_ENABLE		BIT_14	/* Write enable */
+#define NVR_PR_ENABLE		BIT_13	/* Protection register enable */
 #define NVR_DATA_IN		BIT_3
 #define NVR_DATA_OUT		BIT_2
 #define NVR_SELECT		BIT_1
drivers/scsi/qla2xxx/qla_gbl.h +1 -0
diff -Nru a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -212,6 +212,7 @@
  */
 extern void qla2x00_lock_nvram_access(scsi_qla_host_t *);
 extern void qla2x00_unlock_nvram_access(scsi_qla_host_t *);
+extern void qla2x00_release_nvram_protection(scsi_qla_host_t *);
 extern uint16_t qla2x00_get_nvram_word(scsi_qla_host_t *, uint32_t);
 extern void qla2x00_write_nvram_word(scsi_qla_host_t *, uint32_t, uint16_t);
 /*
drivers/scsi/qla2xxx/qla_os.c +1 -0
diff -Nru a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
@@ -566,6 +566,7 @@
 	/* Write NVRAM. */
 	spin_lock_irqsave(&ha->hardware_lock, flags);
 	qla2x00_lock_nvram_access(ha);
+	qla2x00_release_nvram_protection(ha);
  	witer = (uint16_t *)buf;
 	for (cnt = 0; cnt < count / 2; cnt++) {
 		qla2x00_write_nvram_word(ha, cnt+ha->nvram_base,
drivers/scsi/qla2xxx/qla_sup.c +60 -33

149 lines not on this page · raw message