ixf6048b.h

来自「开发Inetl IXP2400平台所必须的硬件诊断和测试程序。该软件包支持的功能」· C头文件 代码 · 共 1,460 行 · 第 1/5 页

H
1,460
字号

#define  ixf6048_GET_B2_BIPCNT(BaseAddress,Chan)                      \
         (READ_FROM_HW(BaseAddress + ixf6048_B2_BIPCNT_CHAN_LSB_OFFSET(Chan)) +   \
          ((READ_FROM_HW(BaseAddress + ixf6048_B2_BIPCNT_CHAN_MSB_OFFSET(Chan))&0x3F) <<16 ))


/***********************************************************************
 * Channel Counter Registers:MR_BLKCNT: MST REI Block Error Counter
 * Page  - (1cc)9A-99H
 **********************************************************************/

#define  ixf6048_MR_BLKCNT_CHAN_LSB_OFFSET(Chan)  \
            (((1<<10)+(0x99)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_MR_BLKCNT_CHAN_MSB_OFFSET(Chan)  \
            (((1<<10)+(0x9A)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_GET_MST_REI_BLKCNT(BaseAddress,Chan)                 \
         (READ_FROM_HW(BaseAddress + ixf6048_MR_BLKCNT_CHAN_LSB_OFFSET(Chan)) +   \
          ((READ_FROM_HW(BaseAddress + ixf6048_MR_BLKCNT_CHAN_MSB_OFFSET(Chan))&0x1) <<16 ))


/***********************************************************************
 * Channel Counter Registers: MR_BIPCNT: MST REI BIP Error Counter
 * Page  - (1cc)9C-9BH
 **********************************************************************/

#define  ixf6048_MR_BIPCNT_CHAN_LSB_OFFSET(Chan)  \
            (((1<<10)+(0x9B)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_MR_BIPCNT_CHAN_MSB_OFFSET(Chan)  \
            (((1<<10)+(0x9C)+(Chan<<8))<<REG_SHIFT)

#define ixf6048_MR_BIPCNT_MASK_M  0x001F
#define ixf6048_MR_BIPCNT_MASK_L  0xFFFF

#define  ixf6048_GET_MST_REI_BIPCNT(BaseAddress,Chan)                 \
         (READ_FROM_HW(BaseAddress + ixf6048_MR_BIPCNT_CHAN_LSB_OFFSET(Chan)) +   \
          ((READ_FROM_HW(BaseAddress + ixf6048_MR_BIPCNT_CHAN_MSB_OFFSET(Chan))&0x1F) <<16 ))


/***********************************************************************
 * Channel Registers: R_K2K1: Rx K1 & K2 Bytes
 * Page  - (1cc)9DH
 **********************************************************************/

#define  ixf6048_R_K2K1_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0x9D)+(Chan<<8))<<REG_SHIFT)


         /* To get K1 & K2, using ixf6048_RxMstBytes_t:
               ushort   Reg;
               ixf6048_RxMstBytes_t RxMst;

               Reg = ixf6048_GET_K1K2(BaseAddress,Chan);
               RxMst.K1 = ixf6048_GET_K1(Reg);
               RxMst.K2 = ixf6048_GET_K2(Reg);
         */
#define  ixf6048_GET_K1K2(BaseAddress,Chan) \
            (READ_FROM_HW(BaseAddress + ixf6048_R_K2K1_CHAN_OFFSET(Chan)))

#define  ixf6048_GET_K1(K1K2)  (K1K2&0x00FF)

#define  ixf6048_MST_K1  0x00FF
#define  ixf6048_MST_K1_SHIFT    0

#define  ixf6048_GET_K2(K1K2)  ((K1K2&0xFF00)>>8)

#define  ixf6048_MST_K2  0xFF00
#define  ixf6048_MST_K2_SHIFT    8

/***********************************************************************
 * Channel Registers: R_S1: Rx S1 Byte
 * Page  - (1cc)9FH
 **********************************************************************/

#define  ixf6048_R_S1_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0x9F)+(Chan<<8))<<REG_SHIFT)

         /* To get S1, using ixf6048_RxMstBytes_t:
               ixf6048_RxMstBytes_t RxMst;

               RxMst.S1 = ixf6048_GET_S1(BaseAddress,Chan);
         */
#define  ixf6048_GET_S1(BaseAddress,Chan) \
         (READ_FROM_HW(BaseAddress + ixf6048_R_S1_CHAN_OFFSET(Chan))&0x00FF)

#define  ixf6048_mRCV_S1 0x00FF
/***********************************************************************
 * Channel Registers: WINSZ_SB2: Window Size for setting ExcB2ErrSt
 * Page  - (1cc)B0H
 **********************************************************************/

#define  ixf6048_WINSZ_SB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xB0)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_mEXC_B2_SET_WIN_SZ  0x07FF

#define  ixf6048_SET_EXC_B2_WINDOW_SIZE(BaseAddress,Chan,WindowSize)    \
         (WRITE_TO_HW(BaseAddress + ixf6048_WINSZ_SB2_CHAN_OFFSET(Chan),  \
         (((WindowSize/8)-1) & ixf6048_mEXC_B2_SET_WIN_SZ)))
/***********************************************************************
 * Channel Registers:  
 *                  CWIN_SB2: Consecutive Windows for setting ExcB2ErrSt 
 * Page - (1cc)B1H
 *                  E_EXCWIN_SB2: Errs/Window for setting ExcB2ErrSt
 * Page - (1cc)B2H
 **********************************************************************/

#define  ixf6048_CWIN_SB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xB1)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_EXCWIN_SB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xB2)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_mEXC_B2_SET_WIN_NUM  0x007F
#define  ixf6048_mEXC_B2_MIN          0x0FFF

#define  ixf6048_SET_EXC_B2_NUM_ERRS(BaseAddress,Chan,NumErrors)   \
          (WRITE_TO_HW(BaseAddress + ixf6048_CWIN_SB2_CHAN_OFFSET(Chan),  \
                  (NumErrors & ixf6048_mEXC_B2_SET_WIN_NUM)))

#define  ixf6048_SET_EXC_B2_NUM_WINDOWS(BaseAddress,Chan,NumWindows)  \
          (WRITE_TO_HW(BaseAddress + ixf6048_EXCWIN_SB2_CHAN_OFFSET(Chan),  \
                  (NumWindows & ixf6048_mEXC_B2_MIN)))
/***********************************************************************
 * Channel Registers: WINSZ_CB2: Window Size for clearing ExcB2ErrSt
 * Page  - (1cc)B3H
 **********************************************************************/

#define  ixf6048_WINSZ_CB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xB3)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_mEXC_B2_CLR_WIN_SZ  0x07FF

#define  ixf6048_SET_CLR_EXC_B2_WINDOW_SIZE(BaseAddress,Chan,WindowSize)    \
         (WRITE_TO_HW(BaseAddress + ixf6048_WINSZ_CB2_CHAN_OFFSET(Chan),  \
         (((WindowSize/8)-1) & ixf6048_mEXC_B2_CLR_WIN_SZ)))

/***********************************************************************
 * Channel Registers:  
 *                  CWIN_CB2: Consecutive Windows for clearing ExcB2ErrSt
 * Page - (1cc)B4H
 *                  E_NEXCWIN_CB2: Errs/Window         for clearing ExcB2ErrSt 
 * Page - (1cc)B5H
 **********************************************************************/

#define  ixf6048_CWIN_CB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xB4)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_E_NEXCWIN_CB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xB5)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_mEXC_B2_CLR_WIN_NUM     0x007F
#define  ixf6048_mEXC_B2_MAX             0x0FFF

#define  ixf6048_SET_CLR_EXC_B2_NUM_ERRS(BaseAddress,Chan,NumErrors)   \
          (WRITE_TO_HW(BaseAddress + ixf6048_CWIN_CB2_CHAN_OFFSET(Chan),  \
                  (NumErrors & ixf6048_mEXC_B2_CLR_WIN_NUM)))

#define  ixf6048_SET_CLR_EXC_B2_NUM_WINDOWS(BaseAddress,Chan,NumWindows)  \
          (WRITE_TO_HW(BaseAddress + ixf6048_E_NEXCWIN_CB2_CHAN_OFFSET(Chan),  \
                  (NumWindows & ixf6048_mEXC_B2_MAX)))


/***********************************************************************
 * Channel Registers: WINSZ_SDEGB2: Window Size for setting DegB2ErrSt 
 * Page  - (1cc)B7-B6H
 **********************************************************************/

#define  ixf6048_WINSZ_SDEGB2_CHAN_LSB_OFFSET(Chan)  \
            (((1<<10)+(0xB6)+(Chan<<8))<<REG_SHIFT) /* Offset of LSB */

#define  ixf6048_WINSZ_SDEGB2_CHAN_MSB_OFFSET(Chan)  \
            (((1<<10)+(0xB7)+(Chan<<8))<<REG_SHIFT) /* Offset of MSB */

#define ixf6048_DEG_B2_SET_WINSZ_MASK_M   0x007F
#define ixf6048_DEG_B2_SET_WINSZ_MASK_L	  0xFFFF

/* Note: Window Size Must be a 32 Bit Value */
#define  ixf6048_SET_LSB_SDEGB2_WINDOW_SIZE(BaseAddress,Chan,WindowSize)    \
         (WRITE_TO_HW(BaseAddress + ixf6048_WINSZ_SDEGB2_CHAN_LSB_OFFSET(Chan), \
         (ushort) (((WindowSize/8)-1)&0x0000FFFF)))
#define  ixf6048_SET_MSB_SDEGB2_WINDOW_SIZE(BaseAddress,Chan,WindowSize)    \
         (WRITE_TO_HW(BaseAddress + ixf6048_WINSZ_SDEGB2_CHAN_MSB_OFFSET(Chan), \
         (ushort) ((((WindowSize/8)-1)&0x00FF0000)>>16)))

/***********************************************************************
 * Channel Registers: 
 *                  WINSZ_SDEGB2: Consecutive Windows for setting DegB2ErrSt 
 * Page - (1cc)B8H
 *                  E_DEGWIN_SB2: Errs/Window for setting DegB2ErrSt 
 * Page - (1cc)B9H
 **********************************************************************/

#define  ixf6048_CWIN_SDEGB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xB8)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_E_DEGWIN_SB2_CHAN_OFFSET(Chan) \
            (((1<<10)+(0xB9)+(Chan<<8)) <<REG_SHIFT)

#define  ixf6048_CWIN_SDEGB2_MASK         0x007F
#define  ixf6048_E_DEGWIN_SB2_MASK        0x0FFF

#define  ixf6048_SET_DEG_B2_ERRORS(BaseAddress,Chan,NumErrors)   \
          (WRITE_TO_HW(BaseAddress + ixf6048_CWIN_SDEGB2_CHAN_OFFSET(Chan), \
               (NumErrors & ixf6048_CWIN_SDEGB2_MASK)))

#define  ixf6048_SET_DEG_B2_WINDOWS(BaseAddress,Chan,NumWindows)  \
            (WRITE_TO_HW(BaseAddress + ixf6048_E_DEGWIN_SB2_CHAN_OFFSET(Chan),  \
               (NumWindows & ixf6048_E_DEGWIN_SB2_MASK)))

/***********************************************************************
 * Channel Registers: WINSZ_CDEGB2: Window Size for clearing DegB2ErrSt
 * Page  - (1cc)BB-BAH
 **********************************************************************/

#define  ixf6048_WINSZ_CDEGB2_CHAN_LSB_OFFSET(Chan)  \
            (((1<<10)+(0xBA)+(Chan<<8))<<REG_SHIFT) /* Offset of LSB */

#define  ixf6048_WINSZ_CDEGB2_CHAN_MSB_OFFSET(Chan)  \
            (((1<<10)+(0xBB)+(Chan<<8))<<REG_SHIFT) /* Offset of MSB */

/* Note: Window Size MUST be a 32 Bit Value */
#define  ixf6048_SET_CLR_LSB_DEGB2_WINDOW_SIZE(BaseAddress,Chan,WindowSize)    \
         (WRITE_TO_HW(BaseAddress + ixf6048_WINSZ_CDEGB2_CHAN_LSB_OFFSET(Chan), \
         (ushort) (((WindowSize/8)-1)&0x0000FFFF)))
#define  ixf6048_SET_CLR_MSB_DEGB2_WINDOW_SIZE(BaseAddress,Chan,WindowSize)    \
         (WRITE_TO_HW(BaseAddress + ixf6048_WINSZ_CDEGB2_CHAN_MSB_OFFSET(Chan), \
         (ushort) ((((WindowSize/8)-1)&0x00FF0000)>>16)))

/***********************************************************************
 * Channel Registers:  
 *                  CWIN_CDEGB2: Consecutive Windows for clearing DegB2ErrSt 
 * Page - (1cc)BCH
 *                  E_NDEGWIN_CB2: Errs/Window for clearing DegB2ErrSt 
 * Page - (1cc)BDH
 **********************************************************************/

#define  ixf6048_CWIN_CDEGB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xBC)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_E_NDEGWIN_CB2_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xBD)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_CWIN_CDEGB2_MASK         0x007F
#define  ixf6048_E_NDEGWIN_CB2_MASK       0x0FFF

#define  ixf6048_SET_CLEAR_DEG_B2_ERRORS(BaseAddress,Chan,NumErrors)   \
          (WRITE_TO_HW(BaseAddress + ixf6048_CWIN_CDEGB2_CHAN_OFFSET(Chan),  \
                  (NumErrors & ixf6048_CWIN_CDEGB2_MASK)))

#define  ixf6048_SET_CLEAR_DEG_B2_WINDOWS(BaseAddress,Chan,NumWindows)  \
          (WRITE_TO_HW(BaseAddress + ixf6048_E_NDEGWIN_CB2_CHAN_OFFSET(Chan),  \
                  (NumWindows & ixf6048_E_NDEGWIN_CB2_MASK)))

/***********************************************************************
 * Channel Registers:
 *                  IS_MUX: Rx MST Interrupt Source 
 * Page  - (1cc)D1H 
 *                  IE_MUX: Rx MST Interrupt Enable
 * Page  - (1cc)D5H
 *                  S_MUX: Rx MST Status
 * Page  - (1cc)D9H
 **********************************************************************/

#define  ixf6048_IS_MUX_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xD1)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_IE_MUX_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xD5)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_S_MUX_CHAN_OFFSET(Chan)  \
            (((1<<10)+(0xD9)+(Chan<<8))<<REG_SHIFT)

#define  ixf6048_mIS_MUX    0x7FFF
#define  ixf6048_mIE_MUX    0x7FFF
#define  ixf6048_mS_MUX     0x00FF

#define	   ixf6048_eRX_MST_S1_ALM           0x4000 /* Change in Rx S1 byte */
#define    ixf6048_eRX_MST_K1_ALM           0x2000 /* Change in Rx K1 */
#define    ixf6048_eRX_MST_K2_ALM           0x1000 /* Change in Rx K2 */
#define    ixf6048_eRX_MST_B2_BIT_OVFL_ALM  0x0800 /* B2 Bit err cntr overflowed */
#define    ixf6048_eRX_MST_B2_BLK_OVFL_ALM  0x0400 /* B2 Block err cntr overflowed */
#define    ixf6048_eRX_MST_REI_BIT_OVFL_ALM 0x0200 /* REI Bit err cntr overflowed */
#define    ixf6048_eRX_MST_REI_BLK_OVFL_ALM 0x0100 /* REI Block err cntr overflowed */
#define    ixf6048_eRX_MST_S8_UNSTABLE_ALM  0x0080 /* Change in Rx S1 byte unstable */
#define    ixf6048_eRX_MST_K9_UNSTABLE_ALM  0x0040 /* Change in Rx K1 byte unstable */
#define    ixf6048_eRX_MST_K2_UNSTABLE_ALM  0x0020 /* Change in Rx K2 byte unstable */
#define    ixf6048_eRX_MST_DEG_B2_ERR_ALM   0x0010 /* Change in Degraded B2 err stat */
#define    ixf6048_eRX_MST_SF_ALM           0x0008 /* Change in MST SF status */
#define    ixf6048_eRX_MS

⌨️ 快捷键说明

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