The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/usb/net/if_urereg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 2015-2016 Kevin Lo <kevlo@FreeBSD.org>
    3  * All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions
    7  * are met:
    8  * 1. Redistributions of source code must retain the above copyright
    9  *    notice, this list of conditions and the following disclaimer.
   10  * 2. Redistributions in binary form must reproduce the above copyright
   11  *    notice, this list of conditions and the following disclaimer in the
   12  *    documentation and/or other materials provided with the distribution.
   13  *
   14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   15  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   22  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   23  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   24  * SUCH DAMAGE.
   25  *
   26  * $FreeBSD$
   27  */
   28 
   29 #ifndef _IF_UREREG_H_
   30 #define _IF_UREREG_H_
   31 
   32 #define URE_CONFIG_IDX          0       /* config number 1 */
   33 #define URE_IFACE_IDX           0
   34 
   35 #define URE_CTL_READ            0x01
   36 #define URE_CTL_WRITE           0x02
   37 
   38 #define URE_TIMEOUT             1000
   39 #define URE_PHY_TIMEOUT         2000
   40 
   41 #define URE_BYTE_EN_DWORD       0xff
   42 #define URE_BYTE_EN_WORD        0x33
   43 #define URE_BYTE_EN_BYTE        0x11
   44 #define URE_BYTE_EN_SIX_BYTES   0x3f
   45 
   46 #define URE_FRAMELEN(mtu)       ((mtu) + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN)
   47 #define URE_MAX_FRAMELEN        (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN)
   48 #define URE_JUMBO_FRAMELEN      (9*1024)
   49 #define URE_JUMBO_MTU           (URE_JUMBO_FRAMELEN - ETHER_HDR_LEN - ETHER_CRC_LEN - ETHER_VLAN_ENCAP_LEN)
   50 
   51 #define URE_PLA_IDR             0xc000
   52 #define URE_PLA_RCR             0xc010
   53 #define URE_PLA_RMS             0xc016
   54 #define URE_PLA_RXFIFO_CTRL0    0xc0a0
   55 #define URE_PLA_RXFIFO_CTRL1    0xc0a4
   56 #define URE_PLA_RXFIFO_CTRL2    0xc0a8
   57 #define URE_PLA_DMY_REG0        0xc0b0
   58 #define URE_PLA_FMC             0xc0b4
   59 #define URE_PLA_CFG_WOL         0xc0b6
   60 #define URE_PLA_TEREDO_CFG      0xc0bc
   61 #define URE_PLA_MAR0            0xcd00
   62 #define URE_PLA_MAR4            0xcd04
   63 #define URE_PLA_BACKUP          0xd000
   64 #define URE_PAL_BDC_CR          0xd1a0
   65 #define URE_PLA_TEREDO_TIMER    0xd2cc
   66 #define URE_PLA_REALWOW_TIMER   0xd2e8
   67 #define URE_PLA_SUSPEND_FLAG    0xd38a
   68 #define URE_PLA_INDICATE_FALG   0xd38c
   69 #define URE_PLA_EXTRA_STATUS    0xd398
   70 #define URE_PLA_LEDSEL          0xdd90
   71 #define URE_PLA_LED_FEATURE     0xdd92
   72 #define URE_PLA_PHYAR           0xde00
   73 #define URE_PLA_BOOT_CTRL       0xe004
   74 #define URE_PLA_GPHY_INTR_IMR   0xe022
   75 #define URE_PLA_EEE_CR          0xe040
   76 #define URE_PLA_EEEP_CR         0xe080
   77 #define URE_PLA_MAC_PWR_CTRL    0xe0c0
   78 #define URE_PLA_MAC_PWR_CTRL2   0xe0ca
   79 #define URE_PLA_MAC_PWR_CTRL3   0xe0cc
   80 #define URE_PLA_MAC_PWR_CTRL4   0xe0ce
   81 #define URE_PLA_WDT6_CTRL       0xe428
   82 #define URE_PLA_TCR0            0xe610
   83 #define URE_PLA_TCR1            0xe612
   84 #define URE_PLA_MTPS            0xe615
   85 #define URE_PLA_TXFIFO_CTRL     0xe618
   86 #define URE_PLA_RSTTALLY        0xe800
   87 #define URE_PLA_CR              0xe813
   88 #define URE_PLA_CRWECR          0xe81c
   89 #define URE_PLA_CONFIG34        0xe820
   90 #define URE_PLA_CONFIG5         0xe822
   91 #define URE_PLA_PHY_PWR         0xe84c
   92 #define URE_PLA_OOB_CTRL        0xe84f
   93 #define URE_PLA_CPCR            0xe854
   94 #define URE_PLA_MISC_0          0xe858
   95 #define URE_PLA_MISC_1          0xe85a
   96 #define URE_PLA_OCP_GPHY_BASE   0xe86c
   97 #define URE_PLA_TELLYCNT        0xe890
   98 #define URE_PLA_SFF_STS_7       0xe8de
   99 #define URE_PLA_PHYSTATUS       0xe908
  100 #define URE_GMEDIASTAT          0xe908
  101 #define URE_PLA_BP_BA           0xfc26
  102 #define URE_PLA_BP_0            0xfc28
  103 #define URE_PLA_BP_1            0xfc2a
  104 #define URE_PLA_BP_2            0xfc2c
  105 #define URE_PLA_BP_3            0xfc2e
  106 #define URE_PLA_BP_4            0xfc30
  107 #define URE_PLA_BP_5            0xfc32
  108 #define URE_PLA_BP_6            0xfc34
  109 #define URE_PLA_BP_7            0xfc36
  110 #define URE_PLA_BP_EN           0xfc38
  111 
  112 #define URE_USB_USB2PHY         0xb41e
  113 #define URE_USB_SSPHYLINK2      0xb428
  114 #define URE_USB_U2P3_CTRL       0xb460
  115 #define URE_USB_CSR_DUMMY1      0xb464
  116 #define URE_USB_CSR_DUMMY2      0xb466
  117 #define URE_USB_DEV_STAT        0xb808
  118 #define URE_USB_CONNECT_TIMER   0xcbf8
  119 #define URE_USB_MSC_TIMER       0xcbfc
  120 #define URE_USB_BURST_SIZE      0xcfc0
  121 #define URE_USB_LPM_CONFIG      0xcfd8
  122 #define URE_USB_FW_CTRL         0xd334  /* RTL8153B */
  123 #define URE_USB_USB_CTRL        0xd406
  124 #define URE_USB_PHY_CTRL        0xd408
  125 #define URE_USB_TX_AGG          0xd40a
  126 #define URE_USB_RX_BUF_TH       0xd40c
  127 #define URE_USB_FW_TASK         0xd4e8  /* RTL8153B */
  128 #define URE_USB_USB_TIMER       0xd428
  129 #define URE_USB_RX_EARLY_AGG    0xd42c
  130 #define URE_USB_RX_EARLY_SIZE   0xd42e
  131 #define URE_USB_PM_CTRL_STATUS  0xd432  /* RTL8153A */
  132 #define URE_USB_RX_EXTRA_AGG_TMR        0xd432 /* RTL8153B */
  133 #define URE_USB_TX_DMA          0xd434
  134 #define URE_USB_UPT_RXDMA_OWN   0xd437
  135 #define URE_USB_FC_TIMER                0xd340
  136 #define URE_USB_TOLERANCE       0xd490
  137 #define URE_USB_LPM_CTRL        0xd41a
  138 #define URE_USB_BMU_RESET       0xd4b0
  139 #define URE_USB_U1U2_TIMER      0xd4da
  140 #define URE_USB_UPS_CTRL        0xd800
  141 #define URE_USB_POWER_CUT       0xd80a
  142 #define URE_USB_MISC_0          0xd81a
  143 #define URE_USB_AFE_CTRL2       0xd824
  144 #define URE_USB_WDT11_CTRL      0xe43c
  145 #define URE_USB_BP_BA           URE_PLA_BP_BA
  146 #define URE_USB_BP_0            URE_PLA_BP_0
  147 #define URE_USB_BP_1            URE_PLA_BP_1
  148 #define URE_USB_BP_2            URE_PLA_BP_2
  149 #define URE_USB_BP_3            URE_PLA_BP_3
  150 #define URE_USB_BP_4            URE_PLA_BP_4
  151 #define URE_USB_BP_5            URE_PLA_BP_5
  152 #define URE_USB_BP_6            URE_PLA_BP_6
  153 #define URE_USB_BP_7            URE_PLA_BP_7
  154 #define URE_USB_BP_EN           URE_PLA_BP_EN   /* RTL8153A */
  155 #define URE_USB_BP_8            0xfc38          /* RTL8153B */
  156 #define URE_USB_BP_9            0xfc3a
  157 #define URE_USB_BP_10           0xfc3c
  158 #define URE_USB_BP_11           0xfc3e
  159 #define URE_USB_BP_12           0xfc40
  160 #define URE_USB_BP_13           0xfc42
  161 #define URE_USB_BP_14           0xfc44
  162 #define URE_USB_BP_15           0xfc46
  163 #define URE_USB_BP2_EN          0xfc48
  164 
  165 
  166 /* OCP Registers. */
  167 #define URE_OCP_ALDPS_CONFIG    0x2010
  168 #define URE_OCP_EEE_CONFIG1     0x2080
  169 #define URE_OCP_EEE_CONFIG2     0x2092
  170 #define URE_OCP_EEE_CONFIG3     0x2094
  171 #define URE_OCP_BASE_MII        0xa400
  172 #define URE_OCP_EEE_AR          0xa41a
  173 #define URE_OCP_EEE_DATA        0xa41c
  174 #define URE_OCP_PHY_STATUS      0xa420
  175 #define URE_OCP_POWER_CFG       0xa430
  176 #define URE_OCP_EEE_CFG         0xa432
  177 #define URE_OCP_SRAM_ADDR       0xa436
  178 #define URE_OCP_SRAM_DATA       0xa438
  179 #define URE_OCP_DOWN_SPEED      0xa442
  180 #define URE_OCP_EEE_ABLE        0xa5c4
  181 #define URE_OCP_EEE_ADV         0xa5d0
  182 #define URE_OCP_EEE_LPABLE      0xa5d2
  183 #define URE_OCP_PHY_STATE       0xa708
  184 #define URE_OCP_PHY_PATCH_STAT  0xb800
  185 #define URE_OCP_PHY_PATCH_CMD   0xb820
  186 #define URE_OCP_PHY_LOCK        0xb82e
  187 #define URE_OCP_ADC_CFG         0xbc06
  188 
  189 /* SRAM Register. */
  190 #define URE_SRAM_GREEN_CFG      0x8011
  191 #define URE_SRAM_LPF_CFG        0x8012
  192 #define URE_SRAM_GPHY_FW_VER    0x801e
  193 #define URE_SRAM_10M_AMP1       0x8080
  194 #define URE_SRAM_10M_AMP2       0x8082
  195 #define URE_SRAM_IMPEDANCE      0x8084
  196 #define URE_SRAM_PHY_LOCK       0xb82e
  197 
  198 /* PLA_RCR */
  199 #define URE_RCR_AAP             0x00000001
  200 #define URE_RCR_APM             0x00000002
  201 #define URE_RCR_AM              0x00000004
  202 #define URE_RCR_AB              0x00000008
  203 #define URE_RCR_AR              0x00000010      /* runt */
  204 #define URE_RCR_AER             0x00000020      /* error pkts */
  205 #define URE_RCR_ACPTFLOW        0x00000080
  206 #define URE_RCR_RXEMPTY         0x00020000
  207 #define URE_RCR_ACPT_ALL        \
  208         (URE_RCR_AAP | URE_RCR_APM | URE_RCR_AM | URE_RCR_AB)
  209 
  210 /* PLA_RXFIFO_CTRL0 */
  211 #define URE_RXFIFO_THR1_NORMAL  0x00080002
  212 #define URE_RXFIFO_THR1_OOB     0x01800003
  213 
  214 /* PLA_RXFIFO_CTRL1 */
  215 #define URE_RXFIFO_THR2_FULL    0x00000060
  216 #define URE_RXFIFO_THR2_HIGH    0x00000038
  217 #define URE_RXFIFO_THR2_OOB     0x0000004a
  218 #define URE_RXFIFO_THR2_NORMAL  0x00a0
  219 
  220 /* PLA_RXFIFO_CTRL2 */
  221 #define URE_RXFIFO_THR3_FULL    0x00000078
  222 #define URE_RXFIFO_THR3_HIGH    0x00000048
  223 #define URE_RXFIFO_THR3_OOB     0x0000005a
  224 #define URE_RXFIFO_THR3_NORMAL  0x0110
  225 
  226 /* PLA_TXFIFO_CTRL */
  227 #define URE_TXFIFO_THR_NORMAL   0x00400008
  228 #define URE_TXFIFO_THR_NORMAL2  0x01000008
  229 
  230 /* PLA_DMY_REG0 */
  231 #define URE_ECM_ALDPS           0x0002
  232 
  233 /* PLA_FMC */
  234 #define URE_FMC_FCR_MCU_EN      0x0001
  235 
  236 /* PLA_EEEP_CR */
  237 #define URE_EEEP_CR_EEEP_TX     0x0002
  238 
  239 /* PLA_WDT6_CTRL */
  240 #define URE_WDT6_SET_MODE       0x0010
  241 
  242 /* PLA_TCR0 */
  243 #define URE_TCR0_TX_EMPTY       0x0800
  244 #define URE_TCR0_AUTO_FIFO      0x0080
  245 
  246 /* PLA_TCR1 */
  247 #define URE_VERSION_MASK        0x7cf0
  248 
  249 /* PLA_MTPS */
  250 #define URE_MTPS_DEFAULT        96
  251 #define URE_MTPS_JUMBO          192
  252 
  253 /* PLA_RSTTALLY */
  254 #define URE_TALLY_RESET         0x0001
  255 
  256 /* PLA_CR */
  257 #define URE_CR_RST              0x10
  258 #define URE_CR_RE               0x08
  259 #define URE_CR_TE               0x04
  260 
  261 /* PLA_CRWECR */
  262 #define URE_CRWECR_NORAML       0x00
  263 #define URE_CRWECR_CONFIG       0xc0
  264 
  265 /* PLA_OOB_CTRL */
  266 #define URE_NOW_IS_OOB          0x80
  267 #define URE_TXFIFO_EMPTY        0x20
  268 #define URE_RXFIFO_EMPTY        0x10
  269 #define URE_LINK_LIST_READY     0x02
  270 #define URE_DIS_MCU_CLROOB      0x01
  271 #define URE_FIFO_EMPTY          (URE_TXFIFO_EMPTY | URE_RXFIFO_EMPTY)
  272 
  273 /* PLA_MISC_1 */
  274 #define URE_RXDY_GATED_EN       0x0008
  275 
  276 /* PLA_SFF_STS_7 */
  277 #define URE_RE_INIT_LL          0x8000
  278 #define URE_MCU_BORW_EN         0x4000
  279 
  280 /* PLA_CPCR */
  281 #define URE_CPCR_RX_VLAN        0x0040
  282 
  283 /* PLA_TEREDO_CFG */
  284 #define URE_TEREDO_SEL                  0x8000
  285 #define URE_TEREDO_WAKE_MASK            0x7f00
  286 #define URE_TEREDO_RS_EVENT_MASK        0x00fe
  287 #define URE_OOB_TEREDO_EN               0x0001
  288 
  289 /* PAL_BDC_CR */
  290 #define URE_ALDPS_PROXY_MODE    0x0001
  291 
  292 /* URE_PLA_CONFIG34 */
  293 #define URE_LINK_OFF_WAKE_EN    0x0008
  294 #define URE_LINK_ON_WAKE_EN     0x0010
  295 
  296 /* PLA_CONFIG5 */
  297 #define URE_LAN_WAKE_EN         0x0002
  298 
  299 /* PLA_LED_FEATURE */
  300 #define URE_LED_MODE_MASK       0x0700
  301 
  302 /* PLA_PHY_PWR */
  303 #define URE_TX_10M_IDLE_EN      0x0080
  304 #define URE_PFM_PWM_SWITCH      0x0040
  305 
  306 /* PLA_MAC_PWR_CTRL */
  307 #define URE_D3_CLK_GATED_EN     0x00004000
  308 #define URE_MCU_CLK_RATIO       0x07010f07
  309 #define URE_MCU_CLK_RATIO_MASK  0x0f0f0f0f
  310 #define URE_ALDPS_SPDWN_RATIO   0x0f87
  311 
  312 /* PLA_MAC_PWR_CTRL2 */
  313 #define URE_MAC_CLK_SPDWN_EN    0x8000
  314 #define URE_EEE_SPDWN_RATIO     0x8007
  315 
  316 /* PLA_MAC_PWR_CTRL3 */
  317 #define URE_PLA_MCU_SPDWN_EN    0x4000
  318 #define URE_PKT_AVAIL_SPDWN_EN  0x0100
  319 #define URE_SUSPEND_SPDWN_EN    0x0004
  320 #define URE_U1U2_SPDWN_EN       0x0002
  321 #define URE_L1_SPDWN_EN         0x0001
  322 
  323 /* PLA_MAC_PWR_CTRL4 */
  324 #define URE_PWRSAVE_SPDWN_EN    0x1000
  325 #define URE_RXDV_SPDWN_EN       0x0800
  326 #define URE_TX10MIDLE_EN        0x0100
  327 #define URE_TP100_SPDWN_EN      0x0020
  328 #define URE_TP500_SPDWN_EN      0x0010
  329 #define URE_TP1000_SPDWN_EN     0x0008
  330 #define URE_EEE_SPDWN_EN        0x0001
  331 
  332 /* PLA_GPHY_INTR_IMR */
  333 #define URE_GPHY_STS_MSK        0x0001
  334 #define URE_SPEED_DOWN_MSK      0x0002
  335 #define URE_SPDWN_RXDV_MSK      0x0004
  336 #define URE_SPDWN_LINKCHG_MSK   0x0008
  337 
  338 /* PLA_PHYAR */
  339 #define URE_PHYAR_PHYDATA       0x0000ffff
  340 #define URE_PHYAR_BUSY          0x80000000
  341 
  342 /* PLA_EEE_CR */
  343 #define URE_EEE_RX_EN           0x0001
  344 #define URE_EEE_TX_EN           0x0002
  345 
  346 /* PLA_BOOT_CTRL */
  347 #define URE_AUTOLOAD_DONE       0x0002
  348 
  349 /* PLA_SUSPEND_FLAG */
  350 #define URE_LINK_CHG_EVENT      0x01
  351 
  352 /* PLA_INDICATE_FALG */
  353 #define URE_UPCOMING_RUNTIME_D3 0x01
  354 
  355 /* PLA_EXTRA_STATUS */
  356 #define URE_POLL_LINK_CHG               0x0001
  357 #define URE_LINK_CHANGE_FLAG    0x0100
  358 #define URE_CUR_LINK_OK                 0x8000
  359 
  360 /* URE_PLA_PHYSTATUS */
  361 #define URE_PHYSTATUS_FDX       0x0001
  362 #define URE_PHYSTATUS_LINK      0x0002
  363 #define URE_PHYSTATUS_10MBPS    0x0004
  364 #define URE_PHYSTATUS_100MBPS   0x0008
  365 #define URE_PHYSTATUS_1000MBPS  0x0010
  366 #define URE_PHYSTATUS_500MBPS   0x0100
  367 #define URE_PHYSTATUS_1250MBPS  0x0200
  368 #define URE_PHYSTATUS_2500MBPS  0x0400
  369 
  370 /* USB_USB2PHY */
  371 #define URE_USB2PHY_SUSPEND     0x0001
  372 #define URE_USB2PHY_L1          0x0002
  373 
  374 /* USB_SSPHYLINK2 */
  375 #define URE_PWD_DN_SCALE_MASK   0x3ffe
  376 #define URE_PWD_DN_SCALE(x)     ((x) << 1)
  377 
  378 /* USB_CSR_DUMMY1 */
  379 #define URE_DYNAMIC_BURST       0x0001
  380 
  381 /* USB_CSR_DUMMY2 */
  382 #define URE_EP4_FULL_FC         0x0001
  383 
  384 /* USB_DEV_STAT */
  385 #define URE_STAT_SPEED_MASK     0x0006
  386 #define URE_STAT_SPEED_HIGH     0x0000
  387 #define URE_STAT_SPEED_FULL     0x0001
  388 
  389 /* URE_USB_LPM_CONFIG */
  390 #define URE_LPM_U1U2_EN         0x0001
  391 
  392 /* USB_TX_AGG */
  393 #define URE_TX_AGG_MAX_THRESHOLD        0x03
  394 
  395 /* USB_RX_BUF_TH */
  396 #define URE_RX_THR_SUPER        0x0c350180
  397 #define URE_RX_THR_HIGH         0x7a120180
  398 #define URE_RX_THR_SLOW         0xffff0180
  399 #define URE_RX_THR_B            0x00010001
  400 
  401 /* USB_TX_DMA */
  402 #define URE_TEST_MODE_DISABLE   0x00000001
  403 #define URE_TX_SIZE_ADJUST1     0x00000100
  404 
  405 /* USB_BMU_RESET */
  406 #define URE_BMU_RESET_EP_IN             0x01
  407 #define URE_BMU_RESET_EP_OUT    0x02
  408 
  409 /* USB_UPT_RXDMA_OWN */
  410 #define URE_OWN_UPDATE          0x01
  411 #define URE_OWN_CLEAR           0x02
  412 
  413 /* USB_FW_TASK */
  414 #define URE_FC_PATCH_TASK       0x0001
  415 
  416 /* USB_UPS_CTRL */
  417 #define URE_POWER_CUT           0x0100
  418 
  419 /* USB_PM_CTRL_STATUS */
  420 #define URE_RESUME_INDICATE     0x0001
  421 
  422 /* USB_FW_CTRL */
  423 #define URE_FLOW_CTRL_PATCH_OPT 0x01
  424 
  425 /* USB_FC_TIMER */
  426 #define URE_CTRL_TIMER_EN       0x8000
  427 
  428 /* USB_USB_CTRL */
  429 #define URE_RX_AGG_DISABLE      0x0010
  430 #define URE_RX_ZERO_EN          0x0080
  431 
  432 /* USB_U2P3_CTRL */
  433 #define URE_U2P3_ENABLE         0x0001
  434 
  435 /* USB_POWER_CUT */
  436 #define URE_PWR_EN                      0x0001
  437 #define URE_PHASE2_EN           0x0008
  438 #define URE_UPS_EN                      0x0010
  439 #define URE_USP_PREWAKE         0x0020
  440 
  441 /* USB_MISC_0 */
  442 #define URE_PCUT_STATUS         0x0001
  443 
  444 /* USB_RX_EARLY_TIMEOUT */
  445 #define URE_COALESCE_SUPER      85000U
  446 #define URE_COALESCE_HIGH       250000U
  447 #define URE_COALESCE_SLOW       524280U
  448 
  449 /* USB_WDT11_CTRL */
  450 #define URE_TIMER11_EN          0x0001
  451 
  452 /* USB_LPM_CTRL */
  453 #define URE_FIFO_EMPTY_1FB      0x30
  454 #define URE_LPM_TIMER_MASK      0x0c
  455 #define URE_LPM_TIMER_500MS     0x04
  456 #define URE_LPM_TIMER_500US     0x0c
  457 #define URE_ROK_EXIT_LPM        0x02
  458 
  459 /* USB_AFE_CTRL2 */
  460 #define URE_SEN_VAL_MASK        0xf800
  461 #define URE_SEN_VAL_NORMAL      0xa000
  462 #define URE_SEL_RXIDLE          0x0100
  463 
  464 /* OCP_ALDPS_CONFIG */
  465 #define URE_ENPWRSAVE           0x8000
  466 #define URE_ENPDNPS             0x0200
  467 #define URE_LINKENA             0x0100
  468 #define URE_DIS_SDSAVE          0x0010
  469 
  470 /* OCP_PHY_STATUS */
  471 #define URE_PHY_STAT_MASK       0x0007
  472 #define URE_PHY_STAT_EXT_INIT   2
  473 #define URE_PHY_STAT_LAN_ON     3
  474 #define URE_PHY_STAT_PWRDN      5
  475 
  476 /* OCP_POWER_CFG */
  477 #define URE_EEE_CLKDIV_EN       0x8000
  478 #define URE_EN_ALDPS            0x0004
  479 #define URE_EN_10M_PLLOFF       0x0001
  480 
  481 /* OCP_EEE_CFG */
  482 #define URE_CTAP_SHORT_EN       0x0040
  483 #define URE_EEE10_EN            0x0010
  484 
  485 /* OCP_DOWN_SPEED */
  486 #define URE_EN_10M_BGOFF        0x0080
  487 #define URE_EN_10M_CLKDIV       0x0800
  488 #define URE_EN_EEE_100          0x1000
  489 #define URE_EN_EEE_1000         0x2000
  490 #define URE_EN_EEE_CMODE        0x4000
  491 
  492 /* OCP_PHY_STATE */
  493 #define URE_TXDIS_STATE         0x01
  494 #define URE_ABD_STATE           0x02
  495 
  496 /* OCP_PHY_PATCH_STAT */
  497 #define URE_PATCH_READY         0x40
  498 
  499 /* OCP_PHY_PATCH_CMD */
  500 #define URE_PATCH_REQUEST       0x10
  501 
  502 /* OCP_PHY_LOCK */
  503 #define URE_PATCH_LOCK          0x01
  504 
  505 /* OCP_ADC_CFG */
  506 #define URE_CKADSEL_L           0x0100
  507 #define URE_ADC_EN              0x0080
  508 #define URE_EN_EMI_L            0x0040
  509 
  510 /* SRAM_GREEN_CFG */
  511 #define URE_GREEN_ETH_EN        0x8000
  512 
  513 /* SRAM_PHY_LOCK */
  514 #define URE_PHY_PATCH_LOCK              0x0001
  515 
  516 #define URE_ADV_2500TFDX        0x0080
  517 
  518 #define URE_MCU_TYPE_PLA        0x0100
  519 #define URE_MCU_TYPE_USB        0x0000
  520 
  521 #define GET_MII(sc)             uether_getmii(&(sc)->sc_ue)
  522 
  523 struct ure_intrpkt {
  524         uint8_t ure_tsr;
  525         uint8_t ure_rsr;
  526         uint8_t ure_gep_msr;
  527         uint8_t ure_waksr;
  528         uint8_t ure_txok_cnt;
  529         uint8_t ure_rxlost_cnt;
  530         uint8_t ure_crcerr_cnt;
  531         uint8_t ure_col_cnt;
  532 } __packed;
  533 
  534 #define URE_RXPKT_ALIGN         8
  535 struct ure_rxpkt {
  536         uint32_t ure_pktlen;
  537 #define URE_RXPKT_LEN_MASK      0x7fff
  538         uint32_t ure_csum;
  539 /* Linux driver has this in ure_misc, but my device has it in ure_csum */
  540 #define URE_RXPKT_VLAN_MASK     0xffff
  541 #define URE_RXPKT_RX_VLAN_TAG   (1 << 16)
  542 #define URE_RXPKT_IPV4_CS       (1 << 19)
  543 #define URE_RXPKT_IPV6_CS       (1 << 20)
  544 #define URE_RXPKT_TCP_CS        (1 << 22)
  545 #define URE_RXPKT_UDP_CS        (1 << 23)
  546         uint32_t ure_misc;
  547 #define URE_RXPKT_TCP_F         (1 << 21)
  548 #define URE_RXPKT_UDP_F         (1 << 22)
  549 #define URE_RXPKT_IP_F          (1 << 23)
  550         uint32_t ure_rsvd2;
  551         uint32_t ure_rsvd3;
  552         uint32_t ure_rsvd4;
  553 } __packed;
  554 
  555 #define URE_TXPKT_ALIGN         4
  556 struct ure_txpkt {
  557         uint32_t ure_pktlen;
  558 #define URE_TKPKT_TX_FS         (1 << 31)
  559 #define URE_TKPKT_TX_LS         (1 << 30)
  560 #define URE_TXPKT_LEN_MASK      0xffff
  561         uint32_t ure_csum;
  562 #define URE_L4_OFFSET_MAX       0x7ff
  563 #define URE_L4_OFFSET_SHIFT     17
  564 #define URE_TXPKT_VLAN_MASK     0xffff
  565 #define URE_TXPKT_VLAN          (1 << 16)
  566 #define URE_TXPKT_IPV6_CS       (1 << 28)
  567 #define URE_TXPKT_IPV4_CS       (1 << 29)
  568 #define URE_TXPKT_TCP_CS        (1 << 30)
  569 #define URE_TXPKT_UDP_CS        (1 << 31)
  570 /* Lower 12 bits are the VLAN tag */
  571 } __packed;
  572 
  573 #define URE_MAX_TX      4
  574 #define URE_MAX_RX      4
  575 
  576 #define URE_TX_BUFSZ            16384
  577 #define URE_8152_RX_BUFSZ       (16 * 1024)
  578 #define URE_8153_RX_BUFSZ       (32 * 1024)
  579 #define URE_8156_RX_BUFSZ       (48 * 1024)
  580 
  581 
  582 struct ure_softc {
  583         struct usb_ether        sc_ue;
  584         struct ifmedia          sc_ifmedia;
  585         struct mtx              sc_mtx;
  586         struct usb_xfer         *sc_rx_xfer[URE_MAX_RX];
  587         struct usb_xfer         *sc_tx_xfer[URE_MAX_TX];
  588 
  589         int                     sc_rxbufsz;
  590         int                     sc_rxstarted;
  591 
  592         int                     sc_phyno;
  593 
  594         u_int                   sc_flags;
  595 #define URE_FLAG_LINK           0x0001
  596 #define URE_FLAG_8152           0x0100  /* RTL8152 */
  597 #define URE_FLAG_8153           0x0200  /* RTL8153 */
  598 #define URE_FLAG_8153B          0x0400  /* RTL8153B */
  599 #define URE_FLAG_8156           0x0800  /* RTL8156 */
  600 #define URE_FLAG_8156B          0x1000  /* RTL8156B */
  601 
  602         u_int                   sc_chip;
  603         u_int                   sc_ver;
  604 #define URE_CHIP_VER_4C00       0x0001
  605 #define URE_CHIP_VER_4C10       0x0002
  606 #define URE_CHIP_VER_5C00       0x0004
  607 #define URE_CHIP_VER_5C10       0x0008
  608 #define URE_CHIP_VER_5C20       0x0010
  609 #define URE_CHIP_VER_5C30       0x0020
  610 #define URE_CHIP_VER_6000       0x0040
  611 #define URE_CHIP_VER_6010       0x0080
  612 #define URE_CHIP_VER_7020       0x0100
  613 #define URE_CHIP_VER_7030       0x0200
  614 #define URE_CHIP_VER_7400       0x0400
  615 #define URE_CHIP_VER_7410       0x0800
  616 };
  617 
  618 #define URE_LOCK(_sc)           mtx_lock(&(_sc)->sc_mtx)
  619 #define URE_UNLOCK(_sc)         mtx_unlock(&(_sc)->sc_mtx)
  620 #define URE_LOCK_ASSERT(_sc, t) mtx_assert(&(_sc)->sc_mtx, t)
  621 
  622 #endif          /* _IF_UREREG_H_ */

Cache object: c52629e5ba54264df4f292b12d70e874


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.