aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/be2iscsi/be_cmds.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/be2iscsi/be_cmds.h')
-rw-r--r--drivers/scsi/be2iscsi/be_cmds.h38
1 files changed, 23 insertions, 15 deletions
diff --git a/drivers/scsi/be2iscsi/be_cmds.h b/drivers/scsi/be2iscsi/be_cmds.h
index c9823b00b254..47b7197f17a2 100644
--- a/drivers/scsi/be2iscsi/be_cmds.h
+++ b/drivers/scsi/be2iscsi/be_cmds.h
@@ -98,11 +98,23 @@ struct be_mcc_compl {
98#define MPU_MAILBOX_DB_RDY_MASK 0x1 /* bit 0 */ 98#define MPU_MAILBOX_DB_RDY_MASK 0x1 /* bit 0 */
99#define MPU_MAILBOX_DB_HI_MASK 0x2 /* bit 1 */ 99#define MPU_MAILBOX_DB_HI_MASK 0x2 /* bit 1 */
100 100
101/********** MPU semphore ******************/ 101/********** MPU semphore: used for SH & BE ******************/
102#define MPU_EP_SEMAPHORE_OFFSET 0xac 102#define SLIPORT_SOFTRESET_OFFSET 0x5c /* CSR BAR offset */
103#define EP_SEMAPHORE_POST_STAGE_MASK 0x0000FFFF 103#define SLIPORT_SEMAPHORE_OFFSET_BEx 0xac /* CSR BAR offset */
104#define EP_SEMAPHORE_POST_ERR_MASK 0x1 104#define SLIPORT_SEMAPHORE_OFFSET_SH 0x94 /* PCI-CFG offset */
105#define EP_SEMAPHORE_POST_ERR_SHIFT 31 105#define POST_STAGE_MASK 0x0000FFFF
106#define POST_ERROR_BIT 0x80000000
107#define POST_ERR_RECOVERY_CODE_MASK 0xF000
108
109/* Soft Reset register masks */
110#define SLIPORT_SOFTRESET_SR_MASK 0x00000080 /* SR bit */
111
112/* MPU semphore POST stage values */
113#define POST_STAGE_AWAITING_HOST_RDY 0x1 /* FW awaiting goahead from host */
114#define POST_STAGE_HOST_RDY 0x2 /* Host has given go-ahed to FW */
115#define POST_STAGE_BE_RESET 0x3 /* Host wants to reset chip */
116#define POST_STAGE_ARMFW_RDY 0xC000 /* FW is done with POST */
117#define POST_STAGE_RECOVERABLE_ERR 0xE000 /* Recoverable err detected */
106 118
107/********** MCC door bell ************/ 119/********** MCC door bell ************/
108#define DB_MCCQ_OFFSET 0x140 120#define DB_MCCQ_OFFSET 0x140
@@ -110,9 +122,6 @@ struct be_mcc_compl {
110/* Number of entries posted */ 122/* Number of entries posted */
111#define DB_MCCQ_NUM_POSTED_SHIFT 16 /* bits 16 - 29 */ 123#define DB_MCCQ_NUM_POSTED_SHIFT 16 /* bits 16 - 29 */
112 124
113/* MPU semphore POST stage values */
114#define POST_STAGE_ARMFW_RDY 0xc000 /* FW is done with POST */
115
116/** 125/**
117 * When the async bit of mcc_compl is set, the last 4 bytes of 126 * When the async bit of mcc_compl is set, the last 4 bytes of
118 * mcc_compl is interpreted as follows: 127 * mcc_compl is interpreted as follows:
@@ -753,6 +762,12 @@ struct be_cmd_set_features {
753 } param; 762 } param;
754} __packed; 763} __packed;
755 764
765int beiscsi_cmd_special_wrb(struct be_ctrl_info *ctrl, u32 load);
766
767int beiscsi_check_fw_rdy(struct beiscsi_hba *phba);
768
769int beiscsi_init_sliport(struct beiscsi_hba *phba);
770
756int beiscsi_cmd_eq_create(struct be_ctrl_info *ctrl, 771int beiscsi_cmd_eq_create(struct be_ctrl_info *ctrl,
757 struct be_queue_info *eq, int eq_delay); 772 struct be_queue_info *eq, int eq_delay);
758 773
@@ -784,9 +799,6 @@ int __beiscsi_mcc_compl_status(struct beiscsi_hba *phba,
784 struct be_mcc_wrb **wrb, 799 struct be_mcc_wrb **wrb,
785 struct be_dma_mem *mbx_cmd_mem); 800 struct be_dma_mem *mbx_cmd_mem);
786/*ISCSI Functuions */ 801/*ISCSI Functuions */
787int be_cmd_fw_initialize(struct be_ctrl_info *ctrl);
788int be_cmd_fw_uninit(struct be_ctrl_info *ctrl);
789
790struct be_mcc_wrb *wrb_from_mbox(struct be_dma_mem *mbox_mem); 802struct be_mcc_wrb *wrb_from_mbox(struct be_dma_mem *mbox_mem);
791int be_mcc_compl_poll(struct beiscsi_hba *phba, unsigned int tag); 803int be_mcc_compl_poll(struct beiscsi_hba *phba, unsigned int tag);
792void be_mcc_notify(struct beiscsi_hba *phba, unsigned int tag); 804void be_mcc_notify(struct beiscsi_hba *phba, unsigned int tag);
@@ -812,8 +824,6 @@ int be_cmd_iscsi_post_sgl_pages(struct be_ctrl_info *ctrl,
812 struct be_dma_mem *q_mem, u32 page_offset, 824 struct be_dma_mem *q_mem, u32 page_offset,
813 u32 num_pages); 825 u32 num_pages);
814 826
815int beiscsi_cmd_reset_function(struct beiscsi_hba *phba);
816
817int be_cmd_wrbq_create(struct be_ctrl_info *ctrl, struct be_dma_mem *q_mem, 827int be_cmd_wrbq_create(struct be_ctrl_info *ctrl, struct be_dma_mem *q_mem,
818 struct be_queue_info *wrbq, 828 struct be_queue_info *wrbq,
819 struct hwi_wrb_context *pwrb_context, 829 struct hwi_wrb_context *pwrb_context,
@@ -1422,8 +1432,6 @@ struct be_cmd_get_port_name {
1422 * the cxn 1432 * the cxn
1423 */ 1433 */
1424 1434
1425int be_chk_reset_complete(struct beiscsi_hba *phba);
1426
1427void be_wrb_hdr_prepare(struct be_mcc_wrb *wrb, int payload_len, 1435void be_wrb_hdr_prepare(struct be_mcc_wrb *wrb, int payload_len,
1428 bool embedded, u8 sge_cnt); 1436 bool embedded, u8 sge_cnt);
1429 1437