aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2006-03-22 05:02:08 -0500
committerJaroslav Kysela <perex@suse.cz>2006-03-22 05:02:08 -0500
commit5501972e0b5857bc8354770d900ceb9b40c7f6b7 (patch)
treeff239422827c4cd54d2998f8851304255de31b38 /Documentation
parent9d2f928ddf64ca0361562e30faf584cd33055c60 (diff)
parente952f31bce6e9f64db01f607abc46529ba57ac9e (diff)
Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/Changes18
-rw-r--r--Documentation/connector/connector.txt5
-rw-r--r--Documentation/dvb/avermedia.txt10
-rw-r--r--Documentation/dvb/bt8xx.txt140
-rw-r--r--Documentation/dvb/get_dvb_firmware23
-rw-r--r--Documentation/dvb/readme.txt32
-rw-r--r--Documentation/feature-removal-schedule.txt18
-rw-r--r--Documentation/networking/e100.txt158
-rw-r--r--Documentation/networking/e1000.txt620
-rw-r--r--Documentation/networking/ip-sysctl.txt49
-rw-r--r--Documentation/usb/et61x251.txt10
-rw-r--r--Documentation/usb/sn9c102.txt11
-rw-r--r--Documentation/usb/zc0301.txt254
-rw-r--r--Documentation/video4linux/CARDLIST.cx882
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx1
-rw-r--r--Documentation/video4linux/CARDLIST.saa71349
-rw-r--r--Documentation/video4linux/CARDLIST.tuner6
-rw-r--r--Documentation/video4linux/README.cpia2130
-rw-r--r--Documentation/video4linux/cpia2_overview.txt38
19 files changed, 1113 insertions, 421 deletions
diff --git a/Documentation/Changes b/Documentation/Changes
index fe5ae0f55020..b02f476c2973 100644
--- a/Documentation/Changes
+++ b/Documentation/Changes
@@ -15,24 +15,6 @@ and therefore owes credit to the same people as that file (Jared Mauch,
15Axel Boldt, Alessandro Sigala, and countless other users all over the 15Axel Boldt, Alessandro Sigala, and countless other users all over the
16'net). 16'net).
17 17
18The latest revision of this document, in various formats, can always
19be found at <http://cyberbuzz.gatech.edu/kaboom/linux/Changes-2.4/>.
20
21Feel free to translate this document. If you do so, please send me a
22URL to your translation for inclusion in future revisions of this
23document.
24
25Smotrite file <http://oblom.rnc.ru/linux/kernel/Changes.ru>, yavlyaushisya
26russkim perevodom dannogo documenta.
27
28Visite <http://www2.adi.uam.es/~ender/tecnico/> para obtener la traducción
29al español de este documento en varios formatos.
30
31Eine deutsche Version dieser Datei finden Sie unter
32<http://www.stefan-winter.de/Changes-2.4.0.txt>.
33
34Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu).
35
36Current Minimal Requirements 18Current Minimal Requirements
37============================ 19============================
38 20
diff --git a/Documentation/connector/connector.txt b/Documentation/connector/connector.txt
index 57a314b14cf8..ad6e0ba7b38c 100644
--- a/Documentation/connector/connector.txt
+++ b/Documentation/connector/connector.txt
@@ -69,10 +69,11 @@ Unregisters new callback with connector core.
69 69
70struct cb_id *id - unique connector's user identifier. 70struct cb_id *id - unique connector's user identifier.
71 71
72void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); 72int cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);
73 73
74Sends message to the specified groups. It can be safely called from 74Sends message to the specified groups. It can be safely called from
75any context, but may silently fail under strong memory pressure. 75softirq context, but may silently fail under strong memory pressure.
76If there are no listeners for given group -ESRCH can be returned.
76 77
77struct cn_msg * - message header(with attached data). 78struct cn_msg * - message header(with attached data).
78u32 __group - destination group. 79u32 __group - destination group.
diff --git a/Documentation/dvb/avermedia.txt b/Documentation/dvb/avermedia.txt
index 068070ff13cd..8bab8461a4af 100644
--- a/Documentation/dvb/avermedia.txt
+++ b/Documentation/dvb/avermedia.txt
@@ -1,4 +1,3 @@
1
2HOWTO: Get An Avermedia DVB-T working under Linux 1HOWTO: Get An Avermedia DVB-T working under Linux
3 ______________________________________________ 2 ______________________________________________
4 3
@@ -137,11 +136,8 @@ Getting the card going
137 To power up the card, load the following modules in the 136 To power up the card, load the following modules in the
138 following order: 137 following order:
139 138
140 * insmod dvb-core.o 139 * modprobe bttv (normally loaded automatically)
141 * modprobe bttv.o 140 * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
142 * insmod bt878.o
143 * insmod dvb-bt8xx.o
144 * insmod sp887x.o
145 141
146 Insertion of these modules into the running kernel will 142 Insertion of these modules into the running kernel will
147 activate the appropriate DVB device nodes. It is then possible 143 activate the appropriate DVB device nodes. It is then possible
@@ -302,4 +298,4 @@ Further Update
302 Many thanks to Nigel Pearson for the updates to this document 298 Many thanks to Nigel Pearson for the updates to this document
303 since the recent revision of the driver. 299 since the recent revision of the driver.
304 300
305 January 29th 2004 301 February 14th 2006
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt
index 52ed462061df..4e7614e606c5 100644
--- a/Documentation/dvb/bt8xx.txt
+++ b/Documentation/dvb/bt8xx.txt
@@ -1,118 +1,78 @@
1How to get the Nebula, PCTV, FusionHDTV Lite and Twinhan DST cards working 1How to get the bt8xx cards working
2========================================================================== 2==================================
3 3
4This class of cards has a bt878a as the PCI interface, and 41) General information
5require the bttv driver. 5======================
6 6
7Please pay close attention to the warning about the bttv module 7This class of cards has a bt878a as the PCI interface, and require the bttv driver
8options below for the DST card. 8for accessing the i2c bus and the gpio pins of the bt8xx chipset.
9Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx PCI bridge:
9 10
101) General informations 11Compiling kernel please enable:
11======================= 12a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 Video For Linux"
12 13b.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices"
13These drivers require the bttv driver to provide the means to access 14 => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards"
14the i2c bus and the gpio pins of the bt8xx chipset.
15
16Because of this, you need to enable
17"Device drivers" => "Multimedia devices"
18 => "Video For Linux" => "BT848 Video For Linux"
19
20Furthermore you need to enable
21"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices"
22 => "DVB for Linux" "DVB Core Support" "BT8xx based PCI cards"
23 15
242) Loading Modules 162) Loading Modules
25================== 17==================
26 18
27In general you need to load the bttv driver, which will handle the gpio and 19In default cases bttv is loaded automatically.
28i2c communication for us, plus the common dvb-bt8xx device driver. 20To load the backend either place dvb-bt8xx in etc/modules, or apply manually:
29The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110), TwinHan (dst),
30FusionHDTV DVB-T Lite (mt352) and FusionHDTV5 Lite (lgdt330x) are loaded
31automatically by the dvb-bt8xx device driver.
32
333a) Nebula / Pinnacle PCTV / FusionHDTV Lite
34---------------------------------------------
35
36 $ modprobe bttv (normally bttv is being loaded automatically by kmod)
37 $ modprobe dvb-bt8xx
38
39(or just place dvb-bt8xx in /etc/modules for automatic loading)
40
41
423b) TwinHan and Clones
43--------------------------
44 21
45 $ modprobe bttv card=0x71 22 $ modprobe dvb-bt8xx
46 $ modprobe dvb-bt8xx
47 $ modprobe dst
48 23
49The value 0x71 will override the PCI type detection for dvb-bt8xx, 24All frontends will be loaded automatically.
50which is necessary for TwinHan cards. Omission of this parameter might result 25People running udev please see Documentation/dvb/udev.txt.
51in a system lockup.
52 26
53If you're having an older card (blue color PCB) and card=0x71 locks up 27In the following cases overriding the PCI type detection for dvb-bt8xx might be necessary:
54your machine, try using 0x68, too. If that does not work, ask on the
55mailing list.
56 28
57The DST module takes a couple of useful parameters. 292a) Running TwinHan and Clones
30------------------------------
58 31
59verbose takes values 0 to 4. These values control the verbosity level, 32 $ modprobe bttv card=113
60and can be used to debug also. 33 $ modprobe dvb-bt8xx
34 $ modprobe dst
61 35
62verbose=0 means complete disabling of messages 36Useful parameters for verbosity level and debugging the dst module:
63 1 only error messages are displayed
64 2 notifications are also displayed
65 3 informational messages are also displayed
66 4 debug setting
67 37
68dst_addons takes values 0 and 0x20. A value of 0 means it is a FTA card. 38verbose=0: messages are disabled
690x20 means it has a Conditional Access slot. 39 1: only error messages are displayed
40 2: notifications are displayed
41 3: other useful messages are displayed
42 4: debug setting
43dst_addons=0: card is a free to air (FTA) card only
44 0x20: card has a conditional access slot for scrambled channels
70 45
71The autodetected values are determined by the cards 'response string' 46The autodetected values are determined by the cards' "response string".
72which you can see in your logs e.g. 47In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI].
48For bug reports please send in a complete log with verbose=4 activated.
49Please also see Documentation/dvb/ci.txt.
73 50
74dst_get_device_id: Recognise [DSTMCI] 512b) Running multiple cards
75
76If you need to sent in bug reports on the dst, please do send in a complete
77log with the verbose=4 module parameter. For general usage, the default setting
78of verbose=1 is ideal.
79
80
814) Multiple cards
82-------------------------- 52--------------------------
83 53
84If you happen to be running multiple cards, it would be advisable to load 54Examples of card ID's:
85the bttv module with the card id. This would help to solve any module loading
86problems that you might face.
87
88For example, if you have a Twinhan and Clones card along with a FusionHDTV5 Lite
89 55
90 $ modprobe bttv card=0x71 card=0x87 56Pinnacle PCTV Sat: 94
91 57Nebula Electronics Digi TV: 104
92Here the order of the card id is important and should be the same as that of the 58pcHDTV HD-2000 TV: 112
93physical order of the cards. Here card=0x71 represents the Twinhan and clones 59Twinhan DST and clones: 113
94and card=0x87 represents Fusion HDTV5 Lite. These arguments can also be 60Avermedia AverTV DVB-T 771: 123
95specified in decimal, rather than hex: 61Avermedia AverTV DVB-T 761: 124
62DViCO FusionHDTV DVB-T Lite: 128
63DViCO FusionHDTV 5 Lite: 135
96 64
65Notice: The order of the card ID should be uprising:
66Example:
97 $ modprobe bttv card=113 card=135 67 $ modprobe bttv card=113 card=135
68 $ modprobe dvb-bt8xx
98 69
99Some examples of card-id's 70For a full list of card ID's please see Documentation/video4linux/CARDLIST.bttv.
100 71In case of further problems send questions to the mailing list: www.linuxdvb.org.
101Pinnacle Sat 0x5e (94)
102Nebula Digi TV 0x68 (104)
103PC HDTV 0x70 (112)
104Twinhan 0x71 (113)
105FusionHDTV DVB-T Lite 0x80 (128)
106FusionHDTV5 Lite 0x87 (135)
107
108For a full list of card-id's, see the V4L Documentation within the kernel
109source: linux/Documentation/video4linux/CARDLIST.bttv
110
111If you have problems with this please do ask on the mailing list.
112 72
113--
114Authors: Richard Walker, 73Authors: Richard Walker,
115 Jamie Honan, 74 Jamie Honan,
116 Michael Hunold, 75 Michael Hunold,
117 Manu Abraham, 76 Manu Abraham,
77 Uwe Bugla,
118 Michael Krufky 78 Michael Krufky
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware
index 75c28a174092..bb55f49f2745 100644
--- a/Documentation/dvb/get_dvb_firmware
+++ b/Documentation/dvb/get_dvb_firmware
@@ -21,8 +21,9 @@
21use File::Temp qw/ tempdir /; 21use File::Temp qw/ tempdir /;
22use IO::Handle; 22use IO::Handle;
23 23
24@components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t", 24@components = ( "sp8870", "sp887x", "tda10045", "tda10046",
25 "dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", 25 "tda10046lifeview", "av7110", "dec2000t", "dec2540t",
26 "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
26 "or51211", "or51132_qam", "or51132_vsb", "bluebird"); 27 "or51211", "or51132_qam", "or51132_vsb", "bluebird");
27 28
28# Check args 29# Check args
@@ -126,6 +127,24 @@ sub tda10046 {
126 $outfile; 127 $outfile;
127} 128}
128 129
130sub tda10046lifeview {
131 my $sourcefile = "Drv_2.11.02.zip";
132 my $url = "http://www.lifeview.com.tw/drivers/pci_card/FlyDVB-T/$sourcefile";
133 my $hash = "1ea24dee4eea8fe971686981f34fd2e0";
134 my $outfile = "dvb-fe-tda10046.fw";
135 my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
136
137 checkstandard();
138
139 wgetfile($sourcefile, $url);
140 unzip($sourcefile, $tmpdir);
141 extract("$tmpdir/LVHybrid.sys", 0x8b088, 24602, "$tmpdir/fwtmp");
142 verify("$tmpdir/fwtmp", $hash);
143 copy("$tmpdir/fwtmp", $outfile);
144
145 $outfile;
146}
147
129sub av7110 { 148sub av7110 {
130 my $sourcefile = "dvb-ttpci-01.fw-261d"; 149 my $sourcefile = "dvb-ttpci-01.fw-261d";
131 my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; 150 my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile";
diff --git a/Documentation/dvb/readme.txt b/Documentation/dvb/readme.txt
index f5c50b22de3b..0b0380c91990 100644
--- a/Documentation/dvb/readme.txt
+++ b/Documentation/dvb/readme.txt
@@ -20,11 +20,23 @@ http://linuxtv.org/downloads/
20 20
21What's inside this directory: 21What's inside this directory:
22 22
23"avermedia.txt"
24contains detailed information about the
25Avermedia DVB-T cards. See also "bt8xx.txt".
26
27"bt8xx.txt"
28contains detailed information about the
29various bt8xx based "budget" DVB cards.
30
23"cards.txt" 31"cards.txt"
24contains a list of supported hardware. 32contains a list of supported hardware.
25 33
34"ci.txt"
35contains detailed information about the
36CI module as part from TwinHan cards and Clones.
37
26"contributors.txt" 38"contributors.txt"
27is the who-is-who of DVB development 39is the who-is-who of DVB development.
28 40
29"faq.txt" 41"faq.txt"
30contains frequently asked questions and their answers. 42contains frequently asked questions and their answers.
@@ -34,19 +46,17 @@ script to download and extract firmware for those devices
34that require it. 46that require it.
35 47
36"ttusb-dec.txt" 48"ttusb-dec.txt"
37contains detailed informations about the 49contains detailed information about the
38TT DEC2000/DEC3000 USB DVB hardware. 50TT DEC2000/DEC3000 USB DVB hardware.
39 51
40"bt8xx.txt"
41contains detailed installation instructions for the
42various bt8xx based "budget" DVB cards
43(Nebula, Pinnacle PCTV, Twinhan DST)
44
45"README.dibusb"
46contains detailed information about adapters
47based on DiBcom reference design.
48
49"udev.txt" 52"udev.txt"
50how to get DVB and udev up and running. 53how to get DVB and udev up and running.
51 54
55"README.dvb-usb"
56contains detailed information about the DVB USB cards.
57
58"README.flexcop"
59contains detailed information about the
60Technisat- and Flexcop B2C2 drivers.
61
52Good luck and have fun! 62Good luck and have fun!
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 28a31c5e2289..afeaf6218ea2 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -196,3 +196,21 @@ Why: Board specific code doesn't build anymore since ~2.6.0 and no
196 users have complained indicating there is no more need for these 196 users have complained indicating there is no more need for these
197 boards. This should really be considered a last call. 197 boards. This should really be considered a last call.
198Who: Ralf Baechle <ralf@linux-mips.org> 198Who: Ralf Baechle <ralf@linux-mips.org>
199
200---------------------------
201
202What: USB driver API moves to EXPORT_SYMBOL_GPL
203When: Febuary 2008
204Files: include/linux/usb.h, drivers/usb/core/driver.c
205Why: The USB subsystem has changed a lot over time, and it has been
206 possible to create userspace USB drivers using usbfs/libusb/gadgetfs
207 that operate as fast as the USB bus allows. Because of this, the USB
208 subsystem will not be allowing closed source kernel drivers to
209 register with it, after this grace period is over. If anyone needs
210 any help in converting their closed source drivers over to use the
211 userspace filesystems, please contact the
212 linux-usb-devel@lists.sourceforge.net mailing list, and the developers
213 there will be glad to help you out.
214Who: Greg Kroah-Hartman <gregkh@suse.de>
215
216---------------------------
diff --git a/Documentation/networking/e100.txt b/Documentation/networking/e100.txt
index 4ef9f7cd5dc3..944aa55e79f8 100644
--- a/Documentation/networking/e100.txt
+++ b/Documentation/networking/e100.txt
@@ -1,16 +1,17 @@
1Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters 1Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters
2============================================================== 2==============================================================
3 3
4November 17, 2004 4November 15, 2005
5
6 5
7Contents 6Contents
8======== 7========
9 8
10- In This Release 9- In This Release
11- Identifying Your Adapter 10- Identifying Your Adapter
11- Building and Installation
12- Driver Configuration Parameters 12- Driver Configuration Parameters
13- Additional Configurations 13- Additional Configurations
14- Known Issues
14- Support 15- Support
15 16
16 17
@@ -18,18 +19,30 @@ In This Release
18=============== 19===============
19 20
20This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of 21This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of
21Adapters, version 3.3.x. This driver supports 2.4.x and 2.6.x kernels. 22Adapters. This driver includes support for Itanium(R)2-based systems.
23
24For questions related to hardware requirements, refer to the documentation
25supplied with your Intel PRO/100 adapter.
26
27The following features are now available in supported kernels:
28 - Native VLANs
29 - Channel Bonding (teaming)
30 - SNMP
31
32Channel Bonding documentation can be found in the Linux kernel source:
33/Documentation/networking/bonding.txt
34
22 35
23Identifying Your Adapter 36Identifying Your Adapter
24======================== 37========================
25 38
26For more information on how to identify your adapter, go to the Adapter & 39For more information on how to identify your adapter, go to the Adapter &
27Driver ID Guide at: 40Driver ID Guide at:
28 41
29 http://support.intel.com/support/network/adapter/pro100/21397.htm 42 http://support.intel.com/support/network/adapter/pro100/21397.htm
30 43
31For the latest Intel network drivers for Linux, refer to the following 44For the latest Intel network drivers for Linux, refer to the following
32website. In the search field, enter your adapter name or type, or use the 45website. In the search field, enter your adapter name or type, or use the
33networking link on the left to search for your adapter: 46networking link on the left to search for your adapter:
34 47
35 http://downloadfinder.intel.com/scripts-df/support_intel.asp 48 http://downloadfinder.intel.com/scripts-df/support_intel.asp
@@ -40,73 +53,75 @@ Driver Configuration Parameters
40The default value for each parameter is generally the recommended setting, 53The default value for each parameter is generally the recommended setting,
41unless otherwise noted. 54unless otherwise noted.
42 55
43Rx Descriptors: Number of receive descriptors. A receive descriptor is a data 56Rx Descriptors: Number of receive descriptors. A receive descriptor is a data
44 structure that describes a receive buffer and its attributes to the network 57 structure that describes a receive buffer and its attributes to the network
45 controller. The data in the descriptor is used by the controller to write 58 controller. The data in the descriptor is used by the controller to write
46 data from the controller to host memory. In the 3.0.x driver the valid 59 data from the controller to host memory. In the 3.x.x driver the valid range
47 range for this parameter is 64-256. The default value is 64. This parameter 60 for this parameter is 64-256. The default value is 64. This parameter can be
48 can be changed using the command 61 changed using the command:
49 62
50 ethtool -G eth? rx n, where n is the number of desired rx descriptors. 63 ethtool -G eth? rx n, where n is the number of desired rx descriptors.
51 64
52Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a 65Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data
53 data structure that describes a transmit buffer and its attributes to the 66 structure that describes a transmit buffer and its attributes to the network
54 network controller. The data in the descriptor is used by the controller to 67 controller. The data in the descriptor is used by the controller to read
55 read data from the host memory to the controller. In the 3.0.x driver the 68 data from the host memory to the controller. In the 3.x.x driver the valid
56 valid range for this parameter is 64-256. The default value is 64. This 69 range for this parameter is 64-256. The default value is 64. This parameter
57 parameter can be changed using the command 70 can be changed using the command:
58 71
59 ethtool -G eth? tx n, where n is the number of desired tx descriptors. 72 ethtool -G eth? tx n, where n is the number of desired tx descriptors.
60 73
61Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by 74Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by
62 default. Ethtool can be used as follows to force speed/duplex. 75 default. Ethtool can be used as follows to force speed/duplex.
63 76
64 ethtool -s eth? autoneg off speed {10|100} duplex {full|half} 77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
65 78
66 NOTE: setting the speed/duplex to incorrect values will cause the link to 79 NOTE: setting the speed/duplex to incorrect values will cause the link to
67 fail. 80 fail.
68 81
69Event Log Message Level: The driver uses the message level flag to log events 82Event Log Message Level: The driver uses the message level flag to log events
70 to syslog. The message level can be set at driver load time. It can also be 83 to syslog. The message level can be set at driver load time. It can also be
71 set using the command 84 set using the command:
72 85
73 ethtool -s eth? msglvl n 86 ethtool -s eth? msglvl n
74 87
88
75Additional Configurations 89Additional Configurations
76========================= 90=========================
77 91
78 Configuring the Driver on Different Distributions 92 Configuring the Driver on Different Distributions
79 ------------------------------------------------- 93 -------------------------------------------------
80 94
81 Configuring a network driver to load properly when the system is started is 95 Configuring a network driver to load properly when the system is started is
82 distribution dependent. Typically, the configuration process involves adding 96 distribution dependent. Typically, the configuration process involves adding
83 an alias line to /etc/modules.conf as well as editing other system startup 97 an alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing
84 scripts and/or configuration files. Many popular Linux distributions ship 98 other system startup scripts and/or configuration files. Many popular Linux
85 with tools to make these changes for you. To learn the proper way to 99 distributions ship with tools to make these changes for you. To learn the
86 configure a network device for your system, refer to your distribution 100 proper way to configure a network device for your system, refer to your
87 documentation. If during this process you are asked for the driver or module 101 distribution documentation. If during this process you are asked for the
88 name, the name for the Linux Base Driver for the Intel PRO/100 Family of 102 driver or module name, the name for the Linux Base Driver for the Intel
89 Adapters is e100. 103 PRO/100 Family of Adapters is e100.
90 104
91 As an example, if you install the e100 driver for two PRO/100 adapters 105 As an example, if you install the e100 driver for two PRO/100 adapters
92 (eth0 and eth1), add the following to modules.conf: 106 (eth0 and eth1), add the following to modules.conf or modprobe.conf:
93 107
94 alias eth0 e100 108 alias eth0 e100
95 alias eth1 e100 109 alias eth1 e100
96 110
97 Viewing Link Messages 111 Viewing Link Messages
98 --------------------- 112 ---------------------
99 In order to see link messages and other Intel driver information on your 113 In order to see link messages and other Intel driver information on your
100 console, you must set the dmesg level up to six. This can be done by 114 console, you must set the dmesg level up to six. This can be done by
101 entering the following on the command line before loading the e100 driver: 115 entering the following on the command line before loading the e100 driver:
102 116
103 dmesg -n 8 117 dmesg -n 8
104 118
105 If you wish to see all messages issued by the driver, including debug 119 If you wish to see all messages issued by the driver, including debug
106 messages, set the dmesg level to eight. 120 messages, set the dmesg level to eight.
107 121
108 NOTE: This setting is not saved across reboots. 122 NOTE: This setting is not saved across reboots.
109 123
124
110 Ethtool 125 Ethtool
111 ------- 126 -------
112 127
@@ -114,29 +129,27 @@ Additional Configurations
114 diagnostics, as well as displaying statistical information. Ethtool 129 diagnostics, as well as displaying statistical information. Ethtool
115 version 1.6 or later is required for this functionality. 130 version 1.6 or later is required for this functionality.
116 131
117 The latest release of ethtool can be found at: 132 The latest release of ethtool can be found from
118 http://sf.net/projects/gkernel. 133 http://sourceforge.net/projects/gkernel.
119 134
120 NOTE: This driver uses mii support from the kernel. As a result, when 135 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
121 there is no link, ethtool will report speed/duplex to be 10/half. 136 for a more complete ethtool feature set can be enabled by upgrading
137 ethtool to ethtool-1.8.1.
122 138
123 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
124 for a more complete ethtool feature set can be enabled by upgrading
125 ethtool to ethtool-1.8.1.
126 139
127 Enabling Wake on LAN* (WoL) 140 Enabling Wake on LAN* (WoL)
128 --------------------------- 141 ---------------------------
129 WoL is provided through the Ethtool* utility. Ethtool is included with Red 142 WoL is provided through the Ethtool* utility. Ethtool is included with Red
130 Hat* 8.0. For other Linux distributions, download and install Ethtool from 143 Hat* 8.0. For other Linux distributions, download and install Ethtool from
131 the following website: http://sourceforge.net/projects/gkernel. 144 the following website: http://sourceforge.net/projects/gkernel.
132 145
133 For instructions on enabling WoL with Ethtool, refer to the Ethtool man 146 For instructions on enabling WoL with Ethtool, refer to the Ethtool man page.
134 page.
135 147
136 WoL will be enabled on the system during the next shut down or reboot. For 148 WoL will be enabled on the system during the next shut down or reboot. For
137 this driver version, in order to enable WoL, the e100 driver must be 149 this driver version, in order to enable WoL, the e100 driver must be
138 loaded when shutting down or rebooting the system. 150 loaded when shutting down or rebooting the system.
139 151
152
140 NAPI 153 NAPI
141 ---- 154 ----
142 155
@@ -144,6 +157,25 @@ Additional Configurations
144 157
145 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. 158 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.
146 159
160 Multiple Interfaces on Same Ethernet Broadcast Network
161 ------------------------------------------------------
162
163 Due to the default ARP behavior on Linux, it is not possible to have
164 one system on two IP networks in the same Ethernet broadcast domain
165 (non-partitioned switch) behave as expected. All Ethernet interfaces
166 will respond to IP traffic for any IP address assigned to the system.
167 This results in unbalanced receive traffic.
168
169 If you have multiple interfaces in a server, either turn on ARP
170 filtering by
171
172 (1) entering: echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
173 (this only works if your kernel's version is higher than 2.4.5), or
174
175 (2) installing the interfaces in separate broadcast domains (either
176 in different switches or in a switch partitioned to VLANs).
177
178
147Support 179Support
148======= 180=======
149 181
@@ -151,20 +183,24 @@ For general information, go to the Intel support website at:
151 183
152 http://support.intel.com 184 http://support.intel.com
153 185
186 or the Intel Wired Networking project hosted by Sourceforge at:
187
188 http://sourceforge.net/projects/e1000
189
154If an issue is identified with the released source code on the supported 190If an issue is identified with the released source code on the supported
155kernel with a supported adapter, email the specific information related to 191kernel with a supported adapter, email the specific information related to the
156the issue to linux.nics@intel.com. 192issue to e1000-devel@lists.sourceforge.net.
157 193
158 194
159License 195License
160======= 196=======
161 197
162This software program is released under the terms of a license agreement 198This software program is released under the terms of a license agreement
163between you ('Licensee') and Intel. Do not use or load this software or any 199between you ('Licensee') and Intel. Do not use or load this software or any
164associated materials (collectively, the 'Software') until you have carefully 200associated materials (collectively, the 'Software') until you have carefully
165read the full terms and conditions of the LICENSE located in this software 201read the full terms and conditions of the file COPYING located in this software
166package. By loading or using the Software, you agree to the terms of this 202package. By loading or using the Software, you agree to the terms of this
167Agreement. If you do not agree with the terms of this Agreement, do not 203Agreement. If you do not agree with the terms of this Agreement, do not install
168install or use the Software. 204or use the Software.
169 205
170* Other names and brands may be claimed as the property of others. 206* Other names and brands may be claimed as the property of others.
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt
index 2ebd4058d46d..71fe15af356c 100644
--- a/Documentation/networking/e1000.txt
+++ b/Documentation/networking/e1000.txt
@@ -1,7 +1,7 @@
1Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters 1Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters
2=============================================================== 2===============================================================
3 3
4November 17, 2004 4November 15, 2005
5 5
6 6
7Contents 7Contents
@@ -20,254 +20,316 @@ In This Release
20=============== 20===============
21 21
22This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family 22This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family
23of Adapters, version 5.x.x. 23of Adapters. This driver includes support for Itanium(R)2-based systems.
24 24
25For questions related to hardware requirements, refer to the documentation 25For questions related to hardware requirements, refer to the documentation
26supplied with your Intel PRO/1000 adapter. All hardware requirements listed 26supplied with your Intel PRO/1000 adapter. All hardware requirements listed
27apply to use with Linux. 27apply to use with Linux.
28 28
29Native VLANs are now available with supported kernels. 29The following features are now available in supported kernels:
30 - Native VLANs
31 - Channel Bonding (teaming)
32 - SNMP
33
34Channel Bonding documentation can be found in the Linux kernel source:
35/Documentation/networking/bonding.txt
36
37The driver information previously displayed in the /proc filesystem is not
38supported in this release. Alternatively, you can use ethtool (version 1.6
39or later), lspci, and ifconfig to obtain the same information.
40
41Instructions on updating ethtool can be found in the section "Additional
42Configurations" later in this document.
43
30 44
31Identifying Your Adapter 45Identifying Your Adapter
32======================== 46========================
33 47
34For more information on how to identify your adapter, go to the Adapter & 48For more information on how to identify your adapter, go to the Adapter &
35Driver ID Guide at: 49Driver ID Guide at:
36 50
37 http://support.intel.com/support/network/adapter/pro100/21397.htm 51 http://support.intel.com/support/network/adapter/pro100/21397.htm
38 52
39For the latest Intel network drivers for Linux, refer to the following 53For the latest Intel network drivers for Linux, refer to the following
40website. In the search field, enter your adapter name or type, or use the 54website. In the search field, enter your adapter name or type, or use the
41networking link on the left to search for your adapter: 55networking link on the left to search for your adapter:
42 56
43 http://downloadfinder.intel.com/scripts-df/support_intel.asp 57 http://downloadfinder.intel.com/scripts-df/support_intel.asp
44 58
45Command Line Parameters
46=======================
47 59
48If the driver is built as a module, the following optional parameters are 60Command Line Parameters =======================
49used by entering them on the command line with the modprobe or insmod command 61
50using this syntax: 62If the driver is built as a module, the following optional parameters
63are used by entering them on the command line with the modprobe or insmod
64command using this syntax:
51 65
52 modprobe e1000 [<option>=<VAL1>,<VAL2>,...] 66 modprobe e1000 [<option>=<VAL1>,<VAL2>,...]
53 67
54 insmod e1000 [<option>=<VAL1>,<VAL2>,...] 68 insmod e1000 [<option>=<VAL1>,<VAL2>,...]
55 69
56For example, with two PRO/1000 PCI adapters, entering: 70For example, with two PRO/1000 PCI adapters, entering:
57 71
58 insmod e1000 TxDescriptors=80,128 72 insmod e1000 TxDescriptors=80,128
59 73
60loads the e1000 driver with 80 TX descriptors for the first adapter and 128 TX 74loads the e1000 driver with 80 TX descriptors for the first adapter and 128
61descriptors for the second adapter. 75TX descriptors for the second adapter.
62 76
63The default value for each parameter is generally the recommended setting, 77The default value for each parameter is generally the recommended setting,
64unless otherwise noted. Also, if the driver is statically built into the 78unless otherwise noted.
65kernel, the driver is loaded with the default values for all the parameters. 79
66Ethtool can be used to change some of the parameters at runtime. 80NOTES: For more information about the AutoNeg, Duplex, and Speed
81 parameters, see the "Speed and Duplex Configuration" section in
82 this document.
67 83
68 NOTES: For more information about the AutoNeg, Duplex, and Speed 84 For more information about the InterruptThrottleRate,
69 parameters, see the "Speed and Duplex Configuration" section in 85 RxIntDelay, TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay
70 this document. 86 parameters, see the application note at:
87 http://www.intel.com/design/network/applnots/ap450.htm
71 88
72 For more information about the InterruptThrottleRate, RxIntDelay, 89 A descriptor describes a data buffer and attributes related to
73 TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay parameters, see the 90 the data buffer. This information is accessed by the hardware.
74 application note at:
75 http://www.intel.com/design/network/applnots/ap450.htm
76 91
77 A descriptor describes a data buffer and attributes related to the
78 data buffer. This information is accessed by the hardware.
79 92
80AutoNeg (adapters using copper connections only) 93AutoNeg
81Valid Range: 0x01-0x0F, 0x20-0x2F 94-------
95(Supported only on adapters with copper connections)
96Valid Range: 0x01-0x0F, 0x20-0x2F
82Default Value: 0x2F 97Default Value: 0x2F
83 This parameter is a bit mask that specifies which speed and duplex 98
84 settings the board advertises. When this parameter is used, the Speed and 99This parameter is a bit mask that specifies which speed and duplex
85 Duplex parameters must not be specified. 100settings the board advertises. When this parameter is used, the Speed
86 NOTE: Refer to the Speed and Duplex section of this readme for more 101and Duplex parameters must not be specified.
87 information on the AutoNeg parameter. 102
88 103NOTE: Refer to the Speed and Duplex section of this readme for more
89Duplex (adapters using copper connections only) 104 information on the AutoNeg parameter.
90Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) 105
106
107Duplex
108------
109(Supported only on adapters with copper connections)
110Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full)
91Default Value: 0 111Default Value: 0
92 Defines the direction in which data is allowed to flow. Can be either one 112
93 or two-directional. If both Duplex and the link partner are set to auto- 113Defines the direction in which data is allowed to flow. Can be either
94 negotiate, the board auto-detects the correct duplex. If the link partner 114one or two-directional. If both Duplex and the link partner are set to
95 is forced (either full or half), Duplex defaults to half-duplex. 115auto-negotiate, the board auto-detects the correct duplex. If the link
116partner is forced (either full or half), Duplex defaults to half-duplex.
117
96 118
97FlowControl 119FlowControl
98Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) 120----------
99Default: Read flow control settings from the EEPROM 121Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
100 This parameter controls the automatic generation(Tx) and response(Rx) to 122Default Value: Reads flow control settings from the EEPROM
101 Ethernet PAUSE frames. 123
124This parameter controls the automatic generation(Tx) and response(Rx)
125to Ethernet PAUSE frames.
126
102 127
103InterruptThrottleRate 128InterruptThrottleRate
104Valid Range: 100-100000 (0=off, 1=dynamic) 129---------------------
130(not supported on Intel 82542, 82543 or 82544-based adapters)
131Valid Range: 100-100000 (0=off, 1=dynamic)
105Default Value: 8000 132Default Value: 8000
106 This value represents the maximum number of interrupts per second the 133
107 controller generates. InterruptThrottleRate is another setting used in 134This value represents the maximum number of interrupts per second the
108 interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust 135controller generates. InterruptThrottleRate is another setting used in
109 InterruptThrottleRate based on the current traffic load. 136interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust
110Un-supported Adapters: InterruptThrottleRate is NOT supported by 82542, 82543 137InterruptThrottleRate based on the current traffic load.
111 or 82544-based adapters. 138
112 139NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and
113 NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and 140 RxAbsIntDelay parameters. In other words, minimizing the receive
114 RxAbsIntDelay parameters. In other words, minimizing the receive 141 and/or transmit absolute delays does not force the controller to
115 and/or transmit absolute delays does not force the controller to 142 generate more interrupts than what the Interrupt Throttle Rate
116 generate more interrupts than what the Interrupt Throttle Rate 143 allows.
117 allows. 144
118 CAUTION: If you are using the Intel PRO/1000 CT Network Connection 145CAUTION: If you are using the Intel PRO/1000 CT Network Connection
119 (controller 82547), setting InterruptThrottleRate to a value 146 (controller 82547), setting InterruptThrottleRate to a value
120 greater than 75,000, may hang (stop transmitting) adapters under 147 greater than 75,000, may hang (stop transmitting) adapters
121 certain network conditions. If this occurs a NETDEV WATCHDOG 148 under certain network conditions. If this occurs a NETDEV
122 message is logged in the system event log. In addition, the 149 WATCHDOG message is logged in the system event log. In
123 controller is automatically reset, restoring the network 150 addition, the controller is automatically reset, restoring
124 connection. To eliminate the potential for the hang, ensure 151 the network connection. To eliminate the potential for the
125 that InterruptThrottleRate is set no greater than 75,000 and is 152 hang, ensure that InterruptThrottleRate is set no greater
126 not set to 0. 153 than 75,000 and is not set to 0.
127 NOTE: When e1000 is loaded with default settings and multiple adapters are 154
128 in use simultaneously, the CPU utilization may increase non-linearly. 155NOTE: When e1000 is loaded with default settings and multiple adapters
129 In order to limit the CPU utilization without impacting the overall 156 are in use simultaneously, the CPU utilization may increase non-
130 throughput, we recommend that you load the driver as follows: 157 linearly. In order to limit the CPU utilization without impacting
131 158 the overall throughput, we recommend that you load the driver as
132 insmod e1000.o InterruptThrottleRate=3000,3000,3000 159 follows:
133 160
134 This sets the InterruptThrottleRate to 3000 interrupts/sec for the 161 insmod e1000.o InterruptThrottleRate=3000,3000,3000
135 first, second, and third instances of the driver. The range of 2000 to 162
136 3000 interrupts per second works on a majority of systems and is a 163 This sets the InterruptThrottleRate to 3000 interrupts/sec for
137 good starting point, but the optimal value will be platform-specific. 164 the first, second, and third instances of the driver. The range
138 If CPU utilization is not a concern, use RX_POLLING (NAPI) and default 165 of 2000 to 3000 interrupts per second works on a majority of
139 driver settings. 166 systems and is a good starting point, but the optimal value will
167 be platform-specific. If CPU utilization is not a concern, use
168 RX_POLLING (NAPI) and default driver settings.
169
140 170
141RxDescriptors 171RxDescriptors
142Valid Range: 80-256 for 82542 and 82543-based adapters 172-------------
143 80-4096 for all other supported adapters 173Valid Range: 80-256 for 82542 and 82543-based adapters
174 80-4096 for all other supported adapters
144Default Value: 256 175Default Value: 256
145 This value is the number of receive descriptors allocated by the driver.
146 Increasing this value allows the driver to buffer more incoming packets.
147 Each descriptor is 16 bytes. A receive buffer is allocated for each
148 descriptor and can either be 2048 or 4096 bytes long, depending on the MTU
149 176
150 setting. An incoming packet can span one or more receive descriptors. 177This value specifies the number of receive descriptors allocated by the
151 The maximum MTU size is 16110. 178driver. Increasing this value allows the driver to buffer more incoming
179packets. Each descriptor is 16 bytes. A receive buffer is also
180allocated for each descriptor and is 2048.
152 181
153 NOTE: MTU designates the frame size. It only needs to be set for Jumbo
154 Frames.
155 NOTE: Depending on the available system resources, the request for a
156 higher number of receive descriptors may be denied. In this case,
157 use a lower number.
158 182
159RxIntDelay 183RxIntDelay
160Valid Range: 0-65535 (0=off) 184----------
185Valid Range: 0-65535 (0=off)
161Default Value: 0 186Default Value: 0
162 This value delays the generation of receive interrupts in units of 1.024 187
163 microseconds. Receive interrupt reduction can improve CPU efficiency if 188This value delays the generation of receive interrupts in units of 1.024
164 properly tuned for specific network traffic. Increasing this value adds 189microseconds. Receive interrupt reduction can improve CPU efficiency if
165 extra latency to frame reception and can end up decreasing the throughput 190properly tuned for specific network traffic. Increasing this value adds
166 of TCP traffic. If the system is reporting dropped receives, this value 191extra latency to frame reception and can end up decreasing the throughput
167 may be set too high, causing the driver to run out of available receive 192of TCP traffic. If the system is reporting dropped receives, this value
168 descriptors. 193may be set too high, causing the driver to run out of available receive
169 194descriptors.
170 CAUTION: When setting RxIntDelay to a value other than 0, adapters may 195
171 hang (stop transmitting) under certain network conditions. If 196CAUTION: When setting RxIntDelay to a value other than 0, adapters may
172 this occurs a NETDEV WATCHDOG message is logged in the system 197 hang (stop transmitting) under certain network conditions. If
173 event log. In addition, the controller is automatically reset, 198 this occurs a NETDEV WATCHDOG message is logged in the system
174 restoring the network connection. To eliminate the potential for 199 event log. In addition, the controller is automatically reset,
175 the hang ensure that RxIntDelay is set to 0. 200 restoring the network connection. To eliminate the potential
176 201 for the hang ensure that RxIntDelay is set to 0.
177RxAbsIntDelay (82540, 82545 and later adapters only) 202
178Valid Range: 0-65535 (0=off) 203
204RxAbsIntDelay
205-------------
206(This parameter is supported only on 82540, 82545 and later adapters.)
207Valid Range: 0-65535 (0=off)
179Default Value: 128 208Default Value: 128
180 This value, in units of 1.024 microseconds, limits the delay in which a 209
181 receive interrupt is generated. Useful only if RxIntDelay is non-zero, 210This value, in units of 1.024 microseconds, limits the delay in which a
182 this value ensures that an interrupt is generated after the initial 211receive interrupt is generated. Useful only if RxIntDelay is non-zero,
183 packet is received within the set amount of time. Proper tuning, 212this value ensures that an interrupt is generated after the initial
184 along with RxIntDelay, may improve traffic throughput in specific network 213packet is received within the set amount of time. Proper tuning,
185 conditions. 214along with RxIntDelay, may improve traffic throughput in specific network
186 215conditions.
187Speed (adapters using copper connections only) 216
217
218Speed
219-----
220(This parameter is supported only on adapters with copper connections.)
188Valid Settings: 0, 10, 100, 1000 221Valid Settings: 0, 10, 100, 1000
189Default Value: 0 (auto-negotiate at all supported speeds) 222Default Value: 0 (auto-negotiate at all supported speeds)
190 Speed forces the line speed to the specified value in megabits per second 223
191 (Mbps). If this parameter is not specified or is set to 0 and the link 224Speed forces the line speed to the specified value in megabits per second
192 partner is set to auto-negotiate, the board will auto-detect the correct 225(Mbps). If this parameter is not specified or is set to 0 and the link
193 speed. Duplex should also be set when Speed is set to either 10 or 100. 226partner is set to auto-negotiate, the board will auto-detect the correct
227speed. Duplex should also be set when Speed is set to either 10 or 100.
228
194 229
195TxDescriptors 230TxDescriptors
196Valid Range: 80-256 for 82542 and 82543-based adapters 231-------------
197 80-4096 for all other supported adapters 232Valid Range: 80-256 for 82542 and 82543-based adapters
233 80-4096 for all other supported adapters
198Default Value: 256 234Default Value: 256
199 This value is the number of transmit descriptors allocated by the driver.
200 Increasing this value allows the driver to queue more transmits. Each
201 descriptor is 16 bytes.
202 235
203 NOTE: Depending on the available system resources, the request for a 236This value is the number of transmit descriptors allocated by the driver.
204 higher number of transmit descriptors may be denied. In this case, 237Increasing this value allows the driver to queue more transmits. Each
205 use a lower number. 238descriptor is 16 bytes.
239
240NOTE: Depending on the available system resources, the request for a
241 higher number of transmit descriptors may be denied. In this case,
242 use a lower number.
243
206 244
207TxIntDelay 245TxIntDelay
208Valid Range: 0-65535 (0=off) 246----------
247Valid Range: 0-65535 (0=off)
209Default Value: 64 248Default Value: 64
210 This value delays the generation of transmit interrupts in units of 249
211 1.024 microseconds. Transmit interrupt reduction can improve CPU 250This value delays the generation of transmit interrupts in units of
212 efficiency if properly tuned for specific network traffic. If the 2511.024 microseconds. Transmit interrupt reduction can improve CPU
213 system is reporting dropped transmits, this value may be set too high 252efficiency if properly tuned for specific network traffic. If the
214 causing the driver to run out of available transmit descriptors. 253system is reporting dropped transmits, this value may be set too high
215 254causing the driver to run out of available transmit descriptors.
216TxAbsIntDelay (82540, 82545 and later adapters only) 255
217Valid Range: 0-65535 (0=off) 256
257TxAbsIntDelay
258-------------
259(This parameter is supported only on 82540, 82545 and later adapters.)
260Valid Range: 0-65535 (0=off)
218Default Value: 64 261Default Value: 64
219 This value, in units of 1.024 microseconds, limits the delay in which a 262
220 transmit interrupt is generated. Useful only if TxIntDelay is non-zero, 263This value, in units of 1.024 microseconds, limits the delay in which a
221 this value ensures that an interrupt is generated after the initial 264transmit interrupt is generated. Useful only if TxIntDelay is non-zero,
222 packet is sent on the wire within the set amount of time. Proper tuning, 265this value ensures that an interrupt is generated after the initial
223 along with TxIntDelay, may improve traffic throughput in specific 266packet is sent on the wire within the set amount of time. Proper tuning,
224 network conditions. 267along with TxIntDelay, may improve traffic throughput in specific
225 268network conditions.
226XsumRX (not available on the 82542-based adapter) 269
227Valid Range: 0-1 270XsumRX
271------
272(This parameter is NOT supported on the 82542-based adapter.)
273Valid Range: 0-1
228Default Value: 1 274Default Value: 1
229 A value of '1' indicates that the driver should enable IP checksum 275
230 offload for received packets (both UDP and TCP) to the adapter hardware. 276A value of '1' indicates that the driver should enable IP checksum
277offload for received packets (both UDP and TCP) to the adapter hardware.
278
231 279
232Speed and Duplex Configuration 280Speed and Duplex Configuration
233============================== 281==============================
234 282
235Three keywords are used to control the speed and duplex configuration. These 283Three keywords are used to control the speed and duplex configuration.
236keywords are Speed, Duplex, and AutoNeg. 284These keywords are Speed, Duplex, and AutoNeg.
237 285
238If the board uses a fiber interface, these keywords are ignored, and the 286If the board uses a fiber interface, these keywords are ignored, and the
239fiber interface board only links at 1000 Mbps full-duplex. 287fiber interface board only links at 1000 Mbps full-duplex.
240 288
241For copper-based boards, the keywords interact as follows: 289For copper-based boards, the keywords interact as follows:
242 290
243 The default operation is auto-negotiate. The board advertises all supported 291 The default operation is auto-negotiate. The board advertises all
244 speed and duplex combinations, and it links at the highest common speed and 292 supported speed and duplex combinations, and it links at the highest
245 duplex mode IF the link partner is set to auto-negotiate. 293 common speed and duplex mode IF the link partner is set to auto-negotiate.
246 294
247 If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps is 295 If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps
248 advertised (The 1000BaseT spec requires auto-negotiation.) 296 is advertised (The 1000BaseT spec requires auto-negotiation.)
249 297
250 If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- 298 If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-
251 negotiation is disabled, and the AutoNeg parameter is ignored. Partner SHOULD 299 negotiation is disabled, and the AutoNeg parameter is ignored. Partner
252 also be forced. 300 SHOULD also be forced.
301
302The AutoNeg parameter is used when more control is required over the
303auto-negotiation process. It should be used when you wish to control which
304speed and duplex combinations are advertised during the auto-negotiation
305process.
306
307The parameter may be specified as either a decimal or hexidecimal value as
308determined by the bitmap below.
253 309
254The AutoNeg parameter is used when more control is required over the auto- 310Bit position 7 6 5 4 3 2 1 0
255negotiation process. When this parameter is used, Speed and Duplex parameters 311Decimal Value 128 64 32 16 8 4 2 1
256must not be specified. The following table describes supported values for the 312Hex value 80 40 20 10 8 4 2 1
257AutoNeg parameter: 313Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10
314Duplex Full Full Half Full Half
258 315
259Speed (Mbps) 1000 100 100 10 10 316Some examples of using AutoNeg:
260Duplex Full Full Half Full Half
261Value (in base 16) 0x20 0x08 0x04 0x02 0x01
262 317
263Example: insmod e1000 AutoNeg=0x03, loads e1000 and specifies (10 full duplex, 318 modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half)
26410 half duplex) for negotiation with the peer. 319 modprobe e1000 AutoNeg=1 (Same as above)
320 modprobe e1000 AutoNeg=0x02 (Restricts autonegotiation to 10 Full)
321 modprobe e1000 AutoNeg=0x03 (Restricts autonegotiation to 10 Half or 10 Full)
322 modprobe e1000 AutoNeg=0x04 (Restricts autonegotiation to 100 Half)
323 modprobe e1000 AutoNeg=0x05 (Restricts autonegotiation to 10 Half or 100
324 Half)
325 modprobe e1000 AutoNeg=0x020 (Restricts autonegotiation to 1000 Full)
326 modprobe e1000 AutoNeg=32 (Same as above)
265 327
266Note that setting AutoNeg does not guarantee that the board will link at the 328Note that when this parameter is used, Speed and Duplex must not be specified.
267highest specified speed or duplex mode, but the board will link at the 329
268highest possible speed/duplex of the link partner IF the link partner is also 330If the link partner is forced to a specific speed and duplex, then this
269set to auto-negotiate. If the link partner is forced speed/duplex, the 331parameter should not be used. Instead, use the Speed and Duplex parameters
270adapter MUST be forced to the same speed/duplex. 332previously mentioned to force the adapter to the same speed and duplex.
271 333
272 334
273Additional Configurations 335Additional Configurations
@@ -276,19 +338,19 @@ Additional Configurations
276 Configuring the Driver on Different Distributions 338 Configuring the Driver on Different Distributions
277 ------------------------------------------------- 339 -------------------------------------------------
278 340
279 Configuring a network driver to load properly when the system is started is 341 Configuring a network driver to load properly when the system is started
280 distribution dependent. Typically, the configuration process involves adding 342 is distribution dependent. Typically, the configuration process involves
281 an alias line to /etc/modules.conf as well as editing other system startup 343 adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well
282 scripts and/or configuration files. Many popular Linux distributions ship 344 as editing other system startup scripts and/or configuration files. Many
283 with tools to make these changes for you. To learn the proper way to 345 popular Linux distributions ship with tools to make these changes for you.
284 configure a network device for your system, refer to your distribution 346 To learn the proper way to configure a network device for your system,
285 documentation. If during this process you are asked for the driver or module 347 refer to your distribution documentation. If during this process you are
286 name, the name for the Linux Base Driver for the Intel PRO/1000 Family of 348 asked for the driver or module name, the name for the Linux Base Driver
287 Adapters is e1000. 349 for the Intel PRO/1000 Family of Adapters is e1000.
288 350
289 As an example, if you install the e1000 driver for two PRO/1000 adapters 351 As an example, if you install the e1000 driver for two PRO/1000 adapters
290 (eth0 and eth1) and set the speed and duplex to 10full and 100half, add the 352 (eth0 and eth1) and set the speed and duplex to 10full and 100half, add
291 following to modules.conf: 353 the following to modules.conf or or modprobe.conf:
292 354
293 alias eth0 e1000 355 alias eth0 e1000
294 alias eth1 e1000 356 alias eth1 e1000
@@ -297,9 +359,9 @@ Additional Configurations
297 Viewing Link Messages 359 Viewing Link Messages
298 --------------------- 360 ---------------------
299 361
300 Link messages will not be displayed to the console if the distribution is 362 Link messages will not be displayed to the console if the distribution is
301 restricting system messages. In order to see network driver link messages on 363 restricting system messages. In order to see network driver link messages
302 your console, set dmesg to eight by entering the following: 364 on your console, set dmesg to eight by entering the following:
303 365
304 dmesg -n 8 366 dmesg -n 8
305 367
@@ -308,22 +370,42 @@ Additional Configurations
308 Jumbo Frames 370 Jumbo Frames
309 ------------ 371 ------------
310 372
311 The driver supports Jumbo Frames for all adapters except 82542-based 373 The driver supports Jumbo Frames for all adapters except 82542 and
312 adapters. Jumbo Frames support is enabled by changing the MTU to a value 374 82573-based adapters. Jumbo Frames support is enabled by changing the
313 larger than the default of 1500. Use the ifconfig command to increase the 375 MTU to a value larger than the default of 1500. Use the ifconfig command
314 MTU size. For example: 376 to increase the MTU size. For example:
377
378 ifconfig eth<x> mtu 9000 up
379
380 This setting is not saved across reboots. It can be made permanent if
381 you add:
382
383 MTU=9000
315 384
316 ifconfig ethx mtu 9000 up 385 to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example
386 applies to the Red Hat distributions; other distributions may store this
387 setting in a different location.
317 388
318 The maximum MTU setting for Jumbo Frames is 16110. This value coincides 389 Notes:
319 with the maximum Jumbo Frames size of 16128.
320 390
321 NOTE: Jumbo Frames are supported at 1000 Mbps only. Using Jumbo Frames at 391 - To enable Jumbo Frames, increase the MTU size on the interface beyond
322 10 or 100 Mbps may result in poor performance or loss of link. 392 1500.
393 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
394 with the maximum Jumbo Frames size of 16128.
395 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
396 loss of link.
397 - Some Intel gigabit adapters that support Jumbo Frames have a frame size
398 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
399 The adapters with this limitation are based on the Intel 82571EB and
400 82572EI controllers, which correspond to these product names:
401 Intel® PRO/1000 PT Dual Port Server Adapter
402 Intel® PRO/1000 PF Dual Port Server Adapter
403 Intel® PRO/1000 PT Server Adapter
404 Intel® PRO/1000 PT Desktop Adapter
405 Intel® PRO/1000 PF Server Adapter
323 406
407 - The Intel PRO/1000 PM Network Connection does not support jumbo frames.
324 408
325 NOTE: MTU designates the frame size. To enable Jumbo Frames, increase the
326 MTU size on the interface beyond 1500.
327 409
328 Ethtool 410 Ethtool
329 ------- 411 -------
@@ -333,32 +415,41 @@ Additional Configurations
333 version 1.6 or later is required for this functionality. 415 version 1.6 or later is required for this functionality.
334 416
335 The latest release of ethtool can be found from 417 The latest release of ethtool can be found from
336 http://sf.net/projects/gkernel. 418 http://sourceforge.net/projects/gkernel.
337 419
338 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support 420 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
339 for a more complete ethtool feature set can be enabled by upgrading 421 for a more complete ethtool feature set can be enabled by upgrading
340 ethtool to ethtool-1.8.1. 422 ethtool to ethtool-1.8.1.
341 423
342 Enabling Wake on LAN* (WoL) 424 Enabling Wake on LAN* (WoL)
343 --------------------------- 425 ---------------------------
344 426
345 WoL is configured through the Ethtool* utility. Ethtool is included with 427 WoL is configured through the Ethtool* utility. Ethtool is included with
346 all versions of Red Hat after Red Hat 7.2. For other Linux distributions, 428 all versions of Red Hat after Red Hat 7.2. For other Linux distributions,
347 download and install Ethtool from the following website: 429 download and install Ethtool from the following website:
348 http://sourceforge.net/projects/gkernel. 430 http://sourceforge.net/projects/gkernel.
349 431
350 For instructions on enabling WoL with Ethtool, refer to the website listed 432 For instructions on enabling WoL with Ethtool, refer to the website listed
351 above. 433 above.
352 434
353 WoL will be enabled on the system during the next shut down or reboot. 435 WoL will be enabled on the system during the next shut down or reboot.
354 For this driver version, in order to enable WoL, the e1000 driver must be 436 For this driver version, in order to enable WoL, the e1000 driver must be
355 loaded when shutting down or rebooting the system. 437 loaded when shutting down or rebooting the system.
356 438
357 NAPI 439 NAPI
358 ---- 440 ----
359 441
360 NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled 442 NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled
361 or disabled based on the configuration of the kernel. 443 or disabled based on the configuration of the kernel. To override
444 the default, use the following compile-time flags.
445
446 To enable NAPI, compile the driver module, passing in a configuration option:
447
448 make CFLAGS_EXTRA=-DE1000_NAPI install
449
450 To disable NAPI, compile the driver module, passing in a configuration option:
451
452 make CFLAGS_EXTRA=-DE1000_NO_NAPI install
362 453
363 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. 454 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.
364 455
@@ -369,10 +460,85 @@ Known Issues
369 Jumbo Frames System Requirement 460 Jumbo Frames System Requirement
370 ------------------------------- 461 -------------------------------
371 462
372 Memory allocation failures have been observed on Linux systems with 64 MB 463 Memory allocation failures have been observed on Linux systems with 64 MB
373 of RAM or less that are running Jumbo Frames. If you are using Jumbo Frames, 464 of RAM or less that are running Jumbo Frames. If you are using Jumbo
374 your system may require more than the advertised minimum requirement of 64 MB 465 Frames, your system may require more than the advertised minimum
375 of system memory. 466 requirement of 64 MB of system memory.
467
468 Performance Degradation with Jumbo Frames
469 -----------------------------------------
470
471 Degradation in throughput performance may be observed in some Jumbo frames
472 environments. If this is observed, increasing the application's socket
473 buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values
474 may help. See the specific application manual and
475 /usr/src/linux*/Documentation/
476 networking/ip-sysctl.txt for more details.
477
478 Jumbo frames on Foundry BigIron 8000 switch
479 -------------------------------------------
480 There is a known issue using Jumbo frames when connected to a Foundry
481 BigIron 8000 switch. This is a 3rd party limitation. If you experience
482 loss of packets, lower the MTU size.
483
484 Multiple Interfaces on Same Ethernet Broadcast Network
485 ------------------------------------------------------
486
487 Due to the default ARP behavior on Linux, it is not possible to have
488 one system on two IP networks in the same Ethernet broadcast domain
489 (non-partitioned switch) behave as expected. All Ethernet interfaces
490 will respond to IP traffic for any IP address assigned to the system.
491 This results in unbalanced receive traffic.
492
493 If you have multiple interfaces in a server, either turn on ARP
494 filtering by entering:
495
496 echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
497 (this only works if your kernel's version is higher than 2.4.5),
498
499 NOTE: This setting is not saved across reboots. The configuration
500 change can be made permanent by adding the line:
501 net.ipv4.conf.all.arp_filter = 1
502 to the file /etc/sysctl.conf
503
504 or,
505
506 install the interfaces in separate broadcast domains (either in
507 different switches or in a switch partitioned to VLANs).
508
509 82541/82547 can't link or are slow to link with some link partners
510 -----------------------------------------------------------------
511
512 There is a known compatibility issue with 82541/82547 and some
513 low-end switches where the link will not be established, or will
514 be slow to establish. In particular, these switches are known to
515 be incompatible with 82541/82547:
516
517 Planex FXG-08TE
518 I-O Data ETG-SH8
519
520 To workaround this issue, the driver can be compiled with an override
521 of the PHY's master/slave setting. Forcing master or forcing slave
522 mode will improve time-to-link.
523
524 # make EXTRA_CFLAGS=-DE1000_MASTER_SLAVE=<n>
525
526 Where <n> is:
527
528 0 = Hardware default
529 1 = Master mode
530 2 = Slave mode
531 3 = Auto master/slave
532
533 Disable rx flow control with ethtool
534 ------------------------------------
535
536 In order to disable receive flow control using ethtool, you must turn
537 off auto-negotiation on the same command line.
538
539 For example:
540
541 ethtool -A eth? autoneg off rx off
376 542
377 543
378Support 544Support
@@ -382,20 +548,24 @@ For general information, go to the Intel support website at:
382 548
383 http://support.intel.com 549 http://support.intel.com
384 550
551 or the Intel Wired Networking project hosted by Sourceforge at:
552
553 http://sourceforge.net/projects/e1000
554
385If an issue is identified with the released source code on the supported 555If an issue is identified with the released source code on the supported
386kernel with a supported adapter, email the specific information related to 556kernel with a supported adapter, email the specific information related
387the issue to linux.nics@intel.com. 557to the issue to e1000-devel@lists.sourceforge.net
388 558
389 559
390License 560License
391======= 561=======
392 562
393This software program is released under the terms of a license agreement 563This software program is released under the terms of a license agreement
394between you ('Licensee') and Intel. Do not use or load this software or any 564between you ('Licensee') and Intel. Do not use or load this software or any
395associated materials (collectively, the 'Software') until you have carefully 565associated materials (collectively, the 'Software') until you have carefully
396read the full terms and conditions of the LICENSE located in this software 566read the full terms and conditions of the file COPYING located in this software
397package. By loading or using the Software, you agree to the terms of this 567package. By loading or using the Software, you agree to the terms of this
398Agreement. If you do not agree with the terms of this Agreement, do not 568Agreement. If you do not agree with the terms of this Agreement, do not
399install or use the Software. 569install or use the Software.
400 570
401* Other names and brands may be claimed as the property of others. 571* Other names and brands may be claimed as the property of others.
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 26364d06ae92..f12007b80a46 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -355,6 +355,13 @@ somaxconn - INTEGER
355 Defaults to 128. See also tcp_max_syn_backlog for additional tuning 355 Defaults to 128. See also tcp_max_syn_backlog for additional tuning
356 for TCP sockets. 356 for TCP sockets.
357 357
358tcp_workaround_signed_windows - BOOLEAN
359 If set, assume no receipt of a window scaling option means the
360 remote TCP is broken and treats the window as a signed quantity.
361 If unset, assume the remote TCP is not broken even if we do
362 not receive a window scaling option from them.
363 Default: 0
364
358IP Variables: 365IP Variables:
359 366
360ip_local_port_range - 2 INTEGERS 367ip_local_port_range - 2 INTEGERS
@@ -619,6 +626,11 @@ arp_ignore - INTEGER
619 The max value from conf/{all,interface}/arp_ignore is used 626 The max value from conf/{all,interface}/arp_ignore is used
620 when ARP request is received on the {interface} 627 when ARP request is received on the {interface}
621 628
629arp_accept - BOOLEAN
630 Define behavior when gratuitous arp replies are received:
631 0 - drop gratuitous arp frames
632 1 - accept gratuitous arp frames
633
622app_solicit - INTEGER 634app_solicit - INTEGER
623 The maximum number of probes to send to the user space ARP daemon 635 The maximum number of probes to send to the user space ARP daemon
624 via netlink before dropping back to multicast probes (see 636 via netlink before dropping back to multicast probes (see
@@ -717,6 +729,33 @@ accept_ra - BOOLEAN
717 Functional default: enabled if local forwarding is disabled. 729 Functional default: enabled if local forwarding is disabled.
718 disabled if local forwarding is enabled. 730 disabled if local forwarding is enabled.
719 731
732accept_ra_defrtr - BOOLEAN
733 Learn default router in Router Advertisement.
734
735 Functional default: enabled if accept_ra is enabled.
736 disabled if accept_ra is disabled.
737
738accept_ra_pinfo - BOOLEAN
739 Learn Prefix Inforamtion in Router Advertisement.
740
741 Functional default: enabled if accept_ra is enabled.
742 disabled if accept_ra is disabled.
743
744accept_ra_rt_info_max_plen - INTEGER
745 Maximum prefix length of Route Information in RA.
746
747 Route Information w/ prefix larger than or equal to this
748 variable shall be ignored.
749
750 Functional default: 0 if accept_ra_rtr_pref is enabled.
751 -1 if accept_ra_rtr_pref is disabled.
752
753accept_ra_rtr_pref - BOOLEAN
754 Accept Router Preference in RA.
755
756 Functional default: enabled if accept_ra is enabled.
757 disabled if accept_ra is disabled.
758
720accept_redirects - BOOLEAN 759accept_redirects - BOOLEAN
721 Accept Redirects. 760 Accept Redirects.
722 761
@@ -727,8 +766,8 @@ autoconf - BOOLEAN
727 Autoconfigure addresses using Prefix Information in Router 766 Autoconfigure addresses using Prefix Information in Router
728 Advertisements. 767 Advertisements.
729 768
730 Functional default: enabled if accept_ra is enabled. 769 Functional default: enabled if accept_ra_pinfo is enabled.
731 disabled if accept_ra is disabled. 770 disabled if accept_ra_pinfo is disabled.
732 771
733dad_transmits - INTEGER 772dad_transmits - INTEGER
734 The amount of Duplicate Address Detection probes to send. 773 The amount of Duplicate Address Detection probes to send.
@@ -771,6 +810,12 @@ mtu - INTEGER
771 Default Maximum Transfer Unit 810 Default Maximum Transfer Unit
772 Default: 1280 (IPv6 required minimum) 811 Default: 1280 (IPv6 required minimum)
773 812
813router_probe_interval - INTEGER
814 Minimum interval (in seconds) between Router Probing described
815 in RFC4191.
816
817 Default: 60
818
774router_solicitation_delay - INTEGER 819router_solicitation_delay - INTEGER
775 Number of seconds to wait after interface is brought up 820 Number of seconds to wait after interface is brought up
776 before sending Router Solicitations. 821 before sending Router Solicitations.
diff --git a/Documentation/usb/et61x251.txt b/Documentation/usb/et61x251.txt
index b44dda407ce2..29340282ab5f 100644
--- a/Documentation/usb/et61x251.txt
+++ b/Documentation/usb/et61x251.txt
@@ -176,6 +176,14 @@ Description: Force the application to unmap previously mapped buffer memory
176 1 = force memory unmapping (save memory) 176 1 = force memory unmapping (save memory)
177Default: 0 177Default: 0
178------------------------------------------------------------------------------- 178-------------------------------------------------------------------------------
179Name: frame_timeout
180Type: uint array (min = 0, max = 64)
181Syntax: <n[,...]>
182Description: Timeout for a video frame in seconds. This parameter is
183 specific for each detected camera. This parameter can be
184 changed at runtime thanks to the /sys filesystem interface.
185Default: 2
186-------------------------------------------------------------------------------
179Name: debug 187Name: debug
180Type: ushort 188Type: ushort
181Syntax: <n> 189Syntax: <n>
@@ -266,7 +274,7 @@ the V4L2 interface.
266 274
267 275
26810. Notes for V4L2 application developers 27610. Notes for V4L2 application developers
269======================================== 277=========================================
270This driver follows the V4L2 API specifications. In particular, it enforces two 278This driver follows the V4L2 API specifications. In particular, it enforces two
271rules: 279rules:
272 280
diff --git a/Documentation/usb/sn9c102.txt b/Documentation/usb/sn9c102.txt
index c6b76414172c..b957beae5607 100644
--- a/Documentation/usb/sn9c102.txt
+++ b/Documentation/usb/sn9c102.txt
@@ -196,6 +196,14 @@ Description: Force the application to unmap previously mapped buffer memory
196 1 = force memory unmapping (save memory) 196 1 = force memory unmapping (save memory)
197Default: 0 197Default: 0
198------------------------------------------------------------------------------- 198-------------------------------------------------------------------------------
199Name: frame_timeout
200Type: uint array (min = 0, max = 64)
201Syntax: <n[,...]>
202Description: Timeout for a video frame in seconds. This parameter is
203 specific for each detected camera. This parameter can be
204 changed at runtime thanks to the /sys filesystem interface.
205Default: 2
206-------------------------------------------------------------------------------
199Name: debug 207Name: debug
200Type: ushort 208Type: ushort
201Syntax: <n> 209Syntax: <n>
@@ -321,6 +329,7 @@ Vendor ID Product ID
321--------- ---------- 329--------- ----------
3220x0c45 0x6001 3300x0c45 0x6001
3230x0c45 0x6005 3310x0c45 0x6005
3320x0c45 0x6007
3240x0c45 0x6009 3330x0c45 0x6009
3250x0c45 0x600d 3340x0c45 0x600d
3260x0c45 0x6024 3350x0c45 0x6024
@@ -370,6 +379,7 @@ HV7131D Hynix Semiconductor, Inc.
370MI-0343 Micron Technology, Inc. 379MI-0343 Micron Technology, Inc.
371OV7630 OmniVision Technologies, Inc. 380OV7630 OmniVision Technologies, Inc.
372PAS106B PixArt Imaging, Inc. 381PAS106B PixArt Imaging, Inc.
382PAS202BCA PixArt Imaging, Inc.
373PAS202BCB PixArt Imaging, Inc. 383PAS202BCB PixArt Imaging, Inc.
374TAS5110C1B Taiwan Advanced Sensor Corporation 384TAS5110C1B Taiwan Advanced Sensor Corporation
375TAS5130D1B Taiwan Advanced Sensor Corporation 385TAS5130D1B Taiwan Advanced Sensor Corporation
@@ -493,6 +503,7 @@ Many thanks to following persons for their contribute (listed in alphabetical
493order): 503order):
494 504
495- Luca Capello for the donation of a webcam; 505- Luca Capello for the donation of a webcam;
506- Philippe Coval for having helped testing the PAS202BCA image sensor;
496- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the 507- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the
497 donation of a webcam; 508 donation of a webcam;
498- Jon Hollstrom for the donation of a webcam; 509- Jon Hollstrom for the donation of a webcam;
diff --git a/Documentation/usb/zc0301.txt b/Documentation/usb/zc0301.txt
new file mode 100644
index 000000000000..f55262c6733b
--- /dev/null
+++ b/Documentation/usb/zc0301.txt
@@ -0,0 +1,254 @@
1
2 ZC0301 Image Processor and Control Chip
3 Driver for Linux
4 =======================================
5
6 - Documentation -
7
8
9Index
10=====
111. Copyright
122. Disclaimer
133. License
144. Overview and features
155. Module dependencies
166. Module loading
177. Module parameters
188. Supported devices
199. Notes for V4L2 application developers
2010. Contact information
2111. Credits
22
23
241. Copyright
25============
26Copyright (C) 2006 by Luca Risolia <luca.risolia@studio.unibo.it>
27
28
292. Disclaimer
30=============
31This software is not developed or sponsored by Z-Star Microelectronics Corp.
32Trademarks are property of their respective owner.
33
34
353. License
36==========
37This program is free software; you can redistribute it and/or modify
38it under the terms of the GNU General Public License as published by
39the Free Software Foundation; either version 2 of the License, or
40(at your option) any later version.
41
42This program is distributed in the hope that it will be useful,
43but WITHOUT ANY WARRANTY; without even the implied warranty of
44MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45GNU General Public License for more details.
46
47You should have received a copy of the GNU General Public License
48along with this program; if not, write to the Free Software
49Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
50
51
524. Overview and features
53========================
54This driver supports the video interface of the devices mounting the ZC0301
55Image Processor and Control Chip.
56
57The driver relies on the Video4Linux2 and USB core modules. It has been
58designed to run properly on SMP systems as well.
59
60The latest version of the ZC0301 driver can be found at the following URL:
61http://www.linux-projects.org/
62
63Some of the features of the driver are:
64
65- full compliance with the Video4Linux2 API (see also "Notes for V4L2
66 application developers" paragraph);
67- available mmap or read/poll methods for video streaming through isochronous
68 data transfers;
69- automatic detection of image sensor;
70- video format is standard JPEG;
71- dynamic driver control thanks to various module parameters (see "Module
72 parameters" paragraph);
73- up to 64 cameras can be handled at the same time; they can be connected and
74 disconnected from the host many times without turning off the computer, if
75 the system supports hotplugging;
76
77
785. Module dependencies
79======================
80For it to work properly, the driver needs kernel support for Video4Linux and
81USB.
82
83The following options of the kernel configuration file must be enabled and
84corresponding modules must be compiled:
85
86 # Multimedia devices
87 #
88 CONFIG_VIDEO_DEV=m
89
90 # USB support
91 #
92 CONFIG_USB=m
93
94In addition, depending on the hardware being used, the modules below are
95necessary:
96
97 # USB Host Controller Drivers
98 #
99 CONFIG_USB_EHCI_HCD=m
100 CONFIG_USB_UHCI_HCD=m
101 CONFIG_USB_OHCI_HCD=m
102
103The ZC0301 controller also provides a built-in microphone interface. It is
104supported by the USB Audio driver thanks to the ALSA API:
105
106 # Sound
107 #
108 CONFIG_SOUND=y
109
110 # Advanced Linux Sound Architecture
111 #
112 CONFIG_SND=m
113
114 # USB devices
115 #
116 CONFIG_SND_USB_AUDIO=m
117
118And finally:
119
120 # USB Multimedia devices
121 #
122 CONFIG_USB_ZC0301=m
123
124
1256. Module loading
126=================
127To use the driver, it is necessary to load the "zc0301" module into memory
128after every other module required: "videodev", "usbcore" and, depending on
129the USB host controller you have, "ehci-hcd", "uhci-hcd" or "ohci-hcd".
130
131Loading can be done as shown below:
132
133 [root@localhost home]# modprobe zc0301
134
135At this point the devices should be recognized. You can invoke "dmesg" to
136analyze kernel messages and verify that the loading process has gone well:
137
138 [user@localhost home]$ dmesg
139
140
1417. Module parameters
142====================
143Module parameters are listed below:
144-------------------------------------------------------------------------------
145Name: video_nr
146Type: short array (min = 0, max = 64)
147Syntax: <-1|n[,...]>
148Description: Specify V4L2 minor mode number:
149 -1 = use next available
150 n = use minor number n
151 You can specify up to 64 cameras this way.
152 For example:
153 video_nr=-1,2,-1 would assign minor number 2 to the second
154 registered camera and use auto for the first one and for every
155 other camera.
156Default: -1
157-------------------------------------------------------------------------------
158Name: force_munmap
159Type: bool array (min = 0, max = 64)
160Syntax: <0|1[,...]>
161Description: Force the application to unmap previously mapped buffer memory
162 before calling any VIDIOC_S_CROP or VIDIOC_S_FMT ioctl's. Not
163 all the applications support this feature. This parameter is
164 specific for each detected camera.
165 0 = do not force memory unmapping
166 1 = force memory unmapping (save memory)
167Default: 0
168-------------------------------------------------------------------------------
169Name: frame_timeout
170Type: uint array (min = 0, max = 64)
171Syntax: <n[,...]>
172Description: Timeout for a video frame in seconds. This parameter is
173 specific for each detected camera. This parameter can be
174 changed at runtime thanks to the /sys filesystem interface.
175Default: 2
176-------------------------------------------------------------------------------
177Name: debug
178Type: ushort
179Syntax: <n>
180Description: Debugging information level, from 0 to 3:
181 0 = none (use carefully)
182 1 = critical errors
183 2 = significant informations
184 3 = more verbose messages
185 Level 3 is useful for testing only, when only one device
186 is used at the same time. It also shows some more informations
187 about the hardware being detected. This module parameter can be
188 changed at runtime thanks to the /sys filesystem interface.
189Default: 2
190-------------------------------------------------------------------------------
191
192
1938. Supported devices
194====================
195None of the names of the companies as well as their products will be mentioned
196here. They have never collaborated with the author, so no advertising.
197
198From the point of view of a driver, what unambiguously identify a device are
199its vendor and product USB identifiers. Below is a list of known identifiers of
200devices mounting the ZC0301 Image Processor and Control Chips:
201
202Vendor ID Product ID
203--------- ----------
2040x041e 0x4017
2050x041e 0x401c
2060x041e 0x401e
2070x041e 0x4034
2080x041e 0x4035
2090x046d 0x08ae
2100x0ac8 0x0301
2110x10fd 0x8050
212
213The list above does not imply that all those devices work with this driver: up
214until now only the ones that mount the following image sensors are supported;
215kernel messages will always tell you whether this is the case:
216
217Model Manufacturer
218----- ------------
219PAS202BCB PixArt Imaging, Inc.
220
221
2229. Notes for V4L2 application developers
223========================================
224This driver follows the V4L2 API specifications. In particular, it enforces two
225rules:
226
227- exactly one I/O method, either "mmap" or "read", is associated with each
228file descriptor. Once it is selected, the application must close and reopen the
229device to switch to the other I/O method;
230
231- although it is not mandatory, previously mapped buffer memory should always
232be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's.
233The same number of buffers as before will be allocated again to match the size
234of the new video frames, so you have to map the buffers again before any I/O
235attempts on them.
236
237
23810. Contact information
239=======================
240The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>.
241
242GPG/PGP encrypted e-mail's are accepted. The GPG key ID of the author is
243'FCE635A4'; the public 1024-bit key should be available at any keyserver;
244the fingerprint is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'.
245
246
24711. Credits
248===========
249- Informations about the chip internals needed to enable the I2C protocol have
250 been taken from the documentation of the ZC030x Video4Linux1 driver written
251 by Andrew Birkett <andy@nobugs.org>;
252- The initialization values of the ZC0301 controller connected to the PAS202BCB
253 image sensor have been taken from the SPCA5XX driver maintained by
254 Michel Xhaard <mxhaard@magic.fr>.
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 8bea3fbd0548..3b39a91b24bd 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -43,3 +43,5 @@
43 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] 43 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025]
44 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] 44 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1]
45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] 45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54]
46 45 -> KWorld HardwareMpegTV XPert [17de:0840]
47 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44]
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index a0c7cad20971..a3026689bbe6 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -8,3 +8,4 @@
8 7 -> Leadtek Winfast USB II (em2800) 8 7 -> Leadtek Winfast USB II (em2800)
9 8 -> Kworld USB2800 (em2800) 9 8 -> Kworld USB2800 (em2800)
10 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] 10 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207]
11 12 -> Kworld PVR TV 2800 RF (em2820/em2840)
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index da4fb890165f..8c7195455963 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -83,3 +83,12 @@
83 82 -> MSI TV@Anywhere plus [1462:6231] 83 82 -> MSI TV@Anywhere plus [1462:6231]
84 83 -> Terratec Cinergy 250 PCI TV [153b:1160] 84 83 -> Terratec Cinergy 250 PCI TV [153b:1160]
85 84 -> LifeView FlyDVB Trio [5168:0319] 85 84 -> LifeView FlyDVB Trio [5168:0319]
86 85 -> AverTV DVB-T 777 [1461:2c05]
87 86 -> LifeView FlyDVB-T [5168:0301]
88 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421]
89 88 -> Tevion/KWorld DVB-T 220RF [17de:7201]
90 89 -> ELSA EX-VISION 700TV [1048:226c]
91 90 -> Kworld ATSC110 [17de:7350]
92 91 -> AVerMedia A169 B [1461:7360]
93 92 -> AVerMedia A169 B1 [1461:6360]
94 93 -> Medion 7134 Bridge #2 [16be:0005]
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
index f6d0cf7b7922..1bcdac67dd8c 100644
--- a/Documentation/video4linux/CARDLIST.tuner
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -64,8 +64,10 @@ tuner=62 - Philips TEA5767HN FM Radio
64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner 64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
65tuner=64 - LG TDVS-H062F/TUA6034 65tuner=64 - LG TDVS-H062F/TUA6034
66tuner=65 - Ymec TVF66T5-B/DFF 66tuner=65 - Ymec TVF66T5-B/DFF
67tuner=66 - LG NTSC (TALN mini series) 67tuner=66 - LG TALN series
68tuner=67 - Philips TD1316 Hybrid Tuner 68tuner=67 - Philips TD1316 Hybrid Tuner
69tuner=68 - Philips TUV1236D ATSC/NTSC dual in 69tuner=68 - Philips TUV1236D ATSC/NTSC dual in
70tuner=69 - Tena TNF 5335 MF 70tuner=69 - Tena TNF 5335 and similar models
71tuner=70 - Samsung TCPN 2121P30A 71tuner=70 - Samsung TCPN 2121P30A
72tuner=71 - Xceive xc3028
73tuner=72 - Thomson FE6600
diff --git a/Documentation/video4linux/README.cpia2 b/Documentation/video4linux/README.cpia2
new file mode 100644
index 000000000000..ce8213d28b67
--- /dev/null
+++ b/Documentation/video4linux/README.cpia2
@@ -0,0 +1,130 @@
1$Id: README,v 1.7 2005/08/29 23:39:57 sbertin Exp $
2
31. Introduction
4
5 This is a driver for STMicroelectronics's CPiA2 (second generation
6Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG
7stream at up to vga size. It implements the Video4Linux interface as much as
8possible. Since the V4L interface does not support compressed formats, only
9an mjpeg enabled application can be used with the camera. We have modified the
10gqcam application to view this stream.
11
12 The driver is implemented as two kernel modules. The cpia2 module
13contains the camera functions and the V4L interface. The cpia2_usb module
14contains usb specific functions. The main reason for this was the size of the
15module was getting out of hand, so I separted them. It is not likely that
16there will be a parallel port version.
17
18FEATURES:
19 - Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos
20 sensors. I only have the vga sensor, so can't test the other.
21 - Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between.
22 VGA and QVGA are the native image sizes for the VGA camera. CIF is done
23 in the coprocessor by scaling QVGA. All other sizes are done by clipping.
24 - Palette: YCrCb, compressed with MJPEG.
25 - Some compression parameters are settable.
26 - Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA).
27 - Adjust brightness, color, contrast while streaming.
28 - Flicker control settable for 50 or 60 Hz mains frequency.
29
302. Making and installing the stv672 driver modules:
31
32 Requirements:
33 -------------
34 This should work with 2.4 (2.4.23 and later) and 2.6 kernels, but has
35only been tested on 2.6. Video4Linux must be either compiled into the kernel or
36available as a module. Video4Linux2 is automatically detected and made
37available at compile time.
38
39 Compiling:
40 ----------
41 As root, do a make install. This will compile and install the modules
42into the media/video directory in the module tree. For 2.4 kernels, use
43Makefile_2.4 (aka do make -f Makefile_2.4 install).
44
45 Setup:
46 ------
47 Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This
48may be done automatically by your distribution.
49
503. Driver options
51
52 Option Description
53 ------ -----------
54 video_nr video device to register (0=/dev/video0, etc)
55 range -1 to 64. default is -1 (first available)
56 If you have more than 1 camera, this MUST be -1.
57 buffer_size Size for each frame buffer in bytes (default 68k)
58 num_buffers Number of frame buffers (1-32, default 3)
59 alternate USB Alternate (2-7, default 7)
60 flicker_freq Frequency for flicker reduction(50 or 60, default 60)
61 flicker_mode 0 to disable, or 1 to enable flicker reduction.
62 (default 0). This is only effective if the camera
63 uses a stv0672 coprocessor.
64
65 Setting the options:
66 --------------------
67 If you are using modules, edit /etc/modules.conf and add an options
68line like this:
69 options cpia2 num_buffers=3 buffer_size=65535
70
71 If the driver is compiled into the kernel, at boot time specify them
72like this:
73 cpia2.num_buffers=3 cpia2.buffer_size=65535
74
75 What buffer size should I use?
76 ------------------------------
77 The maximum image size depends on the alternate you choose, and the
78frame rate achieved by the camera. If the compression engine is able to
79keep up with the frame rate, the maximum image size is given by the table
80below.
81 The compression engine starts out at maximum compression, and will
82increase image quality until it is close to the size in the table. As long
83as the compression engine can keep up with the frame rate, after a short time
84the images will all be about the size in the table, regardless of resolution.
85 At low alternate settings, the compression engine may not be able to
86compress the image enough and will reduce the frame rate by producing larger
87images.
88 The default of 68k should be good for most users. This will handle
89any alternate at frame rates down to 15fps. For lower frame rates, it may
90be necessary to increase the buffer size to avoid having frames dropped due
91to insufficient space.
92
93 Image size(bytes)
94 Alternate bytes/ms 15fps 30fps
95 2 128 8533 4267
96 3 384 25600 12800
97 4 640 42667 21333
98 5 768 51200 25600
99 6 896 59733 29867
100 7 1023 68200 34100
101
102 How many buffers should I use?
103 ------------------------------
104 For normal streaming, 3 should give the best results. With only 2,
105it is possible for the camera to finish sending one image just after a
106program has started reading the other. If this happens, the driver must drop
107a frame. The exception to this is if you have a heavily loaded machine. In
108this case use 2 buffers. You are probably not reading at the full frame rate.
109If the camera can send multiple images before a read finishes, it could
110overwrite the third buffer before the read finishes, leading to a corrupt
111image. Single and double buffering have extra checks to avoid overwriting.
112
1134. Using the camera
114
115 We are providing a modified gqcam application to view the output. In
116order to avoid confusion, here it is called mview. There is also the qx5view
117program which can also control the lights on the qx5 microscope. MJPEG Tools
118(http://mjpeg.sourceforge.net) can also be used to record from the camera.
119
1205. Notes to developers:
121
122 - This is a driver version stripped of the 2.4 back compatibility
123 and old MJPEG ioctl API. See cpia2.sf.net for 2.4 support.
124
1256. Thanks:
126
127 - Peter Pregler <Peter_Pregler@email.com>,
128 Scott J. Bertin <scottbertin@yahoo.com>, and
129 Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which
130 this one was modelled from.
diff --git a/Documentation/video4linux/cpia2_overview.txt b/Documentation/video4linux/cpia2_overview.txt
new file mode 100644
index 000000000000..a6e53665216b
--- /dev/null
+++ b/Documentation/video4linux/cpia2_overview.txt
@@ -0,0 +1,38 @@
1 Programmer's View of Cpia2
2
3Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a
4division of ST Microelectronics). There are two versions. The first is the
5STV0672, which is capable of up to 30 frames per second (fps) in frame sizes
6up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version,
7which can handle up to 30 fps VGA. Both coprocessors can be attached to two
8CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will
9be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors.
10
11The two chipsets operate almost identically. The core is an 8051 processor,
12running two different versions of firmware. The 672 runs the VP4 video
13processor code, the 676 runs VP5. There are a few differences in register
14mappings for the two chips. In these cases, the symbols defined in the
15header files are marked with VP4 or VP5 as part of the symbol name.
16
17The cameras appear externally as three sets of registers. Setting register
18values is the only way to control the camera. Some settings are
19interdependant, such as the sequence required to power up the camera. I will
20try to make note of all of these cases.
21
22The register sets are called blocks. Block 0 is the system block. This
23section is always powered on when the camera is plugged in. It contains
24registers that control housekeeping functions such as powering up the video
25processor. The video processor is the VP block. These registers control
26how the video from the sensor is processed. Examples are timing registers,
27user mode (vga, qvga), scaling, cropping, framerates, and so on. The last
28block is the video compressor (VC). The video stream sent from the camera is
29compressed as Motion JPEG (JPEGA). The VC controls all of the compression
30parameters. Looking at the file cpia2_registers.h, you can get a full view
31of these registers and the possible values for most of them.
32
33One or more registers can be set or read by sending a usb control message to
34the camera. There are three modes for this. Block mode requests a number
35of contiguous registers. Random mode reads or writes random registers with
36a tuple structure containing address/value pairs. The repeat mode is only
37used by VP4 to load a firmware patch. It contains a starting address and
38a sequence of bytes to be written into a gpio port. \ No newline at end of file