Home

Tulip Driver User's Guide

image

Contents

1. aaa aaaaaacanae 6 6 2 Version 0 9 11 November 3 2000 ccccesccccccccesessssececeecsesessseeeeceenenes 6 6 3 Version 0 9 10 September 6 2000 e seeeua aaa aaa aa aa eaaaaaccnae 6 6 4 Version 0 9 9 August 11 2000 eeees ee ua aaa aaa aaa aa aaaaeaaaaccaae 6 6 5 Version 0 9 8 July 13 2000 sani OW AGE 7 6 6 Version 0 9 7 June 17 2000 essee ea aa aaa a a a 7 67 Verso 0 9 6 May 3h 2000 aa di A nl canes 7 6 8 Version 0 9 5 May 30 2000 aji GE Rd ad 7 6 9 Version 0 9 4 3 April 14 2000 0 0 ceeeeeceeseceeneeceeeecesaecesaeceesaeeesaeeeeaaees 8 6 10 Version 0 9 4 2 March 21 2000 ccccccscccccceceeesssseceeeeeeesersseeseceesenes 8 6 11 Version 0 9 4 1 March 18 2000 ccccceccccccccecesssseceeeeeeessssseeeeceesene 8 iii Chapter 1 Introduction The Tulip Ethernet Card Driver is maintained by Jeff Garzik lt jgarzik mandrakesoft com gt The Tulip driver was developed by Donald Becker and changed by Jeff Garzik Takashi Manabe and a cast of thousands For 2 4 x and later kernels the Linux Tulip driver is available at http sourceforge net projects tulip This driver is for the Digital Tulip Ethernet adapter interface It should work with most DEC 21 4 based chips ethercards as well as with work alike chips from Lite On PNIC and Macronix MXIC and ASIX The original author may be reached as becker scyld com or C O Sc
2. single threaded use by the dev gt tbusy flag The other thread is the interrupt handler which is single threaded by the hardware and other software The send packet thread has partial control over the Tx ring and dev gt tbusy flag It sets the tbusy flag whenever it s queuing a Tx packet If the next queue slot is empty it clears the tbusy flag when finished otherwise it sets the tp gt tx_full flag The interrupt handler has exclusive control over the Rx ring and records stats from the Tx ring The Tx done interrupt can t be selectively turned off so we can t avoid the interrupt overhead by having the Tx routine reap the Tx stats After reaping the stats it marks the queue entry as empty by setting the base to zero Iff the tp gt tx_full flag is set it clears both the tx_full and tbusy flags Chapter 5 Errata The old DEC databooks were light on details The 21040 databook claims that CSR13 CSR14 and CSR15 should each be the last register of the set CSR12 15 written Hmmm now how is that possible The DEC SROM format is very badly designed not precisely defined leading to part of the media selection junkheap below Some boards do not have EEPROM media tables and need to be patched up Worse other boards use the DEC design kit media table when it isn t correct for their board We cannot use MII interrupts because there is no defined GPIO pin to attach them The MII transceiver status is polled using an k
3. Tulip Driver User s Guide Jeff Garzik jgarzik mandrakesoft com Tulip Driver User s Guide by Jeff Garzik Copyright 2001 by Jeff Garzik This documentation is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 2 of the License or at your option any later version This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this program if not write to the Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA For more details see the file COPYING in the source distribution of Linux Table of Contents PGC NO Misia ia God akc AK A 1 2 Driver Compatibility iii ciocia kad aiw wod d w w 2 3 Board specific Seti OS cciscadscscssdevereiscerdssssacesesscoecassisesuvessdevsisassdeuescesesecdeseseivasetess 3 4 Driver OPCv AGO ss ka a dad 4 41 Rino BUNCR cs pce EE FAET TAEAE ee dunes ceca ate aeons tases EA 4 4 2 Synchronization wst OR WSW ta va hee sana O ERA tees 4 5 Errata e Gao wa OE R W W 5 6 Driver Change History wadowicki ai WGRA EE 6 6 1 Version 0 9 14 February 20 2001 seeea eee aa aaa aaa aaa
4. ernel timer Chapter 6 Driver Change History 6 1 Version 0 9 14 February 20 2001 e Fix PNIC problems Manfred Spraul e Add new PCI id for Accton comet e Support Davicom tulips e Fix oops in eeprom parsing e Enable workarounds for early PCI chipsets e IA64 hppa csr0 support e Support media types 5 6 e Interpret a bit more of the 21142 SROM extended media type 3 e Add missing delay in eeprom reading 6 2 Version 0 9 11 November 3 2000 e Eliminate extra bus accesses when sharing interrupts prumpf e Barrier following ownership descriptor bit flip prumpf e Endianness fixes for gt 14 addresses in setup frames prumpf e Report link beat to kernel userspace via netif_carrier_ kuznet e Better spinlocking in set_rx_mode e Fix I O resource request failure error messages DaveM catch e Handle DMA allocation failure 6 3 Version 0 9 10 September 6 2000 e Simple interrupt mitigation via jamal More PCI ids Chapter 6 Driver Change History 6 4 Version 0 9 9 August 11 2000 e More PCI ids 6 5 Version 0 9 8 July 13 2000 e Correct signed unsigned comparison for dummy frame index Remove outdated references to struct enet_statistics 6 6 Version 0 9 7 June 17 2000 e Timer cleanups Andrew Morton e Alpha compile fix somebody 6 7 Version 0 9 6 May 31 2000 e Revert 21143 related support flag patch e Add HPPA media table debugging printk 6 8 Version 0 9 5 Ma
5. s The Tulip can use either ring buffers or lists of Tx and Rx descriptors This driver uses statically allocated rings of Rx and Tx descriptors set at compile time by RX TX_RING_SIZE This version of the driver allocates skbuffs for the Rx ring buffers at open time and passes the skb gt data field to the Tulip as receive data buffers When an incoming frame is less than RX_COPYBREAK bytes long a fresh skbuff is allocated and the frame is copied to the new skbuff When the incoming frame is larger the skbuff is passed directly up the protocol stack and replaced by a newly allocated skbuff The RX_COPYBREAK value is chosen to trade off the memory wasted by using a full sized skbuff for small frames vs the copying costs of larger frames For small frames the copying cost is negligible esp considering that we are pre loading the cache with immediately useful header information For large frames the copying cost is non trivial and the larger copy might flush the cache of useful data A subtle aspect of this choice is that the Tulip only receives into longword aligned buffers thus the IP header at offset 14 isn t longword aligned for further processing Copied frames are put into the new skbuff at an offset of 2 thus copying has the beneficial effect of aligning the IP header and preloading the cache 4 2 Synchronization The driver runs as two independent single threaded flows of control One is the send packet routine which enforces
6. y 30 2000 e HPPA support willy puffingroup e CSR6 bits and tulip h cleanup Chris Smith Improve debugging messages a bit e Add delay after CSR13 write in t21142_start_nway e Remove unused ETHER_STATS code e Convert extern inline to static inline in tulip h Chris Smith Chapter 6 Driver Change History Update DS21143 support flags in tulip_chip_info Use spin_lock_irq not _irqsave restore in tulip_start_xmit Add locking to set_rx_mode Fix race with chip setting DescOwned bit Hal Murray Request 100 of PIO and MMIO resource space assigned to card Remove error message from pci_enable_device failure 6 9 Version 0 9 4 3 April 14 2000 e mod_timer fix Hal Murray e PNIC2 resuscitation Chris Smith 6 10 Version 0 9 4 2 March 21 2000 6 11 Fix 21041 CSR7 CSR13 14 15 handling Merge some PCI ids from tulip 0 91x Merge some HAS_ xxx flags and flag settings from tulip 0 91x asm io h fix submitted by many and cleanup s HAS_NWAY143 HAS_NWAY Cleanup 21041 mode reporting Small code cleanups Version 0 9 4 1 March 18 2000 Finish PCI DMA conversion davem Do not netif_start_queue at end of tulip_tx_timeout kuznet PCI DMA fix kuznet eeprom c code cleanup Chapter 6 Driver Change History e Remove Xircom Tulip crud
7. yld Computing Corporation 410 Severn Ave Suite 210 Annapolis MD 21403 Additional information on Donald Becker s tulip c is available at http www scyld com network tulip html Chapter 2 Driver Compatibility This device driver is designed for the DECchip Tulip Digital s single chip ethernet controllers for PCI now owned by Intel Supported members of the family are the 21040 21041 21140 21140A 21142 and 21143 Similar work alike chips from Lite On Macronics ASTX Compex and other listed below are also supported These chips are used on at least 140 unique PCI board designs The great number of chips and board designs supported is the reason for the driver size and complexity Almost of the increasing complexity is in the board configuration and media selection code There is very little increasing in the operational critical path length Chapter 3 Board specific Settings PCI bus devices are configured by the system at boot time so no jumpers need to be set on the board The system BIOS preferably should assign the PCI INTA signal to an otherwise unused system IRQ line Some boards have EEPROMs tables with default media entry The factory default is usually autoselect This should only be overridden when using transceiver connections without link beat e g 1Obase2 or AUI or rarely for forcing full duplex when used with old link partners that do not do autonegotiation Chapter 4 Driver Operation 4 1 Ring buffer

Download Pdf Manuals

image

Related Search

Related Contents

Ewent EW1130  mikroC PRO for PIC User Manual v100  Ion|StormPro® X-ONEi  Piranha ES 4k and 8k Manual  

Copyright © All rights reserved.
Failed to retrieve file