diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/Changes | 53 | ||||
-rw-r--r-- | Documentation/Configure.help | 271 | ||||
-rw-r--r-- | Documentation/DocBook/via-audio.tmpl | 196 | ||||
-rw-r--r-- | Documentation/IO-mapping.txt | 2 | ||||
-rw-r--r-- | Documentation/cachetlb.txt | 6 | ||||
-rw-r--r-- | Documentation/exception.txt | 6 | ||||
-rw-r--r-- | Documentation/ia64/README | 43 | ||||
-rw-r--r-- | Documentation/isapnp.txt | 32 | ||||
-rw-r--r-- | Documentation/kbuild/makefiles.txt | 17 | ||||
-rw-r--r-- | Documentation/networking/8139too.txt | 14 | ||||
-rw-r--r-- | Documentation/networking/z8530drv.txt | 17 | ||||
-rw-r--r-- | Documentation/pm.txt | 1 | ||||
-rw-r--r-- | Documentation/s390/cds.txt | 2 | ||||
-rw-r--r-- | Documentation/usb/bluetooth.txt | 44 | ||||
-rw-r--r-- | Documentation/vm/locking | 33 | ||||
-rw-r--r-- | Documentation/zorro.txt | 16 |
16 files changed, 570 insertions, 183 deletions
diff --git a/Documentation/Changes b/Documentation/Changes index c12ed2e6d..abcb21c64 100644 --- a/Documentation/Changes +++ b/Documentation/Changes @@ -28,7 +28,10 @@ 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. -Last updated: August 28, 2000 +Eine deutsche Version dieser Datei finden Sie unter +<http://www.stefan-winter.de/Changes-2.4.0.txt>. + +Last updated: October 25, 2000 Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). @@ -45,13 +48,13 @@ necessary on all systems; obviously, if you don't have any PCMCIA (PC Card) hardware, for example, you probably needn't concern yourself with pcmcia-cs. -o Gnu C 2.7.2.3 # gcc --version +o Gnu C 2.91.66 # gcc --version o Gnu make 3.77 # make --version o binutils 2.9.1.0.25 # ld -v o util-linux 2.10o # kbdrate -v -o modutils 2.3.15 # insmod -V -o e2fsprogs 1.18 # tune2fs --version -o pcmcia-cs 3.1.19 # cardmgr -V +o modutils 2.3.18 # insmod -V +o e2fsprogs 1.19 # tune2fs --version +o pcmcia-cs 3.1.21 # cardmgr -V o PPP 2.4.0 # pppd --version o isdn4k-utils 3.1beta7 # isdnctrl 2>&1|grep version @@ -61,13 +64,22 @@ Kernel compilation GCC --- -You will need at least gcc 2.7.2 to compile the kernel. You currently -have several options for gcc-derived compilers: gcc 2.7.2.3, various -versions of egcs, the new gcc 2.95 and upcoming gcc 3.0, and experimental -compilers like pgcc. For absolute stability, it is still recommended -that gcc 2.7.2.3 be used to compile your kernel. egcs 1.1.2 should also -work. gcc 2.95 is known to have problems, and using pgcc for your kernel -is just asking for trouble. +The gcc version requirements may vary depending on the type of CPU in your +computer. The next paragraph applies to users of x86 CPUs, but not +necessarily to users of other CPUs. Users of other CPUs should obtain +information about their gcc version requirements from another source. + +The recommended compiler for the kernel is egcs 1.1.2 (gcc 2.91.66), and it +should be used when you need absolute stability. You may use gcc 2.95.2 +instead if you wish, although it may cause problems. Later versions of gcc +have not received much testing for Linux kernel compilation, and there are +almost certainly bugs (mainly, but not exclusively, in the kernel) that +will need to be fixed in order to use these compilers. In any case, using +pgcc instead of egcs or plain gcc is just asking for trouble. + +Note that gcc 2.7.2.3 is no longer a supported kernel compiler. The kernel +no longer works around bugs in gcc 2.7.2.3 and, in fact, will refuse to +be compiled with it. In addition, please pay attention to compiler optimization. Anything greater than -O2 may not be wise. Similarly, if you choose to use gcc-2.95 @@ -82,7 +94,7 @@ You will need Gnu make 3.77 or later to build the kernel. Binutils -------- -Linux on IA/32 has recently switched from using as86 to using gas for +Linux on IA-32 has recently switched from using as86 to using gas for assembling the 16-bit boot code, removing the need for as86 to compile your kernel. This change does, however, mean that you need a recent release of binutils. @@ -242,12 +254,7 @@ Getting updated software Compilers ********* -gcc 2.7.2.3 ------------ -o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.7.2.3.tar.gz> -o <ftp://metalab.unc.edu/pub/gnu/gcc-2.7.2.3.tar.gz> - -egcs 1.1.2 +egcs 1.1.2 (gcc 2.91.66) --------- o <ftp://ftp.valinux.com/pub/support/hjl/gcc/egcs-1.1.2/egcs-1.1.2-glibc.x86.tar.bz2> o <ftp://ftp.valinux.com/pub/support/hjl/gcc/egcs-1.1.2/egcs-1.1.2-libc5.x86.tar.bz2> @@ -277,7 +284,7 @@ o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.3> Modutils -------- -o <ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.3/modutils-2.3.15.tar.gz> +o <ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.3/modutils-2.3.18.tar.bz2> Mkinitrd -------- @@ -285,8 +292,8 @@ o <ftp://rawhide.redhat.com/pub/rawhide/SRPMS/SRPMS/mkinitrd-2.5-1.src.rpm> E2fsprogs --------- -o <http://web.mit.edu/tytso/www/linux/dist/e2fsprogs-1.18.tar.gz> -o <http://web.mit.edu/tytso/www/linux/dist/e2fsprogs-1.18.src.rpm> +o <ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-1.19.tar.gz> +o <ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-1.19.src.rpm> LVM toolset ----------- @@ -294,7 +301,7 @@ o <http://linux.msede.com/lvm/> Pcmcia-cs --------- -o <ftp://pcmcia-cs.sourceforge.org/pub/pcmcia-cs/pcmcia-cs-3.1.19.tar.gz> +o <ftp://pcmcia-cs.sourceforge.net/pub/pcmcia-cs/pcmcia-cs-3.1.21.tar.gz> Jade ---- diff --git a/Documentation/Configure.help b/Documentation/Configure.help index 73091c87b..390cc0ba0 100644 --- a/Documentation/Configure.help +++ b/Documentation/Configure.help @@ -1,4 +1,4 @@ -# Maintained by Axel Boldt (boldt@math.ucsb.edu) +# Maintained by Axel Boldt (axel@uni-paderborn.de) # # This version of the Linux kernel configuration help texts # corresponds to the kernel versions 2.3.x. @@ -868,6 +868,10 @@ CONFIG_BLK_DEV_OPTI621 This is a driver for the OPTi 82C621 EIDE controller. Please read the comments at the top of drivers/ide/opti621.c. +ServerWorks OSB4 chipset support (EXPERIMENTAL) +CONFIG_BLK_DEV_OSB4 + This driver adds PIO/DMA support for the Serverworks OSB4 chipset + Intel PIIXn chipsets support CONFIG_BLK_DEV_PIIX This driver adds PIO mode setting and tuning for all PIIX IDE @@ -938,7 +942,20 @@ CONFIG_BLK_DEV_SIS5513 available" as well. Please read the comments at the top of drivers/ide/sis5513.c - + +SLC90E66 chipset support +CONFIG_BLK_DEV_SLC90E66 + This driver ensures (U)DMA support for Victroy66 SouthBridges for + SMsC with Intel NorthBridges. This is an Ultra66 based chipset. + The nice thing about it is that you can mix Ultra/DMA/PIO devices + and it will handle timing cycles. Since this is an improved look-a-like + to the PIIX4 it should be a nice addition. + + If you say Y here, you need to say Y to "Use DMA by default when + available" as well. + + Please read the comments at the top of drivers/ide/slc90e66.c + Winbond SL82c105 support CONFIG_BLK_DEV_SL82C105 If you have a Winbond SL82c105 IDE controller, say Y here to enable @@ -2157,13 +2174,26 @@ CONFIG_ALPHA_LEGACY_START_ADDRESS If you're using aboot 0.7 or later, the bootloader will examine the ELF headers to determine where to transfer control. Unfortunately, - most older bootloaders -- APB, or MILO -- hardcoded the kernel + most older bootloaders -- APB or MILO -- hardcoded the kernel start address rather than examining the ELF headers, and the result is a hard lockup. Say Y if you have a broken bootloader. Say N if you do not, or if you wish to run on Wildfire. +Large VMALLOC support +CONFIG_ALPHA_LARGE_VMALLOC + Process creation and other aspects of virtual memory management + can be streamlined if we restrict the kernel to one PGD for all + vmalloc allocations. This equates to about 8GB. + + Under normal circumstances, this is so far and above what is needed + as to be laughable. However, there are certain applications (such + as benchmark-grade in-kernel web serving) that can make use of as + much vmalloc space as is available. + + Say N unless you know you need gobs and gobs of vmalloc space. + Non-standard serial port support CONFIG_SERIAL_NONSTANDARD Say Y here if you have any non-standard serial boards -- boards @@ -2387,6 +2417,30 @@ CONFIG_PCI information about which PCI hardware does work under Linux and which doesn't. +PCI support +CONFIG_PCI_INTEGRATOR + Find out whether you have a PCI motherboard. PCI is the name of a + bus system, i.e. the way the CPU talks to the other stuff inside + your box. Other bus systems are ISA, EISA, Microchannel (MCA) or + VESA. If you have PCI, say Y, otherwise N. + + The PCI-HOWTO, available from + http://www.linuxdoc.org/docs.html#howto , contains valuable + information about which PCI hardware does work under Linux and which + doesn't. + +QSpan PCI +CONFIG_PCI_QSPAN + Find out whether you have a PCI motherboard. PCI is the name of a + bus system, i.e. the way the CPU talks to the other stuff inside + your box. Other bus systems are ISA, EISA, Microchannel (MCA) or + VESA. If you have PCI, say Y, otherwise N. + + The PCI-HOWTO, available from + http://www.linuxdoc.org/docs.html#howto , contains valuable + information about which PCI hardware does work under Linux and which + doesn't. + PCI access mode CONFIG_PCI_GOBIOS On PCI systems, the BIOS can be used to detect the PCI devices and @@ -4571,6 +4625,30 @@ CONFIG_LLC This is a Logical Link Layer protocol used for X.25 connections over Ethernet, using ordinary Ethernet cards. + +Frame Diverter (EXPERIMENTAL) +CONFIG_NET_DIVERT + The Frame Diverter allows you to divert packets from the + network, that are not aimed at the interface receiving it (in + promisc. mode). Typically, a Linux box setup as an ethernet bridge + with the Frames Diverter on, can do some *really* transparent www + caching using a Squid proxy for example. + + This is very usefull when you don't want to change your router's + config (or if you simply don't have access to it). + + The other possible usages of diverting Ethernet Frames are numberous: + - reroute smtp traffic to another interface + - traffic-shape certain network streams + - transparently proxy smtp connections + - etc... + + For more informations, please refer to: + http://www.freshmeat.net/projects/etherdivert + http://perso.wanadoo.fr/magpie/EtherDivert.html + + If unsure, say N + 802.1d Ethernet Bridging CONFIG_BRIDGE If you say Y here, then your Linux box will be able to act as an @@ -8124,6 +8202,11 @@ CONFIG_NE2K_PCI say Y and read the Ethernet-HOWTO, available from http://www.linuxdoc.org/docs.html#howto . + This driver also works for the following NE2000 clone cards: + RealTek RTL-8029 Winbond 89C940 Compex RL2000 KTI ET32P2 + NetVin NV5000SC Via 86C926 SureCom NE34 Winbond + Holtek HT80232 Holtek HT80229 + This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). The module will be called ne2k-pci.o. If you want to compile it as a @@ -8187,6 +8270,8 @@ CONFIG_RTL8129 read the Ethernet-HOWTO, available from http://www.linuxdoc.org/docs.html#howto . + Note: the 8029 is a NE2000 PCI clone, you can use the NE2K-PCI driver. + If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. This is recommended. @@ -9969,12 +10054,13 @@ CONFIG_USB_OHCI The module will be called usb-ohci.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -USB Human Interface Device (HID) support +USB Human Interface Device (full HID) support CONFIG_USB_HID - Say Y here if you want to connect keyboards, mice, joysticks, - graphic tablets, or any other HID based devices to your - computer via USB. More information is available: - Documentation/usb/input.txt. + Say Y here if you want full HID support to connect keyboards, + mice, joysticks, graphic tablets, or any other HID based devices + to your computer via USB. You can't use this driver and the + HIDBP (Boot Protocol) keyboard and mouse drivers at the same time. + More information is available: Documentation/usb/input.txt. If unsure, say Y. @@ -9983,11 +10069,11 @@ CONFIG_USB_HID The module will be called hid.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -USB HIDBP Keyboard support +USB HIDBP Keyboard (basic) support CONFIG_USB_KBD Say Y here if you don't want to use the generic HID driver for your USB keyboard and prefer to use the keyboard in its limited Boot - Protocol mode. This driver is much smaller than the HID one. + Protocol mode instead. This driver is much smaller than the HID one. This code is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). @@ -9996,11 +10082,11 @@ CONFIG_USB_KBD If unsure, say N. -USB HIDBP Mouse support +USB HIDBP Mouse (basic) support CONFIG_USB_MOUSE Say Y here if you don't want to use the generic HID driver for your USB mouse and prefer to use the mouse in its limited Boot Protocol - mode. This driver is much smaller than the HID one. + mode instead. This driver is much smaller than the HID one. This code is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). @@ -14259,6 +14345,25 @@ CONFIG_SOUND_TRIDENT for Trident 4Dwave. PCI ID 1039:7018 stands for SiS7018. PCI ID 10B9:5451 stands for ALi5451. + This driver supports S/PDIF in/out (record/playback) for ALi 5451 + embedded in ALi M1535+ and M1535D+. Note that they aren't all + enabled by default; you can enable them by saying Y to "/proc file + system support" and "Sysctl support", and after the /proc file + system has been mounted, executing the command + + command what is enabled + + echo 0>/proc/ALi5451 pcm out is also set to S/PDIF out. (Default). + + echo 1>/proc/ALi5451 use S/PDIF out to output pcm data. + + echo 2>/proc/ALi5451 use S/PDIF out to output non-pcm data.(AC3...). + + echo 3>/proc/ALi5451 record from Ac97 in(MIC, Line in...). (Default). + + echo 4>/proc/ALi5451 no matter Ac97 settings, record from S/PDIF in. + + This driver differs slightly from OSS/Free, so PLEASE READ the comments at the top of driver/sound/trident.c @@ -15094,18 +15199,27 @@ CONFIG_RMW_INSNS really know what you are doing, say N. Try Y only if you're quite adventurous. -Amiga AutoConfig Identification +Zorro support CONFIG_ZORRO - This enables support for automatic identification of Amiga expansion - cards that obey the AutoConfig(tm) specification. - Say Y if you want your expansion cards to be identified on bootup; - it will enlarge your kernel by about 10 KB. The identification - information is then also available through /proc/zorro (say Y to - "/proc file system support"!). Read Documentation/zorro.txt for more - information. + This enables support for the Zorro bus in the Amiga. If you have + expansion cards in your Amiga that conform to the Amiga + AutoConfig(tm) specification, say Y, otherwise N. Note that even + expansion cards that do not fit in the Zorro slots but fit in e.g. + the CPU slot may fall in this category, so you have to say Y to let + Linux use these. + +Zorro device name database +CONFIG_ZORRO_NAMES + By default, the kernel contains a database of all known Zorro device + names to make the information in /proc/iomem comprehensible to the + user. This database increases the size of the kernel image by about + 15KB, but it gets freed after the system boots up, so it doesn't + take up kernel memory. Anyway, if you are building an installation + floppy or kernel for an embedded system where kernel image size + really matters, you can disable this feature and you'll get device + ID numbers instead of names. - Note that even if you say N here, you can still use your expansion - cards. If in doubt, say Y. + When in doubt, say Y. Amiga 1200/600 PCMCIA support (EXPERIMENTAL) CONFIG_AMIGA_PCMCIA @@ -16684,6 +16798,119 @@ CONFIG_DISPLAY7SEG another UltraSPARC-IIi-cEngine boardset with a 7-segment display, you should say N to this option. +IA-64 system type +CONFIG_IA64_GENERIC + This selects the system type of your hardware. A "generic" kernel + will run on any supported IA-64 system. However, if you configure + a kernel for your specific system, it will be faster and smaller. + + To find out what type of IA-64 system you have, you may want to + check the IA-64 Linux web site at http://www.linux-ia64.org/. + As of the time of this writing, most hardware is DIG compliant, + so the "DIG-compliant" option is usually the right choice. + + HP-simulator For the HP simulator (http://software.hp.com/ia64linux/). + SN1-simulator For the SGI SN1 simulator. + DIG-compliant For DIG ("Developer's Interface Guide") compliant system. + + If you don't know what to do, choose "generic". + +Kernel page size +CONFIG_IA64_PAGE_SIZE_4KB + + This lets you select the page size of the kernel. For best IA-64 + performance, a page size of 8KB or 16KB is recommended. For best + IA-32 compatibility, a page size of 4KB should be selected (the vast + majority of IA-32 binaries work perfectly fine with a larger page + size). For Itanium systems, do NOT chose a page size larger than + 16KB. + + 4KB For best IA-32 compatibility + 8KB For best IA-64 performance + 16KB For best IA-64 performance + 64KB Not for Itanium. + + If you don't know what to do, choose 8KB. + +Enable Itanium A-step specific code +CONFIG_ITANIUM_ASTEP_SPECIFIC + Select this option to build a kernel for an Itanium prototype system + with an A-step CPU. You have an A-step CPU if the "revision" field in + /proc/cpuinfo is 0. + +Enable Itanium A1-step specific code +CONFIG_ITANIUM_A1_SPECIFIC + Select this option to build a kernel for an Itanium prototype system + with an A1-step CPU. If you don't know whether you have an A1-step CPU, + you probably don't and you can answer "no" here. + +Enable Itanium B-step specific code +CONFIG_ITANIUM_BSTEP_SPECIFIC + Select this option to build a kernel for an Itanium prototype system + with a B-step CPU. You have a B-step CPU if the "revision" field in + /proc/cpuinfo has a value in the range from 1 to 4. + +Enable Itanium B0-step specific code +CONFIG_ITANIUM_B0_SPECIFIC + Select this option to bild a kernel for an Itanium prototype system + with a B0-step CPU. You have a B0-step CPU if the "revision" field in + /proc/cpuinfo is 1. + +Force interrupt redirection +CONFIG_IA64_HAVE_IRQREDIR + Select this option if you know that your system has the ability to + redirect interrupts to different CPUs. Select N here if you're + unsure. + +Enable use of global TLB purge instruction (ptc.g) +CONFIG_ITANIUM_PTCG + Say Y here if you want the kernel to use the IA-64 "ptc.g" + instruction to flush the TLB on all CPUs. Select N here if + you're unsure. + +Enable SoftSDV hacks +CONFIG_IA64_SOFTSDV_HACKS + Say Y here to enable hacks to make the kernel work on the Intel + SoftSDV simulator. Select N here if you're unsure. + +Enable AzusA hacks +CONFIG_IA64_AZUSA_HACKS + Say Y here to enable hacks to make the kernel work on the NEC + AzusA platform. Select N here if you're unsure. + +Force socket buffers below 4GB? +CONFIG_SKB_BELOW_4GB + Most of today's network interface cards (NICs) support DMA to + the low 32 bits of the address space only. On machines with + more then 4GB of memory, this can cause the system to slow + down if there is no I/O TLB hardware. Turning this option on + avoids the slow-down by forcing socket buffers to be allocated + from memory below 4GB. The downside is that your system could + run out of memory below 4GB before all memory has been used up. + If you're unsure how to answer this question, answer Y. + +Enable IA-64 Machine Check Abort +CONFIG_IA64_MCA + Say Y here to enable machine check support for IA-64. If you're + unsure, answer Y. + +Performance monitor support +CONFIG_PERFMON + Selects whether support for the IA-64 performance monitor hardware + is included in the kernel. This makes some kernel data-structures a + little bigger and slows down execution a bit, but it is still + usually a good idea to turn this on. If you're unsure, say N. + +/proc/pal support +CONFIG_IA64_PALINFO + If you say Y here, you are able to get PAL (Processor Abstraction + Layer) information in /proc/pal. This contains useful information + about the processors in your systems, such as cache and TLB sizes + and the PAL firmware version in use. + + To use this option, you have to check that the "/proc file system + support" (CONFIG_PROC_FS) is enabled, too. + # # A couple of things I keep forgetting: # capitalize: AppleTalk, Ethernet, DOS, DMA, FAT, FTP, Internet, diff --git a/Documentation/DocBook/via-audio.tmpl b/Documentation/DocBook/via-audio.tmpl index f1fc19a5d..039eff979 100644 --- a/Documentation/DocBook/via-audio.tmpl +++ b/Documentation/DocBook/via-audio.tmpl @@ -56,15 +56,16 @@ <chapter id="intro"> <title>Introduction</title> <para> - The Via VT82C686A and VT82C686A "super southbridge" chips contain - AC97-compatible audio logic which features dual full-duplex 16-bit stereo - PCM sound channels, plus a third PCM channel intended for use + The Via VT82C686A "super southbridge" chips contain + AC97-compatible audio logic which features dual 16-bit stereo + PCM sound channels (full duplex), plus a third PCM channel intended for use in hardware-assisted FM synthesis. </para> <para> The current Linux kernel audio driver for this family of chips - supports audio playback, but recording and hardware-assisted - FM support features are not yet available. + supports audio playback and recording, but hardware-assisted + FM features, and hardware buffer direct-access (mmap) + support are not yet available. </para> <para> This driver supports any Linux kernel version after 2.3.50. @@ -148,13 +149,6 @@ <title>Known Bugs And Assumptions</title> <para> <variablelist> - <varlistentry><term>Recording support</term> - <listitem> - <para> - Recording support is currently missing. - </para> - </listitem></varlistentry> - <varlistentry><term>MMAP support</term> <listitem> <para> @@ -188,17 +182,6 @@ </para> </listitem></varlistentry> - <varlistentry><term>Broken apps</term> - <listitem> - <para> - Applications which attempt to open the sound device in read/write - mode (O_RDWR) will fail. This is incorrect OSS behavior, but since - this driver will eventually support recording as well as playback, - we will be able to (in the future) support even broken programs which - unconditionally use O_RDWR. - </para> - </listitem></varlistentry> - </variablelist> </para> @@ -221,8 +204,8 @@ <title>Random Notes</title> <para> Two /proc pseudo-files provide diagnostic information. This is generally - not useful to most users. Power users can disable VIA_PROC_FS macro in the - driver source code, and remove the /proc support code. In any case, once + not useful to most users. Power users can disable CONFIG_SOUND_VIA82CXXX_PROCFS, + and remove the /proc support code. Once version 2.0.0 is released, the /proc support code will be disabled by default. Available /proc pseudo-files: </para> @@ -236,16 +219,6 @@ and device ids are not examined. </para> <para> - Only supports a single sound chip, as this is a motherboard chipset. - Some architecture remains for multiple cards, feel free to submit - a patch to clean some of that up. - </para> - <para> - No consideration for SMP, this chipset is not known to be found on - any SMP motherboards. However, spin_locks must be used anyway in order - to handle interrupts correctly. - </para> - <para> GNU indent formatting options: -kr -i8 -pcs </para> <para> @@ -265,6 +238,159 @@ <chapter id="changelog"> <title>Driver ChangeLog</title> +<sect1 id="version1114"><title> +Version 1.1.14 +</title> + <itemizedlist spacing=compact> + <listitem> + <para> + Use VM_RESERVE when available, to eliminate unnecessary page faults. + </para> + </listitem> + </itemizedlist> +</sect1> + +<sect1 id="version1112"><title> +Version 1.1.12 +</title> + <itemizedlist spacing=compact> + <listitem> + <para> + mmap bug fixes from Linus. + </para> + </listitem> + </itemizedlist> +</sect1> + +<sect1 id="version1111"><title> +Version 1.1.11 +</title> + <itemizedlist spacing=compact> + <listitem> + <para> + Many more bug fixes. mmap enabled by default, but may still be buggy. + </para> + </listitem> + + <listitem> + <para> + Uses new and spiffy method of mmap'ing the DMA buffer, based + on a suggestion from Linus. + </para> + </listitem> + </itemizedlist> +</sect1> + +<sect1 id="version1110"><title> +Version 1.1.10 +</title> + <itemizedlist spacing=compact> + <listitem> + <para> + Many bug fixes. mmap enabled by default, but may still be buggy. + </para> + </listitem> + </itemizedlist> +</sect1> + +<sect1 id="version119"><title> +Version 1.1.9 +</title> + <itemizedlist spacing=compact> + <listitem> + <para> + Redesign and rewrite audio playback implementation. (faster and smaller, hopefully) + </para> + </listitem> + + <listitem> + <para> + Implement recording and full duplex (DSP_CAP_DUPLEX) support. + </para> + </listitem> + + <listitem> + <para> + Make procfs support optional. + </para> + </listitem> + + <listitem> + <para> + Quick interrupt status check, to lessen overhead in interrupt + sharing situations. + </para> + </listitem> + + <listitem> + <para> + Add mmap(2) support. Disabled for now, it is still buggy and experimental. + </para> + </listitem> + + <listitem> + <para> + Surround all syscalls with a semaphore for cheap and easy SMP protection. + </para> + </listitem> + + <listitem> + <para> + Fix bug in channel shutdown (hardware channel reset) code. + </para> + </listitem> + + <listitem> + <para> + Remove unnecessary spinlocks (better performance). + </para> + </listitem> + + <listitem> + <para> + Eliminate "unknown AFMT" message by using a different method + of selecting the best AFMT_xxx sound sample format for use. + </para> + </listitem> + + <listitem> + <para> + Support for realtime hardware pointer position reporting + (DSP_CAP_REALTIME, SNDCTL_DSP_GETxPTR ioctls) + </para> + </listitem> + + <listitem> + <para> + Support for capture/playback triggering + (DSP_CAP_TRIGGER, SNDCTL_DSP_SETTRIGGER ioctls) + </para> + </listitem> + + <listitem> + <para> + SNDCTL_DSP_SETDUPLEX and SNDCTL_DSP_POST ioctls now handled. + </para> + </listitem> + + <listitem> + <para> + Rewrite open(2) and close(2) logic to allow only one user at + a time. All other open(2) attempts will sleep until they succeed. + FIXME: open(O_RDONLY) and open(O_WRONLY) should be allowed to succeed. + </para> + </listitem> + + <listitem> + <para> + Reviewed code to ensure that SMP and multiple audio devices + are fully supported. + </para> + </listitem> + + </itemizedlist> +</sect1> + <sect1 id="version118"><title> Version 1.1.8 </title> diff --git a/Documentation/IO-mapping.txt b/Documentation/IO-mapping.txt index 78253e5b1..ad7c21c83 100644 --- a/Documentation/IO-mapping.txt +++ b/Documentation/IO-mapping.txt @@ -141,7 +141,7 @@ For such memory, you can do things like * read first 32 bits from ISA memory at 0xC0000, aka * C000:0000 in DOS terms */ - unsigned int signature = readl(0xC0000); + unsigned int signature = isa_readl(0xC0000); - remapping and writing: /* diff --git a/Documentation/cachetlb.txt b/Documentation/cachetlb.txt index 3d003463d..952dbc652 100644 --- a/Documentation/cachetlb.txt +++ b/Documentation/cachetlb.txt @@ -284,6 +284,12 @@ Here is the new interface: user space shared/writable mappings of this page potentially exist, this routine is called. + NOTE: This routine need only be called for page cache pages + which can potentially ever be mapped into the address + space of a user process. So for example, VFS layer code + handling vfs symlinks in the page cache need not call + this interface at all. + The phrase "kernel writes to a page cache page" means, specifically, that the kernel executes store instructions that dirty data in that page at the page->virtual mapping diff --git a/Documentation/exception.txt b/Documentation/exception.txt index 6adc97ba1..f1d436993 100644 --- a/Documentation/exception.txt +++ b/Documentation/exception.txt @@ -284,3 +284,9 @@ get_user macro actually returns a value: 0, if the user access was successful, -EFAULT on failure. Our original code did not test this return value, however the inline assembly code in get_user tries to return -EFAULT. GCC selected EAX to return this value. + +NOTE: +Due to the way that the exception table is built and needs to be ordered, +only use exceptions for code in the .text section. Any other section +will cause the exception table to not be sorted correctly, and the +exceptions will fail. diff --git a/Documentation/ia64/README b/Documentation/ia64/README index 738572a80..7163ae745 100644 --- a/Documentation/ia64/README +++ b/Documentation/ia64/README @@ -1,6 +1,6 @@ - Linux kernel release 2.3.xx for the IA-64 Platform + Linux kernel release 2.4.xx for the IA-64 Platform - These are the release notes for Linux version 2.3 for IA-64 + These are the release notes for Linux version 2.4 for IA-64 platform. This document provides information specific to IA-64 ONLY, to get additional information about the Linux kernel also read the original Linux README provided with the kernel. @@ -31,46 +31,13 @@ COMPILING the kernel: IA-64 SPECIFICS - - Security related issues: - - o mmap needs to check whether mapping would overlap with the - address-space hole in a region or whether the mapping would be - across regions. In both cases, mmap should fail. - - o ptrace is a huge security hole right now as it does not reject - writing to security sensitive bits (such as the PSR!). - - General issues: - o Kernel modules aren't supported yet. - - o For non-RT signals, siginfo isn't passed through from the kernel - to the point where the signal is actually delivered. Also, we - should make sure the siginfo data is compliant with the UNIX - ABI. - o Hardly any performance tuning has been done. Obvious targets - include the library routines (memcpy, IP checksum, etc.). Less + include the library routines (IP checksum, etc.). Less obvious targets include making sure we don't flush the TLB - needlessly, etc. Also, the TLB handlers should probably try to - do a speculative load from the virtually mapped linear page - table and only if that fails fall back on walking the page table - tree. + needlessly, etc. - o Discontiguous large memory support; memory above 4GB will be - discontiguous since the 4GB-64MB is reserved for firmware and I/O - space. - - o Correct mapping for PAL runtime code; PAL code needs to be - mapped by a TR. - - o Make current IRQ/IOSAPIC handling closer to IA32 such as, - disable/enable interrupts, use of INPROGRESS flag etc. - - o clone system call implementation; needs to setup proper backing - store - o SMP locks cleanup/optimization - o IA32 support. Currently experimental. It mostly works but - there are problems with some dynamically loaded programs. + o IA32 support. Currently experimental. It mostly works. diff --git a/Documentation/isapnp.txt b/Documentation/isapnp.txt index 4cb7a9b59..3de97b275 100644 --- a/Documentation/isapnp.txt +++ b/Documentation/isapnp.txt @@ -1,5 +1,5 @@ ISA Plug & Play support by Jaroslav Kysela <perex@suse.cz> -========================================================= +========================================================== Interface /proc/isapnp ====================== @@ -13,7 +13,7 @@ Write commands: --------------- With the write interface you can simply activate or modify the configuration -for ISA Plug & Play devices. It is mainly useable for drivers which don't +for ISA Plug & Play devices. It is mainly useable for drivers which has not use the ISA Plug & Play kernel support yet. card <idx> <vendor> - select PnP device by vendor identification @@ -33,8 +33,8 @@ poked <reg> <value> - poke configuration dword to selected register Explanation: - variable <idx> begins with zero - variable <CSN> begins with one - - <vendor> is in form 'PNP0000' - - <logdev> is in form 'PNP0000' + - <vendor> is in format 'PNP0000' + - <logdev> is in format 'PNP0000' Example: @@ -54,6 +54,7 @@ port 0 0x240 activate EOF + Information for developers ========================== @@ -92,7 +93,7 @@ callback with appropriate information. Example for ids parameter initialization: -static struct isapnp_card_id ids[] __devinitdata = { +static struct isapnp_card_id card_ids[] __devinitdata = { { ISAPNP_CARD_ID('A','D','V', 0x550a), devs: { @@ -105,6 +106,25 @@ static struct isapnp_card_id ids[] __devinitdata = { ISAPNP_CARD_END, } }; +ISAPNP_CARD_TABLE(card_ids); + +extern int isapnp_probe_devs(const struct isapnp_device_id *ids, + int (*probe)(struct pci_bus *card, + const struct isapnp_device_id *id)); + + +This function is a helper for drivers which requires to use one +device from an ISA PnP card. For each matched devices is called the probe +callback with appropriate information. + +Example for ids parameter initialization: + +static struct isapnp_device_id device_ids[] __devinitdata = { + { ISAPNP_DEVICE_SINGLE('E','S','S', 0x0968, 'E','S','S', 0x0968), }, + { ISAPNP_DEVICE_SINGLE_END, } +}; +MODULE_DEVICE_TABLE(isapnp, device_ids); + ISA PnP configuration ===================== @@ -157,6 +177,8 @@ Example (game port initialization) NULL); if (!dev) return -ENODEV; + if (dev->active) + return -EBUSY; if (dev->prepare(dev)<0) return -EAGAIN; if (!(dev->resource[0].flags & IORESOURCE_IO)) diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index 206272a47..13a663e3e 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt @@ -341,11 +341,6 @@ architecture-specific values. # arch/i386/Makefile - # only work around strength reduction bug(s) on older gcc versions - CFLAGS += $(shell if ! $(CC) -march=i486 -S -o /dev/null \ - -xc /dev/null >/dev/null 2>&1; \ - then echo "-fno-strength-reduce"; fi) - # prevent gcc from keeping the stack 16 byte aligned CFLAGS += $(shell if $(CC) -mpreferred-stack-boundary=2 \ -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ @@ -356,21 +351,15 @@ architecture-specific values. # arch/i386/Makefile ifdef CONFIG_M386 - CFLAGS += $(shell if $(CC) -march=i386 -S -o /dev/null \ - -xc /dev/null >/dev/null 2>&1; \ - then echo "-march=i386"; else echo "-m386"; fi) + CFLAGS += -march=i386 endif ifdef CONFIG_M486 - CFLAGS += $(shell if $(CC) -march=i486 -S -o /dev/null \ - -xc /dev/null >/dev/null 2>&1; \ - then echo "-march=i486"; else echo "-m486"; fi) + CFLAGS += -march=i486 endif ifdef CONFIG_M586 - CFLAGS += $(shell if $(CC) -march=i586 -S -o /dev/null \ - -xc /dev/null >/dev/null 2>&1; \ - then echo "-march=i586"; fi) + CFLAGS += -march=i586 endif Some arch Makefiles redefine the compilation commands in order diff --git a/Documentation/networking/8139too.txt b/Documentation/networking/8139too.txt index 1c5c8afc9..4a045bc48 100644 --- a/Documentation/networking/8139too.txt +++ b/Documentation/networking/8139too.txt @@ -180,6 +180,20 @@ suggestions welcome) (WIP) Change History -------------- +Version 0.9.11 - October 28, 2000 + +* Do not fail when PIO and MMIO region lengths do not match. + (They don't on some CardBus models, at least) +* Sanity check Rx packet status and size (Tobias) +* When handling a Tx timeout, disable Tx ASAP if not already. +* Do not inline Tx interrupt handler (better register usage) +* Handle dirty_tx signed integer wrap +* Do not abort Rx processing on lack of memory, keep going + until the current Rx ring is completely handling. (Tobias) +* Clean up rtl8139_close +* Whitespace correction for dev_kfree_skb_irq call + + Version 0.9.10 - September 12, 2000 * Never wrap an Rx packet (faster Rx interrupt handling) diff --git a/Documentation/networking/z8530drv.txt b/Documentation/networking/z8530drv.txt index c74fb4253..60f453d18 100644 --- a/Documentation/networking/z8530drv.txt +++ b/Documentation/networking/z8530drv.txt @@ -4,17 +4,14 @@ full package from: Internet: ========= -1. ftp://ftp.ccac.rwth-aachen.de/pub/jr/z8530drv-utils-3.0-1.tar.gz +1. ftp://ftp.ccac.rwth-aachen.de/pub/jr/z8530drv-utils_3.0-3.tar.gz -2. ftp://ftp.pspt.fi/pub/ham/linux/ax25/z8530drv-utils-3.0-1.tar.gz - -3. ftp://ftp.ucsd.edu/hamradio/packet/tcpip/incoming/z8530drv-utils-3.0.tar.gz - If you can't find it there, try .../tcpip/linux/z8530drv-utils-3.0.tar.gz +2. ftp://ftp.pspt.fi/pub/ham/linux/ax25/z8530drv-utils_3.0-3.tar.gz Please note that the information in this document may be hopelessly outdated. A new version of the documentation, along with links to other important Linux Kernel AX.25 documentation and programs, is available on -http://www.rat.de/jr +http://yaina.de/jreuter ----------------------------------------------------------------------------- @@ -23,7 +20,7 @@ http://www.rat.de/jr ******************************************************************** - (c) 1993,1998 by Joerg Reuter DL1BKE <jreuter@poboxes.com> + (c) 1993,2000 by Joerg Reuter DL1BKE <jreuter@yaina.de> portions (c) 1993 Guido ten Dolle PE1NNZ @@ -655,6 +652,6 @@ Many thanks to Linus Torvalds and Alan Cox for including the driver in the Linux standard distribution and their support. Joerg Reuter ampr-net: dl1bke@db0pra.ampr.org - AX-25 : DL1BKE @ DB0ACH.#NRW.DEU.EU - Internet: jreuter@poboxes.com - WWW : http://www.rat.de/jr/ + AX-25 : DL1BKE @ DB0ABH.#BAY.DEU.EU + Internet: jreuter@yaina.de + WWW : http://yaina.de/jreuter diff --git a/Documentation/pm.txt b/Documentation/pm.txt index 1e78926cd..205f9666f 100644 --- a/Documentation/pm.txt +++ b/Documentation/pm.txt @@ -261,7 +261,6 @@ Q: Who do I contact for additional information about enabling power management for my specific driver/device? ACPI4Linux mailing list: acpi@phobos.fs.tum.de -Linux ACPI maintainer: andy_henroid@yahoo.com System Interface ---------------- diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt index 99d514d4c..1de558718 100644 --- a/Documentation/s390/cds.txt +++ b/Documentation/s390/cds.txt @@ -419,7 +419,7 @@ therefore not rely on this parameter on function entry. free_irq() - Release Device Ownership A device driver may call free_irq() to release ownership of a previously -aquired device. +acquired device. void free_irq( unsigned int irq, void *dev_id); diff --git a/Documentation/usb/bluetooth.txt b/Documentation/usb/bluetooth.txt new file mode 100644 index 000000000..774f5d383 --- /dev/null +++ b/Documentation/usb/bluetooth.txt @@ -0,0 +1,44 @@ +INTRODUCTION + + The USB Bluetooth driver supports any USB Bluetooth device. + It currently works well with the Linux USB Bluetooth stack from Axis + (available at http://developer.axis.com/software/bluetooth/ ) and + has been rumored to work with other Linux USB Bluetooth stacks. + + +CONFIGURATION + + Currently the driver can handle up to 256 different USB Bluetooth + devices at once. + + If you are not using devfs: + The major number that the driver uses is 216 so to use the driver, + create the following nodes: + mknod /dev/ttyUB0 c 216 0 + mknod /dev/ttyUB1 c 216 1 + mknod /dev/ttyUB2 c 216 2 + mknod /dev/ttyUB3 c 216 3 + . + . + . + mknod /dev/ttyUB254 c 216 254 + mknod /dev/ttyUB255 c 216 255 + + If you are using devfs: + The devices supported by this driver will show up as + /dev/usb/ttub/{0,1,...} + + When the device is connected and recognized by the driver, the driver + will print to the system log, which node the device has been bound to. + + +CONTACT: + + If anyone has any problems using this driver, please contact me, or + join the Linux-USB mailing list (information on joining the mailing + list, as well as a link to its searchable archive is at + http://www.linux-usb.org/ ) + + +Greg Kroah-Hartman +greg@kroah.com diff --git a/Documentation/vm/locking b/Documentation/vm/locking index 125cde7cd..f2e8e6c75 100644 --- a/Documentation/vm/locking +++ b/Documentation/vm/locking @@ -4,7 +4,7 @@ The intent of this file is to have an uptodate, running commentary from different people about how locking and synchronization is done in the Linux vm code. -vmlist_access_lock/vmlist_modify_lock +page_table_lock -------------------------------------- Page stealers pick processes out of the process pool and scan for @@ -12,10 +12,10 @@ the best process to steal pages from. To guarantee the existence of the victim mm, a mm_count inc and a mmdrop are done in swap_out(). Page stealers hold kernel_lock to protect against a bunch of races. The vma list of the victim mm is also scanned by the stealer, -and the vmlist_lock is used to preserve list sanity against the +and the page_table_lock is used to preserve list sanity against the process adding/deleting to the list. This also guarantees existence of the vma. Vma existence is not guaranteed once try_to_swap_out() -drops the vmlist lock. To guarantee the existence of the underlying +drops the page_table_lock. To guarantee the existence of the underlying file structure, a get_file is done before the swapout() method is invoked. The page passed into swapout() is guaranteed not to be reused for a different purpose because the page reference count due to being @@ -32,19 +32,19 @@ you must hold mmap_sem to guard against clones doing mmap/munmap/faults, (ie all vm system calls and faults), and from ptrace, swapin due to swap deletion etc. 2. To modify the vmlist (add/delete or change fields in an element), -you must also hold vmlist_modify_lock, to guard against page stealers +you must also hold page_table_lock, to guard against page stealers scanning the list. 3. To scan the vmlist (find_vma()), you must either a. grab mmap_sem, which should be done by all cases except page stealer. or - b. grab vmlist_access_lock, only done by page stealer. -4. While holding the vmlist_modify_lock, you must be able to guarantee + b. grab page_table_lock, only done by page stealer. +4. While holding the page_table_lock, you must be able to guarantee that no code path will lead to page stealing. A better guarantee is to claim non sleepability, which ensures that you are not sleeping for a lock, whose holder might in turn be doing page stealing. -5. You must be able to guarantee that while holding vmlist_modify_lock -or vmlist_access_lock of mm A, you will not try to get either lock +5. You must be able to guarantee that while holding page_table_lock +or page_table_lock of mm A, you will not try to get either lock for mm B. The caveats are: @@ -52,7 +52,7 @@ The caveats are: The update of mmap_cache is racy (page stealer can race with other code that invokes find_vma with mmap_sem held), but that is okay, since it is a hint. This can be fixed, if desired, by having find_vma grab the -vmlist lock. +page_table_lock. Code that add/delete elements from the vmlist chain are @@ -72,23 +72,16 @@ in some cases it is not really needed. Eg, vm_start is modified by expand_stack(), it is hard to come up with a destructive scenario without having the vmlist protection in this case. -The vmlist lock nests with the inode i_shared_lock and the kmem cache +The page_table_lock nests with the inode i_shared_lock and the kmem cache c_spinlock spinlocks. This is okay, since code that holds i_shared_lock never asks for memory, and the kmem code asks for pages after dropping -c_spinlock. The vmlist lock also nests with pagecache_lock and +c_spinlock. The page_table_lock also nests with pagecache_lock and pagemap_lru_lock spinlocks, and no code asks for memory with these locks held. -The vmlist lock is grabbed while holding the kernel_lock spinning monitor. +The page_table_lock is grabbed while holding the kernel_lock spinning monitor. -The vmlist lock can be a sleeping or spin lock. In either case, care -must be taken that it is not held on entry to the driver methods, since -those methods might sleep or ask for memory, causing deadlocks. - -The current implementation of the vmlist lock uses the page_table_lock, -which is also the spinlock that page stealers use to protect changes to -the victim process' ptes. Thus we have a reduction in the total number -of locks. +The page_table_lock is a spin lock. swap_list_lock/swap_device_lock ------------------------------- diff --git a/Documentation/zorro.txt b/Documentation/zorro.txt index ed77a047c..a56e2c485 100644 --- a/Documentation/zorro.txt +++ b/Documentation/zorro.txt @@ -9,7 +9,7 @@ Last revised: February 27, 2000 --------------- The Zorro bus is the bus used in the Amiga family of computers. Thanks to -AutoConfig(tm), it's is 100% Plug-and-Play. +AutoConfig(tm), it's 100% Plug-and-Play. There are two types of Zorro busses, Zorro II and Zorro III: @@ -32,7 +32,6 @@ for the board with Zorro ID `ZORRO_PROD_xxx' looks like: while ((z = zorro_find_device(ZORRO_PROD_xxx, z))) { if (!zorro_request_region(z->resource.start+MY_START, MY_SIZE, "My explanation")) - strcpy(z->name, "My board name"); ... } @@ -94,16 +93,7 @@ The treatment of these regions depends on the type of Zorro space: iounmap(virt_addr); -5. Zorro Device Naming ----------------------- - -Since we think generic device naming is something for userspace (zorroutils), -we don't keep a Zorro device name database in the kernel. -However, device drivers are allowed to store the expansion board name in struct -zorro_dev. - - -6. References +5. References ------------- linux/include/linux/zorro.h @@ -111,6 +101,6 @@ linux/include/linux/ioport.h linux/include/asm-m68k/io.h linux/include/asm-m68k/amigahw.h linux/include/asm-ppc/io.h -linux/driver/zorro +linux/drivers/zorro /proc/bus/zorro |