diff options
Diffstat (limited to 'Documentation')
36 files changed, 1831 insertions, 1352 deletions
diff --git a/Documentation/BUG-HUNTING b/Documentation/BUG-HUNTING index ca29242dbc3..65b97e1dbf7 100644 --- a/Documentation/BUG-HUNTING +++ b/Documentation/BUG-HUNTING @@ -1,3 +1,56 @@ +Table of contents +================= + +Last updated: 20 December 2005 + +Contents +======== + +- Introduction +- Devices not appearing +- Finding patch that caused a bug +-- Finding using git-bisect +-- Finding it the old way +- Fixing the bug + +Introduction +============ + +Always try the latest kernel from kernel.org and build from source. If you are +not confident in doing that please report the bug to your distribution vendor +instead of to a kernel developer. + +Finding bugs is not always easy. Have a go though. If you can't find it don't +give up. Report as much as you have found to the relevant maintainer. See +MAINTAINERS for who that is for the subsystem you have worked on. + +Before you submit a bug report read REPORTING-BUGS. + +Devices not appearing +===================== + +Often this is caused by udev. Check that first before blaming it on the +kernel. + +Finding patch that caused a bug +=============================== + + + +Finding using git-bisect +------------------------ + +Using the provided tools with git makes finding bugs easy provided the bug is +reproducible. + +Steps to do it: +- start using git for the kernel source +- read the man page for git-bisect +- have fun + +Finding it the old way +---------------------- + [Sat Mar 2 10:32:33 PST 1996 KERNEL_BUG-HOWTO lm@sgi.com (Larry McVoy)] This is how to track down a bug if you know nothing about kernel hacking. @@ -90,3 +143,63 @@ it does work and it lets non-hackers help fix bugs. And it is cool because Linux snapshots will let you do this - something that you can't do with vendor supplied releases. +Fixing the bug +============== + +Nobody is going to tell you how to fix bugs. Seriously. You need to work it +out. But below are some hints on how to use the tools. + +To debug a kernel, use objdump and look for the hex offset from the crash +output to find the valid line of code/assembler. Without debug symbols, you +will see the assembler code for the routine shown, but if your kernel has +debug symbols the C code will also be available. (Debug symbols can be enabled +in the kernel hacking menu of the menu configuration.) For example: + + objdump -r -S -l --disassemble net/dccp/ipv4.o + +NB.: you need to be at the top level of the kernel tree for this to pick up +your C files. + +If you don't have access to the code you can also debug on some crash dumps +e.g. crash dump output as shown by Dave Miller. + +> EIP is at ip_queue_xmit+0x14/0x4c0 +> ... +> Code: 44 24 04 e8 6f 05 00 00 e9 e8 fe ff ff 8d 76 00 8d bc 27 00 00 +> 00 00 55 57 56 53 81 ec bc 00 00 00 8b ac 24 d0 00 00 00 8b 5d 08 +> <8b> 83 3c 01 00 00 89 44 24 14 8b 45 28 85 c0 89 44 24 18 0f 85 +> +> Put the bytes into a "foo.s" file like this: +> +> .text +> .globl foo +> foo: +> .byte .... /* bytes from Code: part of OOPS dump */ +> +> Compile it with "gcc -c -o foo.o foo.s" then look at the output of +> "objdump --disassemble foo.o". +> +> Output: +> +> ip_queue_xmit: +> push %ebp +> push %edi +> push %esi +> push %ebx +> sub $0xbc, %esp +> mov 0xd0(%esp), %ebp ! %ebp = arg0 (skb) +> mov 0x8(%ebp), %ebx ! %ebx = skb->sk +> mov 0x13c(%ebx), %eax ! %eax = inet_sk(sk)->opt + +Another very useful option of the Kernel Hacking section in menuconfig is +Debug memory allocations. This will help you see whether data has been +initialised and not set before use etc. To see the values that get assigned +with this look at mm/slab.c and search for POISON_INUSE. When using this an +Oops will often show the poisoned data instead of zero which is the default. + +Once you have worked out a fix please submit it upstream. After all open +source is about sharing what you do and don't you want to be recognised for +your genius? + +Please do read Documentation/SubmittingPatches though to help your code get +accepted. diff --git a/Documentation/Changes b/Documentation/Changes index fe5ae0f5502..b02f476c297 100644 --- a/Documentation/Changes +++ b/Documentation/Changes @@ -15,24 +15,6 @@ and therefore owes credit to the same people as that file (Jared Mauch, Axel Boldt, Alessandro Sigala, and countless other users all over the 'net). -The latest revision of this document, in various formats, can always -be found at <http://cyberbuzz.gatech.edu/kaboom/linux/Changes-2.4/>. - -Feel free to translate this document. If you do so, please send me a -URL to your translation for inclusion in future revisions of this -document. - -Smotrite file <http://oblom.rnc.ru/linux/kernel/Changes.ru>, yavlyaushisya -russkim perevodom dannogo documenta. - -Visite <http://www2.adi.uam.es/~ender/tecnico/> para obtener la traducción -al español de este documento en varios formatos. - -Eine deutsche Version dieser Datei finden Sie unter -<http://www.stefan-winter.de/Changes-2.4.0.txt>. - -Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). - Current Minimal Requirements ============================ diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 1c955883cf5..2975291e296 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile @@ -9,7 +9,7 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \ kernel-hacking.xml kernel-locking.xml deviceiobook.xml \ procfs-guide.xml writing_usb_driver.xml \ - sis900.xml kernel-api.xml journal-api.xml lsm.xml usb.xml \ + kernel-api.xml journal-api.xml lsm.xml usb.xml \ gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml ### diff --git a/Documentation/DocBook/sis900.tmpl b/Documentation/DocBook/sis900.tmpl deleted file mode 100644 index 6c2cbac93c3..00000000000 --- a/Documentation/DocBook/sis900.tmpl +++ /dev/null @@ -1,585 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> - -<book id="SiS900Guide"> - -<bookinfo> - -<title>SiS 900/7016 Fast Ethernet Device Driver</title> - -<authorgroup> -<author> -<firstname>Ollie</firstname> -<surname>Lho</surname> -</author> - -<author> -<firstname>Lei Chun</firstname> -<surname>Chang</surname> -</author> -</authorgroup> - -<edition>Document Revision: 0.3 for SiS900 driver v1.06 & v1.07</edition> -<pubdate>November 16, 2000</pubdate> - -<copyright> - <year>1999</year> - <holder>Silicon Integrated System Corp.</holder> -</copyright> - -<legalnotice> - <para> - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - </para> - - <para> - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - </para> - - <para> - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - </para> -</legalnotice> - -<abstract> -<para> -This document gives some information on installation and usage of SiS 900/7016 -device driver under Linux. -</para> -</abstract> - -</bookinfo> - -<toc></toc> - -<chapter id="intro"> - <title>Introduction</title> - -<para> -This document describes the revision 1.06 and 1.07 of SiS 900/7016 Fast Ethernet -device driver under Linux. The driver is developed by Silicon Integrated -System Corp. and distributed freely under the GNU General Public License (GPL). -The driver can be compiled as a loadable module and used under Linux kernel -version 2.2.x. (rev. 1.06) -With minimal changes, the driver can also be used under 2.3.x and 2.4.x kernel -(rev. 1.07), please see -<xref linkend="install"/>. If you are intended to -use the driver for earlier kernels, you are on your own. -</para> - -<para> -The driver is tested with usual TCP/IP applications including -FTP, Telnet, Netscape etc. and is used constantly by the developers. -</para> - -<para> -Please send all comments/fixes/questions to -<ulink url="mailto:lcchang@sis.com.tw">Lei-Chun Chang</ulink>. -</para> -</chapter> - -<chapter id="changes"> - <title>Changes</title> - -<para> -Changes made in Revision 1.07 - -<orderedlist> -<listitem> -<para> -Separation of sis900.c and sis900.h in order to move most -constant definition to sis900.h (many of those constants were -corrected) -</para> -</listitem> - -<listitem> -<para> -Clean up PCI detection, the pci-scan from Donald Becker were not used, -just simple pci_find_*. -</para> -</listitem> - -<listitem> -<para> -MII detection is modified to support multiple mii transceiver. -</para> -</listitem> - -<listitem> -<para> -Bugs in read_eeprom, mdio_* were removed. -</para> -</listitem> - -<listitem> -<para> -Lot of sis900 irrelevant comments were removed/changed and -more comments were added to reflect the real situation. -</para> -</listitem> - -<listitem> -<para> -Clean up of physical/virtual address space mess in buffer -descriptors. -</para> -</listitem> - -<listitem> -<para> -Better transmit/receive error handling. -</para> -</listitem> - -<listitem> -<para> -The driver now uses zero-copy single buffer management -scheme to improve performance. -</para> -</listitem> - -<listitem> -<para> -Names of variables were changed to be more consistent. -</para> -</listitem> - -<listitem> -<para> -Clean up of auo-negotiation and timer code. -</para> -</listitem> - -<listitem> -<para> -Automatic detection and change of PHY on the fly. -</para> -</listitem> - -<listitem> -<para> -Bug in mac probing fixed. -</para> -</listitem> - -<listitem> -<para> -Fix 630E equalier problem by modifying the equalizer workaround rule. -</para> -</listitem> - -<listitem> -<para> -Support for ICS1893 10/100 Interated PHYceiver. -</para> -</listitem> - -<listitem> -<para> -Support for media select by ifconfig. -</para> -</listitem> - -<listitem> -<para> -Added kernel-doc extratable documentation. -</para> -</listitem> - -</orderedlist> -</para> -</chapter> - -<chapter id="tested"> - <title>Tested Environment</title> - -<para> -This driver is developed on the following hardware - -<itemizedlist> -<listitem> - -<para> -Intel Celeron 500 with SiS 630 (rev 02) chipset -</para> -</listitem> -<listitem> - -<para> -SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card -</para> -</listitem> - -</itemizedlist> - -and tested with these software environments - -<itemizedlist> -<listitem> - -<para> -Red Hat Linux version 6.2 -</para> -</listitem> -<listitem> - -<para> -Linux kernel version 2.4.0 -</para> -</listitem> -<listitem> - -<para> -Netscape version 4.6 -</para> -</listitem> -<listitem> - -<para> -NcFTP 3.0.0 beta 18 -</para> -</listitem> -<listitem> - -<para> -Samba version 2.0.3 -</para> -</listitem> - -</itemizedlist> - -</para> - -</chapter> - -<chapter id="files"> -<title>Files in This Package</title> - -<para> -In the package you can find these files: -</para> - -<para> -<variablelist> - -<varlistentry> -<term>sis900.c</term> -<listitem> -<para> -Driver source file in C -</para> -</listitem> -</varlistentry> - -<varlistentry> -<term>sis900.h</term> -<listitem> -<para> -Header file for sis900.c -</para> -</listitem> -</varlistentry> - -<varlistentry> -<term>sis900.sgml</term> -<listitem> -<para> -DocBook SGML source of the document -</para> -</listitem> -</varlistentry> - -<varlistentry> -<term>sis900.txt</term> -<listitem> -<para> -Driver document in plain text -</para> -</listitem> -</varlistentry> - -</variablelist> -</para> -</chapter> - -<chapter id="install"> - <title>Installation</title> - -<para> -Silicon Integrated System Corp. is cooperating closely with core Linux Kernel -developers. The revisions of SiS 900 driver are distributed by the usuall channels -for kernel tar files and patches. Those kernel tar files for official kernel and -patches for kernel pre-release can be download at -<ulink url="http://ftp.kernel.org/pub/linux/kernel/">official kernel ftp site</ulink> -and its mirrors. -The 1.06 revision can be found in kernel version later than 2.3.15 and pre-2.2.14, -and 1.07 revision can be found in kernel version 2.4.0. -If you have no prior experience in networking under Linux, please read -<ulink url="http://www.tldp.org/">Ethernet HOWTO</ulink> and -<ulink url="http://www.tldp.org/">Networking HOWTO</ulink> available from -Linux Documentation Project (LDP). -</para> - -<para> -The driver is bundled in release later than 2.2.11 and 2.3.15 so this -is the most easy case. -Be sure you have the appropriate packages for compiling kernel source. -Those packages are listed in Document/Changes in kernel source -distribution. If you have to install the driver other than those bundled -in kernel release, you should have your driver file -<filename>sis900.c</filename> and <filename>sis900.h</filename> -copied into <filename class="directory">/usr/src/linux/drivers/net/</filename> first. -There are two alternative ways to install the driver -</para> - -<sect1> -<title>Building the driver as loadable module</title> - -<para> -To build the driver as a loadable kernel module you have to reconfigure -the kernel to activate network support by -</para> - -<para><screen> -make menuconfig -</screen></para> - -<para> -Choose <quote>Loadable module support ---></quote>, -then select <quote>Enable loadable module support</quote>. -</para> - -<para> -Choose <quote>Network Device Support ---></quote>, select -<quote>Ethernet (10 or 100Mbit)</quote>. -Then select <quote>EISA, VLB, PCI and on board controllers</quote>, -and choose <quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote> -to <quote>M</quote>. -</para> - -<para> -After reconfiguring the kernel, you can make the driver module by -</para> - -<para><screen> -make modules -</screen></para> - -<para> -The driver should be compiled with no errors. After compiling the driver, -the driver can be installed to proper place by -</para> - -<para><screen> -make modules_install -</screen></para> - -<para> -Load the driver into kernel by -</para> - -<para><screen> -insmod sis900 -</screen></para> - -<para> -When loading the driver into memory, some information message can be view by -</para> - -<para> -<screen> -dmesg -</screen> - -or - -<screen> -cat /var/log/message -</screen> -</para> - -<para> -If the driver is loaded properly you will have messages similar to this: -</para> - -<para><screen> -sis900.c: v1.07.06 11/07/2000 -eth0: SiS 900 PCI Fast Ethernet at 0xd000, IRQ 10, 00:00:e8:83:7f:a4. -eth0: SiS 900 Internal MII PHY transceiver found at address 1. -eth0: Using SiS 900 Internal MII PHY as default -</screen></para> - -<para> -showing the version of the driver and the results of probing routine. -</para> - -<para> -Once the driver is loaded, network can be brought up by -</para> - -<para><screen> -/sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK media TYPE -</screen></para> - -<para> -where IPADDR, BROADCAST, NETMASK are your IP address, broadcast address and -netmask respectively. TYPE is used to set medium type used by the device. -Typical values are "10baseT"(twisted-pair 10Mbps Ethernet) or "100baseT" -(twisted-pair 100Mbps Ethernet). For more information on how to configure -network interface, please refer to -<ulink url="http://www.tldp.org/">Networking HOWTO</ulink>. -</para> - -<para> -The link status is also shown by kernel messages. For example, after the -network interface is activated, you may have the message: -</para> - -<para><screen> -eth0: Media Link On 100mbps full-duplex -</screen></para> - -<para> -If you try to unplug the twist pair (TP) cable you will get -</para> - -<para><screen> -eth0: Media Link Off -</screen></para> - -<para> -indicating that the link is failed. -</para> -</sect1> - -<sect1> -<title>Building the driver into kernel</title> - -<para> -If you want to make the driver into kernel, choose <quote>Y</quote> -rather than <quote>M</quote> on -<quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote> -when configuring the kernel. Build the kernel image in the usual way -</para> - -<para><screen> -make clean - -make bzlilo -</screen></para> - -<para> -Next time the system reboot, you have the driver in memory. -</para> - -</sect1> -</chapter> - -<chapter id="problems"> - <title>Known Problems and Bugs</title> - -<para> -There are some known problems and bugs. If you find any other bugs please -mail to <ulink url="mailto:lcchang@sis.com.tw">lcchang@sis.com.tw</ulink> - -<orderedlist> - -<listitem> -<para> -AM79C901 HomePNA PHY is not thoroughly tested, there may be some -bugs in the <quote>on the fly</quote> change of transceiver. -</para> -</listitem> - -<listitem> -<para> -A bug is hidden somewhere in the receive buffer management code, -the bug causes NULL pointer reference in the kernel. This fault is -caught before bad things happen and reported with the message: - -<computeroutput> -eth0: NULL pointer encountered in Rx ring, skipping -</computeroutput> - -which can be viewed with <literal remap="tt">dmesg</literal> or -<literal remap="tt">cat /var/log/message</literal>. -</para> -</listitem> - -<listitem> -<para> -The media type change from 10Mbps to 100Mbps twisted-pair ethernet -by ifconfig causes the media link down. -</para> -</listitem> - -</orderedlist> -</para> -</chapter> - -<chapter id="RHistory"> - <title>Revision History</title> - -<para> -<itemizedlist> - -<listitem> -<para> -November 13, 2000, Revision 1.07, seventh release, 630E problem fixed -and further clean up. -</para> -</listitem> - -<listitem> -<para> -November 4, 1999, Revision 1.06, Second release, lots of clean up -and optimization. -</para> -</listitem> - -<listitem> -<para> -August 8, 1999, Revision 1.05, Initial Public Release -</para> -</listitem> - -</itemizedlist> -</para> -</chapter> - -<chapter id="acknowledgements"> - <title>Acknowledgements</title> - -<para> -This driver was originally derived form -<ulink url="mailto:becker@cesdis1.gsfc.nasa.gov">Donald Becker</ulink>'s -<ulink url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/pci-skeleton.c" ->pci-skeleton</ulink> and -<ulink url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/rtl8139.c" ->rtl8139</ulink> drivers. Donald also provided various suggestion -regarded with improvements made in revision 1.06. -</para> - -<para> -The 1.05 revision was created by -<ulink url="mailto:cmhuang@sis.com.tw">Jim Huang</ulink>, AMD 79c901 -support was added by <ulink url="mailto:lcs@sis.com.tw">Chin-Shan Li</ulink>. -</para> -</chapter> - -<chapter id="functions"> -<title>List of Functions</title> -!Idrivers/net/sis900.c -</chapter> - -</book> diff --git a/Documentation/arm/Samsung-S3C24XX/Overview.txt b/Documentation/arm/Samsung-S3C24XX/Overview.txt index 89aa89d526a..8c6ee684174 100644 --- a/Documentation/arm/Samsung-S3C24XX/Overview.txt +++ b/Documentation/arm/Samsung-S3C24XX/Overview.txt @@ -10,6 +10,8 @@ Introduction by the 's3c2410' architecture of ARM Linux. Currently the S3C2410 and the S3C2440 are supported CPUs. + Support for the S3C2400 series is in progress. + Configuration ------------- @@ -32,6 +34,11 @@ Machines A general purpose development board, see EB2410ITX.txt for further details + Simtec Electronics IM2440D20 (Osiris) + + CPU Module from Simtec Electronics, with a S3C2440A CPU, nand flash + and a PCMCIA controller. + Samsung SMDK2410 Samsung's own development board, geared for PDA work. @@ -85,6 +92,26 @@ Adding New Machines mailing list information. +I2C +--- + + The hardware I2C core in the CPU is supported in single master + mode, and can be configured via platform data. + + +RTC +--- + + Support for the onboard RTC unit, including alarm function. + + +Watchdog +-------- + + The onchip watchdog is available via the standard watchdog + interface. + + NAND ---- @@ -121,6 +148,15 @@ Clock Management various clock units +Suspend to RAM +-------------- + + For boards that provide support for suspend to RAM, the + system can be placed into low power suspend. + + See Suspend.txt for more information. + + Platform Data ------------- @@ -158,6 +194,7 @@ Platform Data exported outside arch/arm/mach-s3c2410/, or exported to modules via EXPORT_SYMBOL() and related functions. + Port Contributors ----------------- @@ -188,8 +225,11 @@ Document Changes 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction 08 Mar 2005 - BJD - Added section on adding machines 09 Sep 2005 - BJD - Added section on platform data + 11 Feb 2006 - BJD - Added I2C, RTC and Watchdog sections + 11 Feb 2006 - BJD - Added Osiris machine, and S3C2400 information + Document Author --------------- -Ben Dooks, (c) 2004-2005 Simtec Electronics +Ben Dooks, (c) 2004-2005,2006 Simtec Electronics diff --git a/Documentation/connector/connector.txt b/Documentation/connector/connector.txt index 57a314b14cf..ad6e0ba7b38 100644 --- a/Documentation/connector/connector.txt +++ b/Documentation/connector/connector.txt @@ -69,10 +69,11 @@ Unregisters new callback with connector core. struct cb_id *id - unique connector's user identifier. -void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); +int cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); Sends message to the specified groups. It can be safely called from -any context, but may silently fail under strong memory pressure. +softirq context, but may silently fail under strong memory pressure. +If there are no listeners for given group -ESRCH can be returned. struct cn_msg * - message header(with attached data). u32 __group - destination group. diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt index 990998ee10b..30c41459953 100644 --- a/Documentation/cpusets.txt +++ b/Documentation/cpusets.txt @@ -4 |