core_adpt.h

来自「6440linuxDriver的源代码」· C头文件 代码 · 共 1,872 行 · 第 1/5 页

H
1,872
字号
#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_SAS_CONTROL3, *PREG_CMD_SAS_CONTROL3;/* CMD_ID_TEST bits */typedef struct _REG_CMD_ID_TEST{#if __MV_BIG_ENDIAN_BITFIELD__	MV_U32   Reserved:10;	MV_U32   TX_ID_EN:1;	MV_U32   HR_EN:1;	MV_U32   ID_WT_EN:1;	MV_U32   ID_FRM_RTRY_EN:1;	MV_U32   ID_WT_TM:18;#else	MV_U32   ID_WT_TM:18;	MV_U32   ID_FRM_RTRY_EN:1;	MV_U32   ID_WT_EN:1;	MV_U32   HR_EN:1;	MV_U32   TX_ID_EN:1;	MV_U32   Reserved:10;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_ID_TEST, *PREG_CMD_ID_TEST;/* CMD_PL_TIMER bits */typedef struct _REG_CMD_PL_TIMER{#if __MV_BIG_ENDIAN_BITFIELD__	MV_U32   MAX_CONN_TM_LMT:16;	MV_U32   BUS_INCTVTY_LMT:16;#else	MV_U32   BUS_INCTVTY_LMT:16;	MV_U32   MAX_CONN_TM_LMT:16;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_PL_TIMER, *PREG_CMD_PL_TIMER;/* CMD_PLL_PHY_CONFIG bits */typedef struct _REG_CMD_PLL_PHY_CONFIG{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   reg_phy_refdiv:2;	MV_U32   reg_phy_fbdiv:7;	MV_U32   phy_reg_en:1;	MV_U32   Reserved:22;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_PLL_PHY_CONFIG, *PREG_CMD_PLL_PHY_CONFIG;/* CMD_PHY_CONTROL bits */typedef struct _REG_CMD_PHY_CONTROL{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   o_lb_enable:1;	MV_U32   o_lb_long_short:1;	MV_U32   o_lb_start_rd:1;	MV_U32   Reserved0:1;	MV_U32   o_lb_rxsel:2;	MV_U32   o_lb_txsel:2;	MV_U32   o_lb_mode:4;	MV_U32   Reserved1:1;	MV_U32   i_phytest_pass:1;	MV_U32   i_phytest_lock:1;	MV_U32   Reserved2:17;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_PHY_CONTROL, *PREG_CMD_PHY_CONTROL;/* CMD_APP_ERR_CONFIG bits */typedef struct _REG_CMD_APP_ERR_CONFIG{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   cmd_init_err:1;	MV_U32   cmd_port_err:1;	MV_U32   cmd_prtcl_err:1;	MV_U32   cmd_fill_byte_err:1;	MV_U32   cmd_no_space_err:1;	MV_U32   rsps_init_bit_err:1;	MV_U32   rsps_ssp_prtcl_err:1;	MV_U32   rsps_port_err:1;	MV_U32   rsps_underflow_err:1;	MV_U32   rsps_tag_err:1;	MV_U32   Reserved0:2;	MV_U32   xrdy_init_err:1;	MV_U32   xrdy_prtcl_err:1;	MV_U32   xrdy_port_error:1;	MV_U32   xrdy_offset_err:1;	MV_U32   xrdy_tag_err:1;	MV_U32   xrdy_overflow_err:1;	MV_U32   xrdy_fill_byte_err:1;	MV_U32   data_iu_init_err:1;	MV_U32   data_iu_port_err:1;	MV_U32   data_iu_tag_err:1;	MV_U32   tgt_mode_data_iu_tag_err:1;	MV_U32   data_offset_err:1;	MV_U32   data_overflow_err:1;	MV_U32   resps_iu_seq_err:1;	MV_U32   Reserved1:1;	MV_U32   data_iu_seq_err:1;	MV_U32   Reserved2:4;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_APP_ERR_CONFIG, *PREG_CMD_APP_ERR_CONFIG;/* CMD_PND_FIFO_CONTROL0 bits */typedef struct _REG_CMD_PND_FIFO_CONTROL0{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   lpf0_reset:1;	MV_U32   hpf0_reset:1;	MV_U32   dtf0_reset:1;	MV_U32   lpf1_reset:1;	MV_U32   hpf1_reset:1;	MV_U32   dtf1_reset:1;	MV_U32   lpf2_reset:1;	MV_U32   hpf2_reset:1;	MV_U32   dtf2_reset:1;	MV_U32   lpf3_reset:1;	MV_U32   hpf3_reset:1;	MV_U32   dtf3_reset:1;	MV_U32   tsf_rst:1;	MV_U32   Reserved0:2;	MV_U32   slot_transmit_rst:1;	MV_U32   hpf0_pause:1;	MV_U32   lpf0_pause:1;	MV_U32   dtf0_pause:1;	MV_U32   Reserved1:1;	MV_U32   hpf1_pause:1;	MV_U32   lpf1_pause:1;	MV_U32   dtf1_pause:1;	MV_U32   Reserved2:1;	MV_U32   hpf2_pause:1;	MV_U32   lpf2_pause:1;	MV_U32   dtf2_pause:1;	MV_U32   Reserved3:1;	MV_U32   hpf3_pause:1;	MV_U32   lpf3_pause:1;	MV_U32   dtf3_pause:1;	MV_U32   Reserved4:1;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_PND_FIFO_CONTROL0, *PREG_CMD_PND_FIFO_CONTROL0;/* CMD_HOST_CONTROL bits */typedef struct _REG_CMD_HOST_CONTROL{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   host_addr:16;	MV_U32   host_be:4;	MV_U32   host_write:1;	MV_U32   host_req:1;	MV_U32   Reserved:10;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_HOST_CONTROL, *PREG_CMD_HOST_CONTROL;/* CMD_PHY_MODE_21 bits */typedef struct _REG_CMD_PHY_MODE_21{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   v_chg_tmr:16;	MV_U32   spd_chg_tmr:16;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_PHY_MODE_21, *PREG_CMD_PHY_MODE_21;/* CMD_SL_MODE0 bits */typedef struct _REG_CMD_SL_MODE0{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   open_rejct_retry:7;	MV_U32   Reserved0:5;	MV_U32   stp_offset_chk_dis:1;	MV_U32   stp_buf_siz:2;	MV_U32   cn_rate_retry_dis:1;	MV_U32   Reserved1:16;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_SL_MODE0, *PREG_CMD_SL_MODE0;/* CMD_SL_MODE1 bits */typedef struct _REG_CMD_SL_MODE1{#if __MV_BIG_ENDIAN_BITFIELD__#else	MV_U32   bcast_chg_det:8;	MV_U32   unasc_fis_blk_stp_opn_en:1;	MV_U32   bcast_stop_en:1;	MV_U32   wd_to_stop_en:1;	MV_U32   phyrdy_chg_stop_en:1;	MV_U32   Reserved0:3;	MV_U32   ssp_disc_data_en:1;	MV_U32   Reserved1:16;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CMD_SL_MODE1, *PREG_CMD_SL_MODE1;enum {/* Port Config Registers PORT_CONFIG_ADDR, PORT_CONFIG_DATA */	CONFIG_DEV_INFO          = 0x00, /* port device info register */	CONFIG_DEV_ADDR_LO     = 0x04, /* Port device SAS addr lo register */	CONFIG_DEV_ADDR_HI     = 0x08, /* Port device SAS addr hi register */	CONFIG_ATT_DEV_INFO    = 0x0c, /* attached device info register */	CONFIG_ATT_DEV_ADDR_LO = 0x10, /* attached device SAS addr lo reg */	CONFIG_ATT_DEV_ADDR_HI = 0x14, /* attached device SAS addr hi reg */	CONFIG_SATA_CONTROL    = 0x18, /* port SATA control register */	CONFIG_PHY_STATUS      = 0x1c, /* port phy status register */	CONFIG_SATA_SIG0       = 0x20, /* port SATA signature FIS(Byte 0-3) */	CONFIG_SATA_SIG1       = 0x24, /* port SATA signature FIS(Byte 4-7) */	CONFIG_SATA_SIG2       = 0x28, /* port SATA signature FIS(Byte 8-11) */	CONFIG_SATA_SIG3       = 0x2c, /* port SATA signature FIS(Byte 12-15)*/	CONFIG_R_ERR_COUNT     = 0x30, /* port R_ERR count register */	CONFIG_CRC_ERR_COUNT   = 0x34, /* port CRC error count register */	CONFIG_WIDE_PORT       = 0x38, /* port wide participating register */        /* CONFIG_DEV_INFO/CONFIG_ATT_DEV_INFO (0x00) bits */	PORT_DEV_TYPE_MASK     = (0x7 << 0),	PORT_DEV_INIT_MASK     = (0x7 << 9),	PORT_DEV_TRGT_MASK     = (0x7 << 17),	PORT_DEV_STP_INIT      = (1 << 9),	PORT_DEV_SMP_INIT      = (1 << 10),	PORT_DEV_SSP_INIT      = (1 << 11),	PORT_DEV_STP_TRGT      = (1 << 17),	PORT_DEV_SMP_TRGT      = (1 << 18),	PORT_DEV_SSP_TRGT      = (1 << 19),	PORT_PHY_ID_MASK       = (0xFF << 24),};/* CONFIG_SATA_CONTROL bits */typedef struct _REG_CONFIG_SATA_CONTROL{#if __MV_BIG_ENDIAN_BITFIELD__	MV_U32   PM_CNTRL:2;      /* set */	MV_U32   SRST:1;	MV_U32   Reserved3:1;	MV_U32   PMODE:2;      /* read */	MV_U32   Reserved2:1;	MV_U32   PORT_SEL:1;	MV_U32   BIST_RSLT:1;	MV_U32   DMAT_HONOR:1;	MV_U32   SNGL_SYNC_EN:1;	/* 0- no SRST */	MV_U32   SRST_ENBL:1;      /* 1- send SYNC and soft reset, if SRST=1 */	MV_U32   Reserved1:1;	MV_U32   DMAT_TRNSFR:1;	MV_U32   CONT_DSBL:1;	MV_U32   TX_SCRMBL_DSBL:1;	MV_U32   RX_SCRMBL_DSBL:1;	MV_U32   CRC_CHK_DSBL:1;	MV_U32   RX_CRC_REVERSE:1;	MV_U32   XRDY:1;         /* send 0- SYNC, 1- R-ERR if non XRDY*/	MV_U32   PMODE_ENBL:2;	MV_U32   BIST_ENBL:1;	MV_U32   BIST_DIR:1;      /* 0-RX BIST FIS, 1-TX BIST FIS*/	MV_U32   BIST_MODE:8;#else	MV_U32   BIST_MODE:8;	MV_U32   BIST_DIR:1;         /* 0-RX BIST FIS, 1-TX BIST FIS*/	MV_U32   BIST_ENBL:1;	MV_U32   PMODE_ENBL:2;	MV_U32   XRDY:1;            /* send 0- SYNC, 1- R-ERR if non XRDY*/	MV_U32   RX_CRC_REVERSE:1;	MV_U32   CRC_CHK_DSBL:1;	MV_U32   RX_SCRMBL_DSBL:1;	MV_U32   TX_SCRMBL_DSBL:1;	MV_U32   CONT_DSBL:1;	MV_U32   DMAT_TRNSFR:1;	MV_U32   Reserved1:1;	MV_U32   SRST_ENBL:1;      /* 1- send SYNC and soft reset, if SRST=1 */	/* 0- no SRST */	MV_U32   SNGL_SYNC_EN:1;	MV_U32   DMAT_HONOR:1;	MV_U32   BIST_RSLT:1;	MV_U32   PORT_SEL:1;	MV_U32   Reserved2:1;	MV_U32   PMODE:2;         /* read */	MV_U32   Reserved3:1;	MV_U32   SRST:1;	MV_U32   PM_CNTRL:2;         /* set */#endif /* __MV_BIG_ENDIAN_BITFIELD__ */} REG_CONFIG_SATA_CONTROL, *PREG_CONFIG_SATA_CONTROL;/* Power Mode PM_CNTRL/PMODE */#define PMODE_PARTIAL      0x10#define PMODE_SLUMBER      0x01/* CONFIG_PHY_STATUS bits */typedef struct _REG_CONFIG_PHY_STATUS{#if __MV_BIG_ENDIAN_BITFIELD__	MV_U32   Reserved2:13;	MV_U32   TXIMP:4;	MV_U32   RXIMP:4;	MV_U32   PLL_CAL_DONE:1;	MV_U32   PHY_PLL_LOCK:1;	MV_U32   KVCO:3;	MV_U32   IMP_CAL_DONE:1;	MV_U32   NGTD_SPEED:1;	MV_U32   Reserved1:1;	MV_U32   PHY_RDY:1;	MV_U32   DW_SYNC:1;   	MV_U32   OOB_DTCTD:1;#else	MV_U32   OOB_DTCTD:1;	MV_U32   DW_SYNC:1;   	MV_U32   PHY_RDY:1;	MV_U32   Reserved1:1;	MV_U32   NGTD_SPEED:1;	MV_U32   IMP_CAL_DONE:1;	MV_U32   KVCO:3;	MV_U32   PHY_PLL_LOCK:1;	MV_U32   PLL_CAL_DONE:1;	MV_U32   RXIMP:4;	MV_U32   TXIMP:4;	MV_U32   Reserved2:13;#endif} REG_CONFIG_PHY_STATUS, *PREG_CONFIG_PHY_STATUS;/* CONFIG_R_ERR_COUNT/CONFIG_CRC_ERR_COUNT bits */#define ERR_COUNT_MASK      0x0ffffenum {        /* CONFIG_WIDE_PORT (0x38) bits */	WIDE_PORT_PHY_MASK  = (0xF << 0), /* phy map in a wide port *//* XOR_PORT_REG */	/* XOR port registers */	XOR_CONTROL         = 0x504,/* xor port control/status register */	XOR_LST_ADDR        = 0x508,/* xor port cmd list base addr low 32 */	XOR_LST_ADDR_HI       = 0x50c,/* xor port cmd list base addr high 32 */	XOR_DELV_Q_CONFIG   = 0x510,/* xor port delivery queue configuration */	XOR_DELV_Q_ADDR     = 0x514,/* xor port delivery queue base addr */	XOR_DELV_Q_ADDR_HI  = 0x518,/* xor port delivery queue base addr hi */	XOR_DELV_Q_WR_PTR   = 0x51c,/* xor port delivery queue write pointer */	XOR_DELV_Q_RD_PTR   = 0x520,/* xor port delivery queue read pointer */	XOR_CMPL_Q_CONFIG   = 0x524,/* xor port cmpl queue configuration */	XOR_CMPL_Q_ADDR     = 0x528,/* xor port cmpl queue base address */	XOR_CMPL_Q_ADDR_HI  = 0x52c,/* xor port cmpl queue base address hi */	XOR_CMPL_Q_WR_PTR   = 0x530,/* xor port cpml queue write pointer */	XOR_CMPL_Q_RD_PTR   = 0x534,/* xor port cpml queue read pointer */	XOR_COAL_CONFIG     = 0x538,/* xor port intr coalescing config */	XOR_COAL_TIMEOUT    = 0x53c,/* xor port intr coalescing time wait */	XOR_IRQ_STAT        = 0x540,/* xor port interrupt status */	XOR_IRQ_MASK        = 0x544,/* xor port intr enable/disable mask */	XOR_ERR_CODE        = 0x560,/* xor port error code register */	XOR_ERR_TBL_ADDR    = 0x564,/* xor port error table base address */	XOR_ERR_TBL_ADDR_HI = 0x568,/* xor port error table base address hi */	XOR_ERR_OFFSET0       = 0x570,/* xor port B0 error offset */	XOR_ERR_LEN0        = 0x574,/* xor port B0 error length */	XOR_ERR_OFFSET1     = 0x578,/* xor port B1 error offset */	XOR_ERR_LEN1        = 0x57c,/* xor port B1 error length */        /* XOR_CONTROL (R504h) */	XOR_ENABLE             = (1 << 0),	XOR_RESET              = (1 << 1),	ABORT_ZRC_ERROR        = (1 << 3), /* ZRC : Zero Result Check */	PAUSE_AT_TABLE_BOUNDRY = (1 << 4),	XOR_PAUSED             = (1 << 5),	XOR_CMD_RUNNING        = (1 << 6), /* a mask ? - A.C. */	XOR_CMD_CMPL_SELF_CLEAR = (1 << 7),	XOR_CMD_CMPL_IRQ_MODE  = (1 << 7),	CURRENT_CMD_SLOT_MASK  = (0xFFF << 16),        /* XOR_DELV_Q_CONFIG (0x510) bits */	XOR_DELV_QUEUE_SIZE_MASK   = (0xFFF << 0),	XOR_DELV_QUEUE_ENABLE      = (1 << 16),};/* XOR_DELV_Q_WR_PTR bits */typedef struct _REG_XOR_DELV_Q_WR_PTR{#if __MV_BIG_ENDIAN_BITFIELD__	MV_U32   Reserved:20;	MV_U32   DELV_QUEUE_WRT_PTR:12;#else	MV_U32   DELV_QUEUE_WRT_PTR:12;	MV_U32   Reserved:20;#endif /* __MV_BIG_ENDIAN_BITFIELD__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?