diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-06-17 20:56:37 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-06-17 23:06:27 -0400 |
commit | ed957684294618602b48f1950b0c9bbcb036583f (patch) | |
tree | 4e88dbb2e55013f973ad94099e2963dd507ea719 /drivers/scsi/lpfc/lpfc_sli.h | |
parent | 2e0fef85e098f6794956b8b80b111179fbb4cbb7 (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.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.h b/drivers/scsi/lpfc/lpfc_sli.h index 0e857e51a2c4..190d55a69b2a 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 */ | ||
174 | struct 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 */ |
172 | struct lpfc_sli_stat { | 197 | struct 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 */ |