diff options
author | James Smart <james.smart@emulex.com> | 2010-02-12 14:42:03 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-02-17 18:40:48 -0500 |
commit | 28baac7492fa084dbff6a1b9c4b42ed0d014b558 (patch) | |
tree | dcf6dc190d0b85153eb8606b64f83089fae8084f /drivers/scsi/lpfc/lpfc_sli4.h | |
parent | ecfd03c6a99ad98fea5cb75ec83cd9945adff8d9 (diff) |
[SCSI] lpfc 8.3.9: SLI enhancments to support new hardware.
- Add support for the INTF (Interface) PCI register.
- Add support for greater than 2 page SGLs.
- Add support for up to 32 bit BDE lengths.
- Implement the Port Capabilities Mailbox command.
- Stop checking the Minor Code in the EQE structure.
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli4.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli4.h | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli4.h b/drivers/scsi/lpfc/lpfc_sli4.h index 0a4f59ea21d0..86308836600f 100644 --- a/drivers/scsi/lpfc/lpfc_sli4.h +++ b/drivers/scsi/lpfc/lpfc_sli4.h | |||
@@ -264,7 +264,10 @@ struct lpfc_bmbx { | |||
264 | #define SLI4_CT_VFI 2 | 264 | #define SLI4_CT_VFI 2 |
265 | #define SLI4_CT_FCFI 3 | 265 | #define SLI4_CT_FCFI 3 |
266 | 266 | ||
267 | #define LPFC_SLI4_MAX_SEGMENT_SIZE 0x10000 | 267 | #define LPFC_SLI4_FL1_MAX_SEGMENT_SIZE 0x10000 |
268 | #define LPFC_SLI4_FL1_MAX_BUF_SIZE 0X2000 | ||
269 | #define LPFC_SLI4_MIN_BUF_SIZE 0x400 | ||
270 | #define LPFC_SLI4_MAX_BUF_SIZE 0x20000 | ||
268 | 271 | ||
269 | /* | 272 | /* |
270 | * SLI4 specific data structures | 273 | * SLI4 specific data structures |
@@ -298,6 +301,42 @@ struct lpfc_fcp_eq_hdl { | |||
298 | struct lpfc_hba *phba; | 301 | struct lpfc_hba *phba; |
299 | }; | 302 | }; |
300 | 303 | ||
304 | /* Port Capabilities for SLI4 Parameters */ | ||
305 | struct lpfc_pc_sli4_params { | ||
306 | uint32_t supported; | ||
307 | uint32_t if_type; | ||
308 | uint32_t sli_rev; | ||
309 | uint32_t sli_family; | ||
310 | uint32_t featurelevel_1; | ||
311 | uint32_t featurelevel_2; | ||
312 | uint32_t proto_types; | ||
313 | #define LPFC_SLI4_PROTO_FCOE 0x0000001 | ||
314 | #define LPFC_SLI4_PROTO_FC 0x0000002 | ||
315 | #define LPFC_SLI4_PROTO_NIC 0x0000004 | ||
316 | #define LPFC_SLI4_PROTO_ISCSI 0x0000008 | ||
317 | #define LPFC_SLI4_PROTO_RDMA 0x0000010 | ||
318 | uint32_t sge_supp_len; | ||
319 | uint32_t if_page_sz; | ||
320 | uint32_t rq_db_window; | ||
321 | uint32_t loopbk_scope; | ||
322 | uint32_t eq_pages_max; | ||
323 | uint32_t eqe_size; | ||
324 | uint32_t cq_pages_max; | ||
325 | uint32_t cqe_size; | ||
326 | uint32_t mq_pages_max; | ||
327 | uint32_t mqe_size; | ||
328 | uint32_t mq_elem_cnt; | ||
329 | uint32_t wq_pages_max; | ||
330 | uint32_t wqe_size; | ||
331 | uint32_t rq_pages_max; | ||
332 | uint32_t rqe_size; | ||
333 | uint32_t hdr_pages_max; | ||
334 | uint32_t hdr_size; | ||
335 | uint32_t hdr_pp_align; | ||
336 | uint32_t sgl_pages_max; | ||
337 | uint32_t sgl_pp_align; | ||
338 | }; | ||
339 | |||
301 | /* SLI4 HBA data structure entries */ | 340 | /* SLI4 HBA data structure entries */ |
302 | struct lpfc_sli4_hba { | 341 | struct lpfc_sli4_hba { |
303 | void __iomem *conf_regs_memmap_p; /* Kernel memory mapped address for | 342 | void __iomem *conf_regs_memmap_p; /* Kernel memory mapped address for |
@@ -311,7 +350,7 @@ struct lpfc_sli4_hba { | |||
311 | void __iomem *UERRHIregaddr; /* Address to UERR_STATUS_HI register */ | 350 | void __iomem *UERRHIregaddr; /* Address to UERR_STATUS_HI register */ |
312 | void __iomem *UEMASKLOregaddr; /* Address to UE_MASK_LO register */ | 351 | void __iomem *UEMASKLOregaddr; /* Address to UE_MASK_LO register */ |
313 | void __iomem *UEMASKHIregaddr; /* Address to UE_MASK_HI register */ | 352 | void __iomem *UEMASKHIregaddr; /* Address to UE_MASK_HI register */ |
314 | void __iomem *SCRATCHPADregaddr; /* Address to scratchpad register */ | 353 | void __iomem *SLIINTFregaddr; /* Address to SLI_INTF register */ |
315 | /* BAR1 FCoE function CSR register memory map */ | 354 | /* BAR1 FCoE function CSR register memory map */ |
316 | void __iomem *STAregaddr; /* Address to HST_STATE register */ | 355 | void __iomem *STAregaddr; /* Address to HST_STATE register */ |
317 | void __iomem *ISRregaddr; /* Address to HST_ISR register */ | 356 | void __iomem *ISRregaddr; /* Address to HST_ISR register */ |
@@ -326,6 +365,8 @@ struct lpfc_sli4_hba { | |||
326 | 365 | ||
327 | uint32_t ue_mask_lo; | 366 | uint32_t ue_mask_lo; |
328 | uint32_t ue_mask_hi; | 367 | uint32_t ue_mask_hi; |
368 | struct lpfc_register sli_intf; | ||
369 | struct lpfc_pc_sli4_params pc_sli4_params; | ||
329 | struct msix_entry *msix_entries; | 370 | struct msix_entry *msix_entries; |
330 | uint32_t cfg_eqn; | 371 | uint32_t cfg_eqn; |
331 | struct lpfc_fcp_eq_hdl *fcp_eq_hdl; /* FCP per-WQ handle */ | 372 | struct lpfc_fcp_eq_hdl *fcp_eq_hdl; /* FCP per-WQ handle */ |