0001
0002
0003
0004
0005
0006
0007 #ifndef EF4_ENUM_H
0008 #define EF4_ENUM_H
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 enum ef4_loopback_mode {
0042 LOOPBACK_NONE = 0,
0043 LOOPBACK_DATA = 1,
0044 LOOPBACK_GMAC = 2,
0045 LOOPBACK_XGMII = 3,
0046 LOOPBACK_XGXS = 4,
0047 LOOPBACK_XAUI = 5,
0048 LOOPBACK_GMII = 6,
0049 LOOPBACK_SGMII = 7,
0050 LOOPBACK_XGBR = 8,
0051 LOOPBACK_XFI = 9,
0052 LOOPBACK_XAUI_FAR = 10,
0053 LOOPBACK_GMII_FAR = 11,
0054 LOOPBACK_SGMII_FAR = 12,
0055 LOOPBACK_XFI_FAR = 13,
0056 LOOPBACK_GPHY = 14,
0057 LOOPBACK_PHYXS = 15,
0058 LOOPBACK_PCS = 16,
0059 LOOPBACK_PMAPMD = 17,
0060 LOOPBACK_XPORT = 18,
0061 LOOPBACK_XGMII_WS = 19,
0062 LOOPBACK_XAUI_WS = 20,
0063 LOOPBACK_XAUI_WS_FAR = 21,
0064 LOOPBACK_XAUI_WS_NEAR = 22,
0065 LOOPBACK_GMII_WS = 23,
0066 LOOPBACK_XFI_WS = 24,
0067 LOOPBACK_XFI_WS_FAR = 25,
0068 LOOPBACK_PHYXS_WS = 26,
0069 LOOPBACK_MAX
0070 };
0071 #define LOOPBACK_TEST_MAX LOOPBACK_PMAPMD
0072
0073
0074 #define LOOPBACKS_INTERNAL ((1 << LOOPBACK_DATA) | \
0075 (1 << LOOPBACK_GMAC) | \
0076 (1 << LOOPBACK_XGMII)| \
0077 (1 << LOOPBACK_XGXS) | \
0078 (1 << LOOPBACK_XAUI) | \
0079 (1 << LOOPBACK_GMII) | \
0080 (1 << LOOPBACK_SGMII) | \
0081 (1 << LOOPBACK_XGBR) | \
0082 (1 << LOOPBACK_XFI) | \
0083 (1 << LOOPBACK_XAUI_FAR) | \
0084 (1 << LOOPBACK_GMII_FAR) | \
0085 (1 << LOOPBACK_SGMII_FAR) | \
0086 (1 << LOOPBACK_XFI_FAR) | \
0087 (1 << LOOPBACK_XGMII_WS) | \
0088 (1 << LOOPBACK_XAUI_WS) | \
0089 (1 << LOOPBACK_XAUI_WS_FAR) | \
0090 (1 << LOOPBACK_XAUI_WS_NEAR) | \
0091 (1 << LOOPBACK_GMII_WS) | \
0092 (1 << LOOPBACK_XFI_WS) | \
0093 (1 << LOOPBACK_XFI_WS_FAR))
0094
0095 #define LOOPBACKS_WS ((1 << LOOPBACK_XGMII_WS) | \
0096 (1 << LOOPBACK_XAUI_WS) | \
0097 (1 << LOOPBACK_XAUI_WS_FAR) | \
0098 (1 << LOOPBACK_XAUI_WS_NEAR) | \
0099 (1 << LOOPBACK_GMII_WS) | \
0100 (1 << LOOPBACK_XFI_WS) | \
0101 (1 << LOOPBACK_XFI_WS_FAR) | \
0102 (1 << LOOPBACK_PHYXS_WS))
0103
0104 #define LOOPBACKS_EXTERNAL(_efx) \
0105 ((_efx)->loopback_modes & ~LOOPBACKS_INTERNAL & \
0106 ~(1 << LOOPBACK_NONE))
0107
0108 #define LOOPBACK_MASK(_efx) \
0109 (1 << (_efx)->loopback_mode)
0110
0111 #define LOOPBACK_INTERNAL(_efx) \
0112 (!!(LOOPBACKS_INTERNAL & LOOPBACK_MASK(_efx)))
0113
0114 #define LOOPBACK_EXTERNAL(_efx) \
0115 (!!(LOOPBACK_MASK(_efx) & LOOPBACKS_EXTERNAL(_efx)))
0116
0117 #define LOOPBACK_CHANGED(_from, _to, _mask) \
0118 (!!((LOOPBACK_MASK(_from) ^ LOOPBACK_MASK(_to)) & (_mask)))
0119
0120 #define LOOPBACK_OUT_OF(_from, _to, _mask) \
0121 ((LOOPBACK_MASK(_from) & (_mask)) && !(LOOPBACK_MASK(_to) & (_mask)))
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150 enum reset_type {
0151 RESET_TYPE_INVISIBLE,
0152 RESET_TYPE_RECOVER_OR_ALL,
0153 RESET_TYPE_ALL,
0154 RESET_TYPE_WORLD,
0155 RESET_TYPE_RECOVER_OR_DISABLE,
0156 RESET_TYPE_DATAPATH,
0157 RESET_TYPE_DISABLE,
0158 RESET_TYPE_MAX_METHOD,
0159 RESET_TYPE_TX_WATCHDOG,
0160 RESET_TYPE_INT_ERROR,
0161 RESET_TYPE_RX_RECOVERY,
0162 RESET_TYPE_DMA_ERROR,
0163 RESET_TYPE_TX_SKIP,
0164 RESET_TYPE_MAX,
0165 };
0166
0167 #endif