home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / answers / linux / howto / ethernet / part1 next >
Internet Message Format  |  1993-12-15  |  42KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nic.hookup.net!swrinde!cs.utexas.edu!howland.reston.ans.net!gatech!concert!samba.oit.unc.edu!sunSITE!mdw
  2. From: Paul Gortmaker <gpg109@rsphysse.anu.edu.au>
  3. Newsgroups: comp.os.linux.announce,comp.os.linux.admin,comp.answers,news.answers
  4. Subject: Linux Ethernet HOWTO (Part 1/2)
  5. Followup-To: poster
  6. Date: 15 Dec 1993 22:08:20 GMT
  7. Organization: The University of North Carolina at Chapel Hill
  8. Lines: 1008
  9. Approved: linux-announce@tc.cornell.edu (Matt Welsh)
  10. Message-ID: <2eo1sk$64q@samba.oit.unc.edu>
  11. NNTP-Posting-Host: calypso.oit.unc.edu
  12. Keywords: Linux, Ethernet, TCP/IP, NET-2
  13. Originator: mdw@sunSITE
  14. Xref: senator-bedfellow.mit.edu comp.os.linux.announce:1566 comp.os.linux.admin:2497 comp.answers:3041 news.answers:15863
  15.  
  16. Archive-Name: linux/howto/ethernet/part1
  17. Last-Modified: November 16, 1993
  18.  
  19. Linux Ethernet HOWTO v0.3 -- Last updated November 6, 1993
  20. =================================================================
  21. INDEX:
  22.  
  23. (Part 1/2)
  24. 0    Introduction.
  25. 0.01        How do I use this Guide?
  26. 0.01        Disclaimer
  27. 0.02        Questions already?
  28. 0.03        Related Documentation
  29. 0.04        New Versions of this Document
  30. 0.05        Feedback
  31.  
  32. 1    What card should I buy for Linux?
  33. 1.01        Eight bit vs 16 bit
  34. 1.02        Low price Ethernet cards
  35. 1.03        Vendors and brands to avoid.
  36. 1.04        Type of cable that your card should support
  37.  
  38. 2    Status of various Ethernet cards under Linux.
  39. 2.01        3Com
  40. 2.02        Western Digital / SMC
  41. 2.03        NExxxx
  42. 2.04        Hewlett Packard Cards
  43. 2.05        D-Link
  44. 2.06        Cabletron
  45. 2.07        Allied Telesis
  46. 2.08        Arcnet
  47. 2.09        Digital / DEC
  48. 2.10        Intel
  49. 2.11        PureData
  50. 2.12        Xircom
  51. 2.13        Zenith
  52. 2.14        Racal-Interlan
  53. 2.15        AMD LANCE (79C960)
  54. 2.16        AT-Lan-Tec
  55.  
  56. 3    Clones of popular Ethernet cards.
  57. 3.01        WD80x3 Clones
  58. 3.02        NE2000 Clones
  59.  
  60. 4    Cables, coax, twisted pairs etc.
  61. 4.01        Thin Ethernet (thinnet)
  62. 4.02        Twisted Pair
  63. 4.03        Thick Ethernet
  64.  
  65. (Part 2/2)
  66. 5    Technical information.
  67. 5.01        Probed addresses
  68. 5.02        Skeleton / prototype driver
  69. 5.03        Driver interface to the kernel
  70. 5.04        Interrupts and linux
  71. 5.05        Programmed I/O vs. shared mem. vs slave/master DMA
  72. 5.06        Programming the Intel chips (i82586 and i82593)
  73. 5.07        Programming information from 3Com
  74. 5.08        Notes on AMD PCnet-ISA / LANCE Based cards (79C960)
  75. 5.09        Multicast and Promiscuous mode
  76. 5.10        The Berkely Packet Filter (BPF)
  77. 5.11        Unresolved questions / concerns
  78.  
  79. 6    Possible problems, questions and troubleshooting.
  80. 6.01        Problems with NE2000 (and clones)
  81. 6.02        Problems with WD80*3 cards
  82. 6.03        Problems with 3Com cards
  83.  
  84. 7    Networking with a laptop computer.
  85. 7.01        Option 1 -- using SLIP
  86. 7.02        Option 2 -- Built in NE2000 compatible or PCMCIA Ethercard.
  87. 7.03        Option 3 -- ISA Ethercard in the docking station.
  88. 7.04        Option 4 -- Pocket / parallel port adaptors.
  89.  
  90. 8    Frequently asked questions.
  91. 8.01        Just the FAQ's ma'am -- just the FAQ's.
  92.  
  93. 9    Miscellaneous.
  94. 9.01        The Cabletron story.
  95. 9.02        The Xircom story
  96. 9.03        Closing
  97.  
  98. ======================================================================
  99.  
  100. 0. Introduction.
  101.  
  102.     This is the Ethernet-HOWTO, which is a compilation of information
  103.     about which ethernet devices can be used for Linux, and how to
  104.     set them up.
  105.  
  106.     This Ethernet-HOWTO is by:
  107.         Donald J. Becker    <becker@super.org>
  108.         Paul Gortmaker        <gpg109@rsphysse.anu.edu.au>
  109.  
  110.     It covers what cards you should and shouldn't buy; how to set
  111.     them up, how to run more than one, and other common problems and
  112.     questions. It does *not* cover the software end of things, as that
  113.     is covered in the NET-2 HOWTO. You can freely distribute this
  114.     document as long as you distribute an original copy with the
  115.     author's names intact.
  116.  
  117.     Other people who have contributed (directly or indirectly) are,
  118.     in alphabetical order:
  119.  
  120.     Peter Bauer        <pbauer@rnivh.rni.sub.org>
  121.     Ross Biro        <bir7@leland.Stanford.EDU>
  122.     Alan Cox        <iiitac@pyr.swan.ac.uk>
  123.     Bjorn Ekwall        <bj0rn@blox.se>
  124.     Mike Jagdis        <jaggy@purplet.demon.co.uk>
  125.     Duke Kamstra        <kamstra@ccmail.west.smc.com>
  126.     Russell Nelson        <nelson@crynwr.com>
  127.     Cameron Spitzer        <cls@truffula.sj.ca.us> <camerons@NAD.3Com.com>
  128.     Dave Roberts        <david.roberts@amd.com>
  129.     Glenn Talbott        <gt@hprnd.rose.hp.com>
  130.     Miquel van Smoorenburg    <miquels@cistron.nl.mugnet.org>
  131.  
  132.     Many thanks to the above people, and all the other unmentioned
  133.     testers out there.
  134.  
  135. 0.01 How Do I Use This Guide?
  136.  
  137.     As this guide is getting bigger and bigger, you probably don't want
  138.     to spend the rest of your afternoon reading the whole thing. And you
  139.     don't *have* to read it all. If you haven't got an ethernet card, then
  140.     you will want to start with section one to see what you should buy,
  141.     and what you should avoid. If you have already got an ethernet card,
  142.     but are not sure if you can use it with Linux, then you will want to
  143.     read section two, which contains specific information on each
  144.     manufacturer, and their cards. If you are having trouble with your
  145.     card, then you will want to read the specific information about
  146.     your card in section two and the troubleshooting information in
  147.     section six. If you are intersted in some of the technical aspects
  148.     of the device drivers, then you can find that information in
  149.     section 5.
  150.  
  151. 0.01 Disclaimer
  152.  
  153.     This document is *not* gospel. However, it is probably the most
  154.     up to date info that you will be able to find. Nobody is responsible
  155.     for what happens to your hardware but yourself. If your ethercard
  156.     or any other hardware goes up in smoke (...nearly impossible!)
  157.     we take no responsibility. ie. THE AUTHORS ARE NOT RESPONSIBLE
  158.     FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE
  159.     INFORMATION INCLUDED IN THIS DOCUMENT.
  160.  
  161. 0.02 Questions already?
  162.  
  163.         If you have questions about your ethernet card, please READ this
  164.     document first. You may also want to join the NET channel of the
  165.     Linux-activists mailing list by sending mail to
  166.                 linux-activists-request@niksula.hut.fi
  167.         with the line
  168.                 X-Mn-Admin: join NET
  169.         at the top of the message body (not the subject). If you want to
  170.     learn how to use the mailing channels, then send an empty message
  171.     to the above address, and you will get an instruction manual sent
  172.     back to you in a few hours. However, it is worth noting that the NET
  173.     channel is primarily used for discussion of the networking code, and
  174.     you may not see much discussion about a particular driver.
  175.         Furthermore keep in mind that the NET channel is for development
  176.     discussions only. General questions on how to configure your system
  177.     should be directed to comp.os.linux.help unless you are actively
  178.     involved in the development of part of the networking for Linux.
  179.     We ask that you *please* respect this general guideline for content.
  180.     You can safely bet that neither of the authors will respond to
  181.     any plea for help that *should* be posted to c.o.l.help, but is
  182.     inappropraitely placed elsewhere.
  183.  
  184. 0.03 Related Documentation
  185.  
  186.     Much of this info came from saved postings from the comp.os.linux
  187.     groups, which shows that it is a valuable resource of information.
  188.     Other useful information came from a bunch of small files by Donald
  189.     himself. Some of these are found at /pub/linux/info on ftp.super.org
  190.     [192.31.192.1] Of course, if you are setting up an Ethernet card,
  191.     then you will want to read the NET-2 HOWTO so that you can actually
  192.     do something with it. This is also the home of any alpha drivers that
  193.     are not presently in the kernel. And last but not least, the
  194.     contributions from the individuals and companies listed above are
  195.     greatly appreciated as well.
  196.  
  197. 0.04 New versions of this document
  198.  
  199.         New versions of this document can be retrieved via anonymous
  200.         FTP from sunsite.unc.edu:/pub/Linux/docs/HOWTO/* and various
  201.     Linux ftp mirror sites. It will also be posted to the newsgroup
  202.     comp.os.linux.announce at a regular interval. Updates will be made
  203.     as new information / drivers becomes available.
  204.  
  205. 0.05 Feedback
  206.  
  207.     Any corrections can be sent to one of us (gpg109@rsphysse.anu.edu.au
  208.     or becker@super.org) We will *attempt* to keep this up to date as
  209.     more drivers become available, and as NET-2 matures.
  210.  
  211. 1 What card should I buy for Linux?
  212.  
  213.     For impatient users that just want a quick, cheap answer the
  214.     summary is: get 16 bit thinnet 8013 cards. For more detail as
  215.     to the who what where and why, read on.
  216.  
  217. 1.01 Eight bit vs 16 bit
  218.  
  219.     Unless you are a light user, or are confined to using the smaller
  220.     ISA slot, the use of the 8 bit cards like the wd8003 and the 3c503
  221.     is really not worth the cost savings. Get the 8013 or the 3c503/16
  222.     instead.
  223.  
  224. 1.02 Low price Ethernet cards
  225.  
  226.     I keep track of the current low-price vendors, just because it's
  227.     asked so often.  Call AT-LAN-TEC at 301-948-7070.  Ask for their
  228.     technical support person, "Vincent Bono".  As with all purchases,
  229.     you should indicate you are buying this for a Linux system.
  230.     The last I checked the price for 10 NE2000s was $480, or $48 ea.!
  231.     NB: Their current NE2000 clone is a model that "traps" other
  232.     drivers that probe into their address space. AT-LAN-TEC also carries
  233.     a clone, non-EEPROM 8013 board for somewhat more, and a NE2100 clone.
  234.     Either is a better choice if the very lowest price isn't essential.
  235.  
  236.     The Allied Telesis AT1500 is offered at a good price by many vendors.
  237.     Even Inmac, known for their premium markup, has this card for under
  238.     $100.
  239.  
  240. 1.03 Vendors and Brands to Avoid
  241.  
  242.     These vendors have decided *not* to release programming information
  243.     about their products, without signing a non-disclosure agreement.
  244.     More information can be found in sections two and nine.  Hence there
  245.     is no support for products offered from these companies:
  246.  
  247.         (1) Cabletron
  248.         (2) Xircom
  249.  
  250.     These particular cards should be avoided, as they are obsolete.
  251.     The reasons as to why they have been classified as such can be
  252.     found in section 2 of this document.
  253.  
  254.         (1) 3c501
  255.         (2) Arcnet
  256.  
  257. 1.04 Type of cable that your card should support
  258.  
  259.     Unless you have to conform to an existing network, you will want
  260.     to use thinnet or thin ethernet cable. This is the style with the
  261.     standard BNC connectors. See section 4 for other concerns with
  262.     different types of ethernet cable.
  263.  
  264.     Most ethercards also come in a "Combo" version for only $10-$20 more.
  265.     These have both twisted pair and thinnet transceiver built-in,
  266.     allowing you to change your mind later.
  267.  
  268. 2 Status of Various Ethernet Cards under Linux
  269.  
  270.     The only thing that one needs to use an ethernet card with Linux
  271.     is the appropriate driver. For this, it is essential that the
  272.     manufacturer will release the technical programming information to
  273.     the general public without you (or anyone) having to sign your life
  274.     away. A good guide for the likelihood of getting documentation
  275.     (or, if you aren't writing code, the likelihood that someone
  276.     else will write that driver you really, really need) is the
  277.     availability of the Crynwr (nee Clarkson) packet driver. Russ
  278.     Nelson (see the acknowledgements in the intro.) runs this
  279.     operation, and has been very helpful in supporting the development
  280.     of drivers for Linux.
  281.  
  282.     Given the documentation, you can write a driver for
  283.     your card and use it for Linux, at least in theory. Keep in
  284.     mind that some old hardware that was designed for XT type
  285.     machines will not function very well in a multitasking
  286.     environment such as Linux. Use of these will lead to major
  287.     problems if your network sees a reasonable amount of traffic.
  288.  
  289.     Most cards come with drivers for MS-DOS interfaces such as
  290.     NDIS and ODI, but these are useless for Linux.  Many people
  291.     have suggested directly linking them in or automatic
  292.     translation, but this is nearly impossible.  The MS-DOS
  293.     drivers expect to be in 16 bit mode and hook into "software
  294.     interrupts", both incompatible with the Linux kernel.  This
  295.     incompatibility is actually a feature, as some Linux drivers
  296.     are considerably better than their MS-DOS counterparts.  The
  297.     "8390" series drivers, for instance, use ping-pong transmit
  298.     buffers, which are only now being introduced in the MS-DOS world.
  299.  
  300.     Keep in mind that PC ethercards have the widest variety of
  301.     interfaces (shared memory, programmed I/O, bus-master, or slave
  302.     DMA) of any computer hardware for anything, and supporting a
  303.     new ethercard sometimes requires re-thinking most of the lower-level
  304.     networking code. (If you are interested in learning more about
  305.     these different forms of interfaces, see section 5)
  306.  
  307.     Also, similar product numbers don't always indicate similar products.
  308.     For instance, the 3c50* product line from 3Com varies wildly
  309.     between different members.
  310.  
  311.     Enough talk. Let's get down to the information you want.
  312.  
  313. 2.01 3Com
  314.  
  315.     Supported:
  316.  
  317.         3c503, 3c503/16
  318.             3Com shared-memory ethercards.  They also have a
  319.                 programmed I/O mode that doesn't use the 8390
  320.             facilities (their engineers found too many bugs!)
  321.             It should be about the same speed as the same bus
  322.             width WD80x3, but I don't have a 16 bit version
  323.             to benchmark. Unless you are a light user, spend
  324.             the extra money and get the 16 bit model, as the
  325.             price difference isn't significant. The 3c503 does not
  326.             have "EEPROM setup", so the diagnostic/setup program
  327.             isn't needed before running the card with Linux. The
  328.             shared memory address of the 3c503 is set using jumpers
  329.             that are shared with the boot PROM address.  This is
  330.             confusing to people familiar with other ISA cards,
  331.             where you always leave the jumper set to "disable"
  332.             unless you have a boot PROM.
  333.  
  334.             The Linux 3c503 driver can also work with the 3c503
  335.             programmed-I/O mode, but this is slower and less
  336.             reliable than shared memory mode.  Also, programmed-I/O
  337.             mode is not tested when updating the drivers, the
  338.             deadman (deadcard?) check code may falsely timeout on
  339.             some machines, and the probe for a 3c503 in
  340.             programmed-I/O mode is turned off by default in some
  341.             versions of the kernel.  This was a panic reaction to
  342.             the general device driver probe explosion; the 3c503
  343.             shared memory probe is a safe read from memory, rather
  344.             than an extensive scan through I/O space.  As of pl13,
  345.             the kernel has a I/O port registrar that makes I/O
  346.             space probes safer, (see section 5.1 for more info.)
  347.             and the programmed-I/O 3c503 probe has been re-enabled.
  348.             You still shouldn't use the programmed-I/O mode though,
  349.             unless you need it for MS-DOS compatibility.
  350.  
  351.             The 3c503's IRQ line is set in software, with no hints
  352.             from an EEPROM.  Unlike the MS-DOS drivers, the
  353.             Linux driver has capability to autoIRQ: it uses the
  354.             first available IRQ line in {5,2/9,3,4}, selected each
  355.             time the card is 'ifconfig'ed.  (Older driver versions
  356.             selected the IRQ at boot time.)  The ioctl() call
  357.             in 'ifconfig' will return EAGAIN if no IRQ line is
  358.             available at that time.
  359.  
  360.             The 0.99pl13 open-time-autoIRQ 3c503 driver has two
  361.             minor bugs.  The first is that autoIRQ list is effect-
  362.             ively {5, 3, 4} instead of {5, 2/9, 3, 4}.  The second
  363.             is that if you use autoIRQ the interrupt channel isn't
  364.             set the first time, and the board is frozen until the
  365.             first transmit timeout triggers a board reset.  After
  366.             that, everything works fine.  The fixed version will be
  367.             in pl14 if alpha-tester reports are received in time.
  368.  
  369.         3c509
  370.             A new card from 3Com. It's inexpensive and has
  371.             excellent performance for a non-bus-master design. The
  372.             drawbacks are that it _requires_ very low interrupt
  373.             latency, and it isn't rated for bus speeds greater than
  374.             8Mhz.
  375.  
  376.             A working 3c509 driver is included as an alpha-test
  377.             version in the 0.99pl13 kernel sources, but
  378.             it's not enabled by default.  You'll have to edit
  379.             config.in by hand to remove the comment character in
  380.             front of the 3c509 line.
  381.  
  382.             The 3c509 has a tiny Rx buffer, causing the driver to
  383.             occasionally drop a packet if interrupts are masked for
  384.             too long.  To minimize this problem, the driver should
  385.             be completely rewritten to use predictive interrupts.
  386.             (Note: performance re-writes of working drivers are low
  387.             priority unless there is some particular incentive or
  388.             need.)
  389.  
  390.             It's likely that the EISA 3c579 probe will be working
  391.             and tested before a new driver is done, so watch for
  392.             an interim release.
  393.  
  394.             There is also an alpha version of a Linux 3c509
  395.             diagnostic and EEPROM setup program, but for now
  396.             users that don't like the defaults should use the
  397.             MS-DOS EEPROM setup program.
  398.  
  399.         3c579
  400.             The EISA version of the 509. The current EISA version
  401.             uses the same 16 bit wide chip rather than a 32 bit
  402.             interface, so the performance increase isn't stunning.
  403.             The 3c509 driver should work with the EISA version, if
  404.             the EISA version is configured to an ISA base address.
  405.             (I have neither an EISA machine nor a 3c579 to test it
  406.             on. -djb)  We would be interested in hearing progress
  407.             reports from any 3c579 users. (Read the above 3c509
  408.             section for info on the driver.)
  409.  
  410.             Cameron Spitzer writes:
  411.             "The 3C579 (Etherlink III EISA) should be configured
  412.             as an EISA card.  The IO Base Address (window 0
  413.             register 6 bits 4:0) should be 1f, which selects EISA
  414.             addressing mode.  Logic outside the ASIC decodes the
  415.             IO address s000, where s is the slot number.  I don't
  416.             think it was documented real well.  Except for its IO
  417.             Base Address, the '579 should behave EXACTLY like the
  418.             '509 (EL3 ISA), and if it doesn't, I want to hear
  419.             about it (at my work address).
  420.  
  421.             I will leave it to the Real Programmers to suggest
  422.             the right hack to /usr/src/linux/net/inet/3c509.c to
  423.             take care of the EISA case.
  424.  
  425.             Beware that if you put a '509 in EISA addressing mode
  426.             by mistake and save that in the EEPROM, you'll have
  427.             to use an EISA machine or the infamous Test Via to
  428.             get it back to normal, and it will conflict at IO
  429.             location 0 which may hang your ISA machine.  It's not
  430.             my job to say whether this is a bug or feature, but I
  431.             have heard loud and clear that customers don't like
  432.             it and I don't think we'll do it that way again."
  433.  
  434.     Unsupported:
  435.  
  436.         3c501
  437.             Too brain-damaged to use. Available surplus from many
  438.             places. Avoid it like the plague. Again, do not
  439.             purchase this card, even as a joke.  It's performance
  440.             is horrible, and it breaks in many ways.
  441.  
  442.             (I have a standing offer:  I'll pay $2 for each 3c501
  443.             shipped to me postpaid, but only if you include the
  444.             BNC 'T' connector and the jumpers.  $2.50 if you just
  445.             send the 'T', jumpers, and address PROM and promise to
  446.             destroy the board. -djb)
  447.  
  448.             Cameron L. Spitzer of 3Com said:
  449.             "I'm speaking only for myself here, of course, but I
  450.             believe 3Com advises against installing a 3C501 in a
  451.             new system, mostly for the same reasons Donald has
  452.             discussed.  You probably won't be happy with the
  453.             3C501 in your Linux box.  The data sheet is marked
  454.             "(obsolete)" on 3Com's Developers' Order Form, and
  455.             the board is not part of 3Com's program for sending
  456.             free Technical Reference Manuals to people who need
  457.             them.  The decade-old things are nearly
  458.             indestructible, but that's about all they've got
  459.             going for them any more."
  460.  
  461.             For those not yet convinced, the 3c501 can only do one
  462.             thing at a time -- while you are removing one packet
  463.             from the single-packet buffer it cannot receive
  464.             another packet, nor can it receive a packet while are
  465.             loading a transmit packet.  This was fine for a
  466.             network between two 8088-based computers where
  467.             processing each packet and replying took 10's of
  468.             msecs, but modern networks send back-to-back
  469.             packets for almost every transaction.
  470.  
  471.             Having read this far, you must be persistent, so you
  472.             get let in on a secret. As of pl13, some more of
  473.             the hardware problems were "compensated for".
  474.  
  475.             Ie. in a fit of madness I wasted a whole day updating
  476.             my 3c501 driver and then trying to track down a few
  477.             more of the 3c501 glitches.  It now works well enough
  478.             to NFS mount filesystems, but the receiver still
  479.             occasionally hangs.  I'm mostly certain that this is
  480.             a hardware bug.  When it hangs, the next set of
  481.             outgoing packets will reset the board, but that's
  482.             only useful if you have something occasionally
  483.             generating outgoing packets.
  484.  
  485.             I'll let this out for "pre-alpha" testing, under the
  486.             following conditions: This is unsupported code.  I
  487.             know my usual copyright says all the code is
  488.             unsupported, but this is _really_ unsupported.  I
  489.             DON'T want to see bug reports, and I'll accept bug
  490.             fixes only if I'm in a good mood that day.
  491.  
  492.             I don't want to see a fest of "Linux ethercards for
  493.             sale" postings.  A bunch of people have bought dozens
  494.             of "dumpster special" 3c501s, and they hope to sell
  495.             them at rip-off prices.  A 3c501 is barely worth the
  496.             shipping cost, and if I see people trying to sell
  497.             them here by claiming "supported by Linux" I _will_
  498.             flame them.  They are _not_ supported by Linux.
  499.  
  500.             I don't want to be flamed later for putting out bad
  501.             software.  I don't know all all of the 3c501 bugs,
  502.             and I know this driver only handles a few that I've
  503.             been able to figure out.  It has taken a long
  504.             intense effort just to get the driver working this
  505.             well.
  506.  
  507.             That said, ftp.super.org:/pub/linux/pl14/3c501.c
  508.             Jumper your card to 0x280, add the 3c501.o to the
  509.             OBJS line in net/inet/Makefile, uncomment the 3c501
  510.             line in linux/config.in, 'make config; make' as usual.
  511.  
  512.             AutoIRQ works, DMA isn't used, the autoprobe only
  513.             looks at 0x280, the debug level is set with the third
  514.             boot-time argument.  You'll probably want to change
  515.             the default EL_DEBUG to '2'.
  516.  
  517.             Once again, THE USE OF A 3c501 IS STRONGLY DISCOURAGED
  518.             and it is NOT SUPPORTED BY LINUX.
  519.  
  520.  
  521.         3c505
  522.             An Intel-based ethercard with no driver available
  523.             at present. (Not a very common card.)
  524.  
  525.         3c507
  526.             This card uses one of the Intel chips, and the
  527.             development of the driver is closely related to
  528.             the development of the Intel Ether Express driver.
  529.             An alpha driver is presently available. Expect to
  530.             see the driver in the standard release of pl15.
  531.             Technical information is available in section 5.06,
  532.             and if you have experience in writing drivers, see
  533.             section 5.07 as well.
  534.  
  535. 2.02 Western Digital / SMC
  536.  
  537.     The ethernet part of Western Digital has been bought by SMC.  The
  538.     SMC Elite and SMC Elite Plus are the same as late-model WD8003
  539.     and WD8013 cards. Note that the SMC Elite Ultra is *not* the
  540.     same as the plain SMC Elite / WD8013 card. (see below)
  541.  
  542.     Supported:
  543.  
  544.         WD8003, WD8013, SMC Elite, SMC Elite Plus
  545.             A shared memory design by Western Digital. The
  546.             8 bit 8003 is slightly less expensive, but only
  547.             worth the savings for light use. Over the
  548.             years the design has added more registers and an
  549.             EEPROM.  Clones usually go by the '8013' name, and
  550.             usually use a non-EEPROM (jumpered) design. This part
  551.             of WD has been sold to SMC, so you'll usually see
  552.             something like SMC/WD8013 or SMC Elite Plus (WD8013).
  553.             The shared memory makes the cards 10-20% faster,
  554.             especially with larger packets. More importantly
  555.             (to me at least) it avoids a few bugs in the
  556.             programmed-I/O mode of the 8390, allows safe
  557.             multi-threaded access to the packet buffer, and
  558.             doesn't have a programmed-I/O data register that
  559.             hangs your machine during warm-boot probes.
  560.  
  561.         SMC Elite 16 ULTRA
  562.             This ethercard is based on a new chip from SMC, with
  563.             a few new features.  While it has a mode that is
  564.             similar to the older SMC ethercards, it's not
  565.             compatible with the old WD80*3 drivers.  However, in
  566.             this mode it shares most of its code with the other
  567.             8390 drivers, while operating somewhat faster than a
  568.             WD8013 clone.
  569.  
  570.             I'm considering writing a separate driver for the
  571.             Ultra's "Altego" mode which allows chaining transmits
  572.             at the cost of inefficient use of receive buffers,
  573.             but that will probably not happen right away.
  574.             Performance re-writes of working drivers are low
  575.             priority unless there is some particular incentive
  576.             or need.
  577.  
  578.             This is a new driver, made possible by documentation
  579.             and ethercard loan from kamstra@ccmail.west.smc.com,
  580.             Duke Kamstra.  If you plan on using an Ultra with Linux
  581.             send him a note of thanks to let him know that there
  582.             are Linux users out there!
  583.             If you would like to _ALPHA_ test this driver:
  584.                ftp.super.org:/pub/linux/pl14/smc-ultra.c
  585.                ftp.super.org:/pub/linux/pl14/Space.c
  586.             You'll have to add an "Ultra" line to config.in and
  587.             edit net/inet/Makefile.  The Ultra driver will probably
  588.             be (silently?) included in pl14.
  589.  
  590. 2.03 NExxxx
  591.  
  592.     The prefix "NE" came from Novell Ethernet.  Novell followed the
  593.     cheapest NatSemi databook design and sold the manufacturing rights
  594.     (spun off?) Eagle, just to get reasonably-priced ethercards into
  595.     the market.
  596.  
  597.     Supported:
  598.  
  599.         NE1000, NE2000
  600.             The now-generic name for a bare-bones design around
  601.             the NatSemi 8390. They use programmed I/O rather than
  602.             shared memory, leading to easier installation but
  603.             slightly lower performance and a few problems. Again,
  604.             the savings of using an 8 bit NE1000 over the NE2000
  605.             are only warranted if you expect light use. Some
  606.             recently introduced NE2000 clones use the National
  607.             Semiconductor "AT/LANTic" 83905 chip, which offers
  608.             a shared memory mode similar to the 8013 and EEPROM
  609.             or software configuration. Some problems can arise
  610.             with poor clones. See the question and answer section
  611.             later in this document, and the section on clones.
  612.             I have written a NE2000 diagnostic program, but it
  613.             is still presently in alpha test. (ne2k)
  614.  
  615.         NE1500, NE2100
  616.             The AT1500 driver, recently added to the list of
  617.             supported cards, also supports the NE1500, NE2100 and
  618.             clones. The driver shipped with pl12 kernel doesn't
  619.             detect non-AT1500 cards with autoprobe, but will work
  620.             fine if you specify the base address explicitly and
  621.             jumper for DMA channel 5. Read the Allied Telesis
  622.             section for more information on LANCE based cards.
  623.  
  624. 2.04 Hewlett Packard
  625.  
  626.     The 272** cards use programmed I/O, similar to the NE*000 boards,
  627.     but the data transfer port can be "turned off" when you aren't
  628.     accessing it, avoiding problems with autoprobing drivers.
  629.  
  630.     Thanks to Glenn Talbott for cleaning up the confusion in this
  631.     section regarding the version numbers of the HP hardware, and
  632.     adding lots of new info.
  633.  
  634.     Supported:
  635.  
  636.         27245A
  637.             8 Bit 8390 based 10BaseT, not recommended for all the
  638.             8 bit reasons. It was re-designed a couple years
  639.             ago to be highly integrated which caused some
  640.             changes in initialization timing which only
  641.             affected testing programs, not LAN drivers. (The
  642.             new card is not 'ready' as soon after switching
  643.             into and out of loopback mode.)
  644.  
  645.         27247B, 27252A
  646.             The 47B is a 16 Bit 8390 based 10BaseT w/AUI, and
  647.             the 52A is a 16 Bit 8390 based ThinLAN w/AUI.
  648.             These cards are high performers (3c509 speed) without
  649.             the interrupt latency problems (32K onboard RAM for TX
  650.             or RX packet buffering). They both offer LAN
  651.             connector autosense, data I/O in I/O space (simpler) or
  652.             memory mapped (faster), and soft configuration. 27247B
  653.             was rated Best for ISA Servers by PC Mag this year.
  654.  
  655.         27247A
  656.             This is the older model that existed before the "B".
  657.             Two versions 27247-60001 or 27247-60002 have part
  658.             numbers marked on the card. Functionally the same to
  659.             the LAN driver, except bits in ROM to identify
  660.             boards differ. -60002 has a jumper to allow
  661.             operation in non-standard ISA busses (chipsets
  662.             that expect IOCHRDY early.)
  663.  
  664.         HP J2405A
  665.             These are lower priced, and slightly faster than the
  666.             27247B/27252A, but are missing some features, such
  667.             as AUI, ThinLAN connectivity, and boot PROM socket.
  668.             This is a fairly generic LANCE design, but a minor
  669.             design decision makes it incompatible with a generic
  670.             "NE2100" driver.  Special support for it (including
  671.             reading the DMA channel from the board) should be in
  672.             pl14 thanks to information provided by HP's Glenn
  673.             Talbott, gt@hprnd.rose.hp.com.  To use the pl12 and
  674.             pl13 LANCE driver you must remove the outw(...RESET)
  675.             calls that are commented "for old NE2100 designs", as
  676.             these will change the board's base address(!).
  677.             More information on LANCE based cards can be found in
  678.             section 5.08.
  679.  
  680. 2.05 D-Link
  681.  
  682.     Supported:
  683.  
  684.         DE-600
  685.             Laptop users and other folk who might want a quick
  686.             way to put their computer onto the ethernet may want
  687.             to use this. The driver is included with the default
  688.             kernel source tree as of pl12 and possibly earlier.
  689.             Bjorn Ekwall <bj0rn@blox.se> wrote the original.
  690.             Expect about 80kb/s transfer speed from this via the
  691.             parallel port. You should read the README.DLINK
  692.             file in the kernel source tree. The latest release
  693.             of this driver is v0.32, and it should be included
  694.             in pl14 if all goes well.
  695.  
  696.         DE100, DE200, DE-220-T
  697.             The manual says that it is 100% compatible with the
  698.             NE2000.  This is not true. You should call them and
  699.             tell them you are using their card with Linux, and they
  700.             should correct their documentation.  Some pre-0.99pl12
  701.             driver versions may have trouble recognizing the DE2**
  702.             series as 16 bit cards, and these cards are the most
  703.             widely reported as having the spurious transfer address
  704.             mismatch errors.
  705.  
  706.     Unsupported:
  707.  
  708.         DE-620
  709.             Same as the DE-600, only with two output formats.
  710.             Bjorn writes: "I have still no information on the
  711.             DE-620 that I can include in this release.  (Maybe
  712.             someone well connected to D-Link sees this,
  713.             hint, hint, hint...)
  714.  
  715. 2.06 Cabletron
  716.  
  717.     Yes, another one of these companies that won't release its
  718.     programming information. They waited for months before actually
  719.     confirming that all their information was proprietary. If you feel
  720.     like asking them why they don't want to release their info so that
  721.     people can use their cards, write to pkelly@ctron.com. You should
  722.     read section 9.1 of this document, as it has specific information
  723.     pertaining to Cabletron.
  724.  
  725.     Supported: (...well, not *really* supported)
  726.  
  727.         E10**, E10**-x, E20**, E20**-x
  728.             These are NEx000 almost-clones that are reported to
  729.             work with the standard NEx000 drivers, thanks to a
  730.             ctron-specific check during the probe. If there are
  731.             any problems, they are unlikely to be fixed, as the
  732.             programming information is unavailable.
  733.  
  734.     Unsupported:
  735.  
  736.         E21**
  737.             Again, there is not much one can do when the
  738.             programming information is proprietary. Feel free
  739.             to ask pkelly@ctron.com.  This is the only 8390-based
  740.             ethercard series that isn't supported by Linux.
  741.  
  742. 2.07    Allied Telesis
  743.  
  744.     Allied Telesis is the worlds largest maker of separate
  745.     transceivers thanks to their low prices, and they now have a
  746.     series of low-cost ethercards using the 79C960 version of the AMD
  747.     LANCE.  These are bus-master cards, and thus probably the fastest
  748.     ISA bus ethercards available (although the 3c509 has lower latency
  749.     thanks to predictive interrupts).
  750.  
  751.     Supported:
  752.  
  753.         AT1500
  754.             The driver for the AT1500 series is new in the
  755.             0.99pl12 kernel, but it won't work "out-of-the-box"
  756.             with >16M machines.  (NB This isn't a fundamental
  757.             limitation, so stop pointing and laughing at the ISA
  758.             bus. The driver just needs a hook to allocate
  759.             low-memory buffers for the bus-master DMA, and should
  760.             be just as fast on >16M systems. It can be easily
  761.             fixed by initializing the LANCE driver with the
  762.             character devices, but this fix depends on the
  763.             resolution of the networking code uncertainty.)
  764.  
  765.             For those inquiring about using bus-master LANCE
  766.             boards with >16M systems, I've been working on that
  767.             recently.  I borrowed 16M from another system here
  768.             at work, and am using the resulting 32M system while
  769.             typing this message.  The bad news is that the modified
  770.             driver uses a very ugly interface, and I'm unlikely
  771.             to have it cleaned up and tested in time for pl14.
  772.             
  773.             This driver should also work with NE1500 and NE2100
  774.             clones.  The pl12 version, included with SLS1.03, is
  775.             named "le0" rather than "eth0" and it requires the
  776.             base address to be specified if you don't have a real
  777.             AT1500.  You might be able to use it as easily as
  778.             using the boot line:
  779.                 lilo: linux ether=0,0x320,le0
  780.             (change 0x320 to your true base address) and then
  781.             changing "eth0" to "le0" in /etc/rc.net.  Your DMA
  782.             channel must be set at DMA5, but autoIRQ does work.
  783.             
  784.             The 0.99pl13 driver should be able to autoprobe for
  785.             your ethercard at the locations {0x300, 0x320, 0x340,
  786.             0x360}.  Also, the driver is now named "eth0" by
  787.             default.
  788.             
  789.             Future driver versions may figure out a way to
  790.             autoDMA.  Although there is no autoDMA (until I verify
  791.             that autoDMA is safe and reliable), some versions
  792.             (pl13) allow passing the DMA channel at boot-time via
  793.             LILO.  (Boot-time parameters can be made permanent in
  794.             LILO v13+, read the docs.)  The DMA channel otherwise
  795.             defaults to DMA5.
  796.             
  797.             Please report the exact chip used by your ethercard,
  798.             and any success or failure you have.  This driver is
  799.             still young, and I've gotten few reports.
  800.  
  801.             More information on AMD LANCE based Ethernet cards
  802.             can be found in section 5.08.
  803.  
  804.         AT1700
  805.             The Allied Telesis AT1700 series ethercards are based 
  806.             on the Fujitsu MB86965.  This chip uses a programmed 
  807.             I/O interface, and a pair of fixed-size tranmit 
  808.             buffers.  This allows small groups of packets to sent 
  809.             be sent back-to-back, with a short pause while 
  810.             switching buffers.
  811.             
  812.             A unique feature is the ability to drive 150ohm STP 
  813.             (Shielded Twisted Pair) cable commonly installed for 
  814.             Token Ring, in addition to 10baseT 100ohm UTP 
  815.             (unshielded twisted pair).
  816.              
  817.             A mis-feature to watch out for is that the current 
  818.             production version silently wires to DMA channel 5, 
  819.             rendering it useless.  No device driver will be 
  820.             written using DMA if installing a second card into 
  821.             the machine breaks both, and only way to disble the 
  822.             DMA is with a knife.
  823.             
  824.             The at1700 driver is in alpha test, and will probably 
  825.             be released with the pl14 kernel.
  826.             
  827. 2.08 Arcnet
  828.  
  829.     There is no Arcnet driver for Linux. Feel free to write a driver. With
  830.     the very low cost and better performance of ethernet, I expect that
  831.     most places will be giving away their Arcnet hardware for free,
  832.     resulting in a lot of home systems with Arcnet.
  833.  
  834.     An advantage of Arcnet is that all of the cards have identical
  835.     interfaces, so once a driver is available it will work for everyone.
  836.  
  837. 2.09 Digital / DEC
  838.  
  839.     Supported: DE200-64k, DE200-32k, DE202, DE100, DEPCA rev E
  840.  
  841.         Peter Bauer has written a driver for the older DEPCA models.
  842.         Look for depca-0.7.tar.z  -- It patches against pl13. This
  843.         will allow you to use any of the above cards. FvK is
  844.         currently trying to arrange integration of this driver
  845.         into pl14, so you *may* not need this file after pl13.
  846.         If you are using this driver, Peter would like to hear
  847.         from you. His e-mail addr. is near the start of this
  848.         document.
  849.  
  850.         Peter had this to say about all the DEPCA cards:
  851.         "In this thing I'll document my knowledge about the digital
  852.         ethernet boards for PC's: There exist lots of different
  853.         hardware-releases of ethernet boards of DEC, all subsumed
  854.         under the keyword 'DEPCA'. All these boards are more or
  855.         less compatible as they all seem to use some chip called
  856.         "Lance". The hardware of these cards and the programing
  857.         of them is documented in a manual purchasable from DEC
  858.         (about $70 -- I had the order number some months ago, but
  859.         lost it...)"
  860.  
  861.     Unsupported: Digital Etherlink III
  862.  
  863.         Again, Peter Bauer said that "the new etherlink III seems to
  864.         be a break: No official docu from DEC as far as today,
  865.         other (incompatible??) hardware used, and (no joke) (at least
  866.         for the first delivered cards) also a sharp knife necessary
  867.         to get the card working (needs cut of some irq lines ...)
  868.         As far as I know, lots of DEC Employees use Linux (at least
  869.         for hobby purposes) and the depca-driver, because its a
  870.         de-facto standard in DEC, so I encourage any DEC-employee
  871.         reading this to check wether my writing is true, and to
  872.         support sources of information about the etherworks-III."
  873.  
  874. 2.10 Intel Ethernet Cards
  875.  
  876.     Supported: Ether Express
  877.  
  878.         This card uses the intel i82586. An alpha driver is available.
  879.         Expect to see the driver in the standard release of pl15.
  880.  
  881. 2.11 PureData
  882.  
  883.     Supported: PDUC8028, PDI8023
  884.  
  885.         The PureData PDUC8028 and PDI8023 series of cards are reported
  886.         to work, thanks to special probe code contributed by Mike
  887.         Jagdis <jaggy@purplet.demon.co.uk>.  The support is integrated
  888.         with the WD driver.
  889.  
  890. 2.12 Xircom
  891.  
  892.     Another group that won't release documentation. No cards
  893.     supported.  Don't look for any support in the future unless
  894.     they release their programming information. And this is
  895.     highly unlikely, as they *forbid* you from even reverse-
  896.     engineering their drivers. Here is some of the results from
  897.     people who have tried to deal with Xircom.
  898.  
  899.     "I had no end of problems trying to work with Xircom.
  900.     After spending months talking to them and working up a
  901.     prospectus, I was told that no information would be forthcoming
  902.     and that they were not interested in markets other than the
  903.     ISA/DOS market. (I was trying to interface the pocket adapters
  904.     to an Amiga). I won't work with them anymore and I won't
  905.     recommend their products to anyone."
  906.  
  907.     "They (Xircom) won't give it (programming info.) out. BSDI
  908.     was able to get the spec and write a driver for it, but
  909.     only by promising not to give out the source."
  910.  
  911.     You might also be interested in reading section 9.2
  912.  
  913. 2.13 Zenith
  914.  
  915.     The built-in Z-Note network adaptor is based on the Intel
  916.     i82593 using two DMA channels.  There might be a driver for it
  917.     in early 1994. See section 5.06 for more information.
  918.  
  919. 2.14 Racal-Interlan
  920.  
  921.     There is an alpha driver for the NI5210 floating about.
  922.     (last seen on tsx-11.mit.edu /pub/linux/ALPHA/ni/ni52.tar.gz)
  923.     This card also uses one of the Intel chips. See section
  924.     5.06 for more information.
  925.  
  926. 2.15 AMD LANCE (79C960)
  927.  
  928.     There really is no AMD ethernet card. You are probably reading this
  929.     because the only markings you could find on your card said AMD
  930.     and the above number. The above number refers to a chip from AMD
  931.     that is the heart of many ethernet cards. See the section on the
  932.     Allied Telesis AT1500, the NE1500/2100 and the information in
  933.     section 5.08. Chances are that the existing LANCE driver will work
  934.     with all AMD LANCE based cards.
  935.     
  936. 2.16 AT-Lan-Tec
  937.  
  938.     AT-Lan-Tec pocket ethernet adaptor:
  939.         This is a generic, low-cost OEM pocket adaptor being sold by
  940.         AT-Lan-Tec, and (likely) a number of other suppliers.  A
  941.         driver is in progress, but not yet complete (-djb 11/9/93).
  942.  
  943. 3. Clones of popular Ethernet cards.
  944.  
  945.     Due to the popular design of some cards,  different companies will
  946.     make "clones" or replicas of the original card. However, one must
  947.     be careful, as some of these clones are not 100% compatible, and
  948.     can be troublesome. Some common problems with "not-quite-clones"
  949.     are noted in the question and answer section of this document.
  950.  
  951. 3.1 WD80x3 clones
  952.  
  953.     The following clones are reported to work with the standard
  954.     WD80x3 driver:
  955.  
  956.     AT-LAN-TEC 8013
  957.     PureData (not a 8013 clone, but the 8013 driver has special code)
  958.     LANNET LEC-45
  959.     PE-8013 (WD-8013 Compatible)
  960.  
  961. 3.2 NE2000 clones
  962.  
  963.     The following clones are reported to work with the standard
  964.     NE2000 driver:
  965.  
  966.     Accton NE2000 (might not get detected at boot, see section 6)
  967.     Alta Combo NE2000 clone
  968.     Aritsoft LANtastic AE-2 (OK, but has flawed error-reporting registers)
  969.     Asante Etherpak 2001/2003
  970.     AT-LAN-TEC NE2000 clone (uses Winbond chip that traps SCSI drivers)
  971.     Cabletron products: E10**,  E10**-x,  E20**, E20**-x
  972.     Cnet UTP 10baseT (NE 2000 emulation)
  973.     D-Link Ethernet II (bad clones, but the driver checks for them)
  974.     4-Dimension FD0490 EtherBoard16
  975.     LTC E-NET/16 P/N: 8300-200-002 (lipka@lip.hanse.de)
  976.     Network Solutions HE-203
  977.     SIIG Inc E-Lan/200 (NE 2000 comp.)
  978.     SVEC 4 Dimension Ethernet
  979.  
  980. 4. Cables, coax, twisted pairs etc.
  981.  
  982.     If you are starting a network from scratch, it's considerably less
  983.     expensive to use thin ethernet, RG58 co-ax cable with BNC connectors,
  984.     than old-fashioned thick ethernet, RG-5 cable with N connectors, or
  985.     10baseT, twisted pair telco-style cables with RJ-45 "phone"
  986.     connectors.
  987.  
  988. 4.01 Thin Ethernet (thinnet)
  989.  
  990.     Thin ethernet is the "ether of choice".  The cable is inexpensive.  If
  991.     you are making your own cables solid-core RG58A is $0.09/ft. and
  992.     stranded RG58AU is $0.15/ft.  Twist-on BNC connectors are < $2 ea.,
  993.     and other misc. pieces are similarly inexpensive.  It is essential
  994.     that you properly terminate each end of the cable with 50 ohm
  995.     terminators, so budget $2 ea. for a pair.  It's also vital that
  996.     your cable have no "stubs" -- the 'T' connectors must be attached
  997.     directly to the ethercards.
  998.  
  999. 4.02 Twisted pair
  1000.  
  1001.     Twisted pair networks require active hubs, which start around $250,
  1002.     and the raw cable cost can actually be higher than thinnet.  They are
  1003.     usually sold using the claim that you can use your existing telephone
  1004.     wiring, but it's a rare installation where that turns out to be the
  1005.     case.  The claim that you can upgrade to higher speeds is also
  1006.     suspect, as most proposed schemes use higher-grade (read $$) cable and
  1007.     more sophisticated termination ($$$) than you would likely install on
  1008.     speculation.
  1009.  
  1010.     On the other hand, hubs are rapidly dropping in price, all 100Mb/sec
  1011.     ethernet proposals use twisted pair, and most new business
  1012.     installations use twisted pair.
  1013.  
  1014. 4.03 Thick Ethernet
  1015.  
  1016.     Thick ethernet is mostly obsolete, and is usually used only to remain
  1017.     compatible with an existing implementation.  You can stretch the rules
  1018.     and connect short spans of thick and thin ethernet together with a
  1019.     passive $3 N-to-BNC connector, and that's often the best solution to
  1020.     expanding an existing thicknet.  A correct (but expensive) solution is
  1021.     to use a repeater in this case.
  1022.  
  1023. [End part 1/2]
  1024.