diff options
author | Jaroslav Kysela <perex@suse.cz> | 2006-03-22 05:02:08 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-03-22 05:02:08 -0500 |
commit | 5501972e0b5857bc8354770d900ceb9b40c7f6b7 (patch) | |
tree | ff239422827c4cd54d2998f8851304255de31b38 /Documentation | |
parent | 9d2f928ddf64ca0361562e30faf584cd33055c60 (diff) | |
parent | e952f31bce6e9f64db01f607abc46529ba57ac9e (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/Changes | 18 | ||||
-rw-r--r-- | Documentation/connector/connector.txt | 5 | ||||
-rw-r--r-- | Documentation/dvb/avermedia.txt | 10 | ||||
-rw-r--r-- | Documentation/dvb/bt8xx.txt | 140 | ||||
-rw-r--r-- | Documentation/dvb/get_dvb_firmware | 23 | ||||
-rw-r--r-- | Documentation/dvb/readme.txt | 32 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 18 | ||||
-rw-r--r-- | Documentation/networking/e100.txt | 158 | ||||
-rw-r--r-- | Documentation/networking/e1000.txt | 620 | ||||
-rw-r--r-- | Documentation/networking/ip-sysctl.txt | 49 | ||||
-rw-r--r-- | Documentation/usb/et61x251.txt | 10 | ||||
-rw-r--r-- | Documentation/usb/sn9c102.txt | 11 | ||||
-rw-r--r-- | Documentation/usb/zc0301.txt | 254 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx88 | 2 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.em28xx | 1 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 9 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.tuner | 6 | ||||
-rw-r--r-- | Documentation/video4linux/README.cpia2 | 130 | ||||
-rw-r--r-- | Documentation/video4linux/cpia2_overview.txt | 38 |
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, | |||
15 | Axel Boldt, Alessandro Sigala, and countless other users all over the | 15 | Axel Boldt, Alessandro Sigala, and countless other users all over the |
16 | 'net). | 16 | 'net). |
17 | 17 | ||
18 | The latest revision of this document, in various formats, can always | ||
19 | be found at <http://cyberbuzz.gatech.edu/kaboom/linux/Changes-2.4/>. | ||
20 | |||
21 | Feel free to translate this document. If you do so, please send me a | ||
22 | URL to your translation for inclusion in future revisions of this | ||
23 | document. | ||
24 | |||
25 | Smotrite file <http://oblom.rnc.ru/linux/kernel/Changes.ru>, yavlyaushisya | ||
26 | russkim perevodom dannogo documenta. | ||
27 | |||
28 | Visite <http://www2.adi.uam.es/~ender/tecnico/> para obtener la traducción | ||
29 | al español de este documento en varios formatos. | ||
30 | |||
31 | Eine deutsche Version dieser Datei finden Sie unter | ||
32 | <http://www.stefan-winter.de/Changes-2.4.0.txt>. | ||
33 | |||
34 | Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). | ||
35 | |||
36 | Current Minimal Requirements | 18 | Current 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 | ||
70 | struct cb_id *id - unique connector's user identifier. | 70 | struct cb_id *id - unique connector's user identifier. |
71 | 71 | ||
72 | void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); | 72 | int cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); |
73 | 73 | ||
74 | Sends message to the specified groups. It can be safely called from | 74 | Sends message to the specified groups. It can be safely called from |
75 | any context, but may silently fail under strong memory pressure. | 75 | softirq context, but may silently fail under strong memory pressure. |
76 | If there are no listeners for given group -ESRCH can be returned. | ||
76 | 77 | ||
77 | struct cn_msg * - message header(with attached data). | 78 | struct cn_msg * - message header(with attached data). |
78 | u32 __group - destination group. | 79 | u32 __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 | |||
2 | HOWTO: Get An Avermedia DVB-T working under Linux | 1 | HOWTO: 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 @@ | |||
1 | How to get the Nebula, PCTV, FusionHDTV Lite and Twinhan DST cards working | 1 | How to get the bt8xx cards working |
2 | ========================================================================== | 2 | ================================== |
3 | 3 | ||
4 | This class of cards has a bt878a as the PCI interface, and | 4 | 1) General information |
5 | require the bttv driver. | 5 | ====================== |
6 | 6 | ||
7 | Please pay close attention to the warning about the bttv module | 7 | This class of cards has a bt878a as the PCI interface, and require the bttv driver |
8 | options below for the DST card. | 8 | for accessing the i2c bus and the gpio pins of the bt8xx chipset. |
9 | Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx PCI bridge: | ||
9 | 10 | ||
10 | 1) General informations | 11 | Compiling kernel please enable: |
11 | ======================= | 12 | a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 Video For Linux" |
12 | 13 | b.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" | |
13 | These drivers require the bttv driver to provide the means to access | 14 | => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards" |
14 | the i2c bus and the gpio pins of the bt8xx chipset. | ||
15 | |||
16 | Because of this, you need to enable | ||
17 | "Device drivers" => "Multimedia devices" | ||
18 | => "Video For Linux" => "BT848 Video For Linux" | ||
19 | |||
20 | Furthermore 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 | ||
24 | 2) Loading Modules | 16 | 2) Loading Modules |
25 | ================== | 17 | ================== |
26 | 18 | ||
27 | In general you need to load the bttv driver, which will handle the gpio and | 19 | In default cases bttv is loaded automatically. |
28 | i2c communication for us, plus the common dvb-bt8xx device driver. | 20 | To load the backend either place dvb-bt8xx in etc/modules, or apply manually: |
29 | The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110), TwinHan (dst), | ||
30 | FusionHDTV DVB-T Lite (mt352) and FusionHDTV5 Lite (lgdt330x) are loaded | ||
31 | automatically by the dvb-bt8xx device driver. | ||
32 | |||
33 | 3a) 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 | |||
42 | 3b) TwinHan and Clones | ||
43 | -------------------------- | ||
44 | 21 | ||
45 | $ modprobe bttv card=0x71 | 22 | $ modprobe dvb-bt8xx |
46 | $ modprobe dvb-bt8xx | ||
47 | $ modprobe dst | ||
48 | 23 | ||
49 | The value 0x71 will override the PCI type detection for dvb-bt8xx, | 24 | All frontends will be loaded automatically. |
50 | which is necessary for TwinHan cards. Omission of this parameter might result | 25 | People running udev please see Documentation/dvb/udev.txt. |
51 | in a system lockup. | ||
52 | 26 | ||
53 | If you're having an older card (blue color PCB) and card=0x71 locks up | 27 | In the following cases overriding the PCI type detection for dvb-bt8xx might be necessary: |
54 | your machine, try using 0x68, too. If that does not work, ask on the | ||
55 | mailing list. | ||
56 | 28 | ||
57 | The DST module takes a couple of useful parameters. | 29 | 2a) Running TwinHan and Clones |
30 | ------------------------------ | ||
58 | 31 | ||
59 | verbose takes values 0 to 4. These values control the verbosity level, | 32 | $ modprobe bttv card=113 |
60 | and can be used to debug also. | 33 | $ modprobe dvb-bt8xx |
34 | $ modprobe dst | ||
61 | 35 | ||
62 | verbose=0 means complete disabling of messages | 36 | Useful 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 | ||
68 | dst_addons takes values 0 and 0x20. A value of 0 means it is a FTA card. | 38 | verbose=0: messages are disabled |
69 | 0x20 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 | ||
43 | dst_addons=0: card is a free to air (FTA) card only | ||
44 | 0x20: card has a conditional access slot for scrambled channels | ||
70 | 45 | ||
71 | The autodetected values are determined by the cards 'response string' | 46 | The autodetected values are determined by the cards' "response string". |
72 | which you can see in your logs e.g. | 47 | In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI]. |
48 | For bug reports please send in a complete log with verbose=4 activated. | ||
49 | Please also see Documentation/dvb/ci.txt. | ||
73 | 50 | ||
74 | dst_get_device_id: Recognise [DSTMCI] | 51 | 2b) Running multiple cards |
75 | |||
76 | If you need to sent in bug reports on the dst, please do send in a complete | ||
77 | log with the verbose=4 module parameter. For general usage, the default setting | ||
78 | of verbose=1 is ideal. | ||
79 | |||
80 | |||
81 | 4) Multiple cards | ||
82 | -------------------------- | 52 | -------------------------- |
83 | 53 | ||
84 | If you happen to be running multiple cards, it would be advisable to load | 54 | Examples of card ID's: |
85 | the bttv module with the card id. This would help to solve any module loading | ||
86 | problems that you might face. | ||
87 | |||
88 | For example, if you have a Twinhan and Clones card along with a FusionHDTV5 Lite | ||
89 | 55 | ||
90 | $ modprobe bttv card=0x71 card=0x87 | 56 | Pinnacle PCTV Sat: 94 |
91 | 57 | Nebula Electronics Digi TV: 104 | |
92 | Here the order of the card id is important and should be the same as that of the | 58 | pcHDTV HD-2000 TV: 112 |
93 | physical order of the cards. Here card=0x71 represents the Twinhan and clones | 59 | Twinhan DST and clones: 113 |
94 | and card=0x87 represents Fusion HDTV5 Lite. These arguments can also be | 60 | Avermedia AverTV DVB-T 771: 123 |
95 | specified in decimal, rather than hex: | 61 | Avermedia AverTV DVB-T 761: 124 |
62 | DViCO FusionHDTV DVB-T Lite: 128 | ||
63 | DViCO FusionHDTV 5 Lite: 135 | ||
96 | 64 | ||
65 | Notice: The order of the card ID should be uprising: | ||
66 | Example: | ||
97 | $ modprobe bttv card=113 card=135 | 67 | $ modprobe bttv card=113 card=135 |
68 | $ modprobe dvb-bt8xx | ||
98 | 69 | ||
99 | Some examples of card-id's | 70 | For a full list of card ID's please see Documentation/video4linux/CARDLIST.bttv. |
100 | 71 | In case of further problems send questions to the mailing list: www.linuxdvb.org. | |
101 | Pinnacle Sat 0x5e (94) | ||
102 | Nebula Digi TV 0x68 (104) | ||
103 | PC HDTV 0x70 (112) | ||
104 | Twinhan 0x71 (113) | ||
105 | FusionHDTV DVB-T Lite 0x80 (128) | ||
106 | FusionHDTV5 Lite 0x87 (135) | ||
107 | |||
108 | For a full list of card-id's, see the V4L Documentation within the kernel | ||
109 | source: linux/Documentation/video4linux/CARDLIST.bttv | ||
110 | |||
111 | If you have problems with this please do ask on the mailing list. | ||
112 | 72 | ||
113 | -- | ||
114 | Authors: Richard Walker, | 73 | Authors: 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 @@ | |||
21 | use File::Temp qw/ tempdir /; | 21 | use File::Temp qw/ tempdir /; |
22 | use IO::Handle; | 22 | use 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 | ||
130 | sub 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 | |||
129 | sub av7110 { | 148 | sub 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 | ||
21 | What's inside this directory: | 21 | What's inside this directory: |
22 | 22 | ||
23 | "avermedia.txt" | ||
24 | contains detailed information about the | ||
25 | Avermedia DVB-T cards. See also "bt8xx.txt". | ||
26 | |||
27 | "bt8xx.txt" | ||
28 | contains detailed information about the | ||
29 | various bt8xx based "budget" DVB cards. | ||
30 | |||
23 | "cards.txt" | 31 | "cards.txt" |
24 | contains a list of supported hardware. | 32 | contains a list of supported hardware. |
25 | 33 | ||
34 | "ci.txt" | ||
35 | contains detailed information about the | ||
36 | CI module as part from TwinHan cards and Clones. | ||
37 | |||
26 | "contributors.txt" | 38 | "contributors.txt" |
27 | is the who-is-who of DVB development | 39 | is the who-is-who of DVB development. |
28 | 40 | ||
29 | "faq.txt" | 41 | "faq.txt" |
30 | contains frequently asked questions and their answers. | 42 | contains frequently asked questions and their answers. |
@@ -34,19 +46,17 @@ script to download and extract firmware for those devices | |||
34 | that require it. | 46 | that require it. |
35 | 47 | ||
36 | "ttusb-dec.txt" | 48 | "ttusb-dec.txt" |
37 | contains detailed informations about the | 49 | contains detailed information about the |
38 | TT DEC2000/DEC3000 USB DVB hardware. | 50 | TT DEC2000/DEC3000 USB DVB hardware. |
39 | 51 | ||
40 | "bt8xx.txt" | ||
41 | contains detailed installation instructions for the | ||
42 | various bt8xx based "budget" DVB cards | ||
43 | (Nebula, Pinnacle PCTV, Twinhan DST) | ||
44 | |||
45 | "README.dibusb" | ||
46 | contains detailed information about adapters | ||
47 | based on DiBcom reference design. | ||
48 | |||
49 | "udev.txt" | 52 | "udev.txt" |
50 | how to get DVB and udev up and running. | 53 | how to get DVB and udev up and running. |
51 | 54 | ||
55 | "README.dvb-usb" | ||
56 | contains detailed information about the DVB USB cards. | ||
57 | |||
58 | "README.flexcop" | ||
59 | contains detailed information about the | ||
60 | Technisat- and Flexcop B2C2 drivers. | ||
61 | |||
52 | Good luck and have fun! | 62 | Good 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. |
198 | Who: Ralf Baechle <ralf@linux-mips.org> | 198 | Who: Ralf Baechle <ralf@linux-mips.org> |
199 | |||
200 | --------------------------- | ||
201 | |||
202 | What: USB driver API moves to EXPORT_SYMBOL_GPL | ||
203 | When: Febuary 2008 | ||
204 | Files: include/linux/usb.h, drivers/usb/core/driver.c | ||
205 | Why: 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. | ||
214 | Who: 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 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters |
2 | ============================================================== | 2 | ============================================================== |
3 | 3 | ||
4 | November 17, 2004 | 4 | November 15, 2005 |
5 | |||
6 | 5 | ||
7 | Contents | 6 | Contents |
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 | ||
20 | This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of | 21 | This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of |
21 | Adapters, version 3.3.x. This driver supports 2.4.x and 2.6.x kernels. | 22 | Adapters. This driver includes support for Itanium(R)2-based systems. |
23 | |||
24 | For questions related to hardware requirements, refer to the documentation | ||
25 | supplied with your Intel PRO/100 adapter. | ||
26 | |||
27 | The following features are now available in supported kernels: | ||
28 | - Native VLANs | ||
29 | - Channel Bonding (teaming) | ||
30 | - SNMP | ||
31 | |||
32 | Channel Bonding documentation can be found in the Linux kernel source: | ||
33 | /Documentation/networking/bonding.txt | ||
34 | |||
22 | 35 | ||
23 | Identifying Your Adapter | 36 | Identifying Your Adapter |
24 | ======================== | 37 | ======================== |
25 | 38 | ||
26 | For more information on how to identify your adapter, go to the Adapter & | 39 | For more information on how to identify your adapter, go to the Adapter & |
27 | Driver ID Guide at: | 40 | Driver 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 | ||
31 | For the latest Intel network drivers for Linux, refer to the following | 44 | For the latest Intel network drivers for Linux, refer to the following |
32 | website. In the search field, enter your adapter name or type, or use the | 45 | website. In the search field, enter your adapter name or type, or use the |
33 | networking link on the left to search for your adapter: | 46 | networking 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 | |||
40 | The default value for each parameter is generally the recommended setting, | 53 | The default value for each parameter is generally the recommended setting, |
41 | unless otherwise noted. | 54 | unless otherwise noted. |
42 | 55 | ||
43 | Rx Descriptors: Number of receive descriptors. A receive descriptor is a data | 56 | Rx 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 | ||
52 | Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a | 65 | Tx 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 | ||
61 | Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by | 74 | Speed/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 | ||
69 | Event Log Message Level: The driver uses the message level flag to log events | 82 | Event 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 | |||
75 | Additional Configurations | 89 | Additional 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 | |||
147 | Support | 179 | Support |
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 | |||
154 | If an issue is identified with the released source code on the supported | 190 | If an issue is identified with the released source code on the supported |
155 | kernel with a supported adapter, email the specific information related to | 191 | kernel with a supported adapter, email the specific information related to the |
156 | the issue to linux.nics@intel.com. | 192 | issue to e1000-devel@lists.sourceforge.net. |
157 | 193 | ||
158 | 194 | ||
159 | License | 195 | License |
160 | ======= | 196 | ======= |
161 | 197 | ||
162 | This software program is released under the terms of a license agreement | 198 | This software program is released under the terms of a license agreement |
163 | between you ('Licensee') and Intel. Do not use or load this software or any | 199 | between you ('Licensee') and Intel. Do not use or load this software or any |
164 | associated materials (collectively, the 'Software') until you have carefully | 200 | associated materials (collectively, the 'Software') until you have carefully |
165 | read the full terms and conditions of the LICENSE located in this software | 201 | read the full terms and conditions of the file COPYING located in this software |
166 | package. By loading or using the Software, you agree to the terms of this | 202 | package. By loading or using the Software, you agree to the terms of this |
167 | Agreement. If you do not agree with the terms of this Agreement, do not | 203 | Agreement. If you do not agree with the terms of this Agreement, do not install |
168 | install or use the Software. | 204 | or 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 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters |
2 | =============================================================== | 2 | =============================================================== |
3 | 3 | ||
4 | November 17, 2004 | 4 | November 15, 2005 |
5 | 5 | ||
6 | 6 | ||
7 | Contents | 7 | Contents |
@@ -20,254 +20,316 @@ In This Release | |||
20 | =============== | 20 | =============== |
21 | 21 | ||
22 | This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family | 22 | This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family |
23 | of Adapters, version 5.x.x. | 23 | of Adapters. This driver includes support for Itanium(R)2-based systems. |
24 | 24 | ||
25 | For questions related to hardware requirements, refer to the documentation | 25 | For questions related to hardware requirements, refer to the documentation |
26 | supplied with your Intel PRO/1000 adapter. All hardware requirements listed | 26 | supplied with your Intel PRO/1000 adapter. All hardware requirements listed |
27 | apply to use with Linux. | 27 | apply to use with Linux. |
28 | 28 | ||
29 | Native VLANs are now available with supported kernels. | 29 | The following features are now available in supported kernels: |
30 | - Native VLANs | ||
31 | - Channel Bonding (teaming) | ||
32 | - SNMP | ||
33 | |||
34 | Channel Bonding documentation can be found in the Linux kernel source: | ||
35 | /Documentation/networking/bonding.txt | ||
36 | |||
37 | The driver information previously displayed in the /proc filesystem is not | ||
38 | supported in this release. Alternatively, you can use ethtool (version 1.6 | ||
39 | or later), lspci, and ifconfig to obtain the same information. | ||
40 | |||
41 | Instructions on updating ethtool can be found in the section "Additional | ||
42 | Configurations" later in this document. | ||
43 | |||
30 | 44 | ||
31 | Identifying Your Adapter | 45 | Identifying Your Adapter |
32 | ======================== | 46 | ======================== |
33 | 47 | ||
34 | For more information on how to identify your adapter, go to the Adapter & | 48 | For more information on how to identify your adapter, go to the Adapter & |
35 | Driver ID Guide at: | 49 | Driver 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 | ||
39 | For the latest Intel network drivers for Linux, refer to the following | 53 | For the latest Intel network drivers for Linux, refer to the following |
40 | website. In the search field, enter your adapter name or type, or use the | 54 | website. In the search field, enter your adapter name or type, or use the |
41 | networking link on the left to search for your adapter: | 55 | networking 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 | ||
45 | Command Line Parameters | ||
46 | ======================= | ||
47 | 59 | ||
48 | If the driver is built as a module, the following optional parameters are | 60 | Command Line Parameters ======================= |
49 | used by entering them on the command line with the modprobe or insmod command | 61 | |
50 | using this syntax: | 62 | If the driver is built as a module, the following optional parameters |
63 | are used by entering them on the command line with the modprobe or insmod | ||
64 | command 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 | ||
56 | For example, with two PRO/1000 PCI adapters, entering: | 70 | For example, with two PRO/1000 PCI adapters, entering: |
57 | 71 | ||
58 | insmod e1000 TxDescriptors=80,128 | 72 | insmod e1000 TxDescriptors=80,128 |
59 | 73 | ||
60 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 TX | 74 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 |
61 | descriptors for the second adapter. | 75 | TX descriptors for the second adapter. |
62 | 76 | ||
63 | The default value for each parameter is generally the recommended setting, | 77 | The default value for each parameter is generally the recommended setting, |
64 | unless otherwise noted. Also, if the driver is statically built into the | 78 | unless otherwise noted. |
65 | kernel, the driver is loaded with the default values for all the parameters. | 79 | |
66 | Ethtool can be used to change some of the parameters at runtime. | 80 | NOTES: 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 | ||
80 | AutoNeg (adapters using copper connections only) | 93 | AutoNeg |
81 | Valid Range: 0x01-0x0F, 0x20-0x2F | 94 | ------- |
95 | (Supported only on adapters with copper connections) | ||
96 | Valid Range: 0x01-0x0F, 0x20-0x2F | ||
82 | Default Value: 0x2F | 97 | Default 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 | 99 | This parameter is a bit mask that specifies which speed and duplex |
85 | Duplex parameters must not be specified. | 100 | settings the board advertises. When this parameter is used, the Speed |
86 | NOTE: Refer to the Speed and Duplex section of this readme for more | 101 | and Duplex parameters must not be specified. |
87 | information on the AutoNeg parameter. | 102 | |
88 | 103 | NOTE: Refer to the Speed and Duplex section of this readme for more | |
89 | Duplex (adapters using copper connections only) | 104 | information on the AutoNeg parameter. |
90 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | 105 | |
106 | |||
107 | Duplex | ||
108 | ------ | ||
109 | (Supported only on adapters with copper connections) | ||
110 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | ||
91 | Default Value: 0 | 111 | Default 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- | 113 | Defines 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 | 114 | one 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. | 115 | auto-negotiate, the board auto-detects the correct duplex. If the link |
116 | partner is forced (either full or half), Duplex defaults to half-duplex. | ||
117 | |||
96 | 118 | ||
97 | FlowControl | 119 | FlowControl |
98 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) | 120 | ---------- |
99 | Default: Read flow control settings from the EEPROM | 121 | Valid 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 | 122 | Default Value: Reads flow control settings from the EEPROM |
101 | Ethernet PAUSE frames. | 123 | |
124 | This parameter controls the automatic generation(Tx) and response(Rx) | ||
125 | to Ethernet PAUSE frames. | ||
126 | |||
102 | 127 | ||
103 | InterruptThrottleRate | 128 | InterruptThrottleRate |
104 | Valid Range: 100-100000 (0=off, 1=dynamic) | 129 | --------------------- |
130 | (not supported on Intel 82542, 82543 or 82544-based adapters) | ||
131 | Valid Range: 100-100000 (0=off, 1=dynamic) | ||
105 | Default Value: 8000 | 132 | Default Value: 8000 |
106 | This value represents the maximum number of interrupts per second the | 133 | |
107 | controller generates. InterruptThrottleRate is another setting used in | 134 | This value represents the maximum number of interrupts per second the |
108 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust | 135 | controller generates. InterruptThrottleRate is another setting used in |
109 | InterruptThrottleRate based on the current traffic load. | 136 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust |
110 | Un-supported Adapters: InterruptThrottleRate is NOT supported by 82542, 82543 | 137 | InterruptThrottleRate based on the current traffic load. |
111 | or 82544-based adapters. | 138 | |
112 | 139 | NOTE: 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 | 145 | CAUTION: 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. | 155 | NOTE: 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 | ||
141 | RxDescriptors | 171 | RxDescriptors |
142 | Valid Range: 80-256 for 82542 and 82543-based adapters | 172 | ------------- |
143 | 80-4096 for all other supported adapters | 173 | Valid Range: 80-256 for 82542 and 82543-based adapters |
174 | 80-4096 for all other supported adapters | ||
144 | Default Value: 256 | 175 | Default 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. | 177 | This value specifies the number of receive descriptors allocated by the |
151 | The maximum MTU size is 16110. | 178 | driver. Increasing this value allows the driver to buffer more incoming |
179 | packets. Each descriptor is 16 bytes. A receive buffer is also | ||
180 | allocated 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 | ||
159 | RxIntDelay | 183 | RxIntDelay |
160 | Valid Range: 0-65535 (0=off) | 184 | ---------- |
185 | Valid Range: 0-65535 (0=off) | ||
161 | Default Value: 0 | 186 | Default 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 | 188 | This value delays the generation of receive interrupts in units of 1.024 |
164 | properly tuned for specific network traffic. Increasing this value adds | 189 | microseconds. Receive interrupt reduction can improve CPU efficiency if |
165 | extra latency to frame reception and can end up decreasing the throughput | 190 | properly tuned for specific network traffic. Increasing this value adds |
166 | of TCP traffic. If the system is reporting dropped receives, this value | 191 | extra 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 | 192 | of TCP traffic. If the system is reporting dropped receives, this value |
168 | descriptors. | 193 | may be set too high, causing the driver to run out of available receive |
169 | 194 | descriptors. | |
170 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may | 195 | |
171 | hang (stop transmitting) under certain network conditions. If | 196 | CAUTION: 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. | |
177 | RxAbsIntDelay (82540, 82545 and later adapters only) | 202 | |
178 | Valid Range: 0-65535 (0=off) | 203 | |
204 | RxAbsIntDelay | ||
205 | ------------- | ||
206 | (This parameter is supported only on 82540, 82545 and later adapters.) | ||
207 | Valid Range: 0-65535 (0=off) | ||
179 | Default Value: 128 | 208 | Default 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, | 210 | This 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 | 211 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, |
183 | packet is received within the set amount of time. Proper tuning, | 212 | this value ensures that an interrupt is generated after the initial |
184 | along with RxIntDelay, may improve traffic throughput in specific network | 213 | packet is received within the set amount of time. Proper tuning, |
185 | conditions. | 214 | along with RxIntDelay, may improve traffic throughput in specific network |
186 | 215 | conditions. | |
187 | Speed (adapters using copper connections only) | 216 | |
217 | |||
218 | Speed | ||
219 | ----- | ||
220 | (This parameter is supported only on adapters with copper connections.) | ||
188 | Valid Settings: 0, 10, 100, 1000 | 221 | Valid Settings: 0, 10, 100, 1000 |
189 | Default Value: 0 (auto-negotiate at all supported speeds) | 222 | Default 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 | 224 | Speed 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. | 226 | partner is set to auto-negotiate, the board will auto-detect the correct |
227 | speed. Duplex should also be set when Speed is set to either 10 or 100. | ||
228 | |||
194 | 229 | ||
195 | TxDescriptors | 230 | TxDescriptors |
196 | Valid Range: 80-256 for 82542 and 82543-based adapters | 231 | ------------- |
197 | 80-4096 for all other supported adapters | 232 | Valid Range: 80-256 for 82542 and 82543-based adapters |
233 | 80-4096 for all other supported adapters | ||
198 | Default Value: 256 | 234 | Default 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 | 236 | This value is the number of transmit descriptors allocated by the driver. |
204 | higher number of transmit descriptors may be denied. In this case, | 237 | Increasing this value allows the driver to queue more transmits. Each |
205 | use a lower number. | 238 | descriptor is 16 bytes. |
239 | |||
240 | NOTE: 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 | ||
207 | TxIntDelay | 245 | TxIntDelay |
208 | Valid Range: 0-65535 (0=off) | 246 | ---------- |
247 | Valid Range: 0-65535 (0=off) | ||
209 | Default Value: 64 | 248 | Default 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 | 250 | This value delays the generation of transmit interrupts in units of |
212 | efficiency if properly tuned for specific network traffic. If the | 251 | 1.024 microseconds. Transmit interrupt reduction can improve CPU |
213 | system is reporting dropped transmits, this value may be set too high | 252 | efficiency if properly tuned for specific network traffic. If the |
214 | causing the driver to run out of available transmit descriptors. | 253 | system is reporting dropped transmits, this value may be set too high |
215 | 254 | causing the driver to run out of available transmit descriptors. | |
216 | TxAbsIntDelay (82540, 82545 and later adapters only) | 255 | |
217 | Valid Range: 0-65535 (0=off) | 256 | |
257 | TxAbsIntDelay | ||
258 | ------------- | ||
259 | (This parameter is supported only on 82540, 82545 and later adapters.) | ||
260 | Valid Range: 0-65535 (0=off) | ||
218 | Default Value: 64 | 261 | Default 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, | 263 | This 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 | 264 | transmit 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, | 265 | this value ensures that an interrupt is generated after the initial |
223 | along with TxIntDelay, may improve traffic throughput in specific | 266 | packet is sent on the wire within the set amount of time. Proper tuning, |
224 | network conditions. | 267 | along with TxIntDelay, may improve traffic throughput in specific |
225 | 268 | network conditions. | |
226 | XsumRX (not available on the 82542-based adapter) | 269 | |
227 | Valid Range: 0-1 | 270 | XsumRX |
271 | ------ | ||
272 | (This parameter is NOT supported on the 82542-based adapter.) | ||
273 | Valid Range: 0-1 | ||
228 | Default Value: 1 | 274 | Default 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. | 276 | A value of '1' indicates that the driver should enable IP checksum |
277 | offload for received packets (both UDP and TCP) to the adapter hardware. | ||
278 | |||
231 | 279 | ||
232 | Speed and Duplex Configuration | 280 | Speed and Duplex Configuration |
233 | ============================== | 281 | ============================== |
234 | 282 | ||
235 | Three keywords are used to control the speed and duplex configuration. These | 283 | Three keywords are used to control the speed and duplex configuration. |
236 | keywords are Speed, Duplex, and AutoNeg. | 284 | These keywords are Speed, Duplex, and AutoNeg. |
237 | 285 | ||
238 | If the board uses a fiber interface, these keywords are ignored, and the | 286 | If the board uses a fiber interface, these keywords are ignored, and the |
239 | fiber interface board only links at 1000 Mbps full-duplex. | 287 | fiber interface board only links at 1000 Mbps full-duplex. |
240 | 288 | ||
241 | For copper-based boards, the keywords interact as follows: | 289 | For 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 | |||
302 | The AutoNeg parameter is used when more control is required over the | ||
303 | auto-negotiation process. It should be used when you wish to control which | ||
304 | speed and duplex combinations are advertised during the auto-negotiation | ||
305 | process. | ||
306 | |||
307 | The parameter may be specified as either a decimal or hexidecimal value as | ||
308 | determined by the bitmap below. | ||
253 | 309 | ||
254 | The AutoNeg parameter is used when more control is required over the auto- | 310 | Bit position 7 6 5 4 3 2 1 0 |
255 | negotiation process. When this parameter is used, Speed and Duplex parameters | 311 | Decimal Value 128 64 32 16 8 4 2 1 |
256 | must not be specified. The following table describes supported values for the | 312 | Hex value 80 40 20 10 8 4 2 1 |
257 | AutoNeg parameter: | 313 | Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10 |
314 | Duplex Full Full Half Full Half | ||
258 | 315 | ||
259 | Speed (Mbps) 1000 100 100 10 10 | 316 | Some examples of using AutoNeg: |
260 | Duplex Full Full Half Full Half | ||
261 | Value (in base 16) 0x20 0x08 0x04 0x02 0x01 | ||
262 | 317 | ||
263 | Example: insmod e1000 AutoNeg=0x03, loads e1000 and specifies (10 full duplex, | 318 | modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half) |
264 | 10 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 | ||
266 | Note that setting AutoNeg does not guarantee that the board will link at the | 328 | Note that when this parameter is used, Speed and Duplex must not be specified. |
267 | highest specified speed or duplex mode, but the board will link at the | 329 | |
268 | highest possible speed/duplex of the link partner IF the link partner is also | 330 | If the link partner is forced to a specific speed and duplex, then this |
269 | set to auto-negotiate. If the link partner is forced speed/duplex, the | 331 | parameter should not be used. Instead, use the Speed and Duplex parameters |
270 | adapter MUST be forced to the same speed/duplex. | 332 | previously mentioned to force the adapter to the same speed and duplex. |
271 | 333 | ||
272 | 334 | ||
273 | Additional Configurations | 335 | Additional 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 | ||
378 | Support | 544 | Support |
@@ -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 | |||
385 | If an issue is identified with the released source code on the supported | 555 | If an issue is identified with the released source code on the supported |
386 | kernel with a supported adapter, email the specific information related to | 556 | kernel with a supported adapter, email the specific information related |
387 | the issue to linux.nics@intel.com. | 557 | to the issue to e1000-devel@lists.sourceforge.net |
388 | 558 | ||
389 | 559 | ||
390 | License | 560 | License |
391 | ======= | 561 | ======= |
392 | 562 | ||
393 | This software program is released under the terms of a license agreement | 563 | This software program is released under the terms of a license agreement |
394 | between you ('Licensee') and Intel. Do not use or load this software or any | 564 | between you ('Licensee') and Intel. Do not use or load this software or any |
395 | associated materials (collectively, the 'Software') until you have carefully | 565 | associated materials (collectively, the 'Software') until you have carefully |
396 | read the full terms and conditions of the LICENSE located in this software | 566 | read the full terms and conditions of the file COPYING located in this software |
397 | package. By loading or using the Software, you agree to the terms of this | 567 | package. By loading or using the Software, you agree to the terms of this |
398 | Agreement. If you do not agree with the terms of this Agreement, do not | 568 | Agreement. If you do not agree with the terms of this Agreement, do not |
399 | install or use the Software. | 569 | install 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 | ||
358 | tcp_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 | |||
358 | IP Variables: | 365 | IP Variables: |
359 | 366 | ||
360 | ip_local_port_range - 2 INTEGERS | 367 | ip_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 | ||
629 | arp_accept - BOOLEAN | ||
630 | Define behavior when gratuitous arp replies are received: | ||
631 | 0 - drop gratuitous arp frames | ||
632 | 1 - accept gratuitous arp frames | ||
633 | |||
622 | app_solicit - INTEGER | 634 | app_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 | ||
732 | accept_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 | |||
738 | accept_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 | |||
744 | accept_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 | |||
753 | accept_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 | |||
720 | accept_redirects - BOOLEAN | 759 | accept_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 | ||
733 | dad_transmits - INTEGER | 772 | dad_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 | ||
813 | router_probe_interval - INTEGER | ||
814 | Minimum interval (in seconds) between Router Probing described | ||
815 | in RFC4191. | ||
816 | |||
817 | Default: 60 | ||
818 | |||
774 | router_solicitation_delay - INTEGER | 819 | router_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) |
177 | Default: 0 | 177 | Default: 0 |
178 | ------------------------------------------------------------------------------- | 178 | ------------------------------------------------------------------------------- |
179 | Name: frame_timeout | ||
180 | Type: uint array (min = 0, max = 64) | ||
181 | Syntax: <n[,...]> | ||
182 | Description: 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. | ||
185 | Default: 2 | ||
186 | ------------------------------------------------------------------------------- | ||
179 | Name: debug | 187 | Name: debug |
180 | Type: ushort | 188 | Type: ushort |
181 | Syntax: <n> | 189 | Syntax: <n> |
@@ -266,7 +274,7 @@ the V4L2 interface. | |||
266 | 274 | ||
267 | 275 | ||
268 | 10. Notes for V4L2 application developers | 276 | 10. Notes for V4L2 application developers |
269 | ======================================== | 277 | ========================================= |
270 | This driver follows the V4L2 API specifications. In particular, it enforces two | 278 | This driver follows the V4L2 API specifications. In particular, it enforces two |
271 | rules: | 279 | rules: |
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) |
197 | Default: 0 | 197 | Default: 0 |
198 | ------------------------------------------------------------------------------- | 198 | ------------------------------------------------------------------------------- |
199 | Name: frame_timeout | ||
200 | Type: uint array (min = 0, max = 64) | ||
201 | Syntax: <n[,...]> | ||
202 | Description: 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. | ||
205 | Default: 2 | ||
206 | ------------------------------------------------------------------------------- | ||
199 | Name: debug | 207 | Name: debug |
200 | Type: ushort | 208 | Type: ushort |
201 | Syntax: <n> | 209 | Syntax: <n> |
@@ -321,6 +329,7 @@ Vendor ID Product ID | |||
321 | --------- ---------- | 329 | --------- ---------- |
322 | 0x0c45 0x6001 | 330 | 0x0c45 0x6001 |
323 | 0x0c45 0x6005 | 331 | 0x0c45 0x6005 |
332 | 0x0c45 0x6007 | ||
324 | 0x0c45 0x6009 | 333 | 0x0c45 0x6009 |
325 | 0x0c45 0x600d | 334 | 0x0c45 0x600d |
326 | 0x0c45 0x6024 | 335 | 0x0c45 0x6024 |
@@ -370,6 +379,7 @@ HV7131D Hynix Semiconductor, Inc. | |||
370 | MI-0343 Micron Technology, Inc. | 379 | MI-0343 Micron Technology, Inc. |
371 | OV7630 OmniVision Technologies, Inc. | 380 | OV7630 OmniVision Technologies, Inc. |
372 | PAS106B PixArt Imaging, Inc. | 381 | PAS106B PixArt Imaging, Inc. |
382 | PAS202BCA PixArt Imaging, Inc. | ||
373 | PAS202BCB PixArt Imaging, Inc. | 383 | PAS202BCB PixArt Imaging, Inc. |
374 | TAS5110C1B Taiwan Advanced Sensor Corporation | 384 | TAS5110C1B Taiwan Advanced Sensor Corporation |
375 | TAS5130D1B Taiwan Advanced Sensor Corporation | 385 | TAS5130D1B Taiwan Advanced Sensor Corporation |
@@ -493,6 +503,7 @@ Many thanks to following persons for their contribute (listed in alphabetical | |||
493 | order): | 503 | order): |
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 | |||
9 | Index | ||
10 | ===== | ||
11 | 1. Copyright | ||
12 | 2. Disclaimer | ||
13 | 3. License | ||
14 | 4. Overview and features | ||
15 | 5. Module dependencies | ||
16 | 6. Module loading | ||
17 | 7. Module parameters | ||
18 | 8. Supported devices | ||
19 | 9. Notes for V4L2 application developers | ||
20 | 10. Contact information | ||
21 | 11. Credits | ||
22 | |||
23 | |||
24 | 1. Copyright | ||
25 | ============ | ||
26 | Copyright (C) 2006 by Luca Risolia <luca.risolia@studio.unibo.it> | ||
27 | |||
28 | |||
29 | 2. Disclaimer | ||
30 | ============= | ||
31 | This software is not developed or sponsored by Z-Star Microelectronics Corp. | ||
32 | Trademarks are property of their respective owner. | ||
33 | |||
34 | |||
35 | 3. License | ||
36 | ========== | ||
37 | This program is free software; you can redistribute it and/or modify | ||
38 | it under the terms of the GNU General Public License as published by | ||
39 | the Free Software Foundation; either version 2 of the License, or | ||
40 | (at your option) any later version. | ||
41 | |||
42 | This program is distributed in the hope that it will be useful, | ||
43 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
44 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
45 | GNU General Public License for more details. | ||
46 | |||
47 | You should have received a copy of the GNU General Public License | ||
48 | along with this program; if not, write to the Free Software | ||
49 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
50 | |||
51 | |||
52 | 4. Overview and features | ||
53 | ======================== | ||
54 | This driver supports the video interface of the devices mounting the ZC0301 | ||
55 | Image Processor and Control Chip. | ||
56 | |||
57 | The driver relies on the Video4Linux2 and USB core modules. It has been | ||
58 | designed to run properly on SMP systems as well. | ||
59 | |||
60 | The latest version of the ZC0301 driver can be found at the following URL: | ||
61 | http://www.linux-projects.org/ | ||
62 | |||
63 | Some 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 | |||
78 | 5. Module dependencies | ||
79 | ====================== | ||
80 | For it to work properly, the driver needs kernel support for Video4Linux and | ||
81 | USB. | ||
82 | |||
83 | The following options of the kernel configuration file must be enabled and | ||
84 | corresponding modules must be compiled: | ||
85 | |||
86 | # Multimedia devices | ||
87 | # | ||
88 | CONFIG_VIDEO_DEV=m | ||
89 | |||
90 | # USB support | ||
91 | # | ||
92 | CONFIG_USB=m | ||
93 | |||
94 | In addition, depending on the hardware being used, the modules below are | ||
95 | necessary: | ||
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 | |||
103 | The ZC0301 controller also provides a built-in microphone interface. It is | ||
104 | supported 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 | |||
118 | And finally: | ||
119 | |||
120 | # USB Multimedia devices | ||
121 | # | ||
122 | CONFIG_USB_ZC0301=m | ||
123 | |||
124 | |||
125 | 6. Module loading | ||
126 | ================= | ||
127 | To use the driver, it is necessary to load the "zc0301" module into memory | ||
128 | after every other module required: "videodev", "usbcore" and, depending on | ||
129 | the USB host controller you have, "ehci-hcd", "uhci-hcd" or "ohci-hcd". | ||
130 | |||
131 | Loading can be done as shown below: | ||
132 | |||
133 | [root@localhost home]# modprobe zc0301 | ||
134 | |||
135 | At this point the devices should be recognized. You can invoke "dmesg" to | ||
136 | analyze kernel messages and verify that the loading process has gone well: | ||
137 | |||
138 | [user@localhost home]$ dmesg | ||
139 | |||
140 | |||
141 | 7. Module parameters | ||
142 | ==================== | ||
143 | Module parameters are listed below: | ||
144 | ------------------------------------------------------------------------------- | ||
145 | Name: video_nr | ||
146 | Type: short array (min = 0, max = 64) | ||
147 | Syntax: <-1|n[,...]> | ||
148 | Description: 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. | ||
156 | Default: -1 | ||
157 | ------------------------------------------------------------------------------- | ||
158 | Name: force_munmap | ||
159 | Type: bool array (min = 0, max = 64) | ||
160 | Syntax: <0|1[,...]> | ||
161 | Description: 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) | ||
167 | Default: 0 | ||
168 | ------------------------------------------------------------------------------- | ||
169 | Name: frame_timeout | ||
170 | Type: uint array (min = 0, max = 64) | ||
171 | Syntax: <n[,...]> | ||
172 | Description: 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. | ||
175 | Default: 2 | ||
176 | ------------------------------------------------------------------------------- | ||
177 | Name: debug | ||
178 | Type: ushort | ||
179 | Syntax: <n> | ||
180 | Description: 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. | ||
189 | Default: 2 | ||
190 | ------------------------------------------------------------------------------- | ||
191 | |||
192 | |||
193 | 8. Supported devices | ||
194 | ==================== | ||
195 | None of the names of the companies as well as their products will be mentioned | ||
196 | here. They have never collaborated with the author, so no advertising. | ||
197 | |||
198 | From the point of view of a driver, what unambiguously identify a device are | ||
199 | its vendor and product USB identifiers. Below is a list of known identifiers of | ||
200 | devices mounting the ZC0301 Image Processor and Control Chips: | ||
201 | |||
202 | Vendor ID Product ID | ||
203 | --------- ---------- | ||
204 | 0x041e 0x4017 | ||
205 | 0x041e 0x401c | ||
206 | 0x041e 0x401e | ||
207 | 0x041e 0x4034 | ||
208 | 0x041e 0x4035 | ||
209 | 0x046d 0x08ae | ||
210 | 0x0ac8 0x0301 | ||
211 | 0x10fd 0x8050 | ||
212 | |||
213 | The list above does not imply that all those devices work with this driver: up | ||
214 | until now only the ones that mount the following image sensors are supported; | ||
215 | kernel messages will always tell you whether this is the case: | ||
216 | |||
217 | Model Manufacturer | ||
218 | ----- ------------ | ||
219 | PAS202BCB PixArt Imaging, Inc. | ||
220 | |||
221 | |||
222 | 9. Notes for V4L2 application developers | ||
223 | ======================================== | ||
224 | This driver follows the V4L2 API specifications. In particular, it enforces two | ||
225 | rules: | ||
226 | |||
227 | - exactly one I/O method, either "mmap" or "read", is associated with each | ||
228 | file descriptor. Once it is selected, the application must close and reopen the | ||
229 | device to switch to the other I/O method; | ||
230 | |||
231 | - although it is not mandatory, previously mapped buffer memory should always | ||
232 | be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's. | ||
233 | The same number of buffers as before will be allocated again to match the size | ||
234 | of the new video frames, so you have to map the buffers again before any I/O | ||
235 | attempts on them. | ||
236 | |||
237 | |||
238 | 10. Contact information | ||
239 | ======================= | ||
240 | The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>. | ||
241 | |||
242 | GPG/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; | ||
244 | the fingerprint is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'. | ||
245 | |||
246 | |||
247 | 11. 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 | |||
64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner | 64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner |
65 | tuner=64 - LG TDVS-H062F/TUA6034 | 65 | tuner=64 - LG TDVS-H062F/TUA6034 |
66 | tuner=65 - Ymec TVF66T5-B/DFF | 66 | tuner=65 - Ymec TVF66T5-B/DFF |
67 | tuner=66 - LG NTSC (TALN mini series) | 67 | tuner=66 - LG TALN series |
68 | tuner=67 - Philips TD1316 Hybrid Tuner | 68 | tuner=67 - Philips TD1316 Hybrid Tuner |
69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in | 69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in |
70 | tuner=69 - Tena TNF 5335 MF | 70 | tuner=69 - Tena TNF 5335 and similar models |
71 | tuner=70 - Samsung TCPN 2121P30A | 71 | tuner=70 - Samsung TCPN 2121P30A |
72 | tuner=71 - Xceive xc3028 | ||
73 | tuner=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 | |||
3 | 1. Introduction | ||
4 | |||
5 | This is a driver for STMicroelectronics's CPiA2 (second generation | ||
6 | Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG | ||
7 | stream at up to vga size. It implements the Video4Linux interface as much as | ||
8 | possible. Since the V4L interface does not support compressed formats, only | ||
9 | an mjpeg enabled application can be used with the camera. We have modified the | ||
10 | gqcam application to view this stream. | ||
11 | |||
12 | The driver is implemented as two kernel modules. The cpia2 module | ||
13 | contains the camera functions and the V4L interface. The cpia2_usb module | ||
14 | contains usb specific functions. The main reason for this was the size of the | ||
15 | module was getting out of hand, so I separted them. It is not likely that | ||
16 | there will be a parallel port version. | ||
17 | |||
18 | FEATURES: | ||
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 | |||
30 | 2. 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 | ||
35 | only been tested on 2.6. Video4Linux must be either compiled into the kernel or | ||
36 | available as a module. Video4Linux2 is automatically detected and made | ||
37 | available at compile time. | ||
38 | |||
39 | Compiling: | ||
40 | ---------- | ||
41 | As root, do a make install. This will compile and install the modules | ||
42 | into the media/video directory in the module tree. For 2.4 kernels, use | ||
43 | Makefile_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 | ||
48 | may be done automatically by your distribution. | ||
49 | |||
50 | 3. 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 | ||
68 | line 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 | ||
72 | like 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 | ||
78 | frame rate achieved by the camera. If the compression engine is able to | ||
79 | keep up with the frame rate, the maximum image size is given by the table | ||
80 | below. | ||
81 | The compression engine starts out at maximum compression, and will | ||
82 | increase image quality until it is close to the size in the table. As long | ||
83 | as the compression engine can keep up with the frame rate, after a short time | ||
84 | the 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 | ||
86 | compress the image enough and will reduce the frame rate by producing larger | ||
87 | images. | ||
88 | The default of 68k should be good for most users. This will handle | ||
89 | any alternate at frame rates down to 15fps. For lower frame rates, it may | ||
90 | be necessary to increase the buffer size to avoid having frames dropped due | ||
91 | to 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, | ||
105 | it is possible for the camera to finish sending one image just after a | ||
106 | program has started reading the other. If this happens, the driver must drop | ||
107 | a frame. The exception to this is if you have a heavily loaded machine. In | ||
108 | this case use 2 buffers. You are probably not reading at the full frame rate. | ||
109 | If the camera can send multiple images before a read finishes, it could | ||
110 | overwrite the third buffer before the read finishes, leading to a corrupt | ||
111 | image. Single and double buffering have extra checks to avoid overwriting. | ||
112 | |||
113 | 4. Using the camera | ||
114 | |||
115 | We are providing a modified gqcam application to view the output. In | ||
116 | order to avoid confusion, here it is called mview. There is also the qx5view | ||
117 | program 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 | |||
120 | 5. 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 | |||
125 | 6. 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 | |||
3 | Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a | ||
4 | division of ST Microelectronics). There are two versions. The first is the | ||
5 | STV0672, which is capable of up to 30 frames per second (fps) in frame sizes | ||
6 | up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version, | ||
7 | which can handle up to 30 fps VGA. Both coprocessors can be attached to two | ||
8 | CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will | ||
9 | be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors. | ||
10 | |||
11 | The two chipsets operate almost identically. The core is an 8051 processor, | ||
12 | running two different versions of firmware. The 672 runs the VP4 video | ||
13 | processor code, the 676 runs VP5. There are a few differences in register | ||
14 | mappings for the two chips. In these cases, the symbols defined in the | ||
15 | header files are marked with VP4 or VP5 as part of the symbol name. | ||
16 | |||
17 | The cameras appear externally as three sets of registers. Setting register | ||
18 | values is the only way to control the camera. Some settings are | ||
19 | interdependant, such as the sequence required to power up the camera. I will | ||
20 | try to make note of all of these cases. | ||
21 | |||
22 | The register sets are called blocks. Block 0 is the system block. This | ||
23 | section is always powered on when the camera is plugged in. It contains | ||
24 | registers that control housekeeping functions such as powering up the video | ||
25 | processor. The video processor is the VP block. These registers control | ||
26 | how the video from the sensor is processed. Examples are timing registers, | ||
27 | user mode (vga, qvga), scaling, cropping, framerates, and so on. The last | ||
28 | block is the video compressor (VC). The video stream sent from the camera is | ||
29 | compressed as Motion JPEG (JPEGA). The VC controls all of the compression | ||
30 | parameters. Looking at the file cpia2_registers.h, you can get a full view | ||
31 | of these registers and the possible values for most of them. | ||
32 | |||
33 | One or more registers can be set or read by sending a usb control message to | ||
34 | the camera. There are three modes for this. Block mode requests a number | ||
35 | of contiguous registers. Random mode reads or writes random registers with | ||
36 | a tuple structure containing address/value pairs. The repeat mode is only | ||
37 | used by VP4 to load a firmware patch. It contains a starting address and | ||
38 | a sequence of bytes to be written into a gpio port. \ No newline at end of file | ||