1 /*- 2 * Copyright 2007-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_TXC43128_H 27 #define _SYS_TXC43128_H 28 29 #include "efx.h" 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #if EFSYS_OPT_PHY_TXC43128 36 37 #define TXC43128_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 TXC43128_LED_MASK \ 44 ((1 << EFX_PHY_LED_OFF) | \ 45 (1 << EFX_PHY_LED_ON)) 46 47 #define TXC43128_NPROPS 0 48 49 #define TXC43128_ADV_CAP_MASK \ 50 ((1 << EFX_PHY_CAP_10000FDX) | \ 51 (1 << EFX_PHY_CAP_PAUSE)) 52 53 #define TXC43128_ADV_CAP_PERM 0 54 55 #define TXC43128_BIST_MASK 0 56 57 extern __checkReturn int 58 txc43128_reset( 59 __in efx_nic_t *enp); 60 61 extern __checkReturn int 62 txc43128_reconfigure( 63 __in efx_nic_t *enp); 64 65 extern __checkReturn int 66 txc43128_verify( 67 __in efx_nic_t *enp); 68 69 extern __checkReturn int 70 txc43128_uplink_check( 71 __in efx_nic_t *enp, 72 __out boolean_t *upp); 73 74 extern __checkReturn int 75 txc43128_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 __checkReturn int 82 txc43128_oui_get( 83 __in efx_nic_t *enp, 84 __out uint32_t *ouip); 85 86 #if EFSYS_OPT_PHY_STATS 87 88 /* START MKCONFIG GENERATED Txc43128PhyHeaderStatsMask 0bd778c521babfec */ 89 #define TXC43128_STAT_MASK \ 90 (1ULL << EFX_PHY_STAT_OUI) | \ 91 (1ULL << EFX_PHY_STAT_PMA_PMD_LINK_UP) | \ 92 (1ULL << EFX_PHY_STAT_PMA_PMD_RX_FAULT) | \ 93 (1ULL << EFX_PHY_STAT_PMA_PMD_TX_FAULT) | \ 94 (1ULL << EFX_PHY_STAT_PMA_PMD_SIGNAL_A) | \ 95 (1ULL << EFX_PHY_STAT_PMA_PMD_SIGNAL_B) | \ 96 (1ULL << EFX_PHY_STAT_PMA_PMD_SIGNAL_C) | \ 97 (1ULL << EFX_PHY_STAT_PMA_PMD_SIGNAL_D) | \ 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_PHY_XS_LINK_UP) | \ 102 (1ULL << EFX_PHY_STAT_PHY_XS_RX_FAULT) | \ 103 (1ULL << EFX_PHY_STAT_PHY_XS_TX_FAULT) | \ 104 (1ULL << EFX_PHY_STAT_PHY_XS_ALIGN) | \ 105 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_A) | \ 106 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_B) | \ 107 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_C) | \ 108 (1ULL << EFX_PHY_STAT_PHY_XS_SYNC_D) 109 110 /* END MKCONFIG GENERATED Txc43128PhyHeaderStatsMask */ 111 112 extern __checkReturn int 113 txc43128_stats_update( 114 __in efx_nic_t *enp, 115 __in efsys_mem_t *esmp, 116 __out_ecount(EFX_PHY_NSTATS) uint32_t *stat); 117 118 #endif /* EFSYS_OPT_PHY_STATS */ 119 120 #if EFSYS_OPT_PHY_PROPS 121 122 #if EFSYS_OPT_NAMES 123 124 extern const char __cs * 125 txc43128_prop_name( 126 __in efx_nic_t *enp, 127 __in unsigned int id); 128 129 #endif 130 131 extern __checkReturn int 132 txc43128_prop_get( 133 __in efx_nic_t *enp, 134 __in unsigned int id, 135 __in uint32_t flags, 136 __out uint32_t *valp); 137 138 extern __checkReturn int 139 txc43128_prop_set( 140 __in efx_nic_t *enp, 141 __in unsigned int id, 142 __in uint32_t val); 143 144 #endif /* EFSYS_OPT_PHY_PROPS */ 145 146 #endif /* EFSYS_OPT_PHY_TXC43128 */ 147 148 #ifdef __cplusplus 149 } 150 #endif 151 152 #endif /* _SYS_TXC43128_H */