1 /*- 2 * Copyright 2008-2013 Solarflare Communications Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS AND 14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23 * SUCH DAMAGE. 24 */ 25 26 #ifndef _SYS_QT2025C_H 27 #define _SYS_QT2025C_H 28 29 #include "efx.h" 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #if EFSYS_OPT_PHY_QT2025C 36 37 #define QT2025C_LOOPBACK_MASK \ 38 ((1 << EFX_LOOPBACK_PHY_XS) | \ 39 (1 << EFX_LOOPBACK_PCS) | \ 40 (1 << EFX_LOOPBACK_PMA_PMD) | \ 41 FALCON_XMAC_LOOPBACK_MASK) 42 43 #define QT2025C_LED_MASK \ 44 ((1 << EFX_PHY_LED_OFF) | \ 45 (1 << EFX_PHY_LED_ON)) 46 47 #define QT2025C_NPROPS 0 48 49 #define QT2025C_ADV_CAP_MASK \ 50 ((1 << EFX_PHY_CAP_10000FDX) | \ 51 (1 << EFX_PHY_CAP_PAUSE)) 52 53 #define QT2025C_ADV_CAP_PERM 0 54 55 #define QT2025C_BIST_MASK 0 56 57 extern __checkReturn int 58 qt2025c_reset( 59 __in efx_nic_t *enp); 60 61 extern __checkReturn int 62 qt2025c_reconfigure( 63 __in efx_nic_t *enp); 64 65 extern __checkReturn int 66 qt2025c_verify( 67 __in efx_nic_t *enp); 68 69 extern __checkReturn int 70 qt2025c_uplink_check( 71 __in efx_nic_t *enp, 72 __out boolean_t *upp); 73 74 extern __checkReturn int 75 qt2025c_downlink_check( 76 __in efx_nic_t *enp, 77 __out efx_link_mode_t *modep, 78 __out unsigned int *fcntlp, 79 __out uint32_t *lp_cap_maskp); 80 81 extern void 82 qt2025c_downlink_reset( 83 __in efx_nic_t *enp); 84 85 extern __checkReturn int 86 qt2025c_oui_get( 87 __in efx_nic_t *enp, 88 __out uint32_t *ouip); 89 90 #if EFSYS_OPT_PHY_STATS 91 92 /* START MKCONFIG GENERATED Qt2025cPhyHeaderStatsMask 2eb4a092d85bd5ac */ 93 #define QT2025C_STAT_MASK \ 94 (1ULL << EFX_PHY_STAT_OUI) | \ 95 (1ULL << EFX_PHY_STAT_PMA_PMD_LINK_UP) | \ 96 (1ULL << EFX_PHY_STAT_PMA_PMD_RX_FAULT) | \ 97 (1ULL << EFX_PHY_STAT_PMA_PMD_TX_FAULT) | \ 98 (1ULL << EFX_PHY_STAT_PCS_LINK_UP) | \ 99 (1ULL << EFX_PHY_STAT_PCS_RX_FAULT) | \ 100 (1ULL << EFX_PHY_STAT_PCS_TX_FAULT) | \ 101 (1ULL << EFX_PHY_STAT_PCS_BER) | \ 102 (1ULL << EFX_PHY_STAT_PCS_BLOCK_ERRORS) | \ 103 (1ULL << EFX_PHY_STAT_PCS_FW_VERSION_0) | \ 104 (1ULL << EFX_PHY_STAT_PCS_FW_VERSION_1) | \ 105 (1ULL << EFX_PHY_STAT_PCS_FW_VERSION_2) | \ 106 (1ULL << EFX_PHY_STAT_PCS_FW_VERSION_3) | \ 107 (1ULL << EFX_PHY_STAT_PCS_FW_BUILD_YY) | \ 108 (1ULL << EFX_PHY_STAT_PCS_FW_BUILD_MM) | \ 109 (1ULL << EFX_PHY_STAT_PCS_FW_BUILD_DD) | \ 110 (1ULL << EFX_PHY_STAT_PCS_OP_MODE) | \ 111 (1ULL << EFX_PHY_STAT_PHY_XS_LINK_UP) | \ 112 (1ULL << EFX_PHY_STAT_PHY_XS_RX_FAULT) | \ 113 (1ULL << EFX_PHY_STAT_PHY_XS_TX_FAULT) | \ 114 (1ULL << EFX_PHY_STAT_PHY_XS_ALIGN) | \ 115 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_A) | \ 116 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_B) | \ 117 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_C) | \ 118 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_D) 119 120 /* END MKCONFIG GENERATED Qt2025cPhyHeaderStatsMask */ 121 122 extern __checkReturn int 123 qt2025c_stats_update( 124 __in efx_nic_t *enp, 125 __in efsys_mem_t *esmp, 126 __out_ecount(EFX_PHY_NSTATS) uint32_t *stat); 127 128 #endif /* EFSYS_OPT_PHY_STATS */ 129 130 #if EFSYS_OPT_PHY_PROPS 131 132 #if EFSYS_OPT_NAMES 133 134 extern const char __cs * 135 qt2025c_prop_name( 136 __in efx_nic_t *enp, 137 __in unsigned int id); 138 139 #endif 140 141 extern __checkReturn int 142 qt2025c_prop_get( 143 __in efx_nic_t *enp, 144 __in unsigned int id, 145 __in uint32_t flags, 146 __out uint32_t *valp); 147 148 extern __checkReturn int 149 qt2025c_prop_set( 150 __in efx_nic_t *enp, 151 __in unsigned int id, 152 __in uint32_t val); 153 154 #endif /* EFSYS_OPT_PHY_PROPS */ 155 156 #endif /* EFSYS_OPT_PHY_QT2025C */ 157 158 #ifdef __cplusplus 159 } 160 #endif 161 162 #endif /* _SYS_QT2025C_H */