This page contains information on using Linux with the
Packet Engines
"Yellowfin" G-NIC Gigabit ethernet adapter.
The master copy of this page resides on the
Scyld web server.
Driver Availability
The driver for the Packet Engines
"Yellowfin" G-NIC adapter is available from this web page. It is
designed for kernel versions 2.0.0 through 2.2 on all Linux architectures.
The driver for the Packet Engines
"Hamachi" GNIC-II adapter is available from the
Hamachi web page. It is
designed for kernel versions 2.0.* through 2.1.100+ on the x86 and Alpha
architectures.
To install these drivers follow the directions on the loadable modules instructions page.
This driver was written to support the Beowulf cluster project.
For Beowulf-specific information, read the Beowulf project page.
Options
There were a few early production GNIC-I cards that need special
configuration to work properly. To uses these cards you must do one of the
following
- Compile the driver with '-DYF_PROTOTYPE'
- explicitly load the driver module with the options
insmod yellowfin dma_ctrl=0x004A0263 fifo_cfg=0x0020
- or, if using 'kerneld' to automatically load modules, put the following
line in /etc/conf.modules
options yellowfin dma_ctrl=0x004A0263 fifo_cfg=0x0020
Notes:
- Some PCI performance (e.g. Read Multiple) commands were disabled because
of chip errata -- these are pre-production boards. (Default changed in v0.07
of 10/20/97.)
- My tests were run using only a 32 bit PCI bus (the card has a 64 bit
PCI interface).
- The current chip version must use a 33Mhz PCI bus if you
are using the 32 bit rather than 64 bit interface.
- Better performance numbers have gotten with later driver versions, but
we don't have final numbers yet.
Support
Mailing lists
Support for this Hamachi driver is handled through the Yellowfin
(the name for the original GNIC) mailing lists.
See
http://www.scyld.com/mailman/listinfo for the driver support mailing
lists information.
Thanks...
Thanks to Kim Stearns for
providing the initial pair of Yellowfin cards and facilitating the NDA
(Non-Disclosure Agreement) that allowed disclosing the device driver.
Revision History
- v0.07 of 10/20/97
- The settings now default to the non-prototype chips!
Changed defaults to enable all performance features.
Explicit support for compiling for the pre-production boards.
Made more values settable at module load time. Read the top of the driver
source file for details.
Hopefully fixed Alpha alignment traps.
Fixed large MTU support.
Added 2.1.* support with test_and_set_bit() and MODULE_PARAM().
- v0.08 of 10/28/97
- Corrected value of BRANCH_IFTRUE pointed out by Chris Csanady .
- v0.09 of 11/16/97
- Changed default settings to enable only known-working PCI performance
commands, rather than all commands. You can reenable them individually when
loading the module if you have newer boards.
- v0.10 of 12/5/97
- Eliminated an old sanity check that caused a compile problem with 2.1.70.
- Added an atomic lock to the dev->interrupt sanity check.
- Cleaned up module support for more than 8 cards. You can still only
pass parameters to the first eight.
- v0.11 of 1/21/98
- Added a private word-aligned interrupt lock, and did various minor
clean-ups.
- v0.12 of 4/7/98
- Clean-ups in preparation for a 1.00 release.
- v0.99A of 4/7/98
- Further clean-ups.
- v0.99.03 of 5/18/98
- Removal of 1.2.* support.
- Support the Symbios version of the chip core.
- Changed to interrupt with every transmitted packet.
Contact:Donald Becker, becker@scyld.com.