Permission is granted to distribute the enclosed cs89x0.[ch] driver
only in conjunction with the Etherboot package.  The code is
ordinarily distributed under the GPL.

Russ Nelson, January 2000

CREDITS

I want to thank

  Mike Cruse <mcruse@cti-ltd.com>
     for providing an evaluation NIC and for sponsoring the
     development of this driver.

  Randall Sears <sears@crystal.cirrus.com>
  Deva Bodas <bodas@crystal.cirrus.com>
  Andreas Kraemer <akraemer@crystal.cirrus.com>
  Wolfgang Krause <100303.2673@compuserve.com>
     for excellent technical support and for providing the required
     programming information. I appreciate Crystal Semiconductor's
     commitment towards free software.

  Russell Nelson <nelson@crynwr.com>
     for writing the Linux device driver for the CS89x0
     chipset. Russel's code is very well designed and simplified my
     job a lot.
