aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bfa/bfi.h
diff options
context:
space:
mode:
authorKrishna Gudipati <kgudipat@brocade.com>2011-06-24 23:22:28 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-06-29 17:56:05 -0400
commit1a4d8e1bd81c018f7b8c7622066d5cfead59b38a (patch)
tree52ec78c60131cf3d861929e1f90d84e8acd0a429 /drivers/scsi/bfa/bfi.h
parentea9582d721a0d711fb046a25f5e94dcbbc5be410 (diff)
[SCSI] bfa: Enable ASIC block configuration and query.
- Added ASIC block configuration APIs: - to create/delete/update the physical functions - to do adapter/port mode configuration - to query the current ASIC block configuration. Signed-off-by: Krishna Gudipati <kgudipat@brocade.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfi.h')
-rw-r--r--drivers/scsi/bfa/bfi.h82
1 files changed, 79 insertions, 3 deletions
diff --git a/drivers/scsi/bfa/bfi.h b/drivers/scsi/bfa/bfi.h
index 35af1d11ab2f..d28c7c55a60c 100644
--- a/drivers/scsi/bfa/bfi.h
+++ b/drivers/scsi/bfa/bfi.h
@@ -167,7 +167,7 @@ enum bfi_mclass {
167 BFI_MC_IOC = 1, /* IO Controller (IOC) */ 167 BFI_MC_IOC = 1, /* IO Controller (IOC) */
168 BFI_MC_FCPORT = 5, /* FC port */ 168 BFI_MC_FCPORT = 5, /* FC port */
169 BFI_MC_IOCFC = 6, /* FC - IO Controller (IOC) */ 169 BFI_MC_IOCFC = 6, /* FC - IO Controller (IOC) */
170 BFI_MC_LL = 7, /* Link Layer */ 170 BFI_MC_ABLK = 7, /* ASIC block configuration */
171 BFI_MC_UF = 8, /* Unsolicited frame receive */ 171 BFI_MC_UF = 8, /* Unsolicited frame receive */
172 BFI_MC_FCXP = 9, /* FC Transport */ 172 BFI_MC_FCXP = 9, /* FC Transport */
173 BFI_MC_LPS = 10, /* lport fc login services */ 173 BFI_MC_LPS = 10, /* lport fc login services */
@@ -386,7 +386,9 @@ struct bfi_ioc_ctrl_req_s {
386struct bfi_ioc_ctrl_reply_s { 386struct bfi_ioc_ctrl_reply_s {
387 struct bfi_mhdr_s mh; /* Common msg header */ 387 struct bfi_mhdr_s mh; /* Common msg header */
388 u8 status; /* enable/disable status */ 388 u8 status; /* enable/disable status */
389 u8 rsvd[3]; 389 u8 port_mode; /* bfa_mode_s */
390 u8 cap_bm; /* capability bit mask */
391 u8 rsvd;
390}; 392};
391#define bfi_ioc_enable_reply_t struct bfi_ioc_ctrl_reply_s; 393#define bfi_ioc_enable_reply_t struct bfi_ioc_ctrl_reply_s;
392#define bfi_ioc_disable_reply_t struct bfi_ioc_ctrl_reply_s; 394#define bfi_ioc_disable_reply_t struct bfi_ioc_ctrl_reply_s;
@@ -408,7 +410,7 @@ union bfi_ioc_h2i_msg_u {
408 */ 410 */
409union bfi_ioc_i2h_msg_u { 411union bfi_ioc_i2h_msg_u {
410 struct bfi_mhdr_s mh; 412 struct bfi_mhdr_s mh;
411 struct bfi_ioc_ctrl_reply_s rdy_event; 413 struct bfi_ioc_ctrl_reply_s fw_event;
412 u32 mboxmsg[BFI_IOC_MSGSZ]; 414 u32 mboxmsg[BFI_IOC_MSGSZ];
413}; 415};
414 416
@@ -603,6 +605,80 @@ union bfi_port_i2h_msg_u {
603 struct bfi_port_generic_rsp_s clearstats_rsp; 605 struct bfi_port_generic_rsp_s clearstats_rsp;
604}; 606};
605 607
608/*
609 *----------------------------------------------------------------------
610 * ABLK
611 *----------------------------------------------------------------------
612 */
613enum bfi_ablk_h2i_msgs_e {
614 BFI_ABLK_H2I_QUERY = 1,
615 BFI_ABLK_H2I_ADPT_CONFIG = 2,
616 BFI_ABLK_H2I_PORT_CONFIG = 3,
617 BFI_ABLK_H2I_PF_CREATE = 4,
618 BFI_ABLK_H2I_PF_DELETE = 5,
619 BFI_ABLK_H2I_PF_UPDATE = 6,
620 BFI_ABLK_H2I_OPTROM_ENABLE = 7,
621 BFI_ABLK_H2I_OPTROM_DISABLE = 8,
622};
623
624enum bfi_ablk_i2h_msgs_e {
625 BFI_ABLK_I2H_QUERY = BFA_I2HM(BFI_ABLK_H2I_QUERY),
626 BFI_ABLK_I2H_ADPT_CONFIG = BFA_I2HM(BFI_ABLK_H2I_ADPT_CONFIG),
627 BFI_ABLK_I2H_PORT_CONFIG = BFA_I2HM(BFI_ABLK_H2I_PORT_CONFIG),
628 BFI_ABLK_I2H_PF_CREATE = BFA_I2HM(BFI_ABLK_H2I_PF_CREATE),
629 BFI_ABLK_I2H_PF_DELETE = BFA_I2HM(BFI_ABLK_H2I_PF_DELETE),
630 BFI_ABLK_I2H_PF_UPDATE = BFA_I2HM(BFI_ABLK_H2I_PF_UPDATE),
631 BFI_ABLK_I2H_OPTROM_ENABLE = BFA_I2HM(BFI_ABLK_H2I_OPTROM_ENABLE),
632 BFI_ABLK_I2H_OPTROM_DISABLE = BFA_I2HM(BFI_ABLK_H2I_OPTROM_DISABLE),
633};
634
635/* BFI_ABLK_H2I_QUERY */
636struct bfi_ablk_h2i_query_s {
637 struct bfi_mhdr_s mh;
638 union bfi_addr_u addr;
639};
640
641/* BFI_ABL_H2I_ADPT_CONFIG, BFI_ABLK_H2I_PORT_CONFIG */
642struct bfi_ablk_h2i_cfg_req_s {
643 struct bfi_mhdr_s mh;
644 u8 mode;
645 u8 port;
646 u8 max_pf;
647 u8 max_vf;
648};
649
650/*
651 * BFI_ABLK_H2I_PF_CREATE, BFI_ABLK_H2I_PF_DELETE,
652 */
653struct bfi_ablk_h2i_pf_req_s {
654 struct bfi_mhdr_s mh;
655 u8 pcifn;
656 u8 port;
657 u16 pers;
658 u32 bw;
659};
660
661/* BFI_ABLK_H2I_OPTROM_ENABLE, BFI_ABLK_H2I_OPTROM_DISABLE */
662struct bfi_ablk_h2i_optrom_s {
663 struct bfi_mhdr_s mh;
664};
665
666/*
667 * BFI_ABLK_I2H_QUERY
668 * BFI_ABLK_I2H_PORT_CONFIG
669 * BFI_ABLK_I2H_PF_CREATE
670 * BFI_ABLK_I2H_PF_DELETE
671 * BFI_ABLK_I2H_PF_UPDATE
672 * BFI_ABLK_I2H_OPTROM_ENABLE
673 * BFI_ABLK_I2H_OPTROM_DISABLE
674 */
675struct bfi_ablk_i2h_rsp_s {
676 struct bfi_mhdr_s mh;
677 u8 status;
678 u8 pcifn;
679 u8 port_mode;
680};
681
606#pragma pack() 682#pragma pack()
607 683
608#endif /* __BFI_H__ */ 684#endif /* __BFI_H__ */