                Tulip イーサネットカードドライバ

Tulip ドライバは Donald Becker により開発され、Takashi Manabe により変
更されます。このドライバは DECchip DC21x4x ファミリを使った PCI イーサ
ネットカードで動作するよう設計されています。1.2.x および 1.3.x のすべ
てのカーネルで動作するはずですが、私が動作を確認しているのは 1.2.13, 
1.3.39, 1.3.49, 1.3.52, 1.3.57 およびそれ以降のカーネルだけです。

おそらく de4x5.c ドライバは、現在 tulip.c ドライバがサポートしているす
べてのカードをサポートすることになるでしょう。ただ、SMC の 9332dst カー
ドなどは、まだ de4x5.c ドライバでは動きません。9332dst カードを使って
いるのでなければ、de4x5.c ドライバを先に試してください。

動作実績リスト
==============

+-------------------------------------+-----------+-------------+
|ベンダー／カード                     |チップ     |システム     |
+-------------------------------------+-----------+-------------+
|SMC                                  |           |             |
|     EtherPower 10 PCI(8432T/8432BT) |21040/21041|Pentium      |
+-------------------------------------+-----------+-------------+
|SMC                                  |           |             |
|     EtherPower 10/100 PCI(9332DST)  |21140      |Pentium/UDB  |
+-------------------------------------+-----------+-------------+
|DEC                                  |           |             |
|     EtherWorks 100/10 PCI(DE500-XA) |21140      |Pentium      |
+-------------------------------------+-----------+-------------+
|DEC                                  |           |             |
|     EtherWorks 10 PCI(DE450)        |21041      |Pentium      |
+-------------------------------------+-----------+-------------+
|DEC                                  |           |             |
|     QSILVER's                       |21040      |UDB          |
+-------------------------------------+-----------+-------------+
|ZNYX                                 |           |             |
|     312 etherarray                  |21040      |Pentium      |
+-------------------------------------+-----------+-------------+
|Allied Telesis                       |           |             |
|     LA100PCI-T                      |21140      |Pentium/UDB  |
+-------------------------------------+-----------+-------------+
|Danpex ('Planet Japan' in Japan?)    |           |             |
|     EN-9400                         |21040      |Pentium      |
+-------------------------------------+-----------+-------------+
|Cogent                               |           |             |
|     EM110                           |21140      |Pentium      |
+-------------------------------------+-----------+-------------+

Pentium: Pentium CPU を搭載した PCI マシン
UDB:     Alpha 21066 CPU を搭載した Universal Desktop Box(別名 Multia)

既知のバグ
==========
このドライバのメディア検出機能は非常にお粗末なので、ときどき深刻な問題
を引き起こします。タイムアウトが起こると、自動的にメディアの切り替えを
してしまいます。メディアを指定するか、固定したい場合 -

- tulip.c の 33 行目の TULIP_PORT を変更してください。
- tulip.c の 40 行目の TULIP_FIX_PORT の定義をアンコメントします。

あるいは

- パッチの当たった ifconfig コマンドを使用し、'link=' を指定します。
  net-tools-1.3.50-BETA6e の ifconfig.c に対するパッチはこのファイル内
  にあります。

謝辞
====

o becker@CESDIS.gsfc.nasa.gov (tulip.c ドライバの作者)
o davies@wanton.lkg.dec.com (de4x5.c ドライバの作者)

o siekas@mailhost.tcs.tulane.edu

o jheiss@calvin.caltech.edu (smc8432 カードの情報提供)
o goto@plathome.co.jp (DE450 カードを貸してくれました)
o ted@physics.ucsb.edu
o pmheuvel@xs4all.nl
o hjl@lucon.org (EN-9400)
o niles@axp745.gsfc.nasa.gov (ZNYX312)
o pkc@scs.carleton.ca (EM110)
o 試験してくれた方々
-----------------------------------------------------------------------
日本語訳：野本浩一 <hng@ps.ksky.ne.jp>
    校正：千旦裕司さん <ysenda@pop01.odn.ne.jp>
          Seiji Kanekoさん <skaneko@a2.mbn.or.jp>
          境真太郎さん <s_sakai@mxn.mesh.ne.jp>
-----------------------------------------------------------------------
*** ifconfig.c-dist     Wed Jan 17 07:25:36 1996
--- ifconfig.c  Tue Apr  9 15:24:25 1996
***************
*** 765,770 ****
--- 766,786 ----
                        continue;
                }
                ifr.ifr_map.irq = atoi(*spp);
+               if (ioctl(skfd, SIOCSIFMAP, &ifr) < 0) {
+                       fprintf(stderr, "SIOCSIFMAP: %s\n", strerror(errno));
+                       goterr = 1;
+               }
+               spp++;
+               continue;
+       }
+ 
+       if (!strcmp(*spp, "link")) {
+               if (*++spp == NULL) usage();
+               if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
+                       goterr = 1;
+                       continue;
+               }
+               ifr.ifr_map.port = atoi(*spp);
                if (ioctl(skfd, SIOCSIFMAP, &ifr) < 0) {
                        fprintf(stderr, "SIOCSIFMAP: %s\n", strerror(errno));
                        goterr = 1;
