Commit 86a80846 authored by James Smart's avatar James Smart Committed by James Bottomley

[SCSI] lpfc 8.3.23: Debugfs enhancements

Debugfs enhancements

- Added iDiag support for new adapters.
- Added queue entry access methods.
- Fix host/port index in decimal
- Added Doorbell register access methods.
Signed-off-by: default avatarAlex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: default avatarJames Smart <james.smart@emulex.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent 7c38c05b
...@@ -805,6 +805,8 @@ struct lpfc_hba { ...@@ -805,6 +805,8 @@ struct lpfc_hba {
struct dentry *idiag_root; struct dentry *idiag_root;
struct dentry *idiag_pci_cfg; struct dentry *idiag_pci_cfg;
struct dentry *idiag_que_info; struct dentry *idiag_que_info;
struct dentry *idiag_que_acc;
struct dentry *idiag_drb_acc;
#endif #endif
/* Used for deferred freeing of ELS data buffers */ /* Used for deferred freeing of ELS data buffers */
......
This diff is collapsed.
...@@ -39,13 +39,42 @@ ...@@ -39,13 +39,42 @@
/* hbqinfo output buffer size */ /* hbqinfo output buffer size */
#define LPFC_HBQINFO_SIZE 8192 #define LPFC_HBQINFO_SIZE 8192
/* rdPciConf output buffer size */ /* pciConf */
#define LPFC_PCI_CFG_BROWSE 0xffff
#define LPFC_PCI_CFG_RD_CMD_ARG 2
#define LPFC_PCI_CFG_WR_CMD_ARG 3
#define LPFC_PCI_CFG_SIZE 4096 #define LPFC_PCI_CFG_SIZE 4096
#define LPFC_PCI_CFG_RD_BUF_SIZE (LPFC_PCI_CFG_SIZE/2) #define LPFC_PCI_CFG_RD_BUF_SIZE (LPFC_PCI_CFG_SIZE/2)
#define LPFC_PCI_CFG_RD_SIZE (LPFC_PCI_CFG_SIZE/4) #define LPFC_PCI_CFG_RD_SIZE (LPFC_PCI_CFG_SIZE/4)
/* queue info output buffer size */ /* queue info */
#define LPFC_QUE_INFO_GET_BUF_SIZE 2048 #define LPFC_QUE_INFO_GET_BUF_SIZE 4096
/* queue acc */
#define LPFC_QUE_ACC_BROWSE 0xffff
#define LPFC_QUE_ACC_RD_CMD_ARG 4
#define LPFC_QUE_ACC_WR_CMD_ARG 6
#define LPFC_QUE_ACC_BUF_SIZE 4096
#define LPFC_QUE_ACC_SIZE (LPFC_QUE_ACC_BUF_SIZE/2)
#define LPFC_IDIAG_EQ 1
#define LPFC_IDIAG_CQ 2
#define LPFC_IDIAG_MQ 3
#define LPFC_IDIAG_WQ 4
#define LPFC_IDIAG_RQ 5
/* doorbell acc */
#define LPFC_DRB_ACC_ALL 0xffff
#define LPFC_DRB_ACC_RD_CMD_ARG 1
#define LPFC_DRB_ACC_WR_CMD_ARG 2
#define LPFC_DRB_ACC_BUF_SIZE 256
#define LPFC_DRB_EQCQ 1
#define LPFC_DRB_MQ 2
#define LPFC_DRB_WQ 3
#define LPFC_DRB_RQ 4
#define LPFC_DRB_MAX 4
#define SIZE_U8 sizeof(uint8_t) #define SIZE_U8 sizeof(uint8_t)
#define SIZE_U16 sizeof(uint16_t) #define SIZE_U16 sizeof(uint16_t)
...@@ -73,13 +102,23 @@ struct lpfc_idiag_offset { ...@@ -73,13 +102,23 @@ struct lpfc_idiag_offset {
uint32_t last_rd; uint32_t last_rd;
}; };
#define LPFC_IDIAG_CMD_DATA_SIZE 4 #define LPFC_IDIAG_CMD_DATA_SIZE 8
struct lpfc_idiag_cmd { struct lpfc_idiag_cmd {
uint32_t opcode; uint32_t opcode;
#define LPFC_IDIAG_CMD_PCICFG_RD 0x00000001 #define LPFC_IDIAG_CMD_PCICFG_RD 0x00000001
#define LPFC_IDIAG_CMD_PCICFG_WR 0x00000002 #define LPFC_IDIAG_CMD_PCICFG_WR 0x00000002
#define LPFC_IDIAG_CMD_PCICFG_ST 0x00000003 #define LPFC_IDIAG_CMD_PCICFG_ST 0x00000003
#define LPFC_IDIAG_CMD_PCICFG_CL 0x00000004 #define LPFC_IDIAG_CMD_PCICFG_CL 0x00000004
#define LPFC_IDIAG_CMD_QUEACC_RD 0x00000011
#define LPFC_IDIAG_CMD_QUEACC_WR 0x00000012
#define LPFC_IDIAG_CMD_QUEACC_ST 0x00000013
#define LPFC_IDIAG_CMD_QUEACC_CL 0x00000014
#define LPFC_IDIAG_CMD_DRBACC_RD 0x00000021
#define LPFC_IDIAG_CMD_DRBACC_WR 0x00000022
#define LPFC_IDIAG_CMD_DRBACC_ST 0x00000023
#define LPFC_IDIAG_CMD_DRBACC_CL 0x00000024
uint32_t data[LPFC_IDIAG_CMD_DATA_SIZE]; uint32_t data[LPFC_IDIAG_CMD_DATA_SIZE];
}; };
...@@ -87,6 +126,7 @@ struct lpfc_idiag { ...@@ -87,6 +126,7 @@ struct lpfc_idiag {
uint32_t active; uint32_t active;
struct lpfc_idiag_cmd cmd; struct lpfc_idiag_cmd cmd;
struct lpfc_idiag_offset offset; struct lpfc_idiag_offset offset;
void *ptr_private;
}; };
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment