186d7f5d3SJohn Marino /* 286d7f5d3SJohn Marino * Copyright (c) 2007 The DragonFly Project. All rights reserved. 386d7f5d3SJohn Marino * 486d7f5d3SJohn Marino * This code is derived from software contributed to The DragonFly Project 586d7f5d3SJohn Marino * by Sepherosa Ziehau <sepherosa@gmail.com> 686d7f5d3SJohn Marino * 786d7f5d3SJohn Marino * Redistribution and use in source and binary forms, with or without 886d7f5d3SJohn Marino * modification, are permitted provided that the following conditions 986d7f5d3SJohn Marino * are met: 1086d7f5d3SJohn Marino * 1186d7f5d3SJohn Marino * 1. Redistributions of source code must retain the above copyright 1286d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer. 1386d7f5d3SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright 1486d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer in 1586d7f5d3SJohn Marino * the documentation and/or other materials provided with the 1686d7f5d3SJohn Marino * distribution. 1786d7f5d3SJohn Marino * 3. Neither the name of The DragonFly Project nor the names of its 1886d7f5d3SJohn Marino * contributors may be used to endorse or promote products derived 1986d7f5d3SJohn Marino * from this software without specific, prior written permission. 2086d7f5d3SJohn Marino * 2186d7f5d3SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2286d7f5d3SJohn Marino * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2386d7f5d3SJohn Marino * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 2486d7f5d3SJohn Marino * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 2586d7f5d3SJohn Marino * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 2686d7f5d3SJohn Marino * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 2786d7f5d3SJohn Marino * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 2886d7f5d3SJohn Marino * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 2986d7f5d3SJohn Marino * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 3086d7f5d3SJohn Marino * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 3186d7f5d3SJohn Marino * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3286d7f5d3SJohn Marino * SUCH DAMAGE. 3386d7f5d3SJohn Marino * 3486d7f5d3SJohn Marino * $DragonFly: src/sys/dev/netif/et/if_etreg.h,v 1.4 2008/10/18 11:36:37 sephe Exp $ 3586d7f5d3SJohn Marino */ 3686d7f5d3SJohn Marino 3786d7f5d3SJohn Marino #ifndef _IF_ETREG_H 3886d7f5d3SJohn Marino #define _IF_ETREG_H 3986d7f5d3SJohn Marino 4086d7f5d3SJohn Marino #define ET_MEM_TXSIZE_EX 182 4186d7f5d3SJohn Marino #define ET_MEM_RXSIZE_MIN 608 4286d7f5d3SJohn Marino #define ET_MEM_RXSIZE_DEFAULT 11216 4386d7f5d3SJohn Marino #define ET_MEM_SIZE 16384 4486d7f5d3SJohn Marino #define ET_MEM_UNIT 16 4586d7f5d3SJohn Marino 4686d7f5d3SJohn Marino /* 4786d7f5d3SJohn Marino * PCI registers 4886d7f5d3SJohn Marino * 4986d7f5d3SJohn Marino * ET_PCIV_ACK_LATENCY_{128,256} are from 5086d7f5d3SJohn Marino * PCI EXPRESS BASE SPECIFICATION, REV. 1.0a, Table 3-5 5186d7f5d3SJohn Marino * 5286d7f5d3SJohn Marino * ET_PCIV_REPLAY_TIMER_{128,256} are from 5386d7f5d3SJohn Marino * PCI EXPRESS BASE SPECIFICATION, REV. 1.0a, Table 3-4 5486d7f5d3SJohn Marino */ 5586d7f5d3SJohn Marino #define ET_PCIR_BAR PCIR_BAR(0) 5686d7f5d3SJohn Marino 5786d7f5d3SJohn Marino #define ET_PCIR_DEVICE_CAPS 0x4c 5886d7f5d3SJohn Marino #define ET_PCIM_DEVICE_CAPS_MAX_PLSZ 0x7 /* Max playload size */ 5986d7f5d3SJohn Marino #define ET_PCIV_DEVICE_CAPS_PLSZ_128 0x0 6086d7f5d3SJohn Marino #define ET_PCIV_DEVICE_CAPS_PLSZ_256 0x1 6186d7f5d3SJohn Marino 6286d7f5d3SJohn Marino #define ET_PCIR_DEVICE_CTRL 0x50 6386d7f5d3SJohn Marino #define ET_PCIM_DEVICE_CTRL_MAX_RRSZ 0x7000 /* Max read request size */ 6486d7f5d3SJohn Marino #define ET_PCIV_DEVICE_CTRL_RRSZ_2K 0x4000 6586d7f5d3SJohn Marino 6686d7f5d3SJohn Marino #define ET_PCIR_MAC_ADDR0 0xa4 6786d7f5d3SJohn Marino #define ET_PCIR_MAC_ADDR1 0xa8 6886d7f5d3SJohn Marino 6986d7f5d3SJohn Marino #define ET_PCIR_EEPROM_STATUS 0xb2 /* XXX undocumented */ 7086d7f5d3SJohn Marino #define ET_PCIM_EEPROM_STATUS_ERROR 0x4c 7186d7f5d3SJohn Marino 7286d7f5d3SJohn Marino #define ET_PCIR_ACK_LATENCY 0xc0 7386d7f5d3SJohn Marino #define ET_PCIV_ACK_LATENCY_128 237 7486d7f5d3SJohn Marino #define ET_PCIV_ACK_LATENCY_256 416 7586d7f5d3SJohn Marino 7686d7f5d3SJohn Marino #define ET_PCIR_REPLAY_TIMER 0xc2 7786d7f5d3SJohn Marino #define ET_REPLAY_TIMER_RX_L0S_ADJ 250 /* XXX infered from default */ 7886d7f5d3SJohn Marino #define ET_PCIV_REPLAY_TIMER_128 (711 + ET_REPLAY_TIMER_RX_L0S_ADJ) 7986d7f5d3SJohn Marino #define ET_PCIV_REPLAY_TIMER_256 (1248 + ET_REPLAY_TIMER_RX_L0S_ADJ) 8086d7f5d3SJohn Marino 8186d7f5d3SJohn Marino #define ET_PCIR_L0S_L1_LATENCY 0xcf 8286d7f5d3SJohn Marino #define ET_PCIM_L0S_LATENCY __BITS(2, 0) 8386d7f5d3SJohn Marino #define ET_PCIM_L1_LATENCY __BITS(5, 3) 8486d7f5d3SJohn Marino #define ET_PCIV_L0S_LATENCY(l) __SHIFTIN((l) - 1, ET_PCIM_L0S_LATENCY) 8586d7f5d3SJohn Marino #define ET_PCIV_L1_LATENCY(l) __SHIFTIN((l) - 1, ET_PCIM_L1_LATENCY) 8686d7f5d3SJohn Marino 8786d7f5d3SJohn Marino /* 8886d7f5d3SJohn Marino * CSR 8986d7f5d3SJohn Marino */ 9086d7f5d3SJohn Marino #define ET_TXQUEUE_START 0x0000 9186d7f5d3SJohn Marino #define ET_TXQUEUE_END 0x0004 9286d7f5d3SJohn Marino #define ET_RXQUEUE_START 0x0008 9386d7f5d3SJohn Marino #define ET_RXQUEUE_END 0x000c 9486d7f5d3SJohn Marino #define ET_QUEUE_ADDR(addr) (((addr) / ET_MEM_UNIT) - 1) 9586d7f5d3SJohn Marino #define ET_QUEUE_ADDR_START 0 9686d7f5d3SJohn Marino #define ET_QUEUE_ADDR_END ET_QUEUE_ADDR(ET_MEM_SIZE) 9786d7f5d3SJohn Marino 9886d7f5d3SJohn Marino #define ET_PM 0x0010 9986d7f5d3SJohn Marino #define ET_PM_SYSCLK_GATE __BIT(3) 10086d7f5d3SJohn Marino #define ET_PM_TXCLK_GATE __BIT(4) 10186d7f5d3SJohn Marino #define ET_PM_RXCLK_GATE __BIT(5) 10286d7f5d3SJohn Marino 10386d7f5d3SJohn Marino #define ET_INTR_STATUS 0x0018 10486d7f5d3SJohn Marino #define ET_INTR_MASK 0x001c 10586d7f5d3SJohn Marino 10686d7f5d3SJohn Marino #define ET_SWRST 0x0028 10786d7f5d3SJohn Marino #define ET_SWRST_TXDMA __BIT(0) 10886d7f5d3SJohn Marino #define ET_SWRST_RXDMA __BIT(1) 10986d7f5d3SJohn Marino #define ET_SWRST_TXMAC __BIT(2) 11086d7f5d3SJohn Marino #define ET_SWRST_RXMAC __BIT(3) 11186d7f5d3SJohn Marino #define ET_SWRST_MAC __BIT(4) 11286d7f5d3SJohn Marino #define ET_SWRST_MAC_STAT __BIT(5) 11386d7f5d3SJohn Marino #define ET_SWRST_MMC __BIT(6) 11486d7f5d3SJohn Marino #define ET_SWRST_SELFCLR_DISABLE __BIT(31) 11586d7f5d3SJohn Marino 11686d7f5d3SJohn Marino #define ET_MSI_CFG 0x0030 11786d7f5d3SJohn Marino 11886d7f5d3SJohn Marino #define ET_LOOPBACK 0x0034 11986d7f5d3SJohn Marino 12086d7f5d3SJohn Marino #define ET_TIMER 0x0038 12186d7f5d3SJohn Marino 12286d7f5d3SJohn Marino #define ET_TXDMA_CTRL 0x1000 12386d7f5d3SJohn Marino #define ET_TXDMA_CTRL_HALT __BIT(0) 12486d7f5d3SJohn Marino #define ET_TXDMA_CTRL_CACHE_THR __BITS(7, 4) 12586d7f5d3SJohn Marino #define ET_TXDMA_CTRL_SINGLE_EPKT __BIT(8) /* ??? */ 12686d7f5d3SJohn Marino 12786d7f5d3SJohn Marino #define ET_TX_RING_HI 0x1004 12886d7f5d3SJohn Marino #define ET_TX_RING_LO 0x1008 12986d7f5d3SJohn Marino #define ET_TX_RING_CNT 0x100c 13086d7f5d3SJohn Marino 13186d7f5d3SJohn Marino #define ET_TX_STATUS_HI 0x101c 13286d7f5d3SJohn Marino #define ET_TX_STATUS_LO 0x1020 13386d7f5d3SJohn Marino 13486d7f5d3SJohn Marino #define ET_TX_READY_POS 0x1024 13586d7f5d3SJohn Marino #define ET_TX_READY_POS_INDEX __BITS(9, 0) 13686d7f5d3SJohn Marino #define ET_TX_READY_POS_WRAP __BIT(10) 13786d7f5d3SJohn Marino 13886d7f5d3SJohn Marino #define ET_TX_DONE_POS 0x1060 13986d7f5d3SJohn Marino #define ET_TX_DONE_POS_INDEX __BITS(9, 0) 14086d7f5d3SJohn Marino #define ET_TX_DONE_POS_WRAP __BIT(10) 14186d7f5d3SJohn Marino 14286d7f5d3SJohn Marino #define ET_RXDMA_CTRL 0x2000 14386d7f5d3SJohn Marino #define ET_RXDMA_CTRL_HALT __BIT(0) 14486d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING0_SIZE __BITS(9, 8) 14586d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING0_128 0 /* 127 */ 14686d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING0_256 1 /* 255 */ 14786d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING0_512 2 /* 511 */ 14886d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING0_1024 3 /* 1023 */ 14986d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING0_ENABLE __BIT(10) 15086d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING1_SIZE __BITS(12, 11) 15186d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING1_2048 0 /* 2047 */ 15286d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING1_4096 1 /* 4095 */ 15386d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING1_8192 2 /* 8191 */ 15486d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING1_16384 3 /* 16383 (9022?) */ 15586d7f5d3SJohn Marino #define ET_RXDMA_CTRL_RING1_ENABLE __BIT(13) 15686d7f5d3SJohn Marino #define ET_RXDMA_CTRL_HALTED __BIT(17) 15786d7f5d3SJohn Marino 15886d7f5d3SJohn Marino #define ET_RX_STATUS_LO 0x2004 15986d7f5d3SJohn Marino #define ET_RX_STATUS_HI 0x2008 16086d7f5d3SJohn Marino 16186d7f5d3SJohn Marino #define ET_RX_INTR_NPKTS 0x200c 16286d7f5d3SJohn Marino #define ET_RX_INTR_DELAY 0x2010 16386d7f5d3SJohn Marino 16486d7f5d3SJohn Marino #define ET_RXSTAT_LO 0x2020 16586d7f5d3SJohn Marino #define ET_RXSTAT_HI 0x2024 16686d7f5d3SJohn Marino #define ET_RXSTAT_CNT 0x2028 16786d7f5d3SJohn Marino 16886d7f5d3SJohn Marino #define ET_RXSTAT_POS 0x2030 16986d7f5d3SJohn Marino #define ET_RXSTAT_POS_INDEX __BITS(11, 0) 17086d7f5d3SJohn Marino #define ET_RXSTAT_POS_WRAP __BIT(12) 17186d7f5d3SJohn Marino 17286d7f5d3SJohn Marino #define ET_RXSTAT_MINCNT 0x2038 17386d7f5d3SJohn Marino 17486d7f5d3SJohn Marino #define ET_RX_RING0_LO 0x203c 17586d7f5d3SJohn Marino #define ET_RX_RING0_HI 0x2040 17686d7f5d3SJohn Marino #define ET_RX_RING0_CNT 0x2044 17786d7f5d3SJohn Marino 17886d7f5d3SJohn Marino #define ET_RX_RING0_POS 0x204c 17986d7f5d3SJohn Marino #define ET_RX_RING0_POS_INDEX __BITS(9, 0) 18086d7f5d3SJohn Marino #define ET_RX_RING0_POS_WRAP __BIT(10) 18186d7f5d3SJohn Marino 18286d7f5d3SJohn Marino #define ET_RX_RING0_MINCNT 0x2054 18386d7f5d3SJohn Marino 18486d7f5d3SJohn Marino #define ET_RX_RING1_LO 0x2058 18586d7f5d3SJohn Marino #define ET_RX_RING1_HI 0x205c 18686d7f5d3SJohn Marino #define ET_RX_RING1_CNT 0x2060 18786d7f5d3SJohn Marino 18886d7f5d3SJohn Marino #define ET_RX_RING1_POS 0x2068 18986d7f5d3SJohn Marino #define ET_RX_RING1_POS_INDEX __BITS(9, 0) 19086d7f5d3SJohn Marino #define ET_RX_RING1_POS_WRAP __BIT(10) 19186d7f5d3SJohn Marino 19286d7f5d3SJohn Marino #define ET_RX_RING1_MINCNT 0x2070 19386d7f5d3SJohn Marino 19486d7f5d3SJohn Marino #define ET_TXMAC_CTRL 0x3000 19586d7f5d3SJohn Marino #define ET_TXMAC_CTRL_ENABLE __BIT(0) 19686d7f5d3SJohn Marino #define ET_TXMAC_CTRL_FC_DISABLE __BIT(3) 19786d7f5d3SJohn Marino 19886d7f5d3SJohn Marino #define ET_TXMAC_FLOWCTRL 0x3010 19986d7f5d3SJohn Marino 20086d7f5d3SJohn Marino #define ET_RXMAC_CTRL 0x4000 20186d7f5d3SJohn Marino #define ET_RXMAC_CTRL_ENABLE __BIT(0) 20286d7f5d3SJohn Marino #define ET_RXMAC_CTRL_NO_PKTFILT __BIT(2) 20386d7f5d3SJohn Marino #define ET_RXMAC_CTRL_WOL_DISABLE __BIT(3) 20486d7f5d3SJohn Marino 20586d7f5d3SJohn Marino #define ET_WOL_CRC 0x4004 20686d7f5d3SJohn Marino #define ET_WOL_SA_LO 0x4010 20786d7f5d3SJohn Marino #define ET_WOL_SA_HI 0x4014 20886d7f5d3SJohn Marino #define ET_WOL_MASK 0x4018 20986d7f5d3SJohn Marino 21086d7f5d3SJohn Marino #define ET_UCAST_FILTADDR1 0x4068 21186d7f5d3SJohn Marino #define ET_UCAST_FILTADDR2 0x406c 21286d7f5d3SJohn Marino #define ET_UCAST_FILTADDR3 0x4070 21386d7f5d3SJohn Marino 21486d7f5d3SJohn Marino #define ET_MULTI_HASH 0x4074 21586d7f5d3SJohn Marino 21686d7f5d3SJohn Marino #define ET_PKTFILT 0x4084 21786d7f5d3SJohn Marino #define ET_PKTFILT_BCAST __BIT(0) 21886d7f5d3SJohn Marino #define ET_PKTFILT_MCAST __BIT(1) 21986d7f5d3SJohn Marino #define ET_PKTFILT_UCAST __BIT(2) 22086d7f5d3SJohn Marino #define ET_PKTFILT_FRAG __BIT(3) 22186d7f5d3SJohn Marino #define ET_PKTFILT_MINLEN __BITS(22, 16) 22286d7f5d3SJohn Marino 22386d7f5d3SJohn Marino #define ET_RXMAC_MC_SEGSZ 0x4088 22486d7f5d3SJohn Marino #define ET_RXMAC_MC_SEGSZ_ENABLE __BIT(0) 22586d7f5d3SJohn Marino #define ET_RXMAC_MC_SEGSZ_FC __BIT(1) 22686d7f5d3SJohn Marino #define ET_RXMAC_MC_SEGSZ_MAX __BITS(9, 2) 22786d7f5d3SJohn Marino #define ET_RXMAC_SEGSZ(segsz) ((segsz) / ET_MEM_UNIT) 22886d7f5d3SJohn Marino #define ET_RXMAC_CUT_THRU_FRMLEN 6122 22986d7f5d3SJohn Marino 23086d7f5d3SJohn Marino #define ET_RXMAC_MC_WATERMARK 0x408c 23186d7f5d3SJohn Marino #define ET_RXMAC_SPACE_AVL 0x4094 23286d7f5d3SJohn Marino 23386d7f5d3SJohn Marino #define ET_RXMAC_MGT 0x4098 23486d7f5d3SJohn Marino #define ET_RXMAC_MGT_PASS_ECRC __BIT(4) 23586d7f5d3SJohn Marino #define ET_RXMAC_MGT_PASS_ELEN __BIT(5) 23686d7f5d3SJohn Marino #define ET_RXMAC_MGT_PASS_ETRUNC __BIT(16) 23786d7f5d3SJohn Marino #define ET_RXMAC_MGT_CHECK_PKT __BIT(17) 23886d7f5d3SJohn Marino 23986d7f5d3SJohn Marino #define ET_MAC_CFG1 0x5000 24086d7f5d3SJohn Marino #define ET_MAC_CFG1_TXEN __BIT(0) 24186d7f5d3SJohn Marino #define ET_MAC_CFG1_SYNC_TXEN __BIT(1) 24286d7f5d3SJohn Marino #define ET_MAC_CFG1_RXEN __BIT(2) 24386d7f5d3SJohn Marino #define ET_MAC_CFG1_SYNC_RXEN __BIT(3) 24486d7f5d3SJohn Marino #define ET_MAC_CFG1_TXFLOW __BIT(4) 24586d7f5d3SJohn Marino #define ET_MAC_CFG1_RXFLOW __BIT(5) 24686d7f5d3SJohn Marino #define ET_MAC_CFG1_LOOPBACK __BIT(8) 24786d7f5d3SJohn Marino #define ET_MAC_CFG1_RST_TXFUNC __BIT(16) 24886d7f5d3SJohn Marino #define ET_MAC_CFG1_RST_RXFUNC __BIT(17) 24986d7f5d3SJohn Marino #define ET_MAC_CFG1_RST_TXMC __BIT(18) 25086d7f5d3SJohn Marino #define ET_MAC_CFG1_RST_RXMC __BIT(19) 25186d7f5d3SJohn Marino #define ET_MAC_CFG1_SIM_RST __BIT(30) 25286d7f5d3SJohn Marino #define ET_MAC_CFG1_SOFT_RST __BIT(31) 25386d7f5d3SJohn Marino 25486d7f5d3SJohn Marino #define ET_MAC_CFG2 0x5004 25586d7f5d3SJohn Marino #define ET_MAC_CFG2_FDX __BIT(0) 25686d7f5d3SJohn Marino #define ET_MAC_CFG2_CRC __BIT(1) 25786d7f5d3SJohn Marino #define ET_MAC_CFG2_PADCRC __BIT(2) 25886d7f5d3SJohn Marino #define ET_MAC_CFG2_LENCHK __BIT(4) 25986d7f5d3SJohn Marino #define ET_MAC_CFG2_BIGFRM __BIT(5) 26086d7f5d3SJohn Marino #define ET_MAC_CFG2_MODE_MII __BIT(8) 26186d7f5d3SJohn Marino #define ET_MAC_CFG2_MODE_GMII __BIT(9) 26286d7f5d3SJohn Marino #define ET_MAC_CFG2_PREAMBLE_LEN __BITS(15, 12) 26386d7f5d3SJohn Marino 26486d7f5d3SJohn Marino #define ET_IPG 0x5008 26586d7f5d3SJohn Marino #define ET_IPG_B2B __BITS(6, 0) 26686d7f5d3SJohn Marino #define ET_IPG_MINIFG __BITS(15, 8) 26786d7f5d3SJohn Marino #define ET_IPG_NONB2B_2 __BITS(22, 16) 26886d7f5d3SJohn Marino #define ET_IPG_NONB2B_1 __BITS(30, 24) 26986d7f5d3SJohn Marino 27086d7f5d3SJohn Marino #define ET_MAC_HDX 0x500c 27186d7f5d3SJohn Marino #define ET_MAC_HDX_COLLWIN __BITS(9, 0) 27286d7f5d3SJohn Marino #define ET_MAC_HDX_REXMIT_MAX __BITS(15, 12) 27386d7f5d3SJohn Marino #define ET_MAC_HDX_EXC_DEFER __BIT(16) 27486d7f5d3SJohn Marino #define ET_MAC_HDX_NOBACKOFF __BIT(17) 27586d7f5d3SJohn Marino #define ET_MAC_HDX_BP_NOBACKOFF __BIT(18) 27686d7f5d3SJohn Marino #define ET_MAC_HDX_ALT_BEB __BIT(19) 27786d7f5d3SJohn Marino #define ET_MAC_HDX_ALT_BEB_TRUNC __BITS(23, 20) 27886d7f5d3SJohn Marino 27986d7f5d3SJohn Marino #define ET_MAX_FRMLEN 0x5010 28086d7f5d3SJohn Marino 28186d7f5d3SJohn Marino #define ET_MII_CFG 0x5020 28286d7f5d3SJohn Marino #define ET_MII_CFG_CLKRST __BITS(2, 0) 28386d7f5d3SJohn Marino #define ET_MII_CFG_PREAMBLE_SUP __BIT(4) 28486d7f5d3SJohn Marino #define ET_MII_CFG_SCAN_AUTOINC __BIT(5) 28586d7f5d3SJohn Marino #define ET_MII_CFG_RST __BIT(31) 28686d7f5d3SJohn Marino 28786d7f5d3SJohn Marino #define ET_MII_CMD 0x5024 28886d7f5d3SJohn Marino #define ET_MII_CMD_READ __BIT(0) 28986d7f5d3SJohn Marino 29086d7f5d3SJohn Marino #define ET_MII_ADDR 0x5028 29186d7f5d3SJohn Marino #define ET_MII_ADDR_REG __BITS(4, 0) 29286d7f5d3SJohn Marino #define ET_MII_ADDR_PHY __BITS(12, 8) 29386d7f5d3SJohn Marino 29486d7f5d3SJohn Marino #define ET_MII_CTRL 0x502c 29586d7f5d3SJohn Marino #define ET_MII_CTRL_VALUE __BITS(15, 0) 29686d7f5d3SJohn Marino 29786d7f5d3SJohn Marino #define ET_MII_STAT 0x5030 29886d7f5d3SJohn Marino #define ET_MII_STAT_VALUE __BITS(15, 0) 29986d7f5d3SJohn Marino 30086d7f5d3SJohn Marino #define ET_MII_IND 0x5034 30186d7f5d3SJohn Marino #define ET_MII_IND_BUSY __BIT(0) 30286d7f5d3SJohn Marino #define ET_MII_IND_INVALID __BIT(2) 30386d7f5d3SJohn Marino 30486d7f5d3SJohn Marino #define ET_MAC_CTRL 0x5038 30586d7f5d3SJohn Marino #define ET_MAC_CTRL_MODE_MII __BIT(24) 30686d7f5d3SJohn Marino #define ET_MAC_CTRL_LHDX __BIT(25) 30786d7f5d3SJohn Marino #define ET_MAC_CTRL_GHDX __BIT(26) 30886d7f5d3SJohn Marino 30986d7f5d3SJohn Marino #define ET_MAC_ADDR1 0x5040 31086d7f5d3SJohn Marino #define ET_MAC_ADDR2 0x5044 31186d7f5d3SJohn Marino 31286d7f5d3SJohn Marino #define ET_MMC_CTRL 0x7000 31386d7f5d3SJohn Marino #define ET_MMC_CTRL_ENABLE __BIT(0) 31486d7f5d3SJohn Marino #define ET_MMC_CTRL_ARB_DISABLE __BIT(1) 31586d7f5d3SJohn Marino #define ET_MMC_CTRL_RXMAC_DISABLE __BIT(2) 31686d7f5d3SJohn Marino #define ET_MMC_CTRL_TXMAC_DISABLE __BIT(3) 31786d7f5d3SJohn Marino #define ET_MMC_CTRL_TXDMA_DISABLE __BIT(4) 31886d7f5d3SJohn Marino #define ET_MMC_CTRL_RXDMA_DISABLE __BIT(5) 31986d7f5d3SJohn Marino #define ET_MMC_CTRL_FORCE_CE __BIT(6) 32086d7f5d3SJohn Marino 32186d7f5d3SJohn Marino /* 32286d7f5d3SJohn Marino * Interrupts 32386d7f5d3SJohn Marino */ 32486d7f5d3SJohn Marino #define ET_INTR_TXEOF __BIT(3) 32586d7f5d3SJohn Marino #define ET_INTR_TXDMA_ERROR __BIT(4) 32686d7f5d3SJohn Marino #define ET_INTR_RXEOF __BIT(5) 32786d7f5d3SJohn Marino #define ET_INTR_RXRING0_LOW __BIT(6) 32886d7f5d3SJohn Marino #define ET_INTR_RXRING1_LOW __BIT(7) 32986d7f5d3SJohn Marino #define ET_INTR_RXSTAT_LOW __BIT(8) 33086d7f5d3SJohn Marino #define ET_INTR_RXDMA_ERROR __BIT(9) 33186d7f5d3SJohn Marino #define ET_INTR_TIMER __BIT(14) 33286d7f5d3SJohn Marino #define ET_INTR_WOL __BIT(15) 33386d7f5d3SJohn Marino #define ET_INTR_PHY __BIT(16) 33486d7f5d3SJohn Marino #define ET_INTR_TXMAC __BIT(17) 33586d7f5d3SJohn Marino #define ET_INTR_RXMAC __BIT(18) 33686d7f5d3SJohn Marino #define ET_INTR_MAC_STATS __BIT(19) 33786d7f5d3SJohn Marino #define ET_INTR_SLAVE_TO __BIT(20) 33886d7f5d3SJohn Marino 33986d7f5d3SJohn Marino #define ET_INTRS (ET_INTR_TXEOF | \ 34086d7f5d3SJohn Marino ET_INTR_RXEOF | \ 34186d7f5d3SJohn Marino ET_INTR_TIMER) 34286d7f5d3SJohn Marino 34386d7f5d3SJohn Marino /* 34486d7f5d3SJohn Marino * RX ring position uses same layout 34586d7f5d3SJohn Marino */ 34686d7f5d3SJohn Marino #define ET_RX_RING_POS_INDEX __BITS(9, 0) 34786d7f5d3SJohn Marino #define ET_RX_RING_POS_WRAP __BIT(10) 34886d7f5d3SJohn Marino 34986d7f5d3SJohn Marino #endif /* !_IF_ETREG_H */ 350