1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 28c7de408SJeff Kirsher /* sis900.h Definitions for SiS ethernet controllers including 7014/7016 and 900 38c7de408SJeff Kirsher * Copyright 1999 Silicon Integrated System Corporation 48c7de408SJeff Kirsher * References: 58c7de408SJeff Kirsher * SiS 7016 Fast Ethernet PCI Bus 10/100 Mbps LAN Controller with OnNow Support, 68c7de408SJeff Kirsher * preliminary Rev. 1.0 Jan. 14, 1998 78c7de408SJeff Kirsher * SiS 900 Fast Ethernet PCI Bus 10/100 Mbps LAN Single Chip with OnNow Support, 88c7de408SJeff Kirsher * preliminary Rev. 1.0 Nov. 10, 1998 98c7de408SJeff Kirsher * SiS 7014 Single Chip 100BASE-TX/10BASE-T Physical Layer Solution, 108c7de408SJeff Kirsher * preliminary Rev. 1.0 Jan. 18, 1998 118c7de408SJeff Kirsher * http://www.sis.com.tw/support/databook.htm 128c7de408SJeff Kirsher */ 138c7de408SJeff Kirsher 148c7de408SJeff Kirsher /* 158c7de408SJeff Kirsher * SiS 7016 and SiS 900 ethernet controller registers 168c7de408SJeff Kirsher */ 178c7de408SJeff Kirsher 188c7de408SJeff Kirsher /* The I/O extent, SiS 900 needs 256 bytes of io address */ 198c7de408SJeff Kirsher #define SIS900_TOTAL_SIZE 0x100 208c7de408SJeff Kirsher 218c7de408SJeff Kirsher /* Symbolic offsets to registers. */ 228c7de408SJeff Kirsher enum sis900_registers { 238c7de408SJeff Kirsher cr=0x0, //Command Register 248c7de408SJeff Kirsher cfg=0x4, //Configuration Register 258c7de408SJeff Kirsher mear=0x8, //EEPROM Access Register 268c7de408SJeff Kirsher ptscr=0xc, //PCI Test Control Register 278c7de408SJeff Kirsher isr=0x10, //Interrupt Status Register 288c7de408SJeff Kirsher imr=0x14, //Interrupt Mask Register 298c7de408SJeff Kirsher ier=0x18, //Interrupt Enable Register 308c7de408SJeff Kirsher epar=0x18, //Enhanced PHY Access Register 318c7de408SJeff Kirsher txdp=0x20, //Transmit Descriptor Pointer Register 328c7de408SJeff Kirsher txcfg=0x24, //Transmit Configuration Register 338c7de408SJeff Kirsher rxdp=0x30, //Receive Descriptor Pointer Register 348c7de408SJeff Kirsher rxcfg=0x34, //Receive Configuration Register 358c7de408SJeff Kirsher flctrl=0x38, //Flow Control Register 368c7de408SJeff Kirsher rxlen=0x3c, //Receive Packet Length Register 378c7de408SJeff Kirsher rfcr=0x48, //Receive Filter Control Register 388c7de408SJeff Kirsher rfdr=0x4C, //Receive Filter Data Register 398c7de408SJeff Kirsher pmctrl=0xB0, //Power Management Control Register 408c7de408SJeff Kirsher pmer=0xB4 //Power Management Wake-up Event Register 418c7de408SJeff Kirsher }; 428c7de408SJeff Kirsher 438c7de408SJeff Kirsher /* Symbolic names for bits in various registers */ 448c7de408SJeff Kirsher enum sis900_command_register_bits { 458c7de408SJeff Kirsher RELOAD = 0x00000400, ACCESSMODE = 0x00000200,/* ET */ 468c7de408SJeff Kirsher RESET = 0x00000100, SWI = 0x00000080, RxRESET = 0x00000020, 478c7de408SJeff Kirsher TxRESET = 0x00000010, RxDIS = 0x00000008, RxENA = 0x00000004, 488c7de408SJeff Kirsher TxDIS = 0x00000002, TxENA = 0x00000001 498c7de408SJeff Kirsher }; 508c7de408SJeff Kirsher 518c7de408SJeff Kirsher enum sis900_configuration_register_bits { 528c7de408SJeff Kirsher DESCRFMT = 0x00000100 /* 7016 specific */, REQALG = 0x00000080, 538c7de408SJeff Kirsher SB = 0x00000040, POW = 0x00000020, EXD = 0x00000010, 548c7de408SJeff Kirsher PESEL = 0x00000008, LPM = 0x00000004, BEM = 0x00000001, 558c7de408SJeff Kirsher /* 635 & 900B Specific */ 568c7de408SJeff Kirsher RND_CNT = 0x00000400, FAIR_BACKOFF = 0x00000200, 578c7de408SJeff Kirsher EDB_MASTER_EN = 0x00002000 588c7de408SJeff Kirsher }; 598c7de408SJeff Kirsher 6047af6b0cSNik Nyby enum sis900_eeprom_access_register_bits { 618c7de408SJeff Kirsher MDC = 0x00000040, MDDIR = 0x00000020, MDIO = 0x00000010, /* 7016 specific */ 628c7de408SJeff Kirsher EECS = 0x00000008, EECLK = 0x00000004, EEDO = 0x00000002, 638c7de408SJeff Kirsher EEDI = 0x00000001 648c7de408SJeff Kirsher }; 658c7de408SJeff Kirsher 668c7de408SJeff Kirsher enum sis900_interrupt_register_bits { 678c7de408SJeff Kirsher WKEVT = 0x10000000, TxPAUSEEND = 0x08000000, TxPAUSE = 0x04000000, 688c7de408SJeff Kirsher TxRCMP = 0x02000000, RxRCMP = 0x01000000, DPERR = 0x00800000, 698c7de408SJeff Kirsher SSERR = 0x00400000, RMABT = 0x00200000, RTABT = 0x00100000, 708c7de408SJeff Kirsher RxSOVR = 0x00010000, HIBERR = 0x00008000, SWINT = 0x00001000, 718c7de408SJeff Kirsher MIBINT = 0x00000800, TxURN = 0x00000400, TxIDLE = 0x00000200, 728c7de408SJeff Kirsher TxERR = 0x00000100, TxDESC = 0x00000080, TxOK = 0x00000040, 738c7de408SJeff Kirsher RxORN = 0x00000020, RxIDLE = 0x00000010, RxEARLY = 0x00000008, 748c7de408SJeff Kirsher RxERR = 0x00000004, RxDESC = 0x00000002, RxOK = 0x00000001 758c7de408SJeff Kirsher }; 768c7de408SJeff Kirsher 7747af6b0cSNik Nyby enum sis900_interrupt_enable_register_bits { 788c7de408SJeff Kirsher IE = 0x00000001 798c7de408SJeff Kirsher }; 808c7de408SJeff Kirsher 818c7de408SJeff Kirsher /* maximum dma burst for transmission and receive */ 828c7de408SJeff Kirsher #define MAX_DMA_RANGE 7 /* actually 0 means MAXIMUM !! */ 838c7de408SJeff Kirsher #define TxMXDMA_shift 20 848c7de408SJeff Kirsher #define RxMXDMA_shift 20 858c7de408SJeff Kirsher 868c7de408SJeff Kirsher enum sis900_tx_rx_dma{ 878c7de408SJeff Kirsher DMA_BURST_512 = 0, DMA_BURST_64 = 5 888c7de408SJeff Kirsher }; 898c7de408SJeff Kirsher 908c7de408SJeff Kirsher /* transmit FIFO thresholds */ 918c7de408SJeff Kirsher #define TX_FILL_THRESH 16 /* 1/4 FIFO size */ 928c7de408SJeff Kirsher #define TxFILLT_shift 8 938c7de408SJeff Kirsher #define TxDRNT_shift 0 948c7de408SJeff Kirsher #define TxDRNT_100 48 /* 3/4 FIFO size */ 958c7de408SJeff Kirsher #define TxDRNT_10 16 /* 1/2 FIFO size */ 968c7de408SJeff Kirsher 978c7de408SJeff Kirsher enum sis900_transmit_config_register_bits { 988c7de408SJeff Kirsher TxCSI = 0x80000000, TxHBI = 0x40000000, TxMLB = 0x20000000, 998c7de408SJeff Kirsher TxATP = 0x10000000, TxIFG = 0x0C000000, TxFILLT = 0x00003F00, 1008c7de408SJeff Kirsher TxDRNT = 0x0000003F 1018c7de408SJeff Kirsher }; 1028c7de408SJeff Kirsher 1038c7de408SJeff Kirsher /* recevie FIFO thresholds */ 1048c7de408SJeff Kirsher #define RxDRNT_shift 1 1058c7de408SJeff Kirsher #define RxDRNT_100 16 /* 1/2 FIFO size */ 1068c7de408SJeff Kirsher #define RxDRNT_10 24 /* 3/4 FIFO size */ 1078c7de408SJeff Kirsher 1088c7de408SJeff Kirsher enum sis900_reveive_config_register_bits { 1098c7de408SJeff Kirsher RxAEP = 0x80000000, RxARP = 0x40000000, RxATX = 0x10000000, 1108c7de408SJeff Kirsher RxAJAB = 0x08000000, RxDRNT = 0x0000007F 1118c7de408SJeff Kirsher }; 1128c7de408SJeff Kirsher 1138c7de408SJeff Kirsher #define RFAA_shift 28 1148c7de408SJeff Kirsher #define RFADDR_shift 16 1158c7de408SJeff Kirsher 1168c7de408SJeff Kirsher enum sis900_receive_filter_control_register_bits { 1178c7de408SJeff Kirsher RFEN = 0x80000000, RFAAB = 0x40000000, RFAAM = 0x20000000, 1188c7de408SJeff Kirsher RFAAP = 0x10000000, RFPromiscuous = (RFAAB|RFAAM|RFAAP) 1198c7de408SJeff Kirsher }; 1208c7de408SJeff Kirsher 1218c7de408SJeff Kirsher enum sis900_reveive_filter_data_mask { 1228c7de408SJeff Kirsher RFDAT = 0x0000FFFF 1238c7de408SJeff Kirsher }; 1248c7de408SJeff Kirsher 1258c7de408SJeff Kirsher /* EEPROM Addresses */ 1268c7de408SJeff Kirsher enum sis900_eeprom_address { 1278c7de408SJeff Kirsher EEPROMSignature = 0x00, EEPROMVendorID = 0x02, EEPROMDeviceID = 0x03, 1288c7de408SJeff Kirsher EEPROMMACAddr = 0x08, EEPROMChecksum = 0x0b 1298c7de408SJeff Kirsher }; 1308c7de408SJeff Kirsher 1318c7de408SJeff Kirsher /* The EEPROM commands include the alway-set leading bit. Refer to NM93Cxx datasheet */ 1328c7de408SJeff Kirsher enum sis900_eeprom_command { 1338c7de408SJeff Kirsher EEread = 0x0180, EEwrite = 0x0140, EEerase = 0x01C0, 1348c7de408SJeff Kirsher EEwriteEnable = 0x0130, EEwriteDisable = 0x0100, 1358c7de408SJeff Kirsher EEeraseAll = 0x0120, EEwriteAll = 0x0110, 1368c7de408SJeff Kirsher EEaddrMask = 0x013F, EEcmdShift = 16 1378c7de408SJeff Kirsher }; 1388c7de408SJeff Kirsher 1398c7de408SJeff Kirsher /* For SiS962 or SiS963, request the eeprom software access */ 1408c7de408SJeff Kirsher enum sis96x_eeprom_command { 1418c7de408SJeff Kirsher EEREQ = 0x00000400, EEDONE = 0x00000200, EEGNT = 0x00000100 1428c7de408SJeff Kirsher }; 1438c7de408SJeff Kirsher 1448c7de408SJeff Kirsher /* PCI Registers */ 1458c7de408SJeff Kirsher enum sis900_pci_registers { 1468c7de408SJeff Kirsher CFGPMC = 0x40, 1478c7de408SJeff Kirsher CFGPMCSR = 0x44 1488c7de408SJeff Kirsher }; 1498c7de408SJeff Kirsher 1508c7de408SJeff Kirsher /* Power management capabilities bits */ 1518c7de408SJeff Kirsher enum sis900_cfgpmc_register_bits { 1528c7de408SJeff Kirsher PMVER = 0x00070000, 1538c7de408SJeff Kirsher DSI = 0x00100000, 1548c7de408SJeff Kirsher PMESP = 0xf8000000 1558c7de408SJeff Kirsher }; 1568c7de408SJeff Kirsher 1578c7de408SJeff Kirsher enum sis900_pmesp_bits { 1588c7de408SJeff Kirsher PME_D0 = 0x1, 1598c7de408SJeff Kirsher PME_D1 = 0x2, 1608c7de408SJeff Kirsher PME_D2 = 0x4, 1618c7de408SJeff Kirsher PME_D3H = 0x8, 1628c7de408SJeff Kirsher PME_D3C = 0x10 1638c7de408SJeff Kirsher }; 1648c7de408SJeff Kirsher 1658c7de408SJeff Kirsher /* Power management control/status bits */ 1668c7de408SJeff Kirsher enum sis900_cfgpmcsr_register_bits { 1678c7de408SJeff Kirsher PMESTS = 0x00004000, 1688c7de408SJeff Kirsher PME_EN = 0x00000100, // Power management enable 1698c7de408SJeff Kirsher PWR_STA = 0x00000003 // Current power state 1708c7de408SJeff Kirsher }; 1718c7de408SJeff Kirsher 1728c7de408SJeff Kirsher /* Wake-on-LAN support. */ 1738c7de408SJeff Kirsher enum sis900_power_management_control_register_bits { 1748c7de408SJeff Kirsher LINKLOSS = 0x00000001, 1758c7de408SJeff Kirsher LINKON = 0x00000002, 1768c7de408SJeff Kirsher MAGICPKT = 0x00000400, 1778c7de408SJeff Kirsher ALGORITHM = 0x00000800, 1788c7de408SJeff Kirsher FRM1EN = 0x00100000, 1798c7de408SJeff Kirsher FRM2EN = 0x00200000, 1808c7de408SJeff Kirsher FRM3EN = 0x00400000, 1818c7de408SJeff Kirsher FRM1ACS = 0x01000000, 1828c7de408SJeff Kirsher FRM2ACS = 0x02000000, 1838c7de408SJeff Kirsher FRM3ACS = 0x04000000, 1848c7de408SJeff Kirsher WAKEALL = 0x40000000, 1858c7de408SJeff Kirsher GATECLK = 0x80000000 1868c7de408SJeff Kirsher }; 1878c7de408SJeff Kirsher 1888c7de408SJeff Kirsher /* Management Data I/O (mdio) frame */ 1898c7de408SJeff Kirsher #define MIIread 0x6000 1908c7de408SJeff Kirsher #define MIIwrite 0x5002 1918c7de408SJeff Kirsher #define MIIpmdShift 7 1928c7de408SJeff Kirsher #define MIIregShift 2 1938c7de408SJeff Kirsher #define MIIcmdLen 16 1948c7de408SJeff Kirsher #define MIIcmdShift 16 1958c7de408SJeff Kirsher 1968c7de408SJeff Kirsher /* Buffer Descriptor Status*/ 1978c7de408SJeff Kirsher enum sis900_buffer_status { 1988c7de408SJeff Kirsher OWN = 0x80000000, MORE = 0x40000000, INTR = 0x20000000, 1998c7de408SJeff Kirsher SUPCRC = 0x10000000, INCCRC = 0x10000000, 2008c7de408SJeff Kirsher OK = 0x08000000, DSIZE = 0x00000FFF 2018c7de408SJeff Kirsher }; 2028c7de408SJeff Kirsher /* Status for TX Buffers */ 2038c7de408SJeff Kirsher enum sis900_tx_buffer_status { 2048c7de408SJeff Kirsher ABORT = 0x04000000, UNDERRUN = 0x02000000, NOCARRIER = 0x01000000, 2058c7de408SJeff Kirsher DEFERD = 0x00800000, EXCDEFER = 0x00400000, OWCOLL = 0x00200000, 2068c7de408SJeff Kirsher EXCCOLL = 0x00100000, COLCNT = 0x000F0000 2078c7de408SJeff Kirsher }; 2088c7de408SJeff Kirsher 209a1d51aa7SPaul Bolle enum sis900_rx_buffer_status { 2108c7de408SJeff Kirsher OVERRUN = 0x02000000, DEST = 0x00800000, BCAST = 0x01800000, 2118c7de408SJeff Kirsher MCAST = 0x01000000, UNIMATCH = 0x00800000, TOOLONG = 0x00400000, 2128c7de408SJeff Kirsher RUNT = 0x00200000, RXISERR = 0x00100000, CRCERR = 0x00080000, 2138c7de408SJeff Kirsher FAERR = 0x00040000, LOOPBK = 0x00020000, RXCOL = 0x00010000 2148c7de408SJeff Kirsher }; 2158c7de408SJeff Kirsher 2168c7de408SJeff Kirsher /* MII register offsets */ 2178c7de408SJeff Kirsher enum mii_registers { 2188c7de408SJeff Kirsher MII_CONTROL = 0x0000, MII_STATUS = 0x0001, MII_PHY_ID0 = 0x0002, 2198c7de408SJeff Kirsher MII_PHY_ID1 = 0x0003, MII_ANADV = 0x0004, MII_ANLPAR = 0x0005, 2208c7de408SJeff Kirsher MII_ANEXT = 0x0006 2218c7de408SJeff Kirsher }; 2228c7de408SJeff Kirsher 2238c7de408SJeff Kirsher /* mii registers specific to SiS 900 */ 2248c7de408SJeff Kirsher enum sis_mii_registers { 2258c7de408SJeff Kirsher MII_CONFIG1 = 0x0010, MII_CONFIG2 = 0x0011, MII_STSOUT = 0x0012, 2268c7de408SJeff Kirsher MII_MASK = 0x0013, MII_RESV = 0x0014 2278c7de408SJeff Kirsher }; 2288c7de408SJeff Kirsher 2298c7de408SJeff Kirsher /* mii registers specific to ICS 1893 */ 2308c7de408SJeff Kirsher enum ics_mii_registers { 2318c7de408SJeff Kirsher MII_EXTCTRL = 0x0010, MII_QPDSTS = 0x0011, MII_10BTOP = 0x0012, 2328c7de408SJeff Kirsher MII_EXTCTRL2 = 0x0013 2338c7de408SJeff Kirsher }; 2348c7de408SJeff Kirsher 2358c7de408SJeff Kirsher /* mii registers specific to AMD 79C901 */ 2368c7de408SJeff Kirsher enum amd_mii_registers { 2378c7de408SJeff Kirsher MII_STATUS_SUMMARY = 0x0018 2388c7de408SJeff Kirsher }; 2398c7de408SJeff Kirsher 2408c7de408SJeff Kirsher /* MII Control register bit definitions. */ 2418c7de408SJeff Kirsher enum mii_control_register_bits { 2428c7de408SJeff Kirsher MII_CNTL_FDX = 0x0100, MII_CNTL_RST_AUTO = 0x0200, 2438c7de408SJeff Kirsher MII_CNTL_ISOLATE = 0x0400, MII_CNTL_PWRDWN = 0x0800, 2448c7de408SJeff Kirsher MII_CNTL_AUTO = 0x1000, MII_CNTL_SPEED = 0x2000, 2458c7de408SJeff Kirsher MII_CNTL_LPBK = 0x4000, MII_CNTL_RESET = 0x8000 2468c7de408SJeff Kirsher }; 2478c7de408SJeff Kirsher 2488c7de408SJeff Kirsher /* MII Status register bit */ 2498c7de408SJeff Kirsher enum mii_status_register_bits { 2508c7de408SJeff Kirsher MII_STAT_EXT = 0x0001, MII_STAT_JAB = 0x0002, 2518c7de408SJeff Kirsher MII_STAT_LINK = 0x0004, MII_STAT_CAN_AUTO = 0x0008, 2528c7de408SJeff Kirsher MII_STAT_FAULT = 0x0010, MII_STAT_AUTO_DONE = 0x0020, 2538c7de408SJeff Kirsher MII_STAT_CAN_T = 0x0800, MII_STAT_CAN_T_FDX = 0x1000, 2548c7de408SJeff Kirsher MII_STAT_CAN_TX = 0x2000, MII_STAT_CAN_TX_FDX = 0x4000, 2558c7de408SJeff Kirsher MII_STAT_CAN_T4 = 0x8000 2568c7de408SJeff Kirsher }; 2578c7de408SJeff Kirsher 2588c7de408SJeff Kirsher #define MII_ID1_OUI_LO 0xFC00 /* low bits of OUI mask */ 2598c7de408SJeff Kirsher #define MII_ID1_MODEL 0x03F0 /* model number */ 2608c7de408SJeff Kirsher #define MII_ID1_REV 0x000F /* model number */ 2618c7de408SJeff Kirsher 2628c7de408SJeff Kirsher /* MII NWAY Register Bits ... 2638c7de408SJeff Kirsher valid for the ANAR (Auto-Negotiation Advertisement) and 2648c7de408SJeff Kirsher ANLPAR (Auto-Negotiation Link Partner) registers */ 2658c7de408SJeff Kirsher enum mii_nway_register_bits { 2668c7de408SJeff Kirsher MII_NWAY_NODE_SEL = 0x001f, MII_NWAY_CSMA_CD = 0x0001, 2678c7de408SJeff Kirsher MII_NWAY_T = 0x0020, MII_NWAY_T_FDX = 0x0040, 2688c7de408SJeff Kirsher MII_NWAY_TX = 0x0080, MII_NWAY_TX_FDX = 0x0100, 2698c7de408SJeff Kirsher MII_NWAY_T4 = 0x0200, MII_NWAY_PAUSE = 0x0400, 2708c7de408SJeff Kirsher MII_NWAY_RF = 0x2000, MII_NWAY_ACK = 0x4000, 2718c7de408SJeff Kirsher MII_NWAY_NP = 0x8000 2728c7de408SJeff Kirsher }; 2738c7de408SJeff Kirsher 2748c7de408SJeff Kirsher enum mii_stsout_register_bits { 2758c7de408SJeff Kirsher MII_STSOUT_LINK_FAIL = 0x4000, 2768c7de408SJeff Kirsher MII_STSOUT_SPD = 0x0080, MII_STSOUT_DPLX = 0x0040 2778c7de408SJeff Kirsher }; 2788c7de408SJeff Kirsher 2798c7de408SJeff Kirsher enum mii_stsics_register_bits { 2808c7de408SJeff Kirsher MII_STSICS_SPD = 0x8000, MII_STSICS_DPLX = 0x4000, 2818c7de408SJeff Kirsher MII_STSICS_LINKSTS = 0x0001 2828c7de408SJeff Kirsher }; 2838c7de408SJeff Kirsher 2848c7de408SJeff Kirsher enum mii_stssum_register_bits { 2858c7de408SJeff Kirsher MII_STSSUM_LINK = 0x0008, MII_STSSUM_DPLX = 0x0004, 2868c7de408SJeff Kirsher MII_STSSUM_AUTO = 0x0002, MII_STSSUM_SPD = 0x0001 2878c7de408SJeff Kirsher }; 2888c7de408SJeff Kirsher 2898c7de408SJeff Kirsher enum sis900_revision_id { 2908c7de408SJeff Kirsher SIS630A_900_REV = 0x80, SIS630E_900_REV = 0x81, 2918c7de408SJeff Kirsher SIS630S_900_REV = 0x82, SIS630EA1_900_REV = 0x83, 2928c7de408SJeff Kirsher SIS630ET_900_REV = 0x84, SIS635A_900_REV = 0x90, 2938c7de408SJeff Kirsher SIS96x_900_REV = 0X91, SIS900B_900_REV = 0x03 2948c7de408SJeff Kirsher }; 2958c7de408SJeff Kirsher 2968c7de408SJeff Kirsher enum sis630_revision_id { 2978c7de408SJeff Kirsher SIS630A0 = 0x00, SIS630A1 = 0x01, 2988c7de408SJeff Kirsher SIS630B0 = 0x10, SIS630B1 = 0x11 2998c7de408SJeff Kirsher }; 3008c7de408SJeff Kirsher 3018c7de408SJeff Kirsher #define FDX_CAPABLE_DUPLEX_UNKNOWN 0 3028c7de408SJeff Kirsher #define FDX_CAPABLE_HALF_SELECTED 1 3038c7de408SJeff Kirsher #define FDX_CAPABLE_FULL_SELECTED 2 3048c7de408SJeff Kirsher 3058c7de408SJeff Kirsher #define HW_SPEED_UNCONFIG 0 3068c7de408SJeff Kirsher #define HW_SPEED_HOME 1 3078c7de408SJeff Kirsher #define HW_SPEED_10_MBPS 10 3088c7de408SJeff Kirsher #define HW_SPEED_100_MBPS 100 3098c7de408SJeff Kirsher #define HW_SPEED_DEFAULT (HW_SPEED_100_MBPS) 3108c7de408SJeff Kirsher 3118c7de408SJeff Kirsher #define CRC_SIZE 4 3128c7de408SJeff Kirsher #define MAC_HEADER_SIZE 14 3138c7de408SJeff Kirsher 314547e530aSJavier Martinez Canillas #if IS_ENABLED(CONFIG_VLAN_8021Q) 3158c7de408SJeff Kirsher #define MAX_FRAME_SIZE (1518 + 4) 3168c7de408SJeff Kirsher #else 3178c7de408SJeff Kirsher #define MAX_FRAME_SIZE 1518 3188c7de408SJeff Kirsher #endif /* CONFIG_VLAN_802_1Q */ 3198c7de408SJeff Kirsher 3208c7de408SJeff Kirsher #define TX_BUF_SIZE (MAX_FRAME_SIZE+18) 3218c7de408SJeff Kirsher #define RX_BUF_SIZE (MAX_FRAME_SIZE+18) 3228c7de408SJeff Kirsher 3238c7de408SJeff Kirsher #define NUM_TX_DESC 16 /* Number of Tx descriptor registers. */ 3248c7de408SJeff Kirsher #define NUM_RX_DESC 16 /* Number of Rx descriptor registers. */ 3258c7de408SJeff Kirsher #define TX_TOTAL_SIZE NUM_TX_DESC*sizeof(BufferDesc) 3268c7de408SJeff Kirsher #define RX_TOTAL_SIZE NUM_RX_DESC*sizeof(BufferDesc) 3278c7de408SJeff Kirsher 3288c7de408SJeff Kirsher /* PCI stuff, should be move to pci.h */ 3298c7de408SJeff Kirsher #define SIS630_VENDOR_ID 0x1039 3308c7de408SJeff Kirsher #define SIS630_DEVICE_ID 0x0630 331