aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_sli.h
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2007-06-17 20:56:37 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-06-17 23:06:27 -0400
commited957684294618602b48f1950b0c9bbcb036583f (patch)
tree4e88dbb2e55013f973ad94099e2963dd507ea719 /drivers/scsi/lpfc/lpfc_sli.h
parent2e0fef85e098f6794956b8b80b111179fbb4cbb7 (diff)
[SCSI] lpfc: NPIV: add SLI-3 interface
NPIV support is only available via new adapter interface extensions, termed SLI-3. This interface changes some of the basic behaviors such as command and response ring element sizes and data structures, as well as a change in buffer posting. Note: the new firmware extensions are found only on our mid-range and enterprise 4Gig adapters - so NPIV support is available only on these newer adapters. The latest firmware can be downloaded from the Emulex support page. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.h')
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.h b/drivers/scsi/lpfc/lpfc_sli.h
index 0e857e51a2c..190d55a69b2 100644
--- a/drivers/scsi/lpfc/lpfc_sli.h
+++ b/drivers/scsi/lpfc/lpfc_sli.h
@@ -138,6 +138,8 @@ struct lpfc_sli_ring {
138 uint8_t ringno; /* ring number */ 138 uint8_t ringno; /* ring number */
139 uint16_t numCiocb; /* number of command iocb's per ring */ 139 uint16_t numCiocb; /* number of command iocb's per ring */
140 uint16_t numRiocb; /* number of rsp iocb's per ring */ 140 uint16_t numRiocb; /* number of rsp iocb's per ring */
141 uint16_t sizeCiocb; /* Size of command iocb's in this ring */
142 uint16_t sizeRiocb; /* Size of response iocb's in this ring */
141 143
142 uint32_t fast_iotag; /* max fastlookup based iotag */ 144 uint32_t fast_iotag; /* max fastlookup based iotag */
143 uint32_t iotag_ctr; /* keeps track of the next iotag to use */ 145 uint32_t iotag_ctr; /* keeps track of the next iotag to use */
@@ -168,6 +170,29 @@ struct lpfc_sli_ring {
168 struct lpfc_sli_ring *); 170 struct lpfc_sli_ring *);
169}; 171};
170 172
173/* Structure used for configuring rings to a specific profile or rctl / type */
174struct lpfc_hbq_init {
175 uint32_t rn; /* Receive buffer notification */
176 uint32_t entry_count; /* # of entries in HBQ */
177 uint32_t headerLen; /* 0 if not profile 4 or 5 */
178 uint32_t logEntry; /* Set to 1 if this HBQ used for LogEntry */
179 uint32_t profile; /* Selection profile 0=all, 7=logentry */
180 uint32_t ring_mask; /* Binds HBQ to a ring e.g. Ring0=b0001,
181 * ring2=b0100 */
182 uint32_t hbq_index; /* index of this hbq in ring .HBQs[] */
183
184 uint32_t seqlenoff;
185 uint32_t maxlen;
186 uint32_t seqlenbcnt;
187 uint32_t cmdcodeoff;
188 uint32_t cmdmatch[8];
189 uint32_t mask_count; /* number of mask entries in prt array */
190 struct hbq_mask hbqMasks[6];
191} ;
192
193#define LPFC_MAX_HBQ 16
194
195
171/* Structure used to hold SLI statistical counters and info */ 196/* Structure used to hold SLI statistical counters and info */
172struct lpfc_sli_stat { 197struct lpfc_sli_stat {
173 uint64_t mbox_stat_err; /* Mbox cmds completed status error */ 198 uint64_t mbox_stat_err; /* Mbox cmds completed status error */