diff -ur --new-file old/linux/COPYING new/linux/COPYING --- old/linux/COPYING Wed Dec 1 13:44:15 1993 +++ new/linux/COPYING Thu May 21 03:54:33 1998 @@ -3,7 +3,7 @@ services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work". Also note that the GPL below is copyrighted by the Free Software - Foundation, but the instance of code that it refers to (the linux + Foundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it. Linus Torvalds diff -ur --new-file old/linux/CREDITS new/linux/CREDITS --- old/linux/CREDITS Mon Mar 16 23:27:03 1998 +++ new/linux/CREDITS Fri Jun 5 00:52:21 1998 @@ -438,8 +438,8 @@ W: http://www.pi.se/blox/ D: Extended support for loadable modules D: D-Link pocket adapter drivers -S: Myrstuguv. 83 -S: S-143 32 VARBY +S: Grevgatan 11 +S: S-114 53 Stockholm S: Sweden N: Paal-Kristian Engstad @@ -467,7 +467,7 @@ N: Rik Faith E: faith@cs.unc.edu -E: r.faith@ieee.org +E: faith@acm.org D: Author: Future Domain TMC-16x0 SCSI driver D: Debugging: SCSI code; Cyclades serial driver; APM driver D: Debugging: XFree86 Mach 32 server, accelerated server code @@ -568,6 +568,7 @@ E: rgooch@atnf.csiro.au D: parent process death signal to children D: prctl() syscall +D: /proc/mtrr support to manipulate MTRRs on Pentium Pro's S: CSIRO Australia Telescope National Facility S: P.O. Box 76, Epping S: N.S.W., 2121 @@ -647,11 +648,11 @@ S: USA N: Angelo Haritsis -E: ah@doc.ic.ac.uk +E: ah@computer.org D: kernel patches (serial, watchdog) D: xringd, vuzkern, greekXfonts -S: 58 Henfield Close -S: London N19 3UL +S: 77 Clarence Mews +S: London SE16 1GD S: United Kingdom N: Kai Harrekilde-Petersen @@ -895,6 +896,10 @@ E: rfkoenig@immd4.informatik.uni-erlangen.de D: The Linux Support Team Erlangen +N: Andreas Koensgen +E: ajk@iehk.rwth-aachen.de +D: 6pack driver for AX.25 + N: Andi Kleen E: ak@muc.de D: network hacker, syncookies @@ -1254,6 +1259,14 @@ S: FIN-00330 Helsingfors S: Finland +N: Matija Nalis +E: mnalis@jagor.srce.hr +E: mnalis@voyager.hr +D: Maintainer of the Umsdos file system +S: Listopadska 7 +S: 10000 Zagreb +S: Croatia + N: Jonathan Naylor E: g4klx@g4klx.demon.co.uk E: g4klx@amsat.org @@ -1266,6 +1279,16 @@ S: Derbyshire DE4 3RL S: United Kingdom +N: Russell Nelson +E: nelson@crynwr.com +W: http://www.crynwr.com/~nelson +P: 1024/83942741 FF 68 EE 27 A0 5A AA C3 F5 DC 05 62 BD 5B 20 2F +D: Author of cs89x0, maintainer of kernel changelog through 1.3.3 +D: Wrote many packet drivers, from which some Ethernet drivers are derived. +S: 521 Pleasant Valley Rd. +S: Potsdam, NY 13676 +S: USA + N: Michael Neuffer E: mike@i-Connect.Net E: neuffer@goofy.zdv.uni-mainz.de @@ -1407,7 +1430,7 @@ N: Joerg Reuter E: jreuter@poboxes.com -W: http://www.rat.de/jr/ +W: http://poboxes.com/jreuter/ W: http://qsl.net/dl1bke/ D: Generic Z8530 driver, AX.25 DAMA slave implementation D: Several AX.25 hacks @@ -1421,8 +1444,8 @@ S: France N: Rik van Riel -E: H.H.vanRiel@fys.ruu.nl -W: http://www.fys.ruu.nl/~riel/ +E: H.H.vanRiel@phys.uu.nl +W: http://www.phys.uu.nl/~riel/ D: Maintainer of the mm-patches page (see www.linuxhq.com) D: Documentation/sysctl/*, kswapd fixes, random kernel hacker S: Vorenkampsweg 1 @@ -1625,11 +1648,13 @@ S: France N: Jon Tombs -E: jon@gtex02.us.es +E: jon@gte.esi.us.es +W: http://www.esi.us.es/~jon D: NFS mmap() D: XF86_S3 D: Kernel modules -S: C/ Carlos de Cepeda 36 2-5 +D: Parts of various other programs (xfig, open, ...) +S: C/ Federico Garcia Lorca 1 10-A S: Sevilla 41005 S: Spain @@ -1786,9 +1811,9 @@ N: Tim Waugh E: tim@cyberelk.demon.co.uk D: Co-architect of the parallel-port sharing system -S: 12 Station Road -S: Park Gate -S: Southampton SO31 7GJ +S: 110 Twyford Road +S: EASTLEIGH +S: SO50 4HN S: United Kingdom N: Juergen Weigert @@ -1863,6 +1888,14 @@ S: Hernesaarenkatu 15 A 2 S: Fin-00150 Helsinki S: Finland + +N: Jonathan Woithe +E: jwoithe@physics.adelaide.edu.au +W: http://www.physics.adelaide.edu.au/~jwoithe +D: ALS-007 soundcard extensions to Sound Blaster driver +S: 4/36 Trevelyan St +S: Wayville SA 5034 +S: Australia N: Roger E. Wolff E: R.E.Wolff@BitWizard.nl diff -ur --new-file old/linux/Documentation/00-INDEX new/linux/Documentation/00-INDEX --- old/linux/Documentation/00-INDEX Thu Feb 26 20:01:24 1998 +++ new/linux/Documentation/00-INDEX Fri Jun 5 07:53:50 1998 @@ -1,7 +1,8 @@ This is a brief list of all the files in ./linux/Documentation and what they contain. If you add a documentation file, please list it here in alphabetical order as well, or risk being hunted down like a rabid dog. -Note that subdirectories have their own index files too. +Note that subdirectories have their own index files too. Please try and +keep the descriptions small enough to fit on one line. Thanks -- Paul G. 00-INDEX @@ -56,6 +57,8 @@ - info on the in-kernel binary support for Java(tm) joystick.txt - info on using joystick devices (and driver) with linux. +kmod.txt + - - info on the kernel module loader/unloader (kerneld replacement) locks.txt - info on file locking implementations, flock() vs. fcntl(), etc. logo.gif @@ -68,14 +71,16 @@ - list of magic numbers used to mark/protect kernel data structures. mandatory.txt - info on the linux implementation of Sys V mandatory file locking. +mca.txt + - info on supporting Micro Channel Architecture (e.g. PS/2) systems. md.txt - info on boot arguments for the multiple devices driver memory.txt - info on typical Linux memory problems. -mca.txt - - info on supporting Micro Channel Architecture (e.g. PS/2) systems. modules.txt - short guide on how to make kernel parts into loadable modules +mtrr.txt + - how to use PPro Memory Type Range Registers to increase performance nbd.txt - info on a TCP implementation of a network block device. networking/ @@ -84,12 +89,14 @@ - short guide on setting up a diskless box with NFS root filesystem oops-tracing.txt - how to decode those nasty internal kernel error dump messages. -pcwd-watchdog.txt - - info and sample code for using with the PC Watchdog reset card. paride.txt - information about the parallel port IDE subsystem. parport.txt - how to use the parallel-port driver. +pci.txt + - info on the PCI subsystem for device driver authors +pcwd-watchdog.txt + - info and sample code for using with the PC Watchdog reset card. powerpc/ - directory with info on using linux with the PowerPC. ramdisk.txt @@ -104,8 +111,12 @@ - how to set up linux with a serial line console as the default. smart-config.txt - description of the Smart Config makefile feature. +smp + - how to setup the kernel for SMP smp.tex - TeX document describing implementation of Multiprocessor Linux +sound/ + - directory with info on sound card support specialix.txt - info on hardware/driver for specialix IO8+ multiport serial card. spinlocks.txt @@ -114,6 +125,10 @@ - info on using the Stallion multiport serial driver. svga.txt - short guide on selecting video modes at boot via VGA BIOS. +sysctl/ + - directory with info on the /proc/sys/* files +sysrq.txt + - info on the magic SysRq key transname.txt - how to use name translation to ease use of diskless systems. unicode.txt diff -ur --new-file old/linux/Documentation/ARM-README new/linux/Documentation/ARM-README --- old/linux/Documentation/ARM-README Wed Jan 21 01:39:41 1998 +++ new/linux/Documentation/ARM-README Thu May 21 03:54:33 1998 @@ -1,15 +1,12 @@ - ARM Linux 2.1.78 + ARM Linux 2.1.99 ================ - ** The ARM support contained within is NOT complete - it will not build. ** - ** If you want to build it, then please obtain a full copy of the ARM ** - ** patches from ftp://ftp.arm.uk.linux.org/pub/armlinux/kernel-sources/v2.1 ** - Since this is a development kernel, it will not be as stable as the 2.0 series, and can cause very nasty problems (eg, trashing your hard disk). When running one of these kernels, I advise you to back up the complete contents of all your hard disks. + Contributors ------------ @@ -28,26 +25,16 @@ Mail: Philip.Blundell@pobox.com Desc: Architecture and processor selection during make config. + Todo list --------- - This is the list of changes to be done (roughly prioritorised): + This is the list of changes to be done (roughly prioritised): - * fully test new A5000 & older MEMC translation code + * fully test new MEMC translation code * fully test new AcornSCSI driver. * reply to email ;) -Bugs ----- - - Fixed bugs in this version 2.1.76: - - Modules believed to be buggy (please report your successes/failures): - - * AcornSCSI believed to occasionally corrupt hard drives. - * All NCR5380-based SCSI devices [Cumana I, Oak, EcoSCSI] are slow, - and may not allow write access. - * A5000 and older machine kernel builds may not be as stable as they were. Notes ===== @@ -76,12 +63,13 @@ to CROSS_COMPILE= eg. - CROSS_COMPILE=/usr/src/bin/arm/arm-linuxelf- + CROSS_COMPILE=/usr/bin/arm-unknown-linuxelf- Do a 'make config', followed by 'make dep', and finally 'make all' to build the kernel (vmlinux). A compressed image can be built by doing a 'make zImage' instead of 'make all'. + Bug reports etc --------------- @@ -89,12 +77,13 @@ to linux@arm.uk.linux.org. Patches will not be included into future kernels unless they come to me (or the relevant person concerned). - When sending bug reports, please ensure that they contain all relevent + When sending bug reports, please ensure that they contain all relevant information, eg. the kernel messages that were printed before/during the problem, what you were doing, etc. - For patches, please include some explaination as to what the patch does - and why (if relevent). + For patches, please include some explanation as to what the patch does + and why (if relevant). + Modules ------- @@ -108,6 +97,7 @@ as such Acorn RiscPCs and other architectures using these processors can make good use of modularisation. + ADFS Image files ---------------- @@ -118,6 +108,7 @@ Please note that the PCEmulator DOS partitions have a partition table at the start, and as such, you will have to give '-o offset' to losetup. + Kernel initialisation abort codes --------------------------------- @@ -128,17 +119,19 @@ Stripes of White,Red,Yellow,Green: Kernel does not support the processor architecture detected. + Request to developers --------------------- - When writing device drivers which include a separate assember file, please + When writing device drivers which include a separate assembler file, please include it in with the C file, and not the arch/arm/lib directory. This allows the driver to be compiled as a loadable module without requiring - half the code to be needlessly compiled into the kernel image. + half the code to be compiled into the kernel image. In general, try to avoid using assembler unless it is really necessary. It makes drivers far less easy to port to other hardware. + ST506 hard drives ----------------- @@ -153,7 +146,7 @@ big external 5.25" FH 64MB drive (who could ever want more :-) ). I've just got 240K/s off it (a dd with bs=128k); thats about half of what - RiscOS gets; but its a heck of a lot better than the 50K/s I was getting + RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting last week :-) Known bug: Drive data errors can cause a hang; including cases where @@ -167,3 +160,22 @@ hasn't got any code for disc change detection in there at the moment which could be a bit of a problem! Suggestions on the correct way to do this are welcome. + + +Kernel entry (head-armv.S) +-------------------------- + The initial entry into the kernel made via head-armv.S uses architecture + independent code. The architecture is selected by the value of 'r1' on + entry, which must be kept unique. You can register a new architecture + by mailing the following details to rmk@arm.uk.linux.org. Please give + the mail a subject of 'Register new architecture': + + Name: + ARCHDIR: + Description: + + + Please follow this format - it is an automated system. You should + receive a reply the next day. +--- +Russell King (03/05/1998) diff -ur --new-file old/linux/Documentation/Changes new/linux/Documentation/Changes --- old/linux/Documentation/Changes Wed Mar 18 06:22:25 1998 +++ new/linux/Documentation/Changes Thu May 21 03:54:33 1998 @@ -19,7 +19,8 @@ texinfo so a diff is useless anyway (though I can incorporate one by hand if you insist upon sending it that way ;-). - Check out http://www.cviog.uga.edu/Misc/info/LinuxBleed.html for an + Check out +http://www.mindspring.com/~nunez/info/linux/LinuxBleed.html for an HTML-ized shopping list. For those of you in Europe, @@ -32,7 +33,7 @@ Also, don't forget http://www.linuxhq.com/ for all your Linux kernel needs. -Last updated: March 16. 1998 +Last updated: May 12, 1998 Current Author: Chris Ricker (kaboom@gatech.edu). Current Minimal Requirements @@ -44,22 +45,22 @@ - Kernel modules modutils-2.1.85 ; insmod -V - Gnu C 2.7.2.3 ; gcc --version -- Binutils 2.8.1.0.1 ; ld -v +- Binutils 2.8.1.0.23 ; ld -v - Linux C Library 5.4.44 ; ls -l /lib/libc.so.* -- Dynamic Linker (ld.so) 1.9.5 ; ldd -v +- Dynamic Linker (ld.so) 1.9.5 ; ldd --version - Linux C++ Library 2.7.2.8 ; ls -l /usr/lib/libg++.so.* -- Procps 1.2.5 ; ps --version -- Procinfo 0.13 ; procinfo -v +- Procps 1.2.7 ; ps --version +- Procinfo 13 ; procinfo -v - Mount 2.7l ; mount --version -- Net-tools 1.41 ; hostname -V +- Net-tools 1.45 ; hostname -V - Loadlin 1.6a -- Sh-utils 1.16 ; expr --v +- Sh-utils 1.16 ; basename --v - Autofs 0.3.11 ; automount --version - NFS 0.4.21 ; showmount --version - Bash 1.14.7 ; bash -version -- Ncpfs 2.1.1 ; ncpmount -v -- Pcmcia-cs 3.0.0 -- PPP 2.3.3 ; pppd -v +- Ncpfs 2.2.0 ; ncpmount -v +- Pcmcia-cs 3.0.1 +- PPP 2.3.5 ; pppd -v Upgrade notes ************* @@ -77,6 +78,11 @@ the corresponding ttyS* device instead (e.g., cua0 -> ttyS0, cua1 -> ttyS1, etc.). + In addition, some software still works, but needs to be compiled +against 2.1 headers for complete functionality. Fdutils binaries +compiled under 2.0 or earlier kernels should be replaced with ones +compiled under 2.1, for example. + Libc ==== @@ -126,6 +132,14 @@ to find out the proper way to upgrade it. No, the instruction to "rm `which encaps`" is not a joke. + The last public release of the binutils 2.8.x series was 2.8.1.0.23. +Binutils 2.8.1.0.25 to 2.9.1.0.2 are beta releases, and are known to be +very buggy. Binutils 2.9.1 (note the absence of a suffix) from the FSF +should work, and binutils 2.9.1.0.3 and later releases are also good. +Either use binutils-2.8.1.0.23 or binutils-2.9.1.0.4 or later. Glibc2 +users should especially try to use the 2.9.1.0.x releases, as they +resolve known issues with glibc2 and binutils-2.8.x releases. + Gnu C ===== @@ -137,7 +151,11 @@ Note that the latest compilers (egcs, pgcc, gcc 2.8) may do Bad Things while compiling your kernel, particularly if absurd -optimizations (like -O9) are used. Caveat emptor. +optimizations (like -O9) are used. Caveat emptor. Currently, the only +C compiler available in a binary distribution is egcs. Version 1.0.2 +seems okay; if you have to have a binary, you may be successful using +that. In general, however, gcc-2.7.2.3 is known to be stable, while +egcs and others have not been as thoroughly tested yet. Networking Changes ================== @@ -163,8 +181,14 @@ To run bootpd, you'll need to issue the following command: echo 1 >/proc/sys/net/ipv4/ip_boot_agent + Similar procedures are necessary to turn on other features. If +something appears broken, check the /proc/sys/net/ipv4/ directory. "1" +generally denotes enabled, while "0" generally denotes disabled. + For support for new features like IPv6, upgrade to the latest -net-tools. +net-tools. This will also fix other problems. For example, the format +of /proc/net/dev changed; as a result, an older ifconfig will +incorrectly report errors. Memory ====== @@ -185,7 +209,7 @@ RPM === - If you run RedHat Linux or any other distribution that uses RPM, you + If you run Red Hat Linux or any other distribution that uses RPM, you need to upgrade RPM to version 2.2.7 or later. DOSEMU @@ -256,12 +280,23 @@ Binutils ======== -The 2.8.1.0.1 release: -ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.1.bin.tar.gz -ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.8.1.0.1.bin.tar.gz +The 2.8.1.0.23 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.23.bin.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.8.1.0.23.bin.tar.gz +Installation notes: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.binutils-2.8.1.0.23 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.binutils-2.8.1.0.23 + +The 2.9.1.0.4 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.9.1.0.4-glibc.x86.tar.gz +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.9.1.0.4-libc5.x86.tar.gz +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.9.1.0.4.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.9.1.0.4-glibc.x86.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.9.1.0.4-libc5.x86.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.9.1.0.4.tar.gz Installation notes: -ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.binutils-2.8.1.0.1 -ftp://sunsite.unc.edu/pub/Linux/GCC/release.binutils-2.8.1.0.1 +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.binutils-2.9.1.0.4 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.binutils-2.9.1.0.4 Gnu C ===== @@ -273,13 +308,26 @@ ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.gcc-2.7.2.3 ftp://sunsite.unc.edu/pub/Linux/GCC/release.gcc-2.7.2.3 +The egcs-1.0.2 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/egcs-1.0.2-glibc.x86.tar.gz +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/egcs-1.0.2-libc5.x86.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/egcs-1.0.2-glibc.x86.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/egcs-1.0.2-libc5.x86.tar.gz +Installation notes: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.egcs-1.0.2 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.egcs-1.0.2 + +Gnu C 2.7.2.3 source: +ftp://prep.ai.mit.edu/pub/gnu/gcc-2.7.2.3.tar.gz +ftp://sunsite.unc.edu/pub/gnu/gcc-2.7.2.3.tar.gz + Linux C Library =============== The 5.4.44 release: ftp://tsx-11.mit.edu/pub/linux/packages/GCC/libc-5.4.44.bin.tar.gz ftp://sunsite.unc.edu/pub/Linux/GCC/libc-5.4.44.bin.tar.gz -Installation notes for 5.4.38: +Installation notes for 5.4.44: ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.libc-5.4.44 ftp://sunsite.unc.edu/pub/Linux/GCC/release.libc-5.4.44 @@ -304,21 +352,20 @@ ================= The 2.1.85 release: -ftp://ftp.redhat.com/pub/alphabits/modutils/modutils-2.1.85.tar.gz ftp://ftp.kernel.org/pub/linux/kernel/v2.1/modutils-2.1.85.tar.gz Procps utilities ================ The 1.2 release: -ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/procps-1.2.5.tar.gz -ftp://sunsite.unc.edu/pub/Linux/system/status/ps/procps-1.2.5.tgz +ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/procps-1.2.7.tar.gz +ftp://sunsite.unc.edu/pub/Linux/system/status/ps/procps-1.2.7.tgz Procinfo utilities ================== -The 0.11 release: -ftp://ftp.cistron.nl/pub/people/svm/procinfo-0.13.tar.gz +The 13 release: +ftp://ftp.cistron.nl/pub/people/svm/procinfo-13.tar.gz RPM utilities ============= @@ -337,8 +384,7 @@ ====== The 0.66.7 release: -ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/dosemu0.66.7.tgz -ftp://sunsite.unc.edu/pub/Linux/system/emulators/dosemu0.66.7.tgz +ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/dosemu-0.66.7.tgz Loadlin ======= @@ -371,13 +417,14 @@ The 0.4.21 release: ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/linux-nfs-0.4.21.tar.gz -ftp://linux.nrao.edu/pub/people/okir/linux-nfs-0.4.21.tar.gz +ftp://linux.nrao.edu/mirrors/fb0429.mathematik.th-darmstadt.de/pub/linux/okir/linux-nfs-0.4.21.tar.gz Net-tools ========= -The 1.432 release: -ftp://ftp.cs-ipv6.lancs.ac.uk/pub/Code/Linux/Net_Tools/net-tools-1.432.tar.gz +The 1.45 release: +ftp://ftp.cs-ipv6.lancs.ac.uk/pub/Code/Linux/Net_Tools/net-tools-1.45.tar.gz +http://www.tazenda.demon.co.uk/phil/net-tools/net-tools-1.45.tar.gz Ypbind ====== @@ -394,21 +441,20 @@ Ncpfs ===== -The 2.1.1 release: -ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/ncpfs-2.1.1.tgz -ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/ncpfs/ncpfs-2.1.1.tgz +The 2.2.0 release: +ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/ncpfs-2.2.0.tgz Pcmcia-cs ========= -The 3.0.0 release: -ftp://hyper.stanford.edu/pub/pcmcia/pcmcia-cs-3.0.0.tar.gz +The 3.0.1 release: +ftp://hyper.stanford.edu/pub/pcmcia/pcmcia-cs.3.0.1.tar.gz PPP === -The 2.3.3 release: -ftp://cs.anu.edu.au/pub/software/ppp/ppp-2.3.3.tar.gz +The 2.3.5 release: +ftp://cs.anu.edu.au/pub/software/ppp/ppp-2.3.5.tar.gz Other Info ========== @@ -425,7 +471,7 @@ your favorite Red Hat mirror site before installing the non-RPM version. Remember, you might need to use the -force option to get the upgrade to install. ftp://ftp.redhat.com/pub/contrib/ will have almost -everything you need, as does RedHat 5.0. +everything you need, as does Red Hat 5.0. Those of you running Debian (or a different distribution that supports .deb packages) can look in the "unstable" and diff -ur --new-file old/linux/Documentation/CodingStyle new/linux/Documentation/CodingStyle --- old/linux/Documentation/CodingStyle Tue Sep 24 06:54:40 1996 +++ new/linux/Documentation/CodingStyle Thu May 21 03:54:33 1998 @@ -132,7 +132,7 @@ complexity and indentation level of that function. So, if you have a conceptually simple function that is just one long (but simple) case-statement, where you have to do lots of small things for a lot of -different cases, it's ok to have a longer function. +different cases, it's OK to have a longer function. However, if you have a complex function, and you suspect that a less-than-gifted first-year high-school student might not even diff -ur --new-file old/linux/Documentation/Configure.help new/linux/Documentation/Configure.help --- old/linux/Documentation/Configure.help Sat Jun 6 05:50:37 1998 +++ new/linux/Documentation/Configure.help Sat Jun 6 05:51:22 1998 @@ -4,7 +4,7 @@ # corresponds to the kernel versions 2.1.x. Be aware that these are # development kernels and need not be completely stable. # -# International versions of this file available on the WWW: +# Translations of this file available on the WWW: # - http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/Configure.help.euc # is a Japanese translation, maintained by Tetsuyasu YAMADA # (tetsu@cauchy.nslab.ntt.jp). @@ -24,38 +24,39 @@ # # Information about what a kernel is, what it does, how to patch and # compile it and much more is contained in the Kernel-HOWTO, available -# via ftp (user: anonymous) from sunsite.unc.edu in the directory +# via FTP (user: anonymous) from sunsite.unc.edu in the directory # /pub/Linux/docs/HOWTO. Before you start compiling, make sure that -# you have the necessary versions of all programs; they are listed -# in Documentation/Changes. +# you have the necessary versions of all programs and libraries +# required to compile and run this kernel; they are listed in the file +# Documentation/Changes. Make sure to read the toplevel kernel README +# file as well. # -# Format of this file: descriptionvariablehelptext. -# If the question being documented is of type "choice", we list only -# the first occurring config variable. The help texts must not contain -# empty lines. Order of the help texts does not matter, however, no -# variable should be documented twice: if it is, only the first -# occurrence will be used by Configure. It is not absolutely necessary -# that the one-line descriptions of the variables used here are -# exactly the same as the ones in the corresponding Config.in -# scripts. The lines in a help text should be indented two -# positions. Lines starting with `#' are ignored. To be nice to -# menuconfig, limit your lines to 70 characters. Use emacs' kfill.el -# to edit this file or you lose. +# Format of this file: descriptionvariablehelptext. If +# the question being documented is of type "choice", we list only the +# first occurring config variable. The help texts may contain empty +# lines, but every non-empty line must be indented two positions. +# Order of the help texts does not matter, however, no variable should +# be documented twice: if it is, only the first occurrence will be +# used by Configure. We try to keep the help texts of related variables +# close together. Lines starting with `#' are ignored. To be nice to +# menuconfig, limit your line length to 70 characters. Use emacs' +# kfill.el to edit and ispell.el to spell check this file or you lose. # # If you add a help text to this file, please try to be as gentle as # possible. Don't use unexplained acronyms and generally write for the # hypothetical ignorant but intelligent user who has just bought a PC, # removed Windows, installed Linux and is now recompiling the kernel -# for the first time. Tell them what to do if they're -# unsure. Technical information should go in a README in the -# Documentation directory. Mention all the relevant READMEs and HOWTOs -# in the help text. +# for the first time. Tell them what to do if they're unsure. Technical +# information should go in a README in the Documentation directory. +# Mention all the relevant READMEs and HOWTOs in the help text. +# Repetitions are fine since the help texts are not meant to be read +# in sequence. # # All this was shamelessly stolen from several different sources. Many -# thanks to all the contributors. Feel free to use these help texts -# in your own kernel configuration tools. The texts are copyrighted -# (c) 1995-1997 by Axel Boldt and others and governed by the GNU -# Public License. +# thanks to all the contributors. Feel free to use these help texts in +# your own kernel configuration tools. The texts are copyrighted (c) +# 1995-1998 by Axel Boldt and many others and are governed by the GNU +# General Public License. Prompt for development and/or incomplete code/drivers CONFIG_EXPERIMENTAL @@ -74,6 +75,7 @@ (before submitting bug reports, please read the documents README, MAINTAINERS, Documentation/BUG-HUNTING, and Documentation/oops-tracing.txt in the kernel source). + Unless you intend to help test and develop a feature or driver that falls into this category, or you have a situation that requires using these features you should probably say N here, which will @@ -87,32 +89,25 @@ operations) if you don't have one. 486DX and Pentium processors have a math coprocessor built in, 486SX and 386 do not, unless you added a 487DX or 387, respectively. (The messages during boot time can - give you some hints here ["man dmesg"]) Everyone needs either a - coprocessor or this emulation. If you say Y here even - though you have a coprocessor, the coprocessor will be used - nevertheless. (This behavior can be changed with the kernel command - line option "no387", which comes handy if your coprocessor is - broken. Try "man bootparam" or see the documentation of your boot + give you some hints here ["man dmesg"].) Everyone needs either a + coprocessor or this emulation. + + If you don't have a math coprocessor, you need to say Y here; if you + say Y here even though you have a coprocessor, the coprocessor will + be used nevertheless. (This behavior can be changed with the kernel + command line option "no387", which comes handy if your coprocessor + is broken. Try "man bootparam" or see the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel at boot time. The lilo procedure is also explained in the SCSI-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO.) This means that it is a good - idea to say Y here if you intend to use this kernel on different - machines. More information about the internals of Linux math - coprocessor emulation can be found in arch/i386/math-emu/README. If - you are not sure, say Y; apart from resulting in a 45kB bigger - kernel, it won't hurt. + available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO.) This means that it is a + good idea to say Y here if you intend to use this kernel on + different machines. More information about the internals of Linux + math coprocessor emulation can be found in + arch/i386/math-emu/README. -Max physical memory -CONFIG_MAX_MEMSIZE - Linux/x86 can use up to 3.8 gigabytes of physical memory. Default - is max 1 gigabyte physical memory (1024 MB), this is enough for - most systems. - A system with 2G physical memory should use a value of ~2400, a - system with 3.8G memory should use something like 3900. A bit of - experimentation with the limit wont hurt, the kernel needs a ~128M - window for vmalloc() plus PCI space uses up some memory too, thus - addresses above FD000000 should rather be kept free. + If you are not sure, say Y; apart from resulting in a 45kB bigger + kernel, it won't hurt. Normal floppy disk support CONFIG_BLK_DEV_FD @@ -121,26 +116,31 @@ Thinkpad users, is contained in drivers/block/README.fd. This file also contains the location of the Floppy driver FAQ as well as location of the fdutils package used to configure additional - parameters of the driver at run time. 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 - floppy.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt. + parameters of the driver at run time. + + 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 floppy.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. RAM disk support CONFIG_BLK_DEV_RAM Saying Y here will allow you to use a portion of your RAM memory as a block device, so that you can make filesystems on it, read and write to it and do all the other things that you can do with normal - block devices (such as harddrives). It is usually used to load and + block devices (such as hard drives). It is usually used to load and store a copy of a minimal root file system off of a floppy into RAM during the initial install of Linux. Note that the kernel command line option "ramdisk=XX" is now obsolete. For details, read - Documentation/ramdisk.txt. If you want to compile this as a module ( - = code which can be inserted in and removed from the running kernel - whenever you want), say M and read Documentation/modules.txt. The - module will be called rd.o. Most normal users won't need the RAM - disk functionality, and can thus say N here. + Documentation/ramdisk.txt. + + If you want to compile this as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M and read Documentation/modules.txt. The module will be called + rd.o. + + Most normal users won't need the RAM disk functionality, and can + thus say N here. Initial RAM disk (initrd) support CONFIG_BLK_DEV_INITRD @@ -152,15 +152,16 @@ Loop device support CONFIG_BLK_DEV_LOOP - Saying Y here will allow you to mount a file as a file system. This + Saying Y here will allow you to mount a file as a file system. This is useful if you want to check an ISO9660 file system before burning the CD, or want to use floppy images without first writing them to - floppy. This option also allows one to mount a filesystem with - encryption. To use these features, you need a recent version of - mount (available via ftp (user: anonymous) from - ftp.win.tue.nl/pub/linux/util/). Note that this loop device has - nothing to do with the loopback device used for network connections - from the machine to itself. Most users will answer N here. + floppy. This option also allows you to mount a filesystem with + encryption. To use these features, you need a recent version of + mount (available via FTP (user: anonymous) from + ftp://ftp.win.tue.nl/pub/linux/util/). Note that this loop device + has nothing to do with the loopback device used for network + connections from the machine to itself. Most users will answer N + here. Network Block Device support CONFIG_BLK_DEV_NBD @@ -171,100 +172,125 @@ client program this is hidden: it looks like a regular local file access to a special file such as /dev/nd0. It also allows you to run a block-device in userland (making server and client physically the - same computer, communicating using loopback). 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. The module will be called - nbd.o. Normal users say N here. Read Documentation/nbd.txt. + same computer, communicating using the loopback network device). + Read Documentation/nbd.txt for details. + + Note that this has nothing to do with the network file system NFS; + you can say N here even if you intend to use NFS. + + 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. The module will be + called nbd.o. + + If unsure, say N. Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support CONFIG_BLK_DEV_IDE - This will use the full-featured IDE driver to control up to four IDE - interfaces, each being able to serve a "master" and a "slave" - device, for a combination of up to eight IDE disk/cdrom/tape/floppy - drives. Useful information about large (>540MB) IDE disks, - soundcard IDE ports, module support, and other topics, is - contained in Documentation/ide.txt. If you have one or more IDE - drives, say Y here. If your system has no IDE drives, or if memory - requirements are really tight, you could say N here, and select the - "Old harddisk driver" instead to save about 13kB of memory in the - kernel. To fine-tune IDE drive/interface parameters for improved - performance, look for the hdparm package at + If you say Y here, you will use the full-featured IDE driver to + control up to four IDE interfaces, each being able to serve a + "master" and a "slave" device, for a total of up to eight IDE + disk/cdrom/tape/floppy drives. + + Useful information about large (>540MB) IDE disks, sound card IDE + ports, module support, and other topics, is contained in + Documentation/ide.txt. For detailed information about hard drives, + consult the Disk-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. To fine-tune IDE + drive/interface parameters for improved performance, look for the + hdparm package at sunsite.unc.edu:/pub/Linux/kernel/patches/diskdrives/ -Old harddisk (MFM/RLL/IDE) driver + If you have one or more IDE drives, say Y here. If your system has + no IDE drives, or if memory requirements are really tight, you could + say N here, and select the "Old hard disk driver" instead to save + about 13kB of memory in the kernel. + +Old hard disk (MFM/RLL/IDE) driver CONFIG_BLK_DEV_HD_ONLY - There are two drivers for MFM/RLL/IDE disks. Most people use the - newer enhanced driver, but this old one is still around for two - reasons. Some older systems have strange timing problems and seem - to work only with the old driver (which itself does not work with - some newer systems). The other reason is that the old driver is - smaller, since it lacks the enhanced functionality of the new one. - This makes it a good choice for systems with very tight memory - restrictions, or for systems with only older MFM/RLL/ESDI drives. - Choosing the old driver can save 13kB or so of kernel memory. If - you are unsure, then just choose the Enhanced IDE/MFM/RLL driver - instead of this one. + There are two drivers for MFM/RLL/IDE hard disks. Most people use + the newer enhanced driver, but this old one is still around for two + reasons. Some older systems have strange timing problems and seem to + work only with the old driver (which itself does not work with some + newer systems). The other reason is that the old driver is smaller, + since it lacks the enhanced functionality of the new one. This makes + it a good choice for systems with very tight memory restrictions, or + for systems with only older MFM/RLL/ESDI drives. Choosing the old + driver can save 13kB or so of kernel memory. If you are unsure, then + just choose the Enhanced IDE/MFM/RLL driver instead of this one. For + more detailed information, read the Disk-HOWTO, available via FTP + (user: anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Use old disk-only driver on primary interface CONFIG_BLK_DEV_HD_IDE - There are two drivers for MFM/RLL/IDE disks. Most people use just - the new enhanced driver by itself. This option however installs the - old harddisk driver to control the primary IDE/disk interface in the - system, leaving the new enhanced IDE driver take care of only the - 2nd/3rd/4th IDE interfaces. Doing this will prevent you from having - an IDE/ATAPI CDROM or tape drive connected to the primary IDE + There are two drivers for MFM/RLL/IDE disks. Most people use just + the new enhanced driver by itself. This option however installs the + old hard disk driver to control the primary IDE/disk interface in + the system, leaving the new enhanced IDE driver to take care of only + the 2nd/3rd/4th IDE interfaces. Doing this will prevent you from + having an IDE/ATAPI CDROM or tape drive connected to the primary IDE interface. Choosing this option may be useful for older systems which have MFM/RLL/ESDI controller+drives at the primary port address (0x1f0), along with IDE drives at the secondary/3rd/4th port - addresses. Normally, just say N here; you will then use the new + addresses. Normally, just say N here; you will then use the new driver for all 4 interfaces. Include IDE/ATA-2 DISK support CONFIG_BLK_DEV_IDEDISK - This will include enhanced support for MFM/RLL/IDE harddisks. If you + This will include enhanced support for MFM/RLL/IDE hard disks. If you have a MFM/RLL/IDE disk, and there is no special reason to use the - old harddisk driver instead, say Y. 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. The module will be called ide-disk.o. Do - not compile this driver as a module if your root filesystem (the one - containing the directory /) is located on the IDE disk. If unsure, - say Y. + old hard disk driver instead, say Y. + + 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. The module will be + called ide-disk.o. Do not compile this driver as a module if your + root filesystem (the one containing the directory /) is located on + the IDE disk. If unsure, say Y. Include IDE/ATAPI CDROM support CONFIG_BLK_DEV_IDECD - If you have a CDROM drive using the ATAPI protocol, say Y. ATAPI is + If you have a CDROM drive using the ATAPI protocol, say Y. ATAPI is a new protocol used by IDE CDROM and TAPE drives, similar to the - SCSI protocol. Most new CDROM drives use ATAPI, including the + SCSI protocol. Most new CDROM drives use ATAPI, including the NEC-260, Mitsumi FX400, Sony 55E, and just about all non-SCSI - double(2X), quad(4X), and six(6X) speed drives. At boot time, the - CDROM drive will be identified along with other IDE devices, as - "hdb" or "hdc", or something similar. If this is your only CDROM - drive, you can say N to all other CDROM options, but be sure to say - Y to "ISO9660 cdrom filesystem support". Read the CDROM-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file - Documentation/cdrom/ide-cd. Note that older versions of lilo (the - linux boot loader) cannot properly deal with IDE/ATAPI CDROMs, so + double(2X), quad(4X), and six(6X) speed drives. + + If you say Y here, the CDROM drive will be identified at boot time + along with other IDE devices, as "hdb" or "hdc", or something + similar (check the boot messages with dmesg). If this is your only + CDROM drive, you can say N to all other CDROM options, but be sure + to say Y to "ISO9660 cdrom filesystem support". + + Read the CDROM-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO and the file + Documentation/cdrom/ide-cd. Note that older versions of lilo (the + Linux boot loader) cannot properly deal with IDE/ATAPI CDROMs, so install lilo-16 or higher, available from - sunsite.unc.edu:/pub/Linux/system/Linux-boot/lilo. If you want to - compile the 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. The module will be called ide-cd.o. + ftp://sunsite.unc.edu/pub/Linux/system/Linux-boot/lilo. + + If you want to compile the 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. The module will be + called ide-cd.o. Include IDE/ATAPI TAPE support CONFIG_BLK_DEV_IDETAPE If you have an IDE tape drive using the ATAPI protocol, say Y. ATAPI is a new protocol used by IDE tape and CDROM drives, similar - to the SCSI protocol. At boot time, the tape drive will be - identified along with other IDE devices, as "hdb" or "hdc", or - something similar, and will be mapped to a character device such as - "ht0". Be sure to consult the drivers/block/ide-tape.c and - Documentation/ide.txt files for usage information. If you want to - compile the 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. The module will be called ide-tape.o. + to the SCSI protocol. + + If you say Y here, the tape drive will be identified at boot time + along with other IDE devices, as "hdb" or "hdc", or something + similar, and will be mapped to a character device such as "ht0" + (check the boot messages with dmesg). Be sure to consult the + drivers/block/ide-tape.c and Documentation/ide.txt files for usage + information. + + If you want to compile the 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. The module will be + called ide-tape.o. Include IDE/ATAPI FLOPPY support CONFIG_BLK_DEV_IDEFLOPPY @@ -272,12 +298,16 @@ Y. ATAPI is a new protocol used by IDE CDROM/tape/floppy drives, similar to the SCSI protocol. IDE floppy drives include the LS-120 and the ATAPI ZIP (ATAPI PD-CD/CDR drives are not supported by this - driver; support for PD-CD/CDR drives is available through the SCSI - emulation). At boot time, the FLOPPY drive will be identified along - with other IDE devices, as "hdb" or "hdc", or something similar. If - you want to compile the driver as a module ( = code which can be + driver; support for PD-CD/CDR drives is available if you say Y to + "SCSI emulation support", below). + + If you say Y here, the FLOPPY drive will be identified along with + other IDE devices, as "hdb" or "hdc", or something similar (check + the boot messages with dmesg). + + If you want to compile the 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. The module will be + say M here and read Documentation/modules.txt. The module will be called ide-floppy.o. SCSI emulation support @@ -293,19 +323,26 @@ CMD640 chipset bugfix/support CONFIG_BLK_DEV_CMD640 - The CMD-Technologies CMD640 chip is used on many common 486 and + The CMD-Technologies CMD640 IDE chip is used on many common 486 and Pentium motherboards, usually in combination with a "Neptune" or "SiS" chipset. Unfortunately, it has a number of rather nasty design flaws that can cause severe data corruption under many common conditions. Say Y here to include code which tries to automatically detect and correct the problems under Linux. This option also enables access to the secondary IDE ports in some CMD640 based - systems. This driver will work automatically in PCI based systems - (most new systems have PCI slots). But if your system uses VESA - local bus (VLB) instead of PCI, you must also supply a kernel boot - parameter to enable the CMD640 bugfix/support: "ide0=cmd640_vlb" The - CMD640 chip is also used on add-in cards by Acculogic, and on the - "CSA-6400E PCI to IDE controller" that some people have. For + systems. + + This driver will work automatically in PCI based systems (most new + systems have PCI slots). But if your system uses VESA local bus + (VLB) instead of PCI, you must also supply a kernel boot parameter + to enable the CMD640 bugfix/support: "ide0=cmd640_vlb". (Try "man + bootparam" or see the documentation of your boot loader about how to + pass options to the kernel. The lilo procedure is also explained in + the SCSI-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO.) + + The CMD640 chip is also used on add-in cards by Acculogic, and on + the "CSA-6400E PCI to IDE controller" that some people have. For details, read Documentation/ide.txt. If unsure, say Y. CMD640 enhanced support @@ -335,22 +372,26 @@ Generic PCI bus-master DMA support CONFIG_BLK_DEV_IDEDMA - If your PCI IDE controller is capable of bus-master DMA - (Direct Memory Access) transfers (most newer systems are), - then you will want to say Y here to reduce CPU overhead. - With this option, Linux will automatically enable DMA transfers - in most cases, noting this with "DMA" appended to the drive - identification info. You can also use the "hdparm" utility to - enable DMA for drives which were not enabled automatically. - You can get the latest version of the hdparm utility via anonymous - FTP from sunsite.unc.edu/pub/Linux/system/hardware/ + If your PCI system uses IDE drive(s) (as opposed to SCSI, say) and + is capable of bus-master DMA operation (most Pentium PCI systems), + you will want to say Y here to reduce CPU overhead. With this + option, Linux will automatically enable DMA transfers in most cases, + noting this with "DMA" appended to the drive identification info. + You can also use the "hdparm" utility to enable DMA for drives which + were not enabled automatically. You can get the latest version of + the hdparm utility via anonymous FTP from + ftp://sunsite.unc.edu/pub/Linux/system/hardware/. + + Read the comments at the beginning of drivers/block/idedma.c and the + file Documentation/ide.txt for more information. + It is safe to say Y to this question. Other IDE chipset support CONFIG_IDE_CHIPSETS Say Y here if you want to include enhanced support for various IDE interface chipsets used on motherboards and add-on cards. This - enhanced support may be necessary for linux to be able to access the + enhanced support may be necessary for Linux to be able to access the 3rd/4th drives in some systems. It may also enable setting of higher speed I/O rates to improve system performance with these chipsets. Most of these also require special kernel boot parameters @@ -389,6 +430,12 @@ "ide0=dc4030" kernel boot parameter. See the Documentation/ide.txt and drivers/block/pdc4030.c files for more info. +PS/2 ESDI hard disk support +CONFIG_BLK_DEV_PS2 + Say Y here if you have a PS/2 machine with a MCA bus and an ESDI + hard disk. + +Tekram TRM290 chipset support (EXPERIMENTAL) CONFIG_BLK_DEV_TRM290 This driver adds support for bus master DMA transfers using the Tekram TRM290 PCI IDE chip. Volunteers are @@ -427,7 +474,16 @@ I/O speeds to be set as well. See the Documentation/ide.txt and ali14xx.c files for more info. -XT harddisk support +Apple Macintosh builtin IDE interface support (EXPERIMENTAL) +CONFIG_BLK_DEV_MAC_IDE + This is the IDE driver for the builtin IDE interface on some Apple + Macintosh models. It supports both the Quadra/Performa/LC 630 and + the PowerBook 190 IDE interface. + Say Y if you have such a Macintosh model and want to use IDE devices + (hard disks, CD-ROM drives, etc.) that are connected to the builtin + IDE interface. + +XT hard disk support CONFIG_BLK_DEV_XD Very old 8 bit hard disk controllers used in the IBM XT computer. To include a driver for these, say Y. If you want to compile the driver @@ -438,22 +494,28 @@ Parallel port IDE device support CONFIG_PARIDE - There are many external CD-ROM and disk devices that connect - through your computer's parallel port. Most of them are actually - IDE devices using a parallel port IDE adapter. This option enables - the PARIDE subsystem which contains drivers for many of these - external drives. Read linux/Documentation/paride.txt for more - information. If you have enabled the parallel port support general - configuration option, you may share a single port between your - printer and other parallel port devices. Answer Y to build PARIDE - support into your kernel, or M if you would like to build it as a - loadable module. If your parallel port support is in a loadable - module, you must build PARIDE as a module. If you built PARIDE - support into your kernel, you may still build the individual - protocol modules and high-level drivers as loadable modules. To - use the PARIDE support, you must have this module as well as at - least one protocol module and one high-level driver. If you build - this support as a module, it will be called paride.o. + There are many external CD-ROM and disk devices that connect through + your computer's parallel port. Most of them are actually IDE devices + using a parallel port IDE adapter. This option enables the PARIDE + subsystem which contains drivers for many of these external drives. + Read linux/Documentation/paride.txt for more information. + + If you have said Y to the "Parallel-port support" configuration + option, you may share a single port between your printer and other + parallel port devices. Answer Y to build PARIDE support into your + kernel, or M if you would like to build it as a loadable module. If + your parallel port support is in a loadable module, you must build + PARIDE as a module. If you built PARIDE support into your kernel, + you may still build the individual protocol modules and high-level + drivers as loadable modules. If you build this support as a module, + it will be called paride.o. + + To use the PARIDE support, you must say Y or M here and also to at + least one high-level driver (e.g. "Parallel port IDE disks", + "Parallel port ATAPI CD-ROMs", "Parallel port ATAPI disks" etc.) and + to at least one protocol driver (e.g. "ATEN EH-100 protocol", + "MicroSolutions backpack protocol", "DataStor Commuter protocol" + etc.). Parallel port IDE disks CONFIG_PARIDE_PD @@ -465,22 +527,25 @@ must also have at least one parallel port protocol driver in your system. Among the devices supported by this driver are the SyQuest EZ-135, EZ-230 and SparQ drives, the Avatar Shark and the backpack - hardrives from MicroSolutions. + hard drives from MicroSolutions. Parallel port ATAPI CD-ROMs CONFIG_PARIDE_PCD This option enables the high-level driver for ATAPI CD-ROM devices - connected through a parallel port. If you chose to build PARIDE + connected through a parallel port. If you chose to build PARIDE support into your kernel, you may answer Y here to build in the - parallel port ATAPI CD-ROM driver, otherwise you should answer M - to build it as a loadable module. The module will be called pcd.o. - You must also have at least one parallel port protocol driver in - your system. Among the devices supported by this driver are the - MicroSolutions backpack CD-ROM drives and the Freecom Power CD. + parallel port ATAPI CD-ROM driver, otherwise you should answer M to + build it as a loadable module. The module will be called pcd.o. You + must also have at least one parallel port protocol driver in your + system. Among the devices supported by this driver are the + MicroSolutions backpack CD-ROM drives and the Freecom Power CD. If + you have such a CD-ROM drive, you should also say Y to "ISO9660 + cdrom filesystem support" below, because that's the filesystem used + on CDROMs. Parallel port ATAPI disks CONFIG_PARIDE_PF - This option enable the high-level driver for ATAPI disk devices + This option enables the high-level driver for ATAPI disk devices connected through a parallel port. If you chose to build PARIDE support into your kernel, you may answer Y here to build in the parallel port ATAPI disk driver, otherwise you should answer M @@ -492,7 +557,7 @@ Parallel port ATAPI tapes CONFIG_PARIDE_PT - This option enable the high-level driver for ATAPI tape devices + This option enables the high-level driver for ATAPI tape devices connected through a parallel port. If you chose to build PARIDE support into your kernel, you may answer Y here to build in the parallel port ATAPI disk driver, otherwise you should answer M @@ -561,6 +626,17 @@ The module will be called epia.o. You must also have a high-level driver for the type of device that you want to support. +FIT TD-2000 protocol +CONFIG_PARIDE_FIT2 + This option enables support for the TD-2000 parallel port IDE protocol + from Fidelity International Technology. This is a simple (low speed) + adapter that is used in some portable hard drives. If you chose to + build PARIDE support into your kernel, you may answer Y here to + build in the protocol driver, otherwise you should answer M to + build it as a loadable module. The module will be called ktti.o. + You must also have a high-level driver for the type of device + that you want to support. + FreeCom power protocol CONFIG_PARIDE_FRPW This option enables support for the Freecom power parallel port IDE @@ -581,10 +657,21 @@ kbic.o. You must also have a high-level driver for the type of device that you want to support. +KT PHd protocol +CONFIG_PARIDE_KTTI + This option enables support for the "PHd" parallel port IDE protocol + from KT Technology. This is a simple (low speed) adapter that is + used in some 2.5" portable hard drives. If you chose to build PARIDE + support into your kernel, you may answer Y here to build in the + protocol driver, otherwise you should answer M to build it as a + loadable module. The module will be called ktti.o. You must also + have a high-level driver for the type of device that you want to + support. + OnSpec 90c20 protocol CONFIG_PARIDE_ON20 This option enables support for the (obsolete) 90c20 parallel port - IDE protocol from OnSpec (often marketted under the ValuStore brand + IDE protocol from OnSpec (often marketed under the ValuStore brand name). If you chose to build PARIDE support into your kernel, you may answer Y here to build in the protocol driver, otherwise you should answer M to build it as a loadable module. The module will @@ -594,7 +681,7 @@ OnSpec 90c26 protocol CONFIG_PARIDE_ON26 This option enables support for the 90c26 parallel port IDE protocol - from OnSpec Electronics (often marketted under the ValuStore brand + from OnSpec Electronics (often marketed under the ValuStore brand name). If you chose to build PARIDE support into your kernel, you may answer Y here to build in the protocol driver, otherwise you should answer M to build it as a loadable module. The module will @@ -603,17 +690,20 @@ Multiple devices driver support CONFIG_BLK_DEV_MD - This driver lets you combine several harddisk partitions into one - logical block device. Information about how and why to use it and the - necessary tools are available over ftp (user: anonymous) from - sweet-smoke.ufr-info-p7.ibp.fr/pub/Linux in the md package - and the md-FAQ. Please read drivers/block/README.md. If unsure, say - N. + This driver lets you combine several hard disk partitions into one + logical block device. This can be used to combine several redundant + hard disks to a RAID1/4/5 device so as to provide protection against + hard disk failures. More information and the necessary tools are + available over FTP (user: anonymous) from + ftp://sweet-smoke.ufr-info-p7.ibp.fr/pub/Linux in the md package and + the md-FAQ. Please read drivers/block/README.md and the relevant + section of the Disk-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If unsure, say N. Linear (append) mode CONFIG_MD_LINEAR If you say Y here, then your multiple devices driver will be able to - use the so-called linear mode, i.e. it will combine the harddisk + use the so-called linear mode, i.e. it will combine the hard disk partitions by simply appending one to the other. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and @@ -623,7 +713,7 @@ RAID-0 (striping) mode CONFIG_MD_STRIPED If you say Y here, then your multiple devices driver will be able to - use the so-called raid0 mode, i.e. it will combine the harddisk + use the so-called raid0 mode, i.e. it will combine the hard disk partitions into one logical device in such a fashion as to fill them up evenly, one chunk here and one chunk there. This will increase the throughput rate if the partitions reside on distinct disks. If @@ -640,11 +730,14 @@ an error free MD (multiple device) to the higher levels of the kernel. In a set with N drives, the available space is the capacity of a single drive, and the set protects against a failure of (N - 1) - drives. raidtools, a set of user-space tools which create and - maintain RAID1/4/5 sets, is available at: + drives. + + Raidtools, a set of user-space tools which create and maintain + RAID1/4/5 sets, is available at: ftp://ftp.kernel.org/pub/linux/daemons/raid http://luthien.nuclecu.unam.mx/~miguel/raid - If you want to use such a RAID-1 set say Y. This code is also + + If you want to use such a RAID-1 set, say Y. This code is also available as a module called raid1.o ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read @@ -659,20 +752,40 @@ For a RAID-4 set, the parity blocks are present on a single drive, while a RAID-5 set distributes the parity across the drives in one of the available parity distribution methods. - raidtools, a set of user-space tools which create and maintain + + Raidtools, a set of user-space tools which create and maintain RAID1/4/5 sets, is available at: ftp://ftp.kernel.org/pub/linux/daemons/raid http://luthien.nuclecu.unam.mx/~miguel/raid + If you want to use such a RAID-5 set, say Y. This code is also available as a module called raid5.o ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. If unsure, say Y. +IDE card support +CONFIG_BLK_DEV_IDE_CARDS + On Acorn systems, enable this if you wish to use an IDE interface + expansion card. If you do not or are unsure, say N to this. + +ICS IDE interface +CONFIG_BLK_DEV_IDE_ICS + On Acorn systems, enable this if you wish to use the ICS IDE + interface card. This is not required for ICS partition support. + If you are unsure, say N to this. + +ADFS partition support +CONFIG_BLK_DEV_PART + This allows Linux on Acorn systems to determine its partitions in + the 'non-ADFS' partition area of the hard disk - usually located + after the ADFS partition. You are probably using this system, so + you should enable it. + Boot support (linear, striped) CONFIG_MD_BOOT - To boot with an initial linear or striped md device you have to - select this. For lilo and loadlin options see Documentation/md.txt. + To boot with an initial linear or striped md device you have to say + Y here. For lilo and loadlin options see Documentation/md.txt. Support for Deskstation RPC44 CONFIG_DESKSTATION_RPC44 @@ -685,11 +798,11 @@ Support for Mips Magnum 3000 CONFIG_MIPS_MAGNUM_3000 - To compile a Linux kernel that runs on these, say Y here. For - details about Linux on the MIPS architecture, check out the + To compile a Linux kernel that runs on these machines, say Y here. + For details about Linux on the MIPS architecture, check out the Linux/MIPS FAQ on the WWW at http://lena.fnet.fr/ (To browse the - WWW, you need to have access to a machine on the Internet that has - a program like lynx or netscape). + WWW, you need to have access to a machine on the Internet that has a + program like lynx or netscape). Support for Mips Magnum 4000 CONFIG_MIPS_MAGNUM_4000 @@ -743,101 +856,106 @@ Networking support CONFIG_NET - Unless you really know what you are doing, you should say Y - here. The reason is that some programs need kernel networking - support even if you configure a stand-alone machine that won't be - connected to any other computer. If you are upgrading from an older - kernel, you should consider updating your networking tools too - because changes in the kernel and the tools often go hand in hand; - see http://www.inka.de/sites/lina/linux/NetTools/index_en.html for - details. - -Fast switching (read help!) -CONFIG_NET_FASTROUTE - Enable direct NIC-to-NIC data transfers. - *** This option is NOT COMPATIBLE with several important *** - *** networking options: especially CONFIG*FIREWALL. *** - However, it will work with all options in CONFIG_IP_ADVANCED_ROUTER - section (except for CONFIG_IP_ROUTE_TOS). At the moment few of devices - supports it (tulip is one of them, modified 8390 can be found at - ftp://ftp.inr.ac.ru/ip-routing/fastroute-8390.tar.gz). - Remember, short cuts make long delays :-), say N. - -Forwarding between high speed interfaces -CONFIG_NET_HW_FLOWCONTROL - This option enables NIC hardware throttling during periods of - extremal congestion. At the moment only couple of device drivers - support it (really, one --- tulip, modified 8390 can be found - at ftp://ftp.inr.ac.ru/ip-routing/fastroute-8390.tar.gz). - Really, this option is applicable to any machine attached - to enough fast network, and even 10Mb NIC - is able to kill not very slow box, sort of 120MHz Pentium. - However, do not enable this option, if you did not experienced - any serious problems. + Unless you really know what you are doing, you should say Y here. + The reason is that some programs need kernel networking support even + when running on a stand-alone machine that isn't connected to any + other computer. If you are upgrading from an older kernel, you + should consider updating your networking tools too because changes + in the kernel and the tools often go hand in hand. The tools are + contained in the package net-tools, the location and version number + of which are given in Documentation/Changes. Network aliasing CONFIG_NET_ALIAS - This will allow you to set multiple network addresses on the same - low-level network device driver. Typically used for services that - act differently based on the address they listen on - (e.g. "multihosting" or "virtual domains" on the web server apache - and the ftp server wuftpd) or for connecting to different logical - networks through the same physical interface (most commonly an - ethernet networking card). This is the generic part, later when - configuring network protocol options you will be asked for - protocol-specific aliasing support, and you will have to say Y to at - least one of them. See Documentation/networking/alias.txt for more - info. If you need this feature (for any protocol, like IP) say Y; - if unsure, say N. + If you say Y here, you will be able to set multiple network + addresses on the same low-level network device driver. This is + typically used for services that act differently based on the + address they listen on (e.g. "multihosting" or "virtual domains" or + "virtual hosting services" on the web server apache and the ftp + server wuftpd -- read the Virtual-Services-HOWTO, available via FTP + (user: anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO) + or for connecting to different logical networks through the same + physical interface (most commonly an Ethernet networking card). See + Documentation/networking/alias.txt for more info. + + This is the generic part, later when configuring network protocol + options you will be asked for protocol-specific aliasing support, + and you will have to say Y to at least one of them, most likely to + "IP: aliasing support". If you need this feature (for any protocol, + like IP) say Y; if unsure, say N. Socket filtering CONFIG_FILTER The Linux Socket Filter is derived from the Berkeley Packet Filter. - Through Socket Filtering you can have the kernel decide whether the - data is good and to continue processing it. Linux Socket Filtering - works on all socket types except TCP for now. See the text file - linux/Documentation/networking/filter.txt for more information. + If you say Y here, user-space programs can attach a filter to any + socket and thereby tell the kernel that it should allow or disallow + certain types of data to get through the socket. Linux Socket + Filtering works on all socket types except TCP for now. See the text + file linux/Documentation/networking/filter.txt for more information. + If unsure, say N. Network firewalls CONFIG_FIREWALL A firewall is a computer which protects a local network from the rest of the world: all traffic to and from computers on the local - net is inspected by the firewall first, and sometimes blocked. If - you want to configure your Linux box as a firewall for a local - network, say Y here. If your local network is TCP/IP based, you will - then also have to say Y to "IP: firewalling", below. - You also need to say Y here and say Y to "IP firewalling" below in - order to be able to use IP masquerading (i.e. local computers can - chat with an outside host, but that outside host is made to think - that it is talking to the firewall box -- makes the local network - completely invisible and avoids the need to allocate valid IP host - addresses for the machines on the local net) and IP packet - accounting (keeping track of what is using all your network - bandwidth) and IP transparent proxying (makes the computers on the - local network think they're talking to a remote computer, while in - reality the traffic is redirected by your Linux firewall to a local - proxy server). Chances are that you should use this on every machine - being run as a router and not on any regular host. If unsure, say N. + net is inspected by the firewall first, and sometimes blocked or + modified. The type of firewall you'll get if you say Y here is + called a "packet filter": it can block network traffic based on + type, origin and destination. By contrast, "proxy-based" firewalls + are more secure but more intrusive and more bothersome to set up; + they inspect the network traffic much more closely, modify it and + have knowledge about the higher level protocols, which packet + filters lack. They also often require changes in the programs + running on the local clients. Proxy-based firewalls don't need + support by the kernel, but they are often combined with packet + filters, which only works if you say Y here. + + If you want to configure your Linux box as a packet filter firewall + for a local network, say Y here. If your local network is TCP/IP + based, you will then also have to say Y to "IP: firewalling", below. + + You also need to say Y here and to "IP firewalling" below in order + to be able to use IP masquerading (i.e. local computers can chat + with an outside host, but that outside host is made to think that it + is talking to the firewall box -- makes the local network completely + invisible to the outside world and avoids the need to allocate + globally valid IP host addresses for the machines on the local net) + and IP packet accounting (keeping track of what is using up all your + network bandwidth) and IP transparent proxying (makes the computers + on the local network think they're talking to a remote computer, + while in reality the traffic is redirected by your Linux firewall to + a local proxy server). + + Make sure to say N to "Fast switching" below if you intend to say Y + here. + + Chances are that you should say Y here for every machine which is + run as a router and N for every regular host. If unsure, say N. SYN flood protection CONFIG_SYN_COOKIES Normal TCP/IP networking is open to an attack known as "SYN flooding". This denial-of-service attack prevents legitimate remote users from being able to connect to your computer and requires very little work - from the attacker, who can operate from anywhere on the internet. - SYN cookies provide protection against this type of attack. With - this option turned on, the TCP/IP stack will use a cryptographic - challenge protocol known as SYN cookies to enable legitimate users - to continue to connect, even when your machine is under attack. - There is no need for the legitimate users to change their TCP/IP - software; SYN cookies work transparently to them. For technical - information about SYN cookies, check out + from the attacker, who can operate from anywhere on the Internet. + + SYN cookies provide protection against this type of attack. If you + say Y here, the TCP/IP stack will use a cryptographic challenge + protocol known as "SYN cookies" to enable legitimate users to + continue to connect, even when your machine is under attack. There + is no need for the legitimate users to change their TCP/IP software; + SYN cookies work transparently to them. For technical information + about SYN cookies, check out ftp://koobera.math.uic.edu/pub/docs/syncookies-archive. - If you say Y here, note that SYN cookies aren't enabled by default: - you need to add the command + + If you say Y here, note that SYN cookies aren't enabled by default; + you can enable them by saying Y to "/proc filesystem support" and + "Sysctl support" below and executing the command + echo 1 >/proc/sys/net/ipv4/tcp_syncookies - to one of your startup scripts (e.g. /etc/rc.local or - /etc/rc.d/rc.local) in addition. + + at boot time after the proc filesystem has been mounted. + If unsure, say Y. Sun floppy controller support @@ -849,10 +967,12 @@ CONFIG_ALPHA_AVANTI Find out what type of Alpha motherboard you have. You will probably want to read the Linux/Alpha homepage on the WWW at - http://www.azstarnet.com/~axplinux/ (To browse the WWW, you need to + http://www.azstarnet.com/~axplinux/ (to browse the WWW, you need to have access to a machine on the Internet that has a program like - lynx or netscape). For this question, it suffices to give a unique - prefix of the option you want to choose. The choices: + lynx or netscape) and also the Alpha-HOWTO, available via FTP (user: + anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. For this + question, it suffices to give a unique prefix of the option you want + to choose. The choices: ** Avanti: This is for Mustang (AS200), M3 (AS250), Avanti (AS400) AlphaStations. These usually come with a TGA graphics adapter, so you'll want to say Y to "TGA Console support", below, if you @@ -881,21 +1001,24 @@ CONFIG_ALPHA_SRM There are two different types of booting firmware on Alphas: SRM, which is command line driven, and ARC, which uses menus and arrow - keys. The usual way to load Linux on an Alpha machine is to use MILO + keys. Details about the Linux/Alpha booting process are contained in + the Linux/Alpha FAQ, accessible on the WWW from + http://www.azstarnet.com/~axplinux/ (To browse the WWW, you need to + have access to a machine on the Internet that has a program like + lynx or netscape). + + The usual way to load Linux on an Alpha machine is to use MILO (a bootloader that lets you pass command line parameters to the - kernel just like lilo does for the 386 architecture) which can be + kernel just like lilo does for the x86 architecture) which can be loaded either from ARC or can be installed directly as a permanent firmware replacement from floppy (which requires changing a certain jumper on the motherboard). If you want to do either of these, say N here. If MILO doesn't work on your system (true for Jensen motherboards), you can bypass it altogether and boot Linux directly from an SRM console; say Y here in order to do that. Note that you - won't be able to boot from an IDE disk using SRM. If unsure, say - N. Details about the Linux/Alpha booting process are contained in - the Linux/Alpha FAQ, accessible on the WWW from - http://www.azstarnet.com/~axplinux/ (To browse the WWW, you need to - have access to a machine on the Internet that has a program like - lynx or netscape). + won't be able to boot from an IDE disk using SRM. + + If unsure, say N. Non-standard serial port support CONFIG_SERIAL_NONSTANDARD @@ -921,12 +1044,15 @@ Support more than 4 serial ports CONFIG_SERIAL_MANY_PORTS - Enable this option if you have dumb serial boards other than the - four standard COM 1/2/3/4 ports. This may happen if you have an AST - FourPort, Accent Async, Boca, or other custom serial port hardware - which acts similar to standard serial port hardware. If you only - use the standard COM 1/2/3/4 ports, you can say N here to save some - memory. + Say Y here if you have dumb serial boards other than the four + standard COM 1/2/3/4 ports. This may happen if you have an AST + FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available + via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini), or other custom + serial port hardware which acts similar to standard serial port + hardware. If you only use the standard COM 1/2/3/4 ports, you can + say N here to save some memory. You can also say Y if you have an + "intelligent" multiport card such as Cyclades, Digiboards, etc. Support for sharing serial interrupts CONFIG_SERIAL_SHARE_IRQ @@ -934,6 +1060,19 @@ serial ports on the same board to share a single IRQ. To enable support for this in the serial driver, say Y here. +Autodetect IRQ on standard ports (unsafe) +CONFIG_SERIAL_DETECT_IRQ + Enable this option if you want the kernel to try to guess which IRQ + is configured during the boot sequence and you're too lazy to edit + the boot scripts to use the setserial command. This option can be + unsafe and should not be enabled on most machines. It is far + better to dynamically request autoconfiguration during the boot-time + scripts using the setserial command. You can change the IRQ and/or + request automatic IRQ configuration at any time by using the + "setserial" program. I wouldn't include this config option at all except + people keep bellyaching about it. I guess they are really are too lazy + to edit their boot scripts. :-) If unsure, say No. + Support special multiport boards CONFIG_SERIAL_MULTIPORT Some multiport serial ports have special ports which are used to @@ -952,8 +1091,7 @@ that implements the TGA interface (much like the VGA standard, but older TGA adapters are *not* VGA compatible). On such systems, you should say Y here so that the TGA driver rather than the standard - VGA driver is used. Note that, at this time, there is no X server - for these systems. If unsure, try N. + VGA driver is used. PCI support CONFIG_PCI @@ -961,9 +1099,10 @@ 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 - via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO, + via FTP (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO, contains valuable information about which PCI hardware does work under Linux and which doesn't. + If some of your PCI devices don't work and you get a warning during boot time ("man dmesg"), please follow the instructions at the top of include/linux/pci.h. @@ -973,9 +1112,10 @@ If you have enabled PCI bus support above, you probably want to allow Linux to use your PCI BIOS to detect the PCI devices and determine their configuration. Note: some old PCI motherboards have - BIOS bugs and may crash if this switch is enabled -- for such - motherboards, you should say N here and say Y to "PCI direct access - support" instead. + BIOS bugs and may crash if you say Y here -- for such motherboards, + you should say N here and say Y to "PCI direct access support" + instead. + Except for some special cases (embedded systems with no BIOS), you probably should say Y here. @@ -988,6 +1128,12 @@ works. If both PCI BIOS and direct PCI access are enabled, the use of BIOS is preferred. If unsure, say Y. +PCI quirks +CONFIG_PCI_QUIRKS + If you have a broken BIOS, it may fail to set up the PCI bus in a + correct or optimal fashion. If your BIOS is fine you can say N here + for a very slightly smaller kernel. If unsure, say Y. + PCI bridge optimization (experimental) CONFIG_PCI_OPTIMIZE This can improve access times for some hardware devices if you have @@ -995,6 +1141,21 @@ Y if you think it might help, but try turning it off if you experience any problems with the PCI bus. N is the safe answer. +Backward-compatible /proc/pci +CONFIG_PCI_OLD_PROC + Older kernels supported a /proc/pci file containing brief textual + descriptions of all PCI devices in the system. Several programs + tried to parse this file, so it became almost impossible to add new + fields without breaking compatibility. So a new /proc interface to + PCI (/proc/bus/pci) has been implemented and the old one is + supported for compatibility reasons only; you'll get the old one (in + addition to the new one) if you say Y here and to "/proc filesystem + support", below. If unsure, say Y. + +If you say Y here and to the "/proc filesystem support" below, you + will get a directory /proc/pci with information about your PCI + hardware. If unsure, say Y. + MCA support CONFIG_MCA MicroChannel Architecture is found in some IBM PS/2 machines and @@ -1005,56 +1166,74 @@ System V IPC CONFIG_SYSVIPC - Inter Process Communication is a suite of library functions and system - calls which let processes (= running programs) synchronize and - exchange information. It is generally considered to be a good thing, - and some programs won't run unless you say Y here. In particular, - if you want to run the DOS emulator dosemu under Linux (read the - DOSEMU-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO), you'll need to say Y here. You - can find documentation about IPC in ipc.info, which is contained in - sunsite.unc.edu:/pub/Linux/docs/man/info.tar.gz (extract with "tar - xzvf filename"). These docs are in the info format which is used to - document GNU software and can be read from within emacs ("Ctrl-h i") - or with the program info ("man info"). Saying Y here enlarges - your kernel by about 7kB. Just say Y. - + Inter Process Communication is a suite of library functions and + system calls which let processes (= running programs) synchronize + and exchange information. It is generally considered to be a good + thing, and some programs won't run unless you say Y here. In + particular, if you want to run the DOS emulator dosemu under Linux + (read the DOSEMU-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO), you'll need to say Y + here. + + You can find documentation about IPC with "info ipc" and also in + section 6.4 of the Linux Programmer's Guide, available via FTP + (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/LDP/programmers-guide. + + Saying Y here enlarges your kernel by about 7kB. Just say Y. + +BSD Process Accounting +CONFIG_BSD_PROCESS_ACCT + If you say Y here, a user level program will be able to instruct the + kernel (via a special system call) to write process accounting + information to a file: whenever a process exits, information about + that process will be appended to the file by the kernel. The + information includes things such as creation time, owning user, + command name, memory usage, controlling terminal etc. (the complete + list is in the struct acct in include/linux/acct.h). It is up to the + user level program to do useful things with this information. This + is generally a good idea, so say Y. + Sysctl support CONFIG_SYSCTL - The sysctl interface provides a means of dynamically changing certain - kernel parameters and variables on the fly without requiring a - recompile of the kernel or reboot of the system. The primary interface - consists of a system call, but if the /proc filesystem is enabled, a - tree of modifiable sysctl entries will be generated beneath the - /proc/sys directory. Note that enabling this option will enlarge the - kernel by at least 8kB. As it is generally a good thing, you probably - want to say Y here unless building a kernel for install/rescue disks + The sysctl interface provides a means of dynamically changing + certain kernel parameters and variables on the fly without requiring + a recompile of the kernel or reboot of the system. The primary + interface consists of a system call, but if the /proc filesystem is + enabled, a tree of modifiable sysctl entries will be generated + beneath the /proc/sys directory. They are explained in the files in + Documentation/sysctl/. Note that enabling this option will enlarge + the kernel by at least 8kB. As it is generally a good thing, you + should say Y here unless building a kernel for install/rescue disks or your system is very limited in memory. Kernel support for ELF binaries CONFIG_BINFMT_ELF ELF (Executable and Linkable Format) is a format for libraries and executables used across different architectures and operating - systems. This option will enable your kernel to run ELF binaries and - enlarge it by about 2kB. ELF support under Linux is quickly - replacing the traditional Linux a.out formats (QMAGIC and ZMAGIC) + systems. Saying Y here will enable your kernel to run ELF binaries and + enlarge it by about 2kB. ELF support under Linux has now all but + replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC) because it is portable (this does *not* mean that you will be able to run executables from different architectures or operating systems!) and makes building run-time libraries very easy. Many new executables are distributed solely in ELF format. You definitely - want to say Y here. Information about ELF is on the WWW at + want to say Y here. + + Information about ELF is on the WWW at http://www.sjc.ox.ac.uk/users/barlow/elf-howto.html (To browse the WWW, you need to have access to a machine on the Internet that has a - programs like lynx or netscape). If you find that after upgrading + program like lynx or netscape). If you find that after upgrading from Linux kernel 1.2 and saying Y here, you still can't run any ELF binaries (they just crash), then you'll have to install the newest ELF runtime libraries, including ld.so (check the file - Documentation/Changes for location and latest version). If you want - to compile this 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. The module will be called - binfmt_elf.o. Saying M or N here is dangerous because some crucial - programs on your system might be in ELF format. + Documentation/Changes for location and latest version). + + If you want to compile this 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. The module will be + called binfmt_elf.o. Saying M or N here is dangerous because some + crucial programs on your system might be in ELF format. Kernel support for A.OUT binaries CONFIG_BINFMT_AOUT @@ -1062,6 +1241,7 @@ executables used in the earliest versions of UNIX. Linux used the a.out formats QMAGIC and ZMAGIC until they were replaced with the ELF format. + As more and more programs are converted to ELF, the use for a.out will gradually diminish. If you disable this option it will reduce your kernel by one page. This is not much and by itself does not @@ -1081,13 +1261,16 @@ JAVA(tm) is an object oriented programming language developed by SUN; JAVA programs are compiled into "JAVA bytecode" binaries which can then be interpreted by run time systems on many different - operating systems. These JAVA binaries are becoming a universal - executable format. If you want to execute JAVA binaries, read the - Java on Linux HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. You will then need to install - the run time system contained in the Java Developers Kit (JDK) as - described in the HOWTO. This is completely independent of the Linux - kernel and you do NOT need to say Y here for this to work. + architectures and operating systems. These JAVA binaries are + becoming a universal executable format. + + If you want to execute JAVA binaries, read the Java on Linux HOWTO, + available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. You will then need to + install the run time system contained in the Java Developers Kit + (JDK) as described in the HOWTO. This is completely independent of + the Linux kernel and you do NOT need to say Y here for this to work. + Saying Y here allows you to execute a JAVA bytecode binary just like any other Linux program: by simply typing in its name. (You also need to have the JDK installed for this to work). As more and more @@ -1095,18 +1278,21 @@ increase. You can even execute HTML files containing JAVA applets (= JAVA binaries) if those files start with the string "". If you want to use this, say Y here and read - Documentation/java.txt. If you disable this option it will reduce - your kernel by about 4kB. This is not much and by itself does not - warrant removing support. However its removal is a good idea if you - do not have the JDK installed. You may answer M for module support - and later load the module when you install the JDK or find an - interesting Java program that you can't live without. The module - will be called binfmt_java.o. + Documentation/java.txt. + + If you disable this option it will reduce your kernel by about 4kB. + This is not much and by itself does not warrant removing support. + However its removal is a good idea if you do not have the JDK + installed. You may answer M for module support and later load the + module when you install the JDK or find an interesting Java program + that you can't live without. The module will be called + binfmt_java.o. + The complete functionality of this Java support is also provided by the more general option "Kernel support for MISC binaries", - below. This option is therefore considered obsolete and you probably - want to say N here and Y to "Kernel support for MISC binaries" if - you're interested in Java. + below. This option is therefore considered obsolete and you should + say N here and Y to "Kernel support for MISC binaries" if you're + interested in transparently executing Java programs. Kernel support for Linux/Intel ELF binaries CONFIG_BINFMT_EM86 @@ -1121,29 +1307,36 @@ CONFIG_BINFMT_MISC This enables the possibility to plug wrapper-driven binary formats into the kernel. You will like this especially when you use programs - that need an interpreter to run like Java, Python or - Emacs-Lisp. Once you have registered such a binary class with the - kernel, you can start such a program simply by typing in its name; - Linux will feed it to the correct interpreter. If you say Y here, - you won't need "Kernel support for JAVA binaries" + that need an interpreter to run like Java, Python or Emacs-Lisp. + Once you have registered such a binary class with the kernel, you + can start such a program simply by typing in its name; Linux will + feed it to the correct interpreter. + + If you say Y here, you won't need "Kernel support for JAVA binaries" (CONFIG_BINFMT_JAVA) or "Kernel support for Linux/Intel ELF binaries" (CONFIG_BINFMT_EM86), as this is a more general solution. + You can do other nice things, too. Read - Documentation/binfmt_misc.txt to learn how to use this feature. + Documentation/binfmt_misc.txt to learn how to use this feature, and + Documentation/java.txt for information about how to include Java + support. + You must enable the "proc filesystem support" (CONFIG_PROC_FS) to use this part of the kernel. + You may answer M for module support and later load the module when - you have use for it. - If you don't know what to answer at this point, say Y. + you have use for it; the module is called binfmt_misc.o. If you + don't know what to answer at this point, say Y. Solaris binary emulation CONFIG_SOLARIS_EMUL This is experimental code which will enable you to run (many) - Solaris binaries on your Sparc Linux machine. This code 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 solaris.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + Solaris binaries on your Sparc Linux machine. + + This code 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 solaris.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Processor family CONFIG_M386 @@ -1155,10 +1348,26 @@ (=586) and Pentium Pro (=686). In rare cases, it can make sense to specify "Pentium" even if running on a 486: the kernel will be smaller but slower. - If you have a multiple processor machine and want Linux to use all - the processors in parallel, set the SMP variable in the toplevel - kernel Makefile. - If you don't know what to do, say "386". + + If you have a single processor machine, make sure that the line + "SMP=1" at the top of the toplevel kernel Makefile is commented out; + if you have a multi processor machine and want Linux to use all the + processors in parallel (Symmetric Multi Processing), make sure that + the line "SMP=1" is not commented out and read Documentation/smp and + Documentation/IO-APIC.txt and the SMP-FAQ on the WWW at + http://www.irisa.fr/prive/mentre/smp-faq/ (to browse the WWW, you + need to have access to a machine on the Internet that has a program + like lynx or netscape). People using multiprocessor machines should + also say Y to "Enhanced Real Time Clock Support", below. + + If you want to compile a kernel that should work on both single + processor and multi processor machines, it is possible to set SMP=1. + The "Advanced Power Management" code (see configuration option + below) will not work in that scenario, though. In addition, the + kernel will be slower on single processor machines, and other + problems may appear, so this is not recommended. + + If you don't know what to do, choose "386". Video mode selection support CONFIG_VIDEO_SELECT @@ -1170,38 +1379,52 @@ "vga=ask" which brings up a video mode menu on kernel startup. Try "man bootparam" or see the documentation of your boot loader about how to pass options to the kernel. The lilo procedure is also - explained in the SCSI-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Read Documentation/svga.txt - for more information about the Video mode selection support. If - unsure, say N. + explained in the SCSI-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Read + Documentation/svga.txt for more information about the Video mode + selection support. If unsure, say N. Parallel-port support CONFIG_PARPORT - If you want to use devices connected to your parallel port (the - connector at the computers with 25 holes), e.g. printer, Zip drive, - PLIP link etc., then you need to enable this option; please read - Documentation/parport.txt and drivers/misc/BUGS-parport. For - extensive information about drivers for many devices attaching to - the parallel port see http://www.torque.net/linux-pp.html on the WWW - (To browse the WWW, you need to have access to a machine on the - Internet that has a programs like lynx or netscape). It is possible - to share a single parallel port among several devices and it is safe - to compile all the corresponding drivers into the kernel. If you - want to compile parallel port support 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. The module - will be called parport.o. If you have more than one parallel port - and want to specify which port and IRQ to use by this driver at - module load time, read Documentation/networking/net-modules.txt. + If you want to use devices connected to your machine's parallel port + (the connector at the computer with 25 holes), e.g. printer, Zip + drive, PLIP link (Parallel Line Internet Protocol is mainly used to + create a mini network by connecting the parallel ports of two local + machines) etc., then you need to say Y here; please read + Documentation/parport.txt and drivers/misc/BUGS-parport. + + For extensive information about drivers for many devices attaching + to the parallel port see http://www.torque.net/linux-pp.html on the + WWW (To browse the WWW, you need to have access to a machine on the + Internet that has a program like lynx or netscape). + + It is possible to share a single parallel port among several devices + and it is safe to compile all the corresponding drivers into the + kernel. If you want to compile parallel port support 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. + The module will be called parport.o. If you have more than one + parallel port and want to specify which port and IRQ to be used by + this driver at module load time, read + Documentation/networking/net-modules.txt. + + If unsure, say Y. PC-style hardware CONFIG_PARPORT_PC - You should enable this option if you have a PC-style parallel - port. All IBM PC compatible computers and some Alphas have PC-style - parallel ports. This code is also available as a module. If you - want to it as a module ( = code which can be inserted in and removed - from the running kernel whenever you want), say M here and read + You should say Y here if you have a PC-style parallel port. All IBM + PC compatible computers and some Alphas have PC-style parallel + ports. This code is also available as a module. If you want to it 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. The module will be called parport_pc.o. + If unsure, say Y. + +Support foreign hardware +CONFIG_PARPORT_OTHER + Say Y here if you want to be able to load driver modules to support + other non-standard types of parallel ports. This causes a + performance loss, so most people say N. Sun Ultra/AX-style hardware CONFIG_PARPORT_AX @@ -1209,25 +1432,6 @@ Ultra/AX machines. This code is also available as a module (say M), called parport_ax.o. If in doubt, saying N is the safe plan. -Foreign parallel hardware -CONFIG_PARPORT_OTHER - Say Y here if you want to be able to load driver modules to support - other types of parallel port. This causes a performance loss, so most - people say N. - -Compile the kernel into the ELF object format -CONFIG_ELF_KERNEL - ELF (Executable and Linkable Format) is a format for libraries and - executables used across different architectures and operating - systems. This option will cause the resulting kernel to be in ELF - format, which is generally desirable, so say Y. However, it only - works if your compiler and linker can produce ELF code. - -Is your ELF compiler an extra compiler -CONFIG_EXTRA_ELF_COMPILER - If you have a linuxelf-gcc as opposed to linux-gcc, say Y, otherwise - N. - Generate little endian code CONFIG_CPU_LITTLE_ENDIAN If your compiler is mipsel-linux-gcc or mipsel-linuxelf-gcc (as @@ -1243,85 +1447,21 @@ Auto-probe for parallel devices CONFIG_PNP_PARPORT - Some IEEE-1284 conformant parallel-port devices can identify + Some IEEE-1284 conforming parallel-port devices can identify themselves when requested. Say Y to enable this feature, or M to compile it as a module (parport_ieee1284.o). If in doubt, say N. -Plug and Play subsystem (EXPERIMENTAL) -CONFIG_PNP_DRV - This enables support for the new Plug-and-Play (or PnP) Linux - subsystems. This support is required for PnP ISA support, and for PnP - Legacy support. User-mode utilities for this support may be found at - http://www.lpsg.demon.co.uk/pnp-linux.html. - -PnP resource management -CONFIG_KERNEL_PNP_RESOURCE - This option will cause the new PnP generic resource management - routines to be used instead of the old routines request_xxx and - free_xxx. Emulation routines are put in place to support the old - calling style. This code support masks for IO decoding (required for - Plug and Play devices). There is no need to enable this option unless - you want to - these features will still be used where they are needed. - However, enabling it will reduce your kernel size slightly, and also - allow you to test this code more extensively. - -Support for boot-loaded PnP configuration (RECOMMENDED) -CONFIG_PNP_BLDCONFIG - This will enable support for preloading data about the configuration - of any Plug-and-Play devices in the system into the kernel at boot - time, which means that any devices required at boot can be configured - at this time manually. Say Y unless you have a reason not to. - -PnP ISA support -CONFIG_PNP_ISA - This option is required to allow the Linux PnP subsystem to handle - Plug and Play ISA devices. This includes full support for PnP ISA, - including the I/O range check feature. - -PnP ISA backwards-compatibility support -CONFIG_PNP_ISA_COMPAT - This option will enable partial backwards compatibility with drivers - written using older versions (up to the last 0.2.x) of the PnP driver - written by Tom Lees . - -PnP Legacy device support -CONFIG_PNP_LEGACY - Before PnP ISA was standardized, several "jumperless", or - "soft-configurable" boards were finding there way onto the market. - These cards used somewhat proprietary mechanisms for configuring - IRQs, DMAs, IO addresses, and memory ranges. These devices (mainly - network cards, but also some sound card) can be configured as any - other PnP device can by saying Y here, if appropriate drivers - for these devices are available. - -PnP sysctl support (RECOMMENDED) -CONFIG_PNP_SYSCTL - This option enables support for the user-mode interface to the - kernel-mode PnP systems. It requires that you said Y to "Sysctl - support" above. The only reason you might want to switch this off - is if you aren't going to use user-mode utilities to configure PnP, - and you want to save a couple of kilobytes of kernel space. Answer Y - unless you know what you are doing. User-mode utilities and a - library for accessing this interface may be found at - http://www.lpsg.demon.co.uk/pnp-linux.html. - -PnP auto-configures all devices on startup -CONFIG_PNP_BOOTINIT - This option will allow the PnP subsystem to automatically configure - all the PnP devices it finds upon system startup (or at least - attempt to). This is useful if you have older driver which do not use - the Linux-PnP system to configure PnP devices, and which you need - configured by PnP in order to use. - Enable loadable module support CONFIG_MODULES - Kernel modules are small pieces of compiled code which can be - inserted in or removed from the running kernel, using the - programs insmod and rmmod. This is described in the file - Documentation/modules.txt. Modules can be device drivers, file - systems, binary executable formats, and so on. If you think that - you may want to make use of modules with this kernel in the future, - then say Y here. If unsure, say Y. + Kernel modules are small pieces of compiled code which can be + inserted in or removed from the running kernel, using the programs + insmod and rmmod. This is described in the file + Documentation/modules.txt, including the fact that you have to say + "make modules" in order to compile the modules that you chose during + kernel configuration. Modules can be device drivers, file systems, + binary executable formats, and so on. If you think that you may want + to make use of modules with this kernel in the future, then say Y + here. If unsure, say Y. Set version information on all symbols for modules CONFIG_MODVERSIONS @@ -1339,10 +1479,14 @@ Kernel module loader support CONFIG_KMOD - This feature allows the kernel to load modules for itself. When - a part of the kernel needs a module, it runs modprobe with the - appropriate arguments. Say Y here and read about configuring it - in Documentation/kmod.txt. (this is a replacement of kerneld) + Normally when you have selected some drivers and/or filesystems to + be created as loadable modules, you also have the responsibility to + load the corresponding modules (using the programs insmod or + modprobe) before you can use them. If you say Y here however, the + kernel will be able to load modules for itself: when a part of the + kernel needs a module, it runs modprobe with the appropriate + arguments. (This is a replacement for kerneld.) Say Y here and read + about configuring it in Documentation/kmod.txt. ARP daemon support (EXPERIMENTAL) CONFIG_ARPD @@ -1354,14 +1498,18 @@ resolution (ARP) cache inside the kernel works well. However, maintaining an internal ARP cache does not work well for very large switched networks, and will use a lot of kernel memory if TCP/IP - connections are made to many machines on the network. By saying Y - here, the kernel's internal ARP cache will never grow to more than - 256 entries (the oldest entries are expired in a LIFO manner) and - communication will be attempted with an external ARP daemon, arpd. - This code is still experimental. If you do say Y here, you should - obtain a copy of arpd from http://www.loran.com/~layes/arpd/index.html, - and you should say Y to "Kernel/User network link driver", below. - If unsure, say N. + connections are made to many machines on the network. + + If you say Y here, the kernel's internal ARP cache will never grow + to more than 256 entries (the oldest entries are expired in a LIFO + manner) and communication will be attempted with the user space ARP + daemon arpd. Arpd then answers the address resolution request either + from its own cache or by asking the net. + + This code is still experimental. If you do say Y here, you should + obtain a copy of arpd from + http://www.loran.com/~layes/arpd/index.html, and you should also say + Y to "Kernel/User network link driver", below. If unsure, say N. TCP/IP networking CONFIG_INET @@ -1375,6 +1523,13 @@ program which gives you almost full Internet connectivity if you have a regular dial up shell account on some Internet connected Unix computer. Read http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html). + + If you say Y here and also to "/proc filesystem support" and "Sysctl + support" below, you can change various aspects of the behavior of + the TCP/IP code by writing to the (virtual) files in + /proc/sys/net/ipv4/*; the options are explained in the file + Documentation/Networking/ip-sysctl.txt. + Short answer: say Y. IP: multicasting @@ -1382,7 +1537,7 @@ This is code for addressing several networked computers at once, enlarging your kernel by about 2 kB. You need multicasting if you intend to participate in the MBONE, a high bandwidth network on top - of the internet which carries audio and video broadcasts. More + of the Internet which carries audio and video broadcasts. More information about the MBONE is on the WWW at http://www.best.com/~prince/techinfo/mbone.html (to browse the WWW, you need to have access to a machine on the Internet that has a @@ -1397,14 +1552,19 @@ computer that forwards and redistributes network packets, say Y; you will then be presented with several options that allow more precise control about the routing process. + The answer to this question won't directly affect the kernel: saying N will just cause this configure script to skip all the questions about advanced routing. - Note that your box can only act as a router if you say Y to "/proc - filesystem support" below and if you enable IP forwarding in your - kernel; you can do this from within a boot-time script like so: - echo "1" > /proc/sys/net/ipv4/ip_forwarding - after the /proc filesystem has been mounted. + + Note that your box can only act as a router if you enable IP + forwarding in your kernel; you can do that by saying Y to "/proc + filesystem support" and "Sysctl support" below and executing the line + + echo "1" > /proc/sys/net/ipv4/ip_forward + + at boot time after the /proc filesystem has been mounted. + If unsure, say N here. IP: policy routing @@ -1439,7 +1599,7 @@ verbose messages regarding the routing, for example warnings about received packets which look strange and could be evidence of an attack or a misconfigured system somewhere. The information is - handled by the klogd demon which is responsible for kernel messages + handled by the klogd daemon which is responsible for kernel messages ("man klogd"). IP: large routing tables @@ -1455,43 +1615,35 @@ IP: optimize as router not host CONFIG_IP_ROUTER Some Linux network drivers use a technique called copy and checksum - to optimize host performance. For a machine which acts a router most - of the time and is forwarding most packets to another host this is - however a loss. If you say Y here, copy and checksum will be + to optimize host performance. For a machine which acts as a router + most of the time and is forwarding most packets to another host this + is however a loss. If you say Y here, copy and checksum will be switched off. In the future, it may make other changes which optimize for router operation. - Note that your box can only act as a router if you say Y to "/proc - filesystem support" below and if you enable IP forwarding in your - kernel; you can do this from within a boot-time script like so: - echo "1" > /proc/sys/net/ipv4/ip_forwarding - after the /proc filesystem has been mounted. If unsure, say N here. + + Note that your box can only act as a router if you enable IP + forwarding in your kernel; you can do that by saying Y to "/proc + filesystem support" and "Sysctl support" below and executing the line + + echo "1" > /proc/sys/net/ipv4/ip_forward + + at boot time after the /proc filesystem has been mounted. + + If unsure, say N here. IP: firewalling CONFIG_IP_FIREWALL - If you want to configure your Linux box as a firewall for a local - TCP/IP based network, say Y here. This will enlarge your kernel by - about 2kB. You may need to read the FIREWALL-HOWTO, available via - ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also, you will need the - ipfwadm tool (available via ftp (user: anonymous) from - ftp.xos.nl/pub/linux/ipfwadm/) to allow selective blocking of - internet traffic based on type, origin and destination. The - firewalling code will only work if you say Y to "/proc filesystem - support" below and IP forwarding is enabled in your kernel; do this - from within a boot-time script like so: - echo "1" > /proc/sys/net/ipv4/ip_forwarding - after the /proc filesystem has been mounted. - You need to say Y to "IP firewalling" in order to be able to use IP - masquerading (masquerading means that local computers can chat with - an outside host, but that outside host is made to think that it is - talking to the firewall box -- makes the local network completely - invisible and avoids the need to allocate valid IP host addresses - for the machines on the local net) and IP packet accounting (keeping - track of what is using all your network bandwidth) and IP - transparent proxying (makes the computers on the local network think - they're talking to a remote computer, while in reality the traffic - is redirected by your Linux firewall to a local proxy server). If - unsure, say N. + Complete rewrite of IP firewalling support. Requires new ipfwadm. + This was previously called CONFIG_IP_FIREWALL_CHAINS in patch sets + released by the author, but now it is and will be the standard + firewalling implementation for 2.1.x and onward. + + More powerful than the old IP firewalling but also provides similar + structure to original firewalling for experienced users. IP + accounting and packet logging are automatically included with firewall + chains, so you don't need them them if you say Y here. See + http://www.adelaide.net.au/~rustcorp for new ipfwadm (called ipchains). + If in doubt, say N here. IP: firewall packet netlink device CONFIG_IP_FIREWALL_NETLINK @@ -1503,17 +1655,8 @@ /dev with major number 36 and minor number 3 using mknod ("man mknod"), and you need (to write) a program that reads from that device and takes appropriate action. - -IP: accounting -CONFIG_IP_ACCT - This keeps track of your IP network traffic and produces some - statistics. Usually, you only want to say Y here if your box will be - a router or a firewall for some local network. For the latter, you - need to say Y to IP firewalling. The data is accessible with "cat - /proc/net/ip_acct", so you want to say Y to the /proc filesystem - below, if you say Y here. To specify what exactly should be - recorded, you need the tool ipfwadm (available via ftp (user: - anonymous) from ftp.xos.nl/pub/linux/ipfwadm/). + With the current generic firewalling chains you can specify which + packets go to this device, as well as how many bytes. IP: kernel level autoconfiguration CONFIG_IP_PNP @@ -1534,9 +1677,9 @@ say Y here. In case the boot ROM of your network card was designed for booting Linux and does BOOTP itself, providing all necessary information on the kernel command line, you can say N here. If - unsure, say Y. Note that in case you want to use BOOTP, a BOOTP - server must be operating on your network. Read - Documentation/nfsroot.txt for details. + unsure, say Y. Note that if you want to use BOOTP, a BOOTP server + must be operating on your network. Read Documentation/nfsroot.txt + for details. RARP support CONFIG_IP_PNP_RARP @@ -1544,8 +1687,8 @@ some other computer over the net via NFS and you want the IP address of your computer to be discovered automatically at boot time using the RARP protocol (an older protocol which is being obsoleted by - BOOTP and DHCP), say Y here. Note that in case you want to use RARP, - a RARP server must be operating on your network. Read + BOOTP and DHCP), say Y here. Note that if you want to use RARP, a + RARP server must be operating on your network. Read Documentation/nfsroot.txt for details. IP: tunneling @@ -1558,10 +1701,11 @@ appear on a different network than it physically is, or to use mobile-IP facilities (allowing laptops to seamlessly move between networks without changing their IP addresses; check out - http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html). Saying Y - to this option will produce two modules ( = code which can be - inserted in and removed from the running kernel whenever you want), - one encapsulator called tunnel.o and one decapsulator called + http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html). + + Saying Y to this option will produce two modules ( = code which can + be inserted in and removed from the running kernel whenever you + want), one encapsulator called tunnel.o and one decapsulator called ipip.o. You can read details in drivers/net/README.tunnel. Most people won't need this and can say N. @@ -1571,23 +1715,23 @@ another protocol and sending it over a channel that understands the encapsulating protocol. This particular tunneling driver implements GRE (Generic Routing Encapsulation) and at this time allows - encapsulating of IPv4 or IPv6 over existing IPv4 - infrastructure. This driver is useful if the other endpoint is a - Cisco router: Cisco likes GRE much better than the other Linux - tunneling driver ("IP: tunneling" above). In addition, GRE allows - multicast redistribution through the tunnel. + encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure. + This driver is useful if the other endpoint is a Cisco router: Cisco + likes GRE much better than the other Linux tunneling driver ("IP: + tunneling" above). In addition, GRE allows multicast redistribution + through the tunnel. IP: broadcast GRE over IP CONFIG_NET_IPGRE_BROADCAST One application of GRE/IP is to construct a broadcast WAN (Wide Area - Network), which looks like a normal1 ethernet LAN (Local Area + Network), which looks like a normal Ethernet LAN (Local Area Network), but can be distributed all over the Internet. If you want to do that, say Y here and to "IP: multicast routing" below. IP: firewall packet logging CONFIG_IP_FIREWALL_VERBOSE This gives you information about what your firewall did with - packets it received. The information is handled by the klogd demon + packets it received. The information is handled by the klogd daemon which is responsible for kernel messages ("man klogd"). IP: transparent proxying @@ -1613,20 +1757,34 @@ local net are completely invisible to the outside world, even though they can reach the outside and can be reached. This makes it possible to have the computers on the local network participate on - the internet even if they don't have officially registered IP - addresses. (This last problem can also be solved by connecting the + the Internet even if they don't have officially registered IP + addresses. (This last problem can also be solved by connecting the Linux box to the Internet using SLiRP [SLiRP is a SLIP/PPP emulator that works if you have a regular dial up shell account on some UNIX - computer; get it via ftp (user: anonymous) from - ftp://sunsite.unc.edu/pub/Linux/system/network/serial/].) Details - on how to set things up are contained in the IP Masquerading FAQ, - available at http://www.indyramp.com/masq/. If you say Y here, then - the modules ip_masq_ftp.o (for ftp transfers through the firewall), - ip_masq_irc.o (for irc chats through the firewall), and - ip_masq_raudio.o (for realaudio downloads through the firewall) will - automatically be compiled. Modules are pieces of code which can be - inserted in and removed from the running kernel whenever you want; - read Documentation/modules.txt for details. + computer; get it via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/system/network/serial/ ].) + + The IP masquerading code will only work if IP forwarding is enabled + in your kernel; you can do this by saying Y to "/proc + filesystem support" and "Sysctl support" below and then executing a + line like + + echo "1" > /proc/sys/net/ipv4/ip_forward + + from a boot time script after the /proc filesystem has been mounted. + + Details on how to set things up are contained in the IP Masquerade + mini-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini. + + If you say Y here, you should also say Y to "IP: always defragment", + below. If you say Y here, then the modules ip_masq_ftp.o (for ftp + transfers through the firewall), ip_masq_irc.o (for irc chats + through the firewall), and ip_masq_raudio.o (for realaudio downloads + through the firewall) will automatically be compiled. Modules are + pieces of code which can be inserted in and removed from the running + kernel whenever you want; read Documentation/modules.txt for + details. IP: ICMP masquerading CONFIG_IP_MASQUERADE_ICMP @@ -1635,22 +1793,24 @@ connections). This option adds additional support for masquerading ICMP packets, such as ping or the probes used by the Windows 95 tracert program. + If you want this, say Y. -IP: ipautofw masquerade support -CONFIG_IP_MASQUERADE_IPAUTOFW (Experimental) +IP: ipautofw masquerade support (Experimental) +CONFIG_IP_MASQUERADE_IPAUTOFW ipautofw is a program by Richard Lynch allowing additional support for masquerading protocols which do not (as yet) have their own - additional protocol helpers. Information and source for ipautofw is - available via ftp (user: anonymous) from + protocol helpers. Information and source for ipautofw is available + via FTP (user: anonymous) from ftp://ftp.netis.com/pub/members/rlynch/ + The ipautofw code is still under development and so is currently - marked EXPERIMENTAL. - If you want this, say Y. This code 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 ip_masq_autofw.o. If - you want to compile it as a module, say M here and read - Documentation/modules.txt. + marked EXPERIMENTAL. If you want to try it, say Y. + + This code 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 ip_masq_autofw.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. IP: ipportfw masquerade support CONFIG_IP_MASQUERADE_IPPORTFW @@ -1661,55 +1821,64 @@ http://www.monmouth.demon.co.uk/ipsubs/portforwarding.html (to browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or netscape). + The portfw code is still under development and so is currently - marked EXPERIMENTAL. - If you want this, say Y. This code 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 ip_masq_portfw.o. If - you want to compile it as a module, say M here and read - Documentation/modules.txt. + marked EXPERIMENTAL. If you want to try it, say Y. + + This code 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 ip_masq_portfw.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. IP: always defragment CONFIG_IP_ALWAYS_DEFRAG This option means that all incoming fragments (= parts of IP packets that arose when some host between origin and destination decided - that the IP packets were too large and cut them in pieces) will be + that the IP packets were too large and cut them into pieces) will be reassembled (defragmented) before being processed, even if they are - about to be forwarded. This option is highly recommended if you - have said Y to "IP: masquerading" because that facility requires - that second and further fragments can be related to TCP or UDP port - numbers, which are only stored in the first fragment. When using - "IP: firewalling" support , you might also want to say Y here, to - have a more reliable firewall (otherwise second and further - fragments will always be accepted by the firewall). When using "IP: - transparent proxying", this option is implicit, although it is safe - to say Y here. Do not say Y to this option except when running - either a firewall that is the sole link to your network or a - transparent proxy. Never ever say Y to this for a normal router or - host. + about to be forwarded. + + This option is highly recommended if you have said Y to "IP: + masquerading" because that facility requires that second and further + fragments can be related to TCP or UDP port numbers, which are only + stored in the first fragment. When using "IP: firewalling" support , + you might also want to say Y here, to have a more reliable firewall + (otherwise second and further fragments will always be accepted by + the firewall). When using "IP: transparent proxying", this option is + implicit, although it is safe to say Y here. Do not say Y to this + option except when running either a firewall that is the sole link + to your network or a transparent proxy. Never ever say Y to this for + a normal router or host. IP: aliasing support CONFIG_IP_ALIAS Sometimes it is useful to give several IP addresses to a single - physical network interface (= serial port or ethernet card). The + physical network interface (= serial port or Ethernet card). The most common case is that you want to serve different WWW or ftp documents to the outside according to which of your host names was used to connect to you. This is called "multihosting" or "virtual - domains" and is explained in detail on the WWW at - http://www.thesphere.com/~dlp/TwoServers/ (to browse the WWW, you - need to have access to a machine on the Internet that has a program - like lynx or netscape). Another scenario would be that there are two - logical networks living on your local ethernet and you want to - access them both with the same ethernet card. The configuration of - these alias addresses is done with a special name syntax explained - in Documentation/networking/alias.txt. If you want this, say Y. Most - people don't need it and say N. + domains" or "virtual hosting services" and is explained in detail on + the WWW at http://www.thesphere.com/~dlp/TwoServers/ (to browse the + WWW, you need to have access to a machine on the Internet that has a + program like lynx or netscape) and also in the + Virtual-Hosting-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Another scenario would be + that there are two logical networks living on your local Ethernet + and you want to access them both with the same Ethernet card. This + can be done if you say Y here. + + The configuration of these alias addresses is done with a special + name syntax explained in Documentation/networking/alias.txt and in + the IP-Alias mini-HOWTO. If you want this, say Y. Most people don't + need it and say N. IP: multicast routing CONFIG_IP_MROUTE This is used if you want your machine to act as a router for IP packets that have several destination addresses. It is needed on the - MBONE, a high bandwidth network on top of the internet which carries + MBONE, a high bandwidth network on top of the Internet which carries audio and video broadcasts. In order to do that, you would most likely run the program mrouted. Information about the multicast capabilities of the various network cards is contained in @@ -1736,34 +1905,41 @@ PC/TCP compatibility mode CONFIG_INET_PCTCP - If you have been having difficulties telneting to your Linux machine + If you have been having difficulties telnetting to your Linux machine from a DOS system that uses (broken) PC/TCP networking software (all - versions up to OnNet 2.0) over your local ethernet try saying Y + versions up to OnNet 2.0) over your local Ethernet try saying Y here. Everyone else says N. People having problems with NCSA telnet should see the file linux/Documentation/networking/ncsa-telnet. -Reverse ARP +Reverse ARP server CONFIG_INET_RARP - Since you asked: if there are (usually diskless or portable) - machines on your local network that know their hardware ethernet - addresses but don't know their IP addresses upon startup, they can - send out a Reverse Address Resolution Protocol (RARP) request to - find out their own IP addresses. Diskless Sun 3 machines use this - procedure at boot time. If you want your Linux box to be able to - *answer* such requests, say Y here; you'd have to run the program - rarp ("man rarp") on your box. If you actually want to use a - diskless Sun 3 machine as an Xterminal to Linux, say Y here and - fetch Linux-Xkernel from - ftp://sunsite.unc.edu/pub/Linux/system/network/boot.net/. Superior - solutions to the problem of booting and configuring machines over a - net connection are given by the protocol BOOTP and its successor - DHCP. See the DHCP FAQ + If there are (usually diskless or portable) machines on your local + network that know their hardware Ethernet addresses but don't know + their IP addresses upon startup, they can send out a Reverse Address + Resolution Protocol (RARP) request to find out their own IP + addresses. Diskless Sun 3 machines use this procedure at boot time, + and diskless Linux boxes can be configured to do it as well. + + If you want your Linux box to be able to *answer* such requests, say + Y here; you'll then have to run the program rarp ("man rarp") on + your box. + + If you actually want to use a diskless Sun 3 machine as an Xterminal + to Linux, say Y here and fetch Linux-Xkernel from + ftp://sunsite.unc.edu/pub/Linux/system/network/boot.net/. + + Superior solutions to the problem of booting and configuring + machines over a net connection are given by the protocol BOOTP and + its successor DHCP. See the DHCP FAQ http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html for details (to browse the WWW, you need to have access to a machine on the Internet - that has a program like lynx or netscape). If you want to compile - RARP support 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. The module will be called rarp.o. + that has a program like lynx or netscape). + + If you want to compile RARP support 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. The module + will be called rarp.o. + If you don't understand a word of the above, say N and rest in peace. @@ -1775,20 +1951,6 @@ links, between machines of your IP network, say N. If in doubt, say N. The PATH mtu discovery facility will cover most cases anyway. -Disable Path MTU Discovery (normally enabled) -CONFIG_NO_PATH_MTU_DISCOVERY - MTU (maximal transfer unit) is the size of the chunks we send out - over the net. "Path MTU Discovery" means that, instead of always - sending very small chunks, we start out sending big ones and if we - then discover that some host along the way likes its chunks smaller, - we adjust to a smaller size. This is good, so most people say N - here, thereby not disabling it. However, some DOS software (versions - of DOS NCSA telnet and Trumpet Winsock in PPP mode) is broken and - won't be able to connect to your Linux machine correctly in all - cases (especially through a terminal server) unless you say Y - here. See Documentation/networking/ncsa-telnet for the location of - fixed NCSA telnet clients. If in doubt, say N. - Path MTU Discovery (normally enabled) CONFIG_PATH_MTU_DISCOVERY MTU (maximal transfer unit) is the size of the chunks we send out @@ -1796,10 +1958,14 @@ sending very small chunks, we start out sending big ones and if we then discover that some host along the way likes its chunks smaller, we adjust to a smaller size. This is good, so most people say - Y here. However, some versions of DOS NCSA telnet (and other software) - are broken and can only connect to your Linux machine if you say N - here. See Documentation/networking/ncsa-telnet for the location - of fixed NCSA telnet clients. If in doubt, say Y. + Y here. + + However, some DOS software (versions of DOS NCSA telnet and Trumpet + Winsock in PPP mode) is broken and won't be able to connect to your + Linux machine correctly in all cases (especially through a terminal + server) unless you say N here. See + Documentation/networking/ncsa-telnet for the location of fixed NCSA + telnet clients. If in doubt, say Y. Disable NAGLE algorithm (normally enabled) CONFIG_TCP_NAGLE_OFF @@ -1823,7 +1989,7 @@ problems (and is rarely a useful feature), and hence it is recommended that you say Y here unless you really know what you're doing. -IP: Allow large windows (not recommend if <16Mb of memory) +IP: Allow large windows (not recommended if <16Mb of memory) CONFIG_SKB_LARGE On high speed, long distance networks the performance limit on networking becomes the amount of data a machine can buffer until the @@ -1833,69 +1999,74 @@ process can require a lot more memory for network buffers and thus this option is best only used on machines with 16Mb of memory or higher. Unless you are using long links with end to end speeds of over 2Mbit - a second or satellite links this option will make no difference to + a second or satellite links this option will make no difference to performance. Unix domain sockets CONFIG_UNIX This includes Unix domain sockets, the standard Unix mechanism for - establishing and accessing network connections. Unless you are - working on an embedded system or something, you probably want to say - Y. The socket support is also available as a module ( = code which - can be inserted in and removed from the running kernel whenever you + establishing and accessing network connections. Unless you are + working on an embedded system or something, you definitely want to + say Y here. + + The socket support 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 unix.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. If you try building this as a module and you are running kerneld, be sure - to add 'alias net-pf-1 unix' to your /etc/conf.module file. If - unsure, say Y. + to add 'alias net-pf-1 unix' to your /etc/conf.module file. If + unsure, say Y. (NOTE: X Windows and syslog probably won't work + if you say N to this or fail to configure it correctly) The IPv6 protocol CONFIG_IPV6 This is experimental support for the next version of the Internet - Protocol IP version 6 (also called IPng "IP next - generation"). Features of this new protocol include: expanded - address space, authentication and privacy, and seamless - interoperability with the current version of IP (IP version 4). For - general information about IPv6, see - http://playground.sun.com/pub/ipng/html/ipng-main.html (to browse - the WWW, you need to have access to a machine on the Internet that - has a program like lynx or netscape); for specific information about - IPv6 under Linux read the HOWTO at http://www.terra.net/ipv6/ and - the file net/ipv6/README in the kernel source. If you want to use - IPv6, please upgrade to the newest net-tools as given in - Documentation/Changes. The IPv6 support 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 - ipv6.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt. It's safe to say N for now. + Protocol: IP version 6 (also called IPng "IP next generation"). + Features of this new protocol include: expanded address space, + authentication and privacy, and seamless interoperability with the + current version of IP (IP version 4). For general information about + IPv6, see http://playground.sun.com/pub/ipng/html/ipng-main.html (to + browse the WWW, you need to have access to a machine on the Internet + that has a program like lynx or netscape); for specific information + about IPv6 under Linux read the HOWTO at http://www.terra.net/ipv6/ + and the file net/ipv6/README in the kernel source. + + If you want to use IPv6, please upgrade to the newest net-tools as + given in Documentation/Changes. + + The IPv6 support 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 ipv6.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. It's safe to + say N for now. IPv6: enable EUI-64 token format CONFIG_IPV6_EUI64 6bone, the network of computers using the IPv6 protocol, is moving to a new aggregatable address format and a new link local address - assignment (EUI-64). Say Y, if your site has upgraded already, or + assignment (EUI-64). Say Y if your site has upgraded already, or has started to upgrade. IPv6: disable provider based addresses CONFIG_IPV6_NO_PB - Linux tries to operate correctly when your site is moved to EUI-64 + Linux tries to operate correctly when your site has moved to EUI-64 only partially. Unfortunately, the two address formats (old: - "provider based" and new: "aggregatable") are incompatible. Say Y, - if your site finished the upgrade to EUI-64, and/or you encountered + "provider based" and new: "aggregatable") are incompatible. Say Y if + your site finished the upgrade to EUI-64, and/or you encountered some problems caused by the presence of two link-local addresses on an interface. -The IPX protocol +IPX networking CONFIG_IPX This is support for the Novell networking protocol, IPX, commonly used for local networks of Windows machines. You need it if you want - to access Novell Netware file or print servers using the Linux - Novell client ncpfs (available via ftp (user: anonymous) from + to access Novell NetWare file or print servers using the Linux + Novell client ncpfs (available via FTP (user: anonymous) from sunsite.unc.edu:/pub/Linux/system/filesystems/) or from within the Linux DOS emulator dosemu (read the DOSEMU-HOWTO, available in sunsite.unc.edu:/pub/Linux/docs/HOWTO). In order to do the former, you'll also have to say Y to "NCP filesystem support", below. To - turn your Linux box into a fully featured Netware file server and + turn your Linux box into a fully featured NetWare file server and IPX router, say Y here and fetch either lwared from sunsite.unc.edu:/pub/Linux/system/network/daemons/ or mars_nwe from ftp.gwdg.de:/pub/linux/misc/ncpfs. For more information, read the @@ -1907,7 +2078,7 @@ and read Documentation/modules.txt. Unless you want to integrate your Linux box with a local Novell network, say N. -Full internal IPX network +IPX: Full internal IPX network CONFIG_IPX_INTERN Every IPX network has an address that identifies it. Sometimes it is useful to give an IPX "network" address to your Linux box as well @@ -1931,32 +2102,26 @@ can be found on ftp.gwdg.de:/pub/linux/misc/ncpfs. If you don't know what you are doing, say N. -IPX Type 20 Routing -CONFIG_IPX_PPROP_ROUTING - IPX Type 20 packets are special broadcast messages designed to work - across routers. If you are using an internal network, have multiple - interfaces that route IPX, or will want to route IPX connections over - ppp to internal networks, setting this will allow the type 20 packets - to be propagated to all connected networks. These packets are used by - Novell NETBIOS and the NETBIOS name functions of SMB protocols that - work over IPX (e.g. the "Network Neighborhood" on another popular OS - cum GUI). In brief, if your Linux box needs to route IPX packets, - this should be set to Y. +IPX: SPX networking (EXPERIMENTAL) +CONFIG_SPX + The (SPP-derived) Sequenced Packet eXchange (SPX) protocol. Novell's + networking protocol which monitors transmissions to guarantee + successful delivery. It is safe to say Y/M here. Appletalk DDP CONFIG_ATALK Appletalk is the way Apple computers speak to each other on a - network. If your linux box is connected to such a network and you + network. If your Linux box is connected to such a network and you want to join the conversation, say Y. You will need to use the netatalk package so that your Linux box can act as a print and file - server for macs as well as access appletalk printers. Check out + server for Macs as well as access Appletalk printers. Check out http://artoo.hitchcock.org/~flowerpt/projects/linux-netatalk/ on the WWW for details (to browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or - netscape). EtherTalk is the name used for appletalk over ethernet + netscape). EtherTalk is the name used for Appletalk over Ethernet and the cheaper and slower LocalTalk is appletalk over a proprietary apple network using serial links. Ethertalk and Localtalk are fully - supported by Linux. The NET-2-HOWTO, available via ftp (user: anonymous) + supported by Linux. The NET-2-HOWTO, available via FTP (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO contains valuable information as well. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you @@ -1971,7 +2136,7 @@ networking available. This feature is experimental. With this driver, you can either encapsulate IP inside Appletalk (e.g. if your Linux box is stuck on an appletalk only network) or decapsulate - (e.g. if you want your Linux box to act as a internet gateway for a + (e.g. if you want your Linux box to act as a Internet gateway for a zoo of appletalk connected Macs). You decide which one of the two you want in the following two questions; you can say Y to only one of them. Please see Documentation/networking/ipddp.txt for more @@ -1985,7 +2150,7 @@ CONFIG_IPDDP_ENCAP If you say Y here, the kernel will be able to encapsulate IP packets inside Appletalk frames; this is useful if your Linux box is stuck - on an appletalk network (which hopefully contains a decapsulator + on an Appletalk network (which hopefully contains a decapsulator somewhere). Please see Documentation/networking/ipddp.txt for more information. If you say Y here, you cannot say Y to "Appletalk-IP to IP Decapsulation support", below. @@ -1994,7 +2159,7 @@ CONFIG_IPDDP_DECAP If you say Y here, the kernel will be able to decapsulate Appletalk-IP frames to IP packets; this is useful if you want your - Linux box to act as an Internet gateway for an appletalk + Linux box to act as an Internet gateway for an Appletalk network. Please see Documentation/networking/ipddp.txt for more information. If you say Y here, you cannot say Y to "IP to Appletalk-IP Encapsulation support", above. @@ -2034,10 +2199,11 @@ Y here. You want to read http://www.tapr.org/tapr/html/pkthome.html (to browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or netscape) and the HAM-HOWTO - and the AX25-HOWTO, both available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the answer to this - question won't directly affect the kernel: saying N will just cause - this configure script to skip all the questions about amateur radio. + and the AX25-HOWTO, both available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Note that the answer to + this question won't directly affect the kernel: saying N will just + cause this configure script to skip all the questions about amateur + radio. Amateur Radio AX.25 Level 2 CONFIG_AX25 @@ -2050,30 +2216,32 @@ microphone input and speaker output) supporting the KISS protocol or one of the various SCC cards that are supported by the Ottawa PI, the Gracilis Packetwin or the generic Z8530 driver. Another option - are the Baycom modem serial and parallel port hacks or the soundcard + are the Baycom modem serial and parallel port hacks or the sound card modem (supported by their own drivers). If you say Y here, you also - have to say Y to one of those drivers. Information about where to - get supporting software for Linux amateur radio as well as - information about how to configure an AX.25 port is contained in the - AX25-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to check - out the file Documentation/networking/ax25.txt in the kernel + have to say Y to one of those drivers. + + Information about where to get supporting software for Linux amateur + radio as well as information about how to configure an AX.25 port is + contained in the AX25-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. You might also want to + check out the file Documentation/networking/ax25.txt in the kernel source. More information about digital amateur radio in general is - on the WWW at http://www.tapr.org/tapr/html/pkthome.html. (To - browse the WWW, you need to have access to a machine on the Internet - that has a program like lynx or netscape). 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 ax25.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt. + on the WWW at http://www.tapr.org/tapr/html/pkthome.html. (To browse + the WWW, you need to have access to a machine on the Internet that + has a program like lynx or netscape). + + 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 ax25.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. AX.25 DAMA Slave support CONFIG_AX25_DAMA_SLAVE DAMA is a mechanism to prevent collisions when doing AX.25 networking. A DAMA server (called "master") accepts incoming traffic - from clients (called "slaves") and redistributes it to other - slaves. If you say Y here, your Linux box will act as a DAMA slave; - this is transparent in that you don't have to do any special DAMA + from clients (called "slaves") and redistributes it to other slaves. + If you say Y here, your Linux box will act as a DAMA slave; this is + transparent in that you don't have to do any special DAMA configuration. (Linux cannot yet act as a DAMA server.) If unsure, say N. @@ -2088,77 +2256,323 @@ Amateur Radio NET/ROM CONFIG_NETROM NET/ROM is a network layer protocol on top of AX.25 useful for - routing. A comprehensive listing of all the software for Linux - amateur radio users as well as information about how to configure an - AX.25 port is contained in the AX25-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also might - want to check out the file Documentation/networking/ax25.txt. More + routing. + + A comprehensive listing of all the software for Linux amateur radio + users as well as information about how to configure an AX.25 port is + contained in the AX25-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. You also might want to + check out the file Documentation/networking/ax25.txt. More information about digital amateur radio in general is on the WWW at http://www.tapr.org/tapr/html/pkthome.html (To browse the WWW, you need to have access to a machine on the Internet that has a program - like lynx or netscape). 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 netrom.o. If you want - to compile it as a module, say M here and read - Documentation/modules.txt. + like lynx or netscape). -AX.25 over Ethernet -CONFIG_BPQETHER - AX.25 is the protocol used for computer communication over amateur - radio. If you say Y here, you will be able to send and receive AX.25 - traffic over ethernet (also called "BPQ AX.25"), which could be - useful if some other computer on your local network has a direct - amateur radio connection. + 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 netrom.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Amateur Radio X.25 PLP (Rose) CONFIG_ROSE The Packet Layer Protocol (PLP) is a way to route packets over X.25 connections in general and amateur radio AX.25 connections in - particular, essentially an alternative to NET/ROM. A comprehensive - listing of all the software for Linux amateur radio users as well as - information about how to configure an AX.25 port is contained in the - AX25-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also might want to check + particular, essentially an alternative to NET/ROM. + + A comprehensive listing of all the software for Linux amateur radio + users as well as information about how to configure an AX.25 port is + contained in the AX25-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. You also might want to check out the file Documentation/networking/ax25.txt. More information about digital amateur radio in general is on the WWW at http://www.tapr.org/tapr/html/pkthome.html (To browse the WWW, you need to have access to a machine on the Internet that has a program - like lynx or netscape). 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 rose.o. If you want to - compile it as a module, say M here and read - Documentation/modules.txt. - -CCITT X.25 Packet Layer -CONFIG_X25 - X.25 is a set of standardized network protocols, similar in scope to - frame relay; the one physical line from your box to the X.25 network - entry point can carry several logical point-to-point connections - (called "virtual circuits") to other computers connected to the X.25 - network. Governments, banks, and other organizations tend to use it - to connect to each other or to form Wide Area Networks (WAN's). Many - countries have public X.25 networks. X.25 consists of two - protocols: the higher level Packet Layer Protocol (PLP) (say Y here - if you want that) and the lower level data link layer protocol LAPB - (say Y to "LAPB Data Link Driver" below if you want that). You can - read more about X.25 at http://www.sangoma.com/x25.html and - http://www.cisco.com/univercd/data/doc/software/11_0/rpcg/cx25.htm - (to browse the WWW, you need to have access to a machine on the - Internet that has a program like lynx or netscape). Information - about X.25 for Linux is contained in the files - Documentation/networking/x25.txt and - Documentation/networking/x25-iface.txt. One connects to an X.25 - network either with a dedicated network card using the X.21 protocol - (not yet supported by Linux) or one can do X.25 over a standard - telephone line using an ordinary modem (say Y to "X.25 async driver" - below) or over ethernet using an ordinary ethernet card and either - the 802.2 LLC protocol (say Y to "802.2 LLC" below) or LAPB over - ethernet (say Y to "LAPB Data Link Driver" and "LAPB over Ethernet - driver" below). 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. The module will be called x25.o. If - unsure, say N. + like lynx or netscape). + + 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 rose.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Serial port KISS driver for AX.25 +CONFIG_MKISS + KISS is a protocol used to send IP traffic over AX.25 radio + connections, somewhat similar to SLIP for telephone lines. Say Y + here if you intend to send Internet traffic over amateur radio, + using some device connected to your machine's serial port. In that + case, you also have to say Y to "Amateur Radio AX.25 Level 2" + support. + + 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. The module will be + called mkiss.o. + +Serial port 6PACK driver for AX.25 +CONFIG_6PACK + 6pack is a transmission protocol for the data exchange between your + PC and your TNC (the Terminal Node Controller acts as a kind of + modem connecting your computer's serial port to your radio's + microphone input and speaker output). This protocol can be used as + an alternative to KISS for networking over AX.25 amateur radio + connections, but it has some extended functionality. + + Note that this driver is still experimental and might cause + problems. For details about the features and the usage of the + driver, read Documentation/networking/6pack.txt. + + 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. The module will be + called 6pack.o. + +BPQ Ethernet driver +CONFIG_BPQETHER + AX.25 is the protocol used for computer communication over amateur + radio. If you say Y here, you will be able to send and receive AX.25 + traffic over Ethernet (also called "BPQ AX.25"), which could be + useful if some other computer on your local network has a direct + amateur radio connection. + +High-speed (DMA) SCC driver for AX.25 +CONFIG_DMASCC + This is a driver for high-speed SCC boards (used to connect your + computer to your amateur radio and send Internet traffic over the + radio), i.e. those supporting DMA on one port. Currently, only + Ottawa PI/PI2 boards (see http://hydra.carleton.ca/info/pi2.html) + and Gracilis PackeTwin boards (see http://www.paccomm.com/; to + browse the WWW, you need to have access to a machine on the Internet + that has a program like lynx or netscape) are supported and detected + automatically. + + If you have one of these cards, you can say Y here and should read + the HAM-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + This driver operates multiple boards simultaneously. If you compile + this driver as a module, it will be called dmascc.o. If you don't + give any parameter to the driver, all possible I/O addresses are + probed. This could irritate other devices that are currently not in + use. You may specify the list of addresses to be probed by + "dmascc=addr1,addr2,..." (when compiled into the kernel image) or + "io=addr1,addr2,..." (when loaded as a module). The network + interfaces will be called dmascc0 and dmascc1 for the board detected + first, dmascc2 and dmascc3 for the second one, and so on. Before you + configure each interface with ifconfig, you MUST set certain + parameters, such as channel access timing, clock mode, and DMA + channel. This is accomplished with a small utility program called + dmascc_cfg, which is part of the ax25-utils package. Alternatively, + you may download the utility from + http://www.oevsv.at/~oe1kib/Linux.html. + +Z8530 SCC driver for AX.25 +CONFIG_SCC + These cards are used to connect your Linux box to an amateur radio + in order to communicate with other computers. If you want to use + this, read Documentation/networking/z8530drv.txt and the + AX.25-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Also make sure to say Y to + "Amateur Radio AX.25 Level 2" support. + + If you want to compile this 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. The module will be + called scc.o. + +additional delay for PA0HZP OptoSCC compatible boards +CONFIG_SCC_DELAY + Say Y here if you experience problems with the SCC driver not + working properly; please read Documentation/networking/z8530drv.txt + for details. If unsure, say N. + +#support for TRX that feedback the tx signal to rx +#CONFIG_SCC_TRXECHO +### +### Don't know what's going on here. +### +# +BAYCOM picpar and par96 driver for AX.25 +CONFIG_BAYCOM_PAR + This is a driver for Baycom style simple amateur radio modems that + connect to a parallel interface. The driver supports the picpar and + par96 designs. To configure the driver, use the sethdlc utility + available in the standard ax25 utilities package. For information on + the modems, see http://www.baycom.de (to browse the WWW, you need to + have access to a machine on the Internet that has a program like + lynx or netscape) and Documentation/networking/baycom.txt. + + 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. + The module will be called baycom_par.o. + +BAYCOM ser12 full duplex driver for AX.25 +CONFIG_BAYCOM_SER_FDX + This is one of two drivers for Baycom style simple amateur radio + modems that connect to a serial interface. The driver supports the + ser12 design in full duplex mode. In addition, it allows the + baudrate to be set between 300 and 4800 baud (however not all modems + support all baudrates). This is the preferred driver. The next + driver, "BAYCOM ser12 half duplex driver for AX.25" is the old + driver and still provided in case this driver does not work with + your serial interface chip. To configure the driver, use the sethdlc + utility available in the standard ax25 utilities package. For + information on the modems, see http://www.baycom.de (to browse the + WWW, you need to have access to a machine on the Internet that has a + program like lynx or netscape) and + Documentation/networking/baycom.txt. + + 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. + The module will be called baycom_ser_fdx.o. + +BAYCOM ser12 half duplex driver for AX.25 +CONFIG_BAYCOM_SER_HDX + This is one of two drivers for Baycom style simple amateur radio + modems that connect to a serial interface. The driver supports the + ser12 design in full duplex mode. This is the old driver. It is + still provided in case your serial interface chip does not work with + the full duplex driver. This driver is depreciated. To configure + the driver, use the sethdlc utility available in the standard ax25 + utilities package. For information on the modems, see + http://www.baycom.de (to browse the WWW, you need to have access to + a machine on the Internet that has a program like lynx or netscape) + and Documentation/networking/baycom.txt. + + 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. + The module will be called baycom_ser_hdx.o. + +Sound card modem driver for AX.25 +CONFIG_SOUNDMODEM + This experimental driver allows a standard SoundBlaster or + WindowsSoundSystem compatible sound card to be used as a packet radio + modem (NOT as a telephone modem!), to send digital traffic over + amateur radio. + + To configure the driver, use the sethdlc, smdiag and smmixer + utilities available in the standard ax25 utilities package. For + information on how to key the transmitter, see + http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html (to browse + the WWW, you need to have access to a machine on the Internet that + has a program like lynx or netscape) and + Documentation/networking/soundmodem.txt. + + 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. + The module will be called soundmodem.o. + +Sound card modem support for SoundBlaster and compatible cards +CONFIG_SOUNDMODEM_SBC + This option enables the soundmodem driver to use SoundBlaster and + compatible cards. If you have a dual mode card (i.e. a WSS cards + with a SoundBlaster emulation) you should say N here and Y to + "Sound card modem support for WSS and Crystal cards", below, because + this usually results in better performance. This option also supports + SB16/32/64 in full duplex mode. + +Sound card modem support for WSS and Crystal cards +CONFIG_SOUNDMODEM_WSS + This option enables the soundmodem driver to use WindowsSoundSystem + compatible cards. These cards feature a codec chip from either + Analog Devices (such as AD1848, AD1845, AD1812) or Crystal + Semiconductors (such as CS4248, CS423x). This option also supports + the WSS full duplex operation which currently works with Crystal + CS423x chips. If you don't need full duplex operation, do not enable + it to save performance. + +Sound card modem support for 1200 baud AFSK modulation +CONFIG_SOUNDMODEM_AFSK1200 + This option enables the soundmodem driver 1200 baud AFSK modem, + compatible to popular modems using TCM3105 or AM7911. The demodulator + requires about 12% of the CPU power of a Pentium 75 CPU per channel. + +Sound card modem support for 2400 baud AFSK modulation (7.3728MHz crystal) +CONFIG_SOUNDMODEM_AFSK2400_7 + This option enables the soundmodem driver 2400 baud AFSK modem, + compatible to TCM3105 modems (over-)clocked with a 7.3728MHz + crystal. Note that the availability of this driver does _not_ imply + that I recommend building such links. It is only here since users + especially in eastern Europe have asked me to do so. In fact this + modulation scheme has many disadvantages, mainly its incompatibility + with many transceiver designs and the fact that the TCM3105 (if + used) is operated widely outside its specifications. + +Sound card modem support for 2400 baud AFSK modulation (8MHz crystal) +CONFIG_SOUNDMODEM_AFSK2400_8 + This option enables the soundmodem driver 2400 baud AFSK modem, + compatible to TCM3105 modems (over-)clocked with an 8MHz crystal. + Note that the availability of this driver does _not_ imply that I + recommend building such links. It is only here since users + especially in eastern Europe have asked me to do so. In fact this + modulation scheme has many disadvantages, mainly its incompatibility + with many transceiver designs and the fact that the TCM3105 (if + used) is operated widely outside its specifications. + +Sound card modem support for 2666 baud AFSK modulation +CONFIG_SOUNDMODEM_AFSK2666 + This option enables the soundmodem driver 2666 baud AFSK modem. + This modem is experimental, and not compatible to anything + else I know of. + +Sound card modem support for 4800 baud 8PSK modulation +CONFIG_SOUNDMODEM_PSK4800 + This option enables the soundmodem driver 4800 baud 8PSK modem. + This modem is experimental, and not compatible to anything + else I know of. + +Sound card modem support for 4800 baud HAPN-1 modulation +CONFIG_SOUNDMODEM_HAPN4800 + This option enables the soundmodem driver 4800 baud HAPN-1 + compatible modem. This modulation seems to be widely used 'down + under' and in the Netherlands. Here, nobody uses it, so I could not + test if it works. It is compatible to itself, however :-) + +Sound card modem support for 9600 baud FSK G3RUH modulation +CONFIG_SOUNDMODEM_FSK9600 + This option enables the soundmodem driver 9600 baud FSK modem, + compatible to the G3RUH standard. The demodulator requires about 4% + of the CPU power of a Pentium 75 CPU per channel. You can say Y to + both 1200 baud AFSK and 9600 baud FSK if you want (but obviously you + can only use one protocol at a time, depending on what the other end + can understand). + +CCITT X.25 Packet Layer +CONFIG_X25 + X.25 is a set of standardized network protocols, similar in scope to + frame relay; the one physical line from your box to the X.25 network + entry point can carry several logical point-to-point connections + (called "virtual circuits") to other computers connected to the X.25 + network. Governments, banks, and other organizations tend to use it + to connect to each other or to form Wide Area Networks (WANs). Many + countries have public X.25 networks. X.25 consists of two + protocols: the higher level Packet Layer Protocol (PLP) (say Y here + if you want that) and the lower level data link layer protocol LAPB + (say Y to "LAPB Data Link Driver" below if you want that). + + You can read more about X.25 at http://www.sangoma.com/x25.html and + http://www.cisco.com/univercd/data/doc/software/11_0/rpcg/cx25.htm + (to browse the WWW, you need to have access to a machine on the + Internet that has a program like lynx or netscape). Information + about X.25 for Linux is contained in the files + Documentation/networking/x25.txt and + Documentation/networking/x25-iface.txt. + + One connects to an X.25 network either with a dedicated network card + using the X.21 protocol (not yet supported by Linux) or one can do + X.25 over a standard telephone line using an ordinary modem (say Y + to "X.25 async driver" below) or over Ethernet using an ordinary + Ethernet card and either the 802.2 LLC protocol (say Y to "802.2 + LLC" below) or LAPB over Ethernet (say Y to "LAPB Data Link Driver" + and "LAPB over Ethernet driver" below). + + 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. The module will be + called x25.o. If unsure, say N. LAPB Data Link Driver (EXPERIMENTAL) CONFIG_LAPB @@ -2168,47 +2582,51 @@ it is used to transport higher level protocols (mostly X.25 Packet Layer, the higher part of X.25, but others are possible as well). Usually, LAPB is used with specialized X.21 network cards, but - Linux currently supports LAPB only over ethernet connections. If you - want to use LAPB connections over ethernet, say Y here and to "LAPB + Linux currently supports LAPB only over Ethernet connections. If you + want to use LAPB connections over Ethernet, say Y here and to "LAPB over Ethernet driver" below. Read - Documentation/networking/lapb-module.txt for technical details. If - you want to compile this driver as a module though ( = code which + Documentation/networking/lapb-module.txt for technical details. + + If you want to compile this driver as a module though ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. The module - will be called lapb.o. If unsure, say N. + will be called lapb.o. If unsure, say N. 802.2 LLC (VERY EXPERIMENTAL) CONFIG_LLC This is a Logical Link Layer protocol used for X.25 connections over - ethernet, using ordinary ethernet cards. + Ethernet, using ordinary Ethernet cards. Bridging (EXPERIMENTAL) CONFIG_BRIDGE If you say Y here, then your Linux box will be able to act as an - ethernet bridge, which means that the different ethernet segments it - is connected to will appear as one ethernet to the - participants. Several such bridges can work together to create even - larger networks of ethernets using the IEEE802.1 spanning tree - algorithm. As this is a standard, Linux bridges will interwork - properly with other third party bridge products. In order to use - this, you'll need the bridge configuration tools available via ftp - (user: anonymous) from shadow.cabi.net in /pub/Linux. Note that if - your box acts as a bridge, it probably contains several ethernet - devices, but the kernel is not able to recognize more than one at - boot time without help; for details read the Ethernet-HOWTO, available - via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO/. - The Bridging code is still in test. If unsure, say N. + Ethernet bridge, which means that the different Ethernet segments it + is connected to will appear as one Ethernet to the participants. + Several such bridges can work together to create even larger + networks of Ethernets using the IEEE802.1 spanning tree algorithm. + As this is a standard, Linux bridges will interwork properly with + other third party bridge products. + + In order to use this, you'll need the bridge configuration tools + available via FTP (user: anonymous) from + ftp://shadow.cabi.net/pub/Linux. Please read the Bridge mini-HOWTO + for more information. Note that if your box acts as a bridge, it + probably contains several Ethernet devices, but the kernel is not + able to recognize more than one at boot time without help; for + details read the Ethernet-HOWTO, available via FTP (user: anonymous) + in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. The Bridging code is + still in test. If unsure, say N. Packet socket CONFIG_PACKET The Packet protocol is used by applications which communicate directly with network devices without an intermediate network - protocol implemented in the kernel, e.g. tcpdump. If you want that - they work, choose Y. This driver is also available as a module - called af_packet.o ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. If - unsure, say Y. + protocol implemented in the kernel, e.g. tcpdump. If you want them + to work, choose Y. This driver is also available as a module called + af_packet.o ( = code which can be inserted in and removed from the + running kernel whenever you want). If you want to compile it as a + module, say M here and read Documentation/modules.txt. If unsure, + say Y. Kernel/User network link driver CONFIG_NETLINK @@ -2217,20 +2635,22 @@ able to read from and write to character special files in the /dev directory having major mode 36. So far, the kernel uses it to publish some network related information if you say Y to "Routing - messages", below. It is also used by the firewall code if you say Y - to "Kernel/User network link driver" further down. You also need to - say Y here if you want to use arpd, a daemon that helps keep the - internal ARP cache (a mapping between IP addresses and hardware - addresses on the local network) small. The ethertap device, which - lets user space programs read and write raw ethernet frames, also - needs the network link driver. If unsure, say Y. + messages", below. It is also used by the firewall code to publish + information about possible attacks if you say Y to "IP: firewall + packet netlink device" further down. You also need to say Y here if + you want to use arpd, a daemon that helps keep the internal ARP + cache (a mapping between IP addresses and hardware addresses on the + local network) small. The ethertap device, which lets user space + programs read and write raw Ethernet frames, also needs the network + link driver. If unsure, say Y. Routing messages CONFIG_RTNETLINK If you say Y here and create a character special file /dev/route with major number 36 and minor number 0 using mknod ("man mknod"), - you can read some network related routing information from that - file. Everything you write to that file will be discarded. + you (or some user space utility) can read some network related + routing information from that file. Everything you write to that + file will be discarded. Netlink device emulation CONFIG_NETLINK_DEV @@ -2312,32 +2732,35 @@ SCSI support? CONFIG_SCSI - If you want to use a SCSI harddisk, SCSI tapedrive, SCSI CDROM or + If you want to use a SCSI hard disk, SCSI tape drive, SCSI CDROM or any other SCSI device under Linux, say Y and make sure that you know the name of your SCSI host adapter (the card inside your computer that "speaks" the SCSI protocol), because you will be asked for it. You also need to say Y here if you want support for the parallel port version of the 100MB IOMEGA ZIP drive. Please read the - SCSI-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 scsi_mod.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt and + SCSI-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 scsi_mod.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt and Documentation/scsi.txt. However, do not compile this as a module if your root filesystem (the one containing the directory /) is located on a SCSI device. SCSI disk support CONFIG_BLK_DEV_SD - If you want to use a SCSI harddisk or the SCSI or parallel port + If you want to use a SCSI hard disk or the SCSI or parallel port version of the IOMEGA ZIP drive under Linux, say Y and read the - SCSI-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. This is NOT for SCSI - CDROMs. 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 sd_mod.o. If you want to compile it - as a module, say M here and read Documentation/modules.txt and + SCSI-HOWTO and the Disk-HOWTO, both available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. This is + NOT for SCSI CDROMs. + + 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 sd_mod.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt and Documentation/scsi.txt. Do not compile this driver as a module if your root filesystem (the one containing the directory /) is located on a SCSI disk. In this case, do not compile the driver for your @@ -2346,49 +2769,56 @@ SCSI tape support CONFIG_CHR_DEV_ST If you want to use a SCSI tapedrive under Linux, say Y and read the - SCSI-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO and drivers/scsi/README.st in - the kernel source. This is NOT for SCSI CDROMs. 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 st.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt and Documentation/scsi.txt . + SCSI-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO and + drivers/scsi/README.st in the kernel source. This is NOT for SCSI + CDROMs. + + 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 st.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt and + Documentation/scsi.txt . SCSI CDROM support CONFIG_BLK_DEV_SR If you want to use a SCSI CDROM under Linux, say Y and read the SCSI-HOWTO and the CDROM-HOWTO from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to say Y to - "ISO9660 cdrom filesystem support" later. 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 sr_mod.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt and Documentation/scsi.txt . + "ISO9660 cdrom filesystem support" later. + + 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 sr_mod.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt and + Documentation/scsi.txt . Enable vendor-specific extensions (for SCSI CDROM) CONFIG_BLK_DEV_SR_VENDOR This enables the usage of vendor specific SCSI commands. This is - required to support multisession CD's on with old NEC/TOSHIBA - cdrom drives (and HP Writers). If you have such a drive and get - the first session only, try to say Y here; everybody else says N. + required to support multisession CDs with old NEC/TOSHIBA cdrom + drives (and HP Writers). If you have such a drive and get the first + session only, try saying Y here; everybody else says N. SCSI generic support CONFIG_CHR_DEV_SG If you want to use SCSI scanners, synthesizers or CD-writers or just - about anything having "SCSI" in its name other than harddisks, - CDROMs or tapes, say Y here. Those won't be supported by the kernel + about anything having "SCSI" in its name other than hard disks, + CDROMs or tapes, say Y here. These won't be supported by the kernel directly, so you need some additional software which knows how to talk to these devices using the SCSI protocol. For CD-writers, you - would need the program cdwrite, available via ftp (user: anonymous) - from sunsite.unc.edu:/pub/Linux/utils/disk-management; for other + would need the program cdwrite, available via FTP (user: anonymous) + from ftp://sunsite.unc.edu/pub/Linux/utils/disk-management; for other devices, it's possible that you'll have to write the driver software yourself, so have a look at the SCSI-HOWTO and at the - SCSI-Programming-HOWTO, both available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - 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 and Documentation/scsi.txt. The module - will be called sg.o. If unsure, say N. + SCSI-Programming-HOWTO, both available via FTP (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. + + If you want to compile this 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 and + Documentation/scsi.txt. The module will be called sg.o. If unsure, + say N. Probe all LUNs on each SCSI device CONFIG_SCSI_MULTI_LUN @@ -2411,45 +2841,51 @@ This turns on a logging facility that can be used to debug a number of problems. Normally no logging output will appear, but you can enable logging with a shell command like: + echo "scsi log token [level]" > /proc/scsi/scsi + There are a number of things that can be used for 'token' (you can find them in the source: drivers/scsi/scsi.c), and this allows you to select the types of information you want, and the level allows - you to select the level of verbosity. If you say 'N' here, it may - be harder to track down some types of scsi problems. If you say 'Y' - here your kernel will be somewhat larger, but there should be no - noticeable performance impact as long as you have logging turned off. + you to select the level of verbosity. If you say N here, it may be + harder to track down some types of SCSI problems. If you say Y here + your kernel will be somewhat larger, but there should be no + noticeable performance impact as long as you have logging turned + off. AdvanSys SCSI support CONFIG_SCSI_ADVANSYS This is a driver for all SCSI host adapters manufactured by AdvanSys. It is documented in the kernel source in - drivers/scsi/advansys.c. This driver is also available as a module ( - = code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. The module will be called - advansys.o. + drivers/scsi/advansys.c. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you want to compile it as a module, say M here and read + Documentation/modules.txt. The module will be called advansys.o. Adaptec AHA152X/2825 support CONFIG_SCSI_AHA152X This is support for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 SCSI host adapters. It is explained in section 3.3 of the - SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to read - the comments at the top of drivers/scsi/aha152x.c. 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 aha152x.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. You might also want to + read the comments at the top of drivers/scsi/aha152x.c. + + 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 aha152x.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Adaptec AHA1542 support CONFIG_SCSI_AHA1542 This is support for a SCSI host adapter. It is explained in section - 3.4 of the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that Trantor was + 3.4 of the SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Note that Trantor was recently purchased by Adaptec, and some former Trantor products are being sold under the Adaptec name. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/aha1542.h. + If you want to compile this 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. The module will be @@ -2458,97 +2894,112 @@ Adaptec AHA1740 support CONFIG_SCSI_AHA1740 This is support for a SCSI host adapter. It is explained in section - 3.5 of the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of - the box, you may have to change some settings in - drivers/scsi/aha1740.h. 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 aha17400.o. If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + 3.5 of the SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If it doesn't work out + of the box, you may have to change some settings in + drivers/scsi/aha1740.h. -Adaptec AIC7xxx support (includes 274x/284x/294x) + 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 aha17400.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Adaptec AIC7xxx chipset SCSI controller support CONFIG_SCSI_AIC7XXX - Information about this SCSI host adapter is contained in - drivers/scsi/README.aic7xxx and in the SCSI-HOWTO, available via ftp - (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note + This is support for the various aic7xxx based Adaptec SCSI + controllers. These include the 274x EISA cards, 284x VLB cards, 294x + PCI cards, 394x PCI cards, 3985 PCI card, and several versions of + the Adaptec built-in SCSI controllers on various PC motherboards. + Information on the configuration options for this controller can be + found by checking the help file for each of the available + configuration options. You also want to read + drivers/scsi/README.aic7xxx and the SCSI-HOWTO, available via FTP + (user: anonymous) at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Note that the AHA2920 SCSI host adapter is *not* supported by this - driver; choose "Future Domain 16xx SCSI support" instead. If you - want to compile this driver as a module ( = code which can be + driver; choose "Future Domain 16xx SCSI support" instead if you have + one of those. + + 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. The module will be + say M here and read Documentation/modules.txt. The module will be called aic7xxx.o. -Enable tagged command queueing -CONFIG_AIC7XXX_TAGGED_QUEUEING - This option allows you to enable tagged command queueing for this - driver. Some scsi devices do not properly support this - feature. Tagged command queueing will improve performance. - Override driver defaults for commands per LUN CONFIG_OVERRIDE_CMDS - This option allows you to set the maximum number of SCSI commands - queued per LUN (Logical Unit Number - some physical SCSI devices, - e.g. CD jukeboxes, act logically as several logical units). If you - say N here, the driver will attempt to set the commands per LUN - using its own reasonable heuristic. If you say Y, you can specify - your preference in the next question. If unsure, say N. + Say Y here if you want to override the default maximum number of + commands that a single device on the aic7xxx controller is allowed + to have active at one time. This option only effects tagged queueing + capable devices. The driver uses a "failsafe" value of 8 by default. + This is much lower than many devices can handle, but left in place + for safety's sake. If you say Y here, you can adjust the number of + commands per LUN with the following configuration option. + + NOTE: This does not actually enable tagged queueing on any + particular device. The driver has changed in this respect. Please + see the file drivers/scsi/README.aic7xxx for more information on how + to get particular devices to use tagged command queueing. + + If unsure, say N. Maximum number of commands per LUN CONFIG_AIC7XXX_CMDS_PER_LUN - By default, we limit the commands per LUN to 2 with or without - tagged queueing enabled. If tagged queueing is enabled, the - sequencer in the host adapter will attempt to send the 2nd command - block to the device while the first command block is still executing - and the device is disconnected. If the devices don't complain, you - can thus try to increase the number of SCSI commands per LUN to more - than 2 in this case. If tagged queueing is disabled, the sequencer - in the host adapter will keep the 2nd command in its input queue - until the first one completes - so it is OK to have more than 1 - command queued. However, for host adapters limited to 4 command - blocks (SCB's), you may want to actually decrease the commands per - LUN to 1, if you often have more than 2 devices active at the same - time. This will ensure that there will always be a free SCB for up - to 4 devices active at the same time. When SCB paging is enabled, - set the commands per LUN to 8 or higher (see "SCB paging support" - below). If unsure, go with the default for now. - -Enable SCB paging -CONFIG_AIC7XXX_PAGE_ENABLE - This option enables SCB paging. This will increase performance when - tagged queueing is enabled. Note that, if you say Y here, you - should increase the "Maximum number of commands per LUN" - (AIC7XXX_CMDS_PER_LUN) above to 8 as most tagged queueing devices - allow at least this many. Note that EISA and VLB controllers do not - support SCB paging due to chip limitations; enabling it on these - controllers has no effect. + Specify the maximum number of commands you would like to allocate + per LUN (a LUN is a Logical Unit Number - some physical SCSI devices, + e.g. CD jukeboxes, act logically as several separate units, each of + which gets its own number). + + Reasonable figures are in the range of 14 to 32 commands per device, + but depending on hardware could be increased or decreased from that + figure. If the number is too high for any particular device, the + driver will automatically compensate usually after only 10 minutes + of uptime and will issue a message to alert you to the fact that the + number of commands for that device has been reduced. It will not + hinder performance if some of your devices eventually have their + commands per LUN reduced, but is a waste of memory if all of your + devices end up reducing this number down to a more reasonable + figure. Default: 24 Collect statistics to report in /proc CONFIG_AIC7XXX_PROC_STATS - This option enables collection of SCSI transfer statistics for the - /proc filesystem. This does affect performance since it has to - maintain statistics. The statistics will appear under - /proc/scsi/aic7xxx. This will only work if you also enable the "proc - filesystem", below. + This option tells the driver to keep track of how many commands have + been sent to each particular device and report that information to + the user via the /proc/scsi/aic7xxx/n file, where n is the number of + the aic7xxx controller you want the information on. This adds a + small amount of overhead to each and every SCSI command the aic7xxx + driver handles, so if you aren't really interested in this + information, it is best to leave it disabled. This will only work if + you also say Y to "/proc filesystem support", below. If unsure, say N. Delay in seconds after SCSI bus reset CONFIG_AIC7XXX_RESET_DELAY - This option sets the delay in seconds after a SCSI bus reset. If you - don't know what you are doing, go with the default. + This sets how long the driver will wait after resetting the SCSI bus + before attempting to communicate with the devices on the SCSI bus + again. This delay will be used during the reset phase at bootup time + as well as after any reset that might occur during normal operation. + Reasonable numbers range anywhere from 5 to 15 seconds depending on + your devices. DAT tape drives are notorious for needing more time + after a bus reset to be ready for the next command, but most hard + drives and CD-ROM devices are ready in only a few seconds. This + option has a maximum upper limit of 20 seconds to avoid bad + interactions between the aic7xxx driver and the rest of the linux + kernel. The default value has been reduced to 5 seconds. If this + doesn't work with your hardware, try increasing this value. BusLogic SCSI support CONFIG_SCSI_BUSLOGIC This is support for BusLogic MultiMaster and FlashPoint SCSI Host Adapters. Consult the SCSI-HOWTO, available via anonymous ftp from - sunsite.unc.edu in /pub/Linux/docs/HOWTO, and the files + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO, and the files README.BusLogic and README.FlashPoint in drivers/scsi for more information. If this driver does not work correctly without modification, please contact the author, Leonard N. Zubkoff, by - email to lnz@dandelion.com. You can also build this driver as a - module ( = code which can be inserted in and removed from the - running kernel whenever you want), but only a single instance may be - loaded. If you want to compile it as a module, say M here and read - Documentation/modules.txt. The module will be called BusLogic.o. + email to lnz@dandelion.com. + + You can also build this driver as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + but only a single instance may be loaded. If you want to compile it + as a module, say M here and read Documentation/modules.txt. The + module will be called BusLogic.o. Omit BusLogic SCSI FlashPoint support CONFIG_SCSI_OMIT_FLASHPOINT @@ -2557,17 +3008,17 @@ substantial, so users of MultiMaster Host Adapters may wish to omit it. - DTC3180/3280 SCSI support CONFIG_SCSI_DTC3280 This is support for DTC 3180/3280 SCSI Host Adapters. Please read - the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file - drivers/scsi/README.dtc3x80. 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 dtc.o. If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + the SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO and the file + drivers/scsi/README.dtc3x80. + + 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 dtc.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. EATA-DMA (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support CONFIG_SCSI_EATA_DMA @@ -2576,25 +3027,28 @@ and the DPT PM2011B and PM2012B controllers. Note that there is also another driver for the same hardware: "EATA ISA/EISA/PCI support". You should only say Y to one of them. Please read the - SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 eata_dma.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 eata_dma.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. EATA-PIO (old DPT PM2001, PM2012A) support CONFIG_SCSI_EATA_PIO This driver supports all EATA-PIO protocol compliant SCSI Host Adapters like the DPT PM2001 and the PM2012A. EATA-DMA compliant host adapters could also use this driver but are discouraged from - doing so, since this driver only supports harddisks and lacks + doing so, since this driver only supports hard disks and lacks numerous features. You might want to have a look at the SCSI-HOWTO, - available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - 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. The module will be called eata_pio.o. + available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to compile this 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. The module will be + called eata_pio.o. UltraStor 14F/34F support CONFIG_SCSI_U14_34F @@ -2602,21 +3056,23 @@ The source at drivers/scsi/u14-34f.c contains some information about this hardware. If the driver doesn't work out of the box, you may have to change some settings in drivers/scsi/u14-34f.c. Read the - SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that there is also + SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Note that there is also another driver for the same hardware: "UltraStor SCSI support", below. You should say Y to both only if you want 24F support as - well. 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 u14-34f.o. If you want to compile - it as a module, say M here and read Documentation/modules.txt. + well. + + 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 u14-34f.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. enable elevator sorting CONFIG_SCSI_U14_34F_LINKED_COMMANDS This is a feature of SCSI-2 which improves performance: the host adapter can send a whole list of commands to a device in one batch. Some SCSI devices might not implement this properly, so the - save answer is N. + safe answer is N. maximum number of queued commands CONFIG_SCSI_U14_34F_MAX_TAGS @@ -2630,29 +3086,31 @@ (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and other adapters based on the Future Domain chipsets (Quantum ISA-200S, ISA-250MG; Adaptec AHA-2920; and at least one IBM board). - It is explained in section 3.7 of the SCSI-HOWTO, available via ftp - (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 fdomain.o. If you want to compile it as a + It is explained in section 3.7 of the SCSI-HOWTO, available via FTP + (user: anonymous) at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 fdomain.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. Generic NCR5380/53c400 SCSI support CONFIG_SCSI_GENERIC_NCR5380 This is the generic NCR family of SCSI controllers, not to be confused with the NCR 53c7 or 8xx controllers. It is explained in - section 3.8 of the SCSI-HOWTO, available via ftp (user: anonymous) - at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of - the box, you may have to change some settings in - drivers/scsi/g_NCR5380.h. 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 g_NCR5380.o. If - you want to compile it as a module, say M here and read - Documentation/modules.txt. + section 3.8 of the SCSI-HOWTO, available via FTP (user: anonymous) + at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If it doesn't work + out of the box, you may have to change some settings in + drivers/scsi/g_NCR5380.h. + + 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 g_NCR5380.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. Enable NCR53c400 extensions CONFIG_SCSI_GENERIC_NCR53C400 - This enables certain optimizations for the NCR53c400 scsi cards. You + This enables certain optimizations for the NCR53c400 SCSI cards. You might as well try it out. Note that this driver will only probe for the Trantor T130B in its default configuration; you might have to pass a command line option to the kernel at boot time if it doesn't @@ -2669,14 +3127,15 @@ CONFIG_SCSI_NCR53C7xx This is the 53c7 and 8xx NCR family of SCSI controllers, not to be confused with the NCR 5380 controllers. It is explained in section - 3.8 of the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the - box, you may have to change some settings in - drivers/scsi/53c7,8xx.h. 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 53c7,8xx.o. If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + 3.8 of the SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If it doesn't work out + of the box, you may have to change some settings in + drivers/scsi/53c7,8xx.h. + + 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 53c7,8xx.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. always negotiate synchronous transfers CONFIG_SCSI_NCR53C7xx_sync @@ -2704,32 +3163,37 @@ NCR53C8XX SCSI support CONFIG_SCSI_NCR53C8XX - This is the BSD ncr driver adapted to linux for the NCR53C8XX family + This is the BSD ncr driver adapted to Linux for the NCR53C8XX family of PCI-SCSI controllers. This driver supports parity checking, tagged command queuing, Fast-20 data transfer up to 20 MB/s with - narrow scsi devices and 40 MB/s with wide scsi devices. + narrow SCSI devices and 40 MB/s with wide SCSI devices. Please read drivers/scsi/README.ncr53c8xx for more information. Linux/i386, Linux/Alpha and Linux/PPC are supported by this driver. synchronous data transfers frequency CONFIG_SCSI_NCR53C8XX_SYNC - SCSI-2 specifications allow scsi devices to negotiate a synchronous + SCSI-2 specifications allow SCSI devices to negotiate a synchronous transfer period of 25 nano-seconds or more. + The transfer period value is 4 times the agreed transfer period. So, data can be transferred at a 10 MHz frequency, allowing 10 - MB/second throughput with 8 bits scsi-2 devices and 20 MB/second + MB/second throughput with 8 bits SCSI-2 devices and 20 MB/second with wide16 devices. This frequency can be used safely with - differential devices but may cause problems with singled-ended + differential devices but may cause problems with single-ended devices. + Specify 0 if you want to only use asynchronous data transfers. Otherwise, specify a value between 5 and 10. Commercial O/Ses generally use 5 Mhz frequency for synchronous transfers. It is a reasonable default value. - However, a flawless singled-ended scsi bus supports 10 MHz data - transfers. Regardless the value chosen in the Linux configuration, - the synchronous period can be changed after boot-up through the - /proc/scsi file system. The generic command is: + + However, a flawless single-ended SCSI bus supports 10 MHz data + transfers. Regardless of the value chosen in the Linux + configuration, the synchronous period can be changed after boot-up + through the /proc/scsi file system. The generic command is: + echo "setsync #target period" >/proc/scsi/ncr53c8xx/0 + Use a 25 ns period for 10 Mhz synchronous data transfers. If you don't know what to do now, go with the default. @@ -2740,16 +3204,16 @@ Intel-based hardware. Under Linux/Alpha and Linux/PPC only normal IO is currently supported by the driver and so, this option has no effect. On Linux/PPC MMIO and normal IO are done the same (all IO - is memory mapped) so you loose nothing by using normal IO. The normal + is memory mapped) so you lose nothing by using normal IO. The normal answer therefore is N. Try Y only if you have problems. not allow targets to disconnect CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT - This option is only provided for safety if you suspect some scsi + This option is only provided for safety if you suspect some SCSI device of yours to not support properly the target-disconnect feature. In that case, you would say Y here. In general however, to not allow targets to disconnect is not reasonable if there is more - than 1 device on a scsi bus. The normal answer therefore is N. + than 1 device on a SCSI bus. The normal answer therefore is N. detect and read serial NVRAMs CONFIG_SCSI_NCR53C8XX_NVRAM_DETECT @@ -2773,15 +3237,19 @@ enable tagged command queuing CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE This option allows you to enable tagged command queuing support at - linux start-up. Some scsi devices do not properly support this + Linux start-up. Some SCSI devices do not properly support this feature. The suggested method is to say N here and to use the "settags" control command after boot-up to enable this feature: + echo "settags 2 4" >/proc/scsi/ncr53c8xx/0 + asks the driver to use up to 4 concurrent tagged commands for target 2 of controller 0. + See the file drivers/scsi/README.ncr53c8xx for more information. WARNING! If you say Y here, then you have to say N to "not allow targets to disconnect", above. + The safe answer therefore is N. The normal answer therefore is Y. @@ -2798,111 +3266,134 @@ wiring. These General Purpose Input/Output pins can be used for vendor specific features or implementation of the standard SYMBIOS features. Genuine SYMBIOS boards use GPIO0 in output for controller - LED and GPIO3 bit as a flag indicating singled-ended/differential + LED and GPIO3 bit as a flag indicating single-ended/differential interface. + If all the boards of your system are genuine SYMBIOS boards or use BIOS and drivers from SYMBIOS, you would want to enable this option. The driver behaves correctly on my system with this option enabled. (SDMS 4.0 + Promise SCSI ULTRA 875 rev 0x3 + ASUS SC200 810A rev 0x12). This option must be set to N if your system has at least one - 53C8XX based scsi board with a vendor-specific BIOS (example: Tekram + 53C8XX based SCSI board with a vendor-specific BIOS (example: Tekram DC-390/U/W/F). - However, if all your non Symbios compatible boards have NvRAM, + + However, if all your non Symbios compatible boards have NVRAM, setting option "detect and read serial NVRAMs" (CONFIG_SCSI_NCR53C8XX_NVRAM_DETECT) above allows the driver to distinguish Symbios compatible boards from other ones. So, you can answer Y if all non Symbios compatible boards have NVRAM. + If unsure, say N. IBMMCA SCSI support CONFIG_SCSI_IBMMCA This is support for the IBM SCSI adapter found in many of the PS/2 - series. CONFIG_MCA must be set for this to work. If the adapter - isn't found during boot (a common problem for models 56, 57, 76, and - 77) you'll need to use the 'ibmmcascsi=', where is the id - of the SCSI subsystem (usually 7, but if that doesn't work check your - reference diskette). Owners of model 95 with a LED-matrix-display - can in addition activate some activity info like under OS/2, but more - informative, by setting 'ibmmcascsi=display' as additional kernel- - parameter. + series computers. These machines have an MCA bus, so you need to say + Y to "MCA support" as well and read Documentation/mca.txt. + + If the adapter isn't found during boot (a common problem for models + 56, 57, 76, and 77) you'll need to use the 'ibmmcascsi=' kernel + option, where is the id of the SCSI subsystem (usually 7, but + if that doesn't work check your reference diskette). Owners of model + 95 with a LED-matrix-display can in addition activate some activity + info like under OS/2, but more informative, by setting + 'ibmmcascsi=display' as an additional kernel parameter. Try "man + bootparam" or see the documentation of your boot loader about how to + pass options to the kernel. The lilo procedure is also explained in + the SCSI-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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. The module will be + called ibmmca.o. Standard SCSI-order CONFIG_IBMMCA_SCSI_ORDER_STANDARD - In the PC-world and in most modern SCSI-BIOS-setups, SCSI-harddisks - are assigned to the driveletters, starting with the lowest SCSI-id + In the PC-world and in most modern SCSI-BIOS-setups, SCSI-hard disks + are assigned to the drive letters, starting with the lowest SCSI-id (physical number - pun) to be drive C:, as seen from DOS and similar - operating systems. When looking into papers, describing the + operating systems. When looking into papers describing the ANSI-SCSI-standard, this assignment of drives appears to be wrong. - The SCSI-standard follows a hardware-hierarchy which says, that + The SCSI-standard follows a hardware-hierarchy which says that id 7 has the highest priority and id 0 the lowest. Therefore, the - hostadapters are still today everywhere placed as SCSI-id 7 by - default. In the SCSI-standard, the driveletters express the priority - of the disk. C: should be the harddisk or a partition on it, with the + host adapters are still today everywhere placed as SCSI-id 7 by + default. In the SCSI-standard, the drive letters express the priority + of the disk. C: should be the hard disk, or a partition on it, with the highest priority. This must therefore be the disk with the highest SCSI-id (e.g. 6) and not the one with the lowest! IBM-BIOS kept the original definition of the SCSI-standard as also industrial- and process-control-machines, like VME-CPUs running under realtime-OSs (e.g. LynxOS, OS9) do. - If you like to run Linux on your MCA-machine with the same assignment, - of harddisks, as seen from e.g. DOS or OS/2 on your machine, which - is in addition conform to the SCSI-standard, you must say 'y' here. + + If you like to run Linux on your MCA-machine with the same assignment + of hard disks as seen from e.g. DOS or OS/2 on your machine, which + is in addition conformant to the SCSI-standard, you must say Y here. This is also necessary for MCA-Linux-users who want to keep downward- compatibility to older releases of the IBM-MCA-SCSI-driver (older than driver-release 2.00 and older than June 1997). - If you like to have the lowest SCSI-id assigned as drive C:, as modern - SCSI-BIOS do, which is not conform to the standard, but widely spread - and common in the PC-world of today, you must say 'n' here. -Reset SCSI-devices at boottime + If you like to have the lowest SCSI-id assigned as drive C:, as + modern SCSI-BIOSes do, which does not conform to the standard, but + is widespread and common in the PC-world of today, you must say N + here. If unsure, say Y. + +Reset SCSI-devices at boot time CONFIG_IBMMCA_SCSI_DEV_RESET - By default, SCSI-devices are reset, when the machine is powered on. + By default, SCSI-devices are reset when the machine is powered on. However, some devices exist, like special-control-devices, - SCSI-CNC-machines, SCSI-printer or scanners of older type, that - do not reset, when switched on. If you say 'y' here, each device - along your SCSI-bus will get a reset-command after it has been - probed, while the kernel is booting. Say always 'n' here, if you - have no such strange SCSI-devices on your bus. If you say 'y' and - some more modern devices, like harddisks, do not like too much - resets, your system will hang when booting. + SCSI-CNC-machines, SCSI-printer or scanners of older type, that do + not reset when switched on. If you say Y here, each device connected + to your SCSI-bus will be issued a reset-command after it has been + probed, while the kernel is booting. This may cause problems with + more modern devices, like hard disks, which do not appreciate these + reset commands, and can cause your system to hang. So say Y only if + you know that one of your older devices needs it; N is the safe + answer. Always IN2000 SCSI support CONFIG_SCSI_IN2000 This is support for an ISA bus SCSI host adapter. You'll find more information in drivers/scsi/in2000.readme. If it doesn't work out of the box, you may have to change the jumpers for IRQ or address - selection. If you want to compile this 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. The module - will be called in2000.o. + selection. + + If you want to compile this 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. The module will be + called in2000.o. PAS16 SCSI support CONFIG_SCSI_PAS16 This is support for a SCSI host adapter. It is explained in section - 3.10 of the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the - box, you may have to change some settings in drivers/scsi/pas16.h. - 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 - pas16.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt. + 3.10 of the SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If it doesn't work out + of the box, you may have to change some settings in + drivers/scsi/pas16.h. + + 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 pas16.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. PCI2000 support CONFIG_SCSI_PCI2000 This is support for the PCI2000I EIDE interface card which acts as a - SCSI host adapter. Please read the SCSI-HOWTO, available via ftp - (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This - driver is also available as a module called pci2000.o ( = code which - can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + SCSI host adapter. Please read the SCSI-HOWTO, available via FTP + (user: anonymous) at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + This driver is also available as a module called pci2000.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. PCI2220i support CONFIG_SCSI_PCI2220I This is support for the PCI2220i EIDE interface card which acts as a - SCSI host adapter. Please read the SCSI-HOWTO, available via ftp - (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This - driver is also available as a module called pci2220i.o ( = code + SCSI host adapter. Please read the SCSI-HOWTO, available via FTP + (user: anonymous) at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + This driver is also available as a module called pci2220i.o ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. @@ -2910,12 +3401,13 @@ PSI240i support CONFIG_SCSI_PSI240I This is support for the PSI240i EIDE interface card which acts as a - SCSI host adapter. Please read the SCSI-HOWTO, available via ftp - (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This - driver is also available as a module called psi240i.o ( = code which - can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + SCSI host adapter. Please read the SCSI-HOWTO, available via FTP + (user: anonymous) at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + This driver is also available as a module called psi240i.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. Qlogic FAS SCSI support CONFIG_SCSI_QLOGIC_FAS @@ -2925,12 +3417,13 @@ does NOT support the PCI version. The PCI versions are supported by the Qlogic ISP driver though. Information about this driver is contained in drivers/scsi/README.qlogicfas. You should also read - the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - qlogicfas.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt. + the SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 qlogicfas.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. Qlogic ISP SCSI support (EXPERIMENTAL) CONFIG_SCSI_QLOGIC_ISP @@ -2940,56 +3433,64 @@ Y here, make sure to say Y to "PCI BIOS support" as well. More information is contained in the file drivers/scsi/README.qlogicisp. You should also read the SCSI-HOWTO, - available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - qlogicisp.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt. + available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 qlogicisp.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. Seagate ST-02 and Future Domain TMC-8xx SCSI support CONFIG_SCSI_SEAGATE These are 8-bit SCSI controllers; the ST-01 is also supported by - this driver. It is explained in section 3.9 of the SCSI-HOWTO, - available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the - box, you may have to change some settings in drivers/scsi/seagate.h. + this driver. It is explained in section 3.9 of the SCSI-HOWTO, + available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If it doesn't work out + of the box, you may have to change some settings in + drivers/scsi/seagate.h. + 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 seagate.o. If you want to compile - it as a module, say M here and read Documentation/modules.txt. + inserted in and removed from the running kernel whenever you want). + The module will be called seagate.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Trantor T128/T128F/T228 SCSI support CONFIG_SCSI_T128 This is support for a SCSI host adapter. It is explained in section - 3.11 of the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of - the box, you may have to change some settings in + 3.11 of the SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If it doesn't work out + of the box, you may have to change some settings in drivers/scsi/t128.h. Note that Trantor was purchased by Adaptec, and - some former Trantor products are being sold under the Adaptec - name. 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 t128.o. If you want to compile it - as a module, say M here and read Documentation/modules.txt. + some former Trantor products are being sold under the Adaptec name. + + 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 t128.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. UltraStor SCSI support CONFIG_SCSI_ULTRASTOR This is support for the UltraStor 14F, 24F and 34F SCSI-2 host adapter family. This driver is explained in section 3.12 of the - SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the - box, you may have to change some settings in - drivers/scsi/ultrastor.h. If you want to compile this 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. The module will be called ultrastor.o. + SCSI-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If it doesn't work out + of the box, you may have to change some settings in + drivers/scsi/ultrastor.h. + Note that there is also another driver for the same hardware: "UltraStor 14F/34F support", above. + If you want to compile this 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. The module will be + called ultrastor.o. + 7000FASST SCSI support CONFIG_SCSI_7000FASST This driver supports the Western Digital 7000 SCSI host adapter family. Some information is in the source: drivers/scsi/wd7000.c. + 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 wd7000.o. If you want to compile it @@ -3001,29 +3502,31 @@ and does not need any BIOS32 service. DPT ISA and all EISA i/o addresses are probed looking for the "EATA" signature. If you said Y to "PCI bios support", the addresses of all the PCI SCSI controllers - reported by BIOS32 are probed as well. Note that there is also - another driver for the same hardware available: "EATA-DMA - support". You should say Y to only one of them. You want to read + reported by BIOS32 are probed as well. You want to read the start of drivers/scsi/eata.c and the SCSI-HOWTO, available via - ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If - you want to compile this 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. The module will be called - eata.o. + FTP (user: anonymous) at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note that there is also another driver for the same hardware + available: "EATA-DMA support". You should say Y to only one of them. + + If you want to compile this 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. The module will be + called eata.o. enable tagged command queuing CONFIG_SCSI_EATA_TAGGED_QUEUE This is a feature of SCSI-2 which improves performance: the host adapter can send several SCSI commands to a device's queue even if previous commands haven't finished yet. Some SCSI devices don't - implement this properly, so the save answer is N. + implement this properly, so the safe answer is N. enable elevator sorting CONFIG_SCSI_EATA_LINKED_COMMANDS This is a feature of SCSI-2 which improves performance: the host adapter can send a whole list of commands to a device in one batch. Some SCSI devices might not implement this properly, so the - save answer is N. + safe answer is N. maximum number of queued commands CONFIG_SCSI_EATA_MAX_TAGS @@ -3036,12 +3539,13 @@ CONFIG_SCSI_NCR53C406A This is support for the NCR53c406a SCSI host adapter. For user configurable parameters, check out drivers/scsi/NCR53c406.c in the - kernel source. Also read the SCSI-HOWTO, available via ftp (user: - anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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. The module will be called - NCR53c406.o. + kernel source. Also read the SCSI-HOWTO, available via FTP (user: + anonymous) at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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. The module will be + called NCR53c406.o. Tekram DC390(T) (AMD PCscsi) SCSI support CONFIG_SCSI_DC390T @@ -3049,6 +3553,7 @@ the Am53C974A chip, and perhaps other cards using the same chip. This driver does _not_ support the DC390W/U/F adaptor with the NCR/Symbios chips; use "NCR53C8XX SCSI support" for that one. + 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. The module will be @@ -3058,38 +3563,45 @@ CONFIG_SCSI_AM53C974 This is support for the AM53/79C974 SCSI host adapters. Please read drivers/scsi/README.AM53C974 for details. Also, the SCSI-HOWTO, - available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO, is for you. 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. The module will be called - AM53C974.o. + available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO, is for you. + + 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. The module will be + called AM53C974.o. GDT SCSI Disk Array Controller support CONFIG_SCSI_GDTH This is a driver for all SCSI Disk Array Controllers (EISA/ISA/PCI) manufactured by ICP vortex. It is documented in the kernel source in - drivers/scsi/gdth.c and drivers/scsi/gdth.h. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + drivers/scsi/gdth.c and drivers/scsi/gdth.h. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you want to compile it as a module, say M here and read + Documentation/modules.txt. IOMEGA Parallel Port ZIP drive SCSI support CONFIG_SCSI_PPA This driver supports the parallel port version of IOMEGA's ZIP drive - (a 100Mb removable media device). For more information about this + (a 100Mb removable media device). For more information about this driver and how to use it you should read the file - drivers/scsi/README.ppa. You should also read the SCSI-HOWTO, which - is available via anonymous ftp from sunsite.unc.edu in the directory - /pub/Linux/docs/HOWTO. If you use this driver, you will still be - able to use the parallel port for other tasks, such as a printer; it - is safe to compile both drivers into the kernel. This driver is also - available as a module which can be inserted in and removed from the - running kernel whenever you want. To compile this driver as a - module, say M here and read Documentation/modules.txt. The module - will be called ppa.o. Note that you can say N here if you have the - SCSI version of the ZIP drive: it will be supported automatically if - you said Y to the generic "SCSI disk support", above. + drivers/scsi/README.ppa. You should also read the SCSI-HOWTO, which + is available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. If you use this driver, + you will still be able to use the parallel port for other tasks, + such as a printer; it is safe to compile both drivers into the + kernel. + + Note that you can say N here if you have the SCSI version of the ZIP + drive: it will be supported automatically if you said Y to the + generic "SCSI disk support", above. + + This driver is also available as a module which can be inserted in + and removed from the running kernel whenever you want. To compile + this driver as a module, say M here and read + Documentation/modules.txt. The module will be called ppa.o. EPP FIFO Checking CONFIG_SCSI_PPA_HAVE_PEDANTIC @@ -3105,57 +3617,109 @@ SCSI Debug host simulator. CONFIG_SCSI_DEBUG - This is a host adapter simulator that can be programmed to simulate a - large number of conditions that could occur on a real bus. The advantage - is that many hard to reproduce problems can be tested in a controlled - environment where there is reduced risk of losing important data. - This is primarily of use to people trying to debug the middle and upper - layers of the scsi subsystem. If unsure, say N. + This is a host adapter simulator that can be programmed to simulate + a large number of conditions that could occur on a real bus. The + advantage is that many hard to reproduce problems can be tested in a + controlled environment where there is reduced risk of losing + important data. This is primarily of use to people trying to debug + the middle and upper layers of the SCSI subsystem. If unsure, say N. + +AcornSCSI support +CONFIG_SCSI_ACORNSCSI_3 + This enables support for the Acorn SCSI card (aka30). If you have an + Acorn system with one of these, say Y. If unsure, say N. + +Acorn SCSI tagged queue support +CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE + Say Y here to enable tagged queuing support on the Acorn SCSI card. + +Acorn SCSI Synchronous transfers support +CONFIG_SCSI_ACORNSCSI_SYNC + Say Y here to enable synchronous transfer negociation with all targets + on the Acorn SCSI card. + +Oak SCSI support +CONFIG_SCSI_OAK1 + This enables support for the Oak SCSI card. If you have an Acorn system + with one of these, say Y. If unsure, say N. + +Cumana SCSI I support +CONFIG_SCSI_CUMANA_1 + This enables support for the Cumana SCSI I card. If you have an Acorn + system with one of these, say Y. If unsure, say N. + +Cumana SCSI II support +CONFIG_SCSI_CUMANA_2 + This enables support for the Cumana SCSI II card. If you have an Acorn + system with one of these, say Y. If unsure, say N. + +EcoSCSI support +CONFIG_SCSI_ECOSCSI + This enables support for the EcoSCSI card - a small card that sits in + the Econet socket. If you have an Acorn system with one of these, + say Y. If unsure, say N. + +EESOX SCSI support +CONFIG_SCSI_EESOXSCSI + This enables support for the EESOX SCSI card. If you have an Acorn + system with one of these, say Y, otherwise say N. + +Powertec SCSI support +CONFIG_SCSI_POWERTECSCSI + This enables support for the Powertec SCSI card on Acorn systems. If + you have one of these, say Y. If unsure, say N. Network device support? CONFIG_NETDEVICES - You can say N here in case you don't intend to connect to any other - computer at all or all your connections will be either via UUCP - (UUCP is a protocol to forward mail and news between unix hosts over - telephone lines; read the UUCP-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO) or dialing up a - shell account or a BBS, even using term (term is a program which - gives you almost full Internet connectivity if you have a regular - dial up shell account on some Internet connected Unix computer. Read + You can say N here if you don't intend to connect to any other + computer at all or if all your connections will be over a telephone + line with a modem either via UUCP (UUCP is a protocol to forward + mail and news between unix hosts over telephone lines; read the + UUCP-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO) or dialing up a shell + account or a BBS, even using term (term is a program which gives you + almost full Internet connectivity if you have a regular dial up + shell account on some Internet connected Unix computer. Read http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html (to browse the WWW, you need to have access to a machine on the Internet that - has a program like lynx or netscape)). You'll have to say Y if your - computer contains a network card that you want to use under linux - (make sure you know its name because you will be asked for it and read - the Ethernet-HOWTO in sunsite.unc.edu:/pub/Linux/docs/HOWTO; or if you - want to use SLIP (Serial Line Internet Protocol is the protocol used - to send Internet traffic over telephone lines or nullmodem cables) - or CSLIP (compressed SLIP) or PPP (Point to Point Protocol, a better - and newer replacement for SLIP) or PLIP (Parallel Line Internet - Protocol is mainly used to create a mini network by connecting the - parallel ports of two local machines) or AX.25/KISS (protocol for - sending internet traffic over radio links). Make sure to read the - NET-2-HOWTO. Eventually, you will have to read Olaf Kirch's - excellent book "Network Administrator's Guide", to be found in - sunsite.unc.edu:/pub/Linux/docs/LDP. If unsure, say Y. + has a program like lynx or netscape)). + + You'll have to say Y if your computer contains a network card that + you want to use under Linux (make sure you know its name because you + will be asked for it and read the Ethernet-HOWTO (especially if you + plan to use more than one network card under Linux), available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini) or if you want to use + SLIP (Serial Line Internet Protocol is the protocol used to send + Internet traffic over telephone lines or nullmodem cables) or CSLIP + (compressed SLIP) or PPP (Point to Point Protocol, a better and + newer replacement for SLIP) or PLIP (Parallel Line Internet Protocol + is mainly used to create a mini network by connecting the parallel + ports of two local machines) or AX.25/KISS (protocol for sending + Internet traffic over radio links). + + Make sure to read the NET-2-HOWTO. Eventually, you will have to read + Olaf Kirch's excellent and free book "Network Administrator's + Guide", to be found in sunsite.unc.edu:/pub/Linux/docs/LDP. If + unsure, say Y. Dummy net driver support CONFIG_DUMMY This is essentially a bit-bucket device (i.e. traffic you send to this device is consigned into oblivion) with a configurable IP address. It is most commonly used in order to make your currently - inactive SLIP address seem like a real address for local - programs. If you use SLIP or PPP, you might want to say Y here. Read - about it in the Network Administrator's Guide, available via ftp - (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/LDP. Since - this thing comes often handy, the default is Y. It won't enlarge - your kernel either. What a deal. If you want to compile this 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. The module will be called dummy.o. If you - want to use more than one dummy device at a time, you need to - compile this driver as a module. Instead of 'dummy', the devices - will then be called 'dummy0', 'dummy1' etc. + inactive SLIP address seem like a real address for local programs. + If you use SLIP or PPP, you might want to say Y here. Read about it + in the Network Administrator's Guide, available via FTP (user: + anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/LDP. Since this + thing often comes in handy, the default is Y. It won't enlarge your + kernel either. What a deal. + + If you want to compile this 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. The module will be + called dummy.o. If you want to use more than one dummy device at a + time, you need to compile this driver as a module. Instead of + 'dummy', the devices will then be called 'dummy0', 'dummy1' etc. SLIP (serial line) support CONFIG_SLIP @@ -3163,27 +3727,30 @@ connect to your Internet service provider or to connect to some other local Unix box or if you want to configure your Linux box as a Slip/CSlip server for other people to dial in. SLIP (Serial Line - Internet Protocol) is the protocol used to send Internet traffic + Internet Protocol) is a protocol used to send Internet traffic over telephone lines or serial cables (also known as - nullmodems). Normally, your access provider has to support SLIP in - order for you to be able to use it, but there is now a SLIP emulator - called SLiRP around (available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/system/network/serial/) which allows you - to use SLIP over a regular dial up shell connection. If you plan to - use SLiRP, make sure to say Y to CSLIP, below. The NET-2-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO, explains how to configure - SLIP. Note that you don't need this option if you just want to run - term (term is a program which gives you almost full Internet - connectivity if you have a regular dial up shell account on some - Internet connected Unix computer. Read + nullmodems); nowadays, the protocol PPP is more common than SLIP. + + Normally, your access provider has to support SLIP in order for you + to be able to use it, but there is now a SLIP emulator called SLiRP + around (available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/system/network/serial/ ) which + allows you to use SLIP over a regular dial up shell connection. If + you plan to use SLiRP, make sure to say Y to CSLIP, below. The + NET-2-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO, explains how to + configure SLIP. Note that you don't need this option if you just + want to run term (term is a program which gives you almost full + Internet connectivity if you have a regular dial up shell account on + some Internet connected Unix computer. Read http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html (to browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or netscape)). SLIP support will enlarge - your kernel by about 4kB. If unsure, say N. If you want to compile - this 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 as well as + your kernel by about 4kB. If unsure, say N. + + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called slip.o. @@ -3193,13 +3760,13 @@ TCP/IP headers (not on the data itself), but it has to be supported on both ends. Ask your access provider if you are not sure and say Y, just in case. You will still be able to use plain SLIP. If you - plan to use SLiRP, the SLIP emulator (available via ftp (user: - anonymous) from sunsite.unc.edu:/pub/Linux/system/network/serial/) - which allows you to use SLIP over a regular dial up shell - connection, you definitely want to say Y here. The NET-2-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO, explains how to configure - CSLIP. This won't enlarge your kernel. + plan to use SLiRP, the SLIP emulator (available via FTP (user: + anonymous) from + ftp://sunsite.unc.edu/pub/Linux/system/network/serial/) which allows + you to use SLIP over a regular dial up shell connection, you + definitely want to say Y here. The NET-2-HOWTO, available via FTP + (user: anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO, + explains how to configure CSLIP. This won't enlarge your kernel. Keepalive and linefill CONFIG_SLIP_SMART @@ -3217,43 +3784,37 @@ end of the link as well. It's good enough, for example, to run IP over the async ports of a Camtec JNT Pad. If unsure, say N. -Wireless LAN (non-hamradio) -CONFIG_NET_RADIO - Support for wireless LAN's and everything having to do with radio, - but not with amateur radio. Note that the answer to this question - won't directly affect the kernel: saying N will just cause this - configure script to skip all the questions about radio - interfaces. Some user-level drivers for scarab devices which don't - require special kernel support are available via ftp (user: - anonymous) from shadow.cabi.net in /pub/Linux. - PPP (point-to-point) support CONFIG_PPP PPP (Point to Point Protocol) is a newer and better SLIP. It serves the same purpose: sending Internet traffic over telephone (and other - serial) lines. Ask your access provider if they support it, because + serial) lines. Ask your access provider if they support it, because otherwise you can't use it (not quite true any more: the free program SLiRP can emulate a PPP line if you just have a regular dial - up shell account on some UNIX computer; get it via ftp (user: - anonymous) from sunsite.unc.edu:/pub/Linux/system/network/serial/). - To use PPP, you need an additional program called pppd as described - in Documentation/networking/ppp.txt and in the PPP-HOWTO, available - from sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you upgrade from an - older kernel, you might need to upgrade pppd as well. Note that you - don't need "PPP support" if you just want to run term (term is a + up shell account on some UNIX computer; get it via FTP (user: + anonymous) from + ftp://sunsite.unc.edu/pub/Linux/system/network/serial/). Note that + you don't need "PPP support" if you just want to run term (term is a program which gives you almost full Internet connectivity if you have a regular dial up shell account on some Internet connected UNIX computer. Read http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html (to browse the WWW, you need to have access to a machine on the Internet that - has a program like lynx or netscape)). The PPP option enlarges your - kernel by about 16kB. This driver is also available as a module ( = - code which can be inserted in and removed from the running kernel - whenever you want). If you said Y to "Version information on all - symbols" above, then you cannot compile the PPP driver into the - kernel; you can then only compile it as a module. The module will be - called ppp.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt as well as + has a program like lynx or netscape)). + + To use PPP, you need an additional program called pppd as described + in Documentation/networking/ppp.txt and in the PPP-HOWTO, available + from sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you upgrade from an + older kernel, you might need to upgrade pppd as well. The PPP option + enlarges your kernel by about 16kB. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you said Y to "Version information on all symbols" above, then + you cannot compile the PPP driver into the kernel; you can then only + compile it as a module. The module will be called ppp.o. If you want + to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Note that, no matter what you do, the BSD compression code (used to compress the IP packets sent over the serial line; has to be supported at the other end as @@ -3261,25 +3822,17 @@ and will show up in the directory modules once you have said "make modules". If unsure, say N. -Shortwave radio modem driver -CONFIG_HFMODEM - This experimental driver is used by a package (to be released) - that implements the shortwave radio protocols RTTY, Sitor (Amtor), - Pactor 1 and GTOR using a standard PC soundcard. If unsure, - say N. - -Shortwave radio modem driver support for SoundBlaster and compatible cards -CONFIG_HFMODEM_SBC - This option enables the hfmodem driver to use SoundBlaster and - compatible cards. It requires a 16bit capable card, i.e. - SB16 or better, or ESS1688 or newer. +Wireless LAN (non-hamradio) +CONFIG_NET_RADIO + Support for wireless LAN's and everything having to do with radio, + but not with amateur radio. Note that the answer to this question + won't directly affect the kernel: saying N will just cause this + configure script to skip all the questions about radio + interfaces. -Shortwave radio modem driver support for WSS and Crystal cards -CONFIG_HFMODEM_WSS - This option enables the hfmodem driver to use WindowsSoundSystem - compatible cards. These cards feature a codec chip from either - Analog Devices (such as AD1848, AD1845) or Crystal - Semiconductors (such as CS4248, CS423x). + Some user-level drivers for scarab devices which don't require + special kernel support are available via FTP (user: anonymous) from + ftp://shadow.cabi.net/pub/Linux. STRIP (Metricom Starmode radio IP) CONFIG_STRIP @@ -3293,23 +3846,48 @@ a cellular telephone. (You may also have heard them called "Metricom modems" but we avoid the term "modem" because it misleads many people into thinking that you can plug a Metricom modem into a - phone line and use it as a modem.) You can use STRIP on any Linux - machine with a serial port, although it is obviously most useful for - people with laptop computers. If you think you might get a Metricom - radio in the future, there is no harm in saying Y to STRIP now, - except that it makes the kernel a bit bigger. You can also compile - this 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. The module will be called strip.o. + phone line and use it as a modem.) + + You can use STRIP on any Linux machine with a serial port, although + it is obviously most useful for people with laptop computers. If you + think you might get a Metricom radio in the future, there is no harm + in saying Y to STRIP now, except that it makes the kernel a bit + bigger. + + You can also compile this 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. The module will be called + strip.o. + +AT&T WaveLAN & DEC RoamAbout DS support +CONFIG_WAVELAN + The Lucent Wavelan (formerly NCR and AT&T ; or DEC RoamAbout DS) is + a Radio LAN (wireless Ethernet-like Local Area Network) using the + radio frequencies 900 MHz and 2.4 GHz. + + This driver support the ISA version of the Wavelan card. A separate + driver for the pcmcia hardware is available in David Hinds's pcmcia + package. If you want to use an ISA Wavelan card under Linux, say Y + and read the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Some more specific + information is contained in Documentation/networking/wavelan.txt. + You will also need the wireless tools package available from + ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/contrib/. + + 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 wavelan.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. Radio support CONFIG_MISC_RADIO If you have a radio card (which enables your computer to receive - regular radio broadcasts), then you will want to say "y" here and + regular radio broadcasts), then you will want to say Y here and make a character device file (usually /dev/radio) with major number 10 and minor 152 using mknod ("man mknod"). And then, don't forget to pick up some useful tools to use said device (you _might_ find - something at ftp.lmh.ox.ac.uk: /users/weejock/linux/, but I haven't + something at ftp://ftp.lmh.ox.ac.uk/users/weejock/linux/, but I haven't written anything too useful yet...) AIMSlab RadioTrack card @@ -3322,17 +3900,29 @@ Enter either 0x30f or 0x20f here. The card default is 0x30f, if you haven't changed the jumper setting on the card. +Aztech/Packard Bell Radio +CONFIG_RADIO_AZTECH + Choose Y here if you have one of these, and then fill in the port + address below. + +Aztech/Packard Bell radio card i/o port +CONFIG_RADIO_AZTECH_PORT + Enter either 0x350 or 0x358 here. The card default is 0x350, if you + haven't changed the setting of jumper JP3 on the card. Removing the + jumper sets the card to 0x358. + LAPB over Ethernet driver CONFIG_LAPBETHER This is a driver for a pseudo device (typically called /dev/lapb0) which allows you to open an LAPB point-to-point connection to some - other computer on your ethernet network. In order to do this, you - need to say Y or M to the driver for your ethernet card as well as - to "LAPB Data Link 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. The module will be called lapbether.o. - If unsure, say N. + other computer on your Ethernet network. In order to do this, you + need to say Y or M to the driver for your Ethernet card as well as + to "LAPB Data Link 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. The module will be + called lapbether.o. If unsure, say N. X.25 async driver CONFIG_X25_ASY @@ -3340,241 +3930,67 @@ asynchronous serial lines such as telephone lines equipped with ordinary modems. Experts should note that this driver doesn't currently comply with the asynchronous HDLS framing protocols in - CCITT recommendation X.25. 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. The module will be called x25_asy.o. If - unsure, say N. - -Z8530 SCC driver for AX.25 -CONFIG_SCC - These cards are used to connect your Linux box to an amateur radio - in order to communicate with other computers. If you want to use - this, read Documentation/networking/z8530drv.txt and the - AX.25-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to say Y to - "Amateur Radio AX.25 Level 2" support. If you want to compile this - 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. The module will be called scc.o. - -additional delay for PA0HZP OptoSCC compatible boards -CONFIG_SCC_DELAY - -support for TRX that feedback the tx signal to rx -CONFIG_SCC_TRXECHO -### -### Don't know what's going on here. -### - -High-speed (DMA) SCC driver for AX.25 -CONFIG_DMASCC - This is a driver for high-speed SCC boards (used to connect your - computer to your amateur radio and send internet traffic over the - radio), i.e. those supporting DMA on one port. Currently, only - Ottawa PI/PI2 boards (see http://hydra.carleton.ca/info/pi2.html) - and Gracilis PackeTwin boards (see http://www.paccomm.com/; to - browse the WWW, you need to have access to a machine on the Internet - that has a program like lynx or netscape) are supported and detected - automatically. If you have one of these cards, you can say Y here - and should read the HAM-HOWTO, available via ftp (user: anonymous) - in sunsite.unc.edu:/pub/Linux/docs/HOWTO. - This driver operates multiple boards simultaneously. If you compile - this driver as a module, it will be called dmascc.o. If you don't - give any parameter to the driver, all possible I/O addresses are - probed. This could irritate other devices that are currently not in - use. You may specify the list of addresses to be probed by - "dmascc=addr1,addr2,..." (when compiled into the kernel image) or - "io=addr1,addr2,..." (when loaded as a module). The network - interfaces will be called dmascc0 and dmascc1 for the board detected - first, dmascc2 and dmascc3 for the second one, and so on. Before you - configure each interface with ifconfig, you MUST set certain - parameters, such as channel access timing, clock mode, and DMA - channel. This is accomplished with a small utility program called - dmascc_cfg, which is part of the ax25-utils package. Alternatively, - you may download the utility from - http://www.oevsv.at/~oe1kib/Linux.html. + CCITT recommendation X.25. -BAYCOM picpar and par96 driver for AX.25 -CONFIG_BAYCOM_PAR - This is a driver for Baycom style simple amateur radio modems that - connect to a parallel interface. The driver supports the picpar and - par96 designs. To configure the driver, use the sethdlc utility - available in the standard ax25 utilities package. For information on - the modems, see http://www.baycom.de (to browse the WWW, you need to - have access to a machine on the Internet that has a program like - lynx or netscape) and Documentation/networking/baycom.txt. If you - want to compile this driver as a module ( = code which can be + 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. The module will be called baycom_par.o. - -BAYCOM ser12 full duplex driver for AX.25 -CONFIG_BAYCOM_SER_FDX - This is one of two drivers for Baycom style simple amateur radio - modems that connect to a serial interface. The driver supports the - ser12 design in full duplex mode. In addition, it allows the - baudrate to be set between 300 and 4800 baud (however not all modems - support all baudrates). This is the preferred driver. The next - driver, "BAYCOM ser12 half duplex driver for AX.25" is the old - driver and still provided in case this driver does not work with - your serial interface chip. To configure the driver, use the sethdlc - utility available in the standard ax25 utilities package. For - information on the modems, see http://www.baycom.de (to browse the - WWW, you need to have access to a machine on the Internet that has a - program like lynx or netscape) and - Documentation/networking/baycom.txt. 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. The module will be - called baycom_ser_fdx.o. - -BAYCOM ser12 half duplex driver for AX.25 -CONFIG_BAYCOM_SER_HDX - This is one of two drivers for Baycom style simple amateur radio - modems that connect to a serial interface. The driver supports the - ser12 design in full duplex mode. This is the old driver. It is - still provided in case your serial interface chip does not work with - the full duplex driver. This driver is depreciated. To configure - the driver, use the sethdlc utility available in the standard ax25 - utilities package. For information on the modems, see - http://www.baycom.de (to browse the WWW, you need to have access to - a machine on the Internet that has a program like lynx or netscape) - and Documentation/networking/baycom.txt. 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. The module will be - called baycom_ser_hdx.o. + say M here and read Documentation/modules.txt. The module will be + called x25_asy.o. If unsure, say N. -Soundcard modem driver for AX.25 -CONFIG_SOUNDMODEM - This experimental driver allows a standard SoundBlaster or - WindowsSoundSystem compatible soundcard to be used as a packet radio - modem (NOT as a telephone modem!), to send digital traffic over - amateur radio. To configure the driver, use the sethdlc, smdiag and - smmixer utilities available in the standard ax25 utilities - package. For information on how to key the transmitter, see - http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html (to browse - the WWW, you need to have access to a machine on the Internet that - has a program like lynx or netscape) and - Documentation/networking/soundmodem.txt. 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. The module will be - called soundmodem.o. +Shortwave radio modem driver +CONFIG_HFMODEM + This experimental driver is used by a package (to be released) + that implements the shortwave radio protocols RTTY, Sitor (Amtor), + Pactor 1 and GTOR using a standard PC sound card. If unsure, + say N. -Soundcard modem support for SoundBlaster and compatible cards -CONFIG_SOUNDMODEM_SBC - This option enables the soundmodem driver to use SoundBlaster and - compatible cards. If you have a dual mode card (i.e. a WSS cards - with a SoundBlaster emulation) you should say N here and Y to - "Soundcard modem support for WSS and Crystal cards", below, because - this usually results in better performance. This option also supports - SB16/32/64 in full duplex mode. +Shortwave radio modem driver support for SoundBlaster and compatible cards +CONFIG_HFMODEM_SBC + This option enables the hfmodem driver to use SoundBlaster and + compatible cards. It requires a 16bit capable card, i.e. + SB16 or better, or ESS1688 or newer. -Soundcard modem support for WSS and Crystal cards -CONFIG_SOUNDMODEM_WSS - This option enables the soundmodem driver to use WindowsSoundSystem +Shortwave radio modem driver support for WSS and Crystal cards +CONFIG_HFMODEM_WSS + This option enables the hfmodem driver to use WindowsSoundSystem compatible cards. These cards feature a codec chip from either - Analog Devices (such as AD1848, AD1845, AD1812) or Crystal - Semiconductors (such as CS4248, CS423x). This option also supports - the WSS full duplex operation which currently works with Crystal - CS423x chips. If you don't need full duplex operation, do not enable - it to save performance. - -Soundcard modem support for 1200 baud AFSK modulation -CONFIG_SOUNDMODEM_AFSK1200 - This option enables the soundmodem driver 1200 baud AFSK modem, - compatible to popular modems using TCM3105 or AM7911. The demodulator - requires about 12% of the CPU power of a Pentium 75 CPU per channel. - -Soundcard modem support for 2400 baud AFSK modulation (7.3728MHz crystal) -CONFIG_SOUNDMODEM_AFSK2400_7 - This option enables the soundmodem driver 2400 baud AFSK modem, - compatible to TCM3105 modems (over-)clocked with a 7.3728MHz - crystal. Note that the availability of this driver does _not_ imply - that I recommend building such links. It is only here since users - especially in eastern Europe have asked me to do so. In fact this - modulation scheme has many disadvantages, mainly its incompatibility - with many transceiver designs and the fact that the TCM3105 (if - used) is operated widely outside its specifications. - -Soundcard modem support for 2400 baud AFSK modulation (8MHz crystal) -CONFIG_SOUNDMODEM_AFSK2400_8 - This option enables the soundmodem driver 2400 baud AFSK modem, - compatible to TCM3105 modems (over-)clocked with an 8MHz crystal. - Note that the availability of this driver does _not_ imply that I - recommend building such links. It is only here since users - especially in eastern Europe have asked me to do so. In fact this - modulation scheme has many disadvantages, mainly its incompatibility - with many transceiver designs and the fact that the TCM3105 (if - used) is operated widely outside its specifications. - -Soundcard modem support for 2666 baud AFSK modulation -CONFIG_SOUNDMODEM_AFSK2666 - This option enables the soundmodem driver 2666 baud AFSK modem. - This modem is experimental, and not compatible to anything - else I know of. - -Soundcard modem support for 4800 baud 8PSK modulation -CONFIG_SOUNDMODEM_PSK4800 - This option enables the soundmodem driver 4800 baud 8PSK modem. - This modem is experimental, and not compatible to anything - else I know of. - -Soundcard modem support for 4800 baud HAPN-1 modulation -CONFIG_SOUNDMODEM_HAPN4800 - This option enables the soundmodem driver 4800 baud HAPN-1 - compatible modem. This modulation seems to be widely used 'down - under' and in the Netherlands. Here, nobody uses it, so I could not - test if it works. It is compatible to itself, however :-) - -Soundcard modem support for 9600 baud FSK G3RUH modulation -CONFIG_SOUNDMODEM_FSK9600 - This option enables the soundmodem driver 9600 baud FSK modem, - compatible to the G3RUH standard. The demodulator requires about 4% - of the CPU power of a Pentium 75 CPU per channel. You can say Y to - both 1200 baud AFSK and 9600 baud FSK if you want (but obviously you - can only use one protocol at a time, depending on what the other end - can understand). - -Serial port KISS driver for AX.25 -CONFIG_MKISS - KISS is the protocol used to send IP traffic over AX.25 radio - connections, somewhat similar to SLIP for telephone lines. Say Y - here if you intend to send internet traffic over amateur radio, - using some device connected to your machine's serial port. In that - case, you also have to say Y to "Amateur Radio AX.25 Level 2" - support. 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. The module will be called mkiss.o. + Analog Devices (such as AD1848, AD1845) or Crystal + Semiconductors (such as CS4248, CS423x). PLIP (parallel port) support CONFIG_PLIP PLIP (Parallel Line Internet Protocol) is used to create a reasonably fast mini network consisting of two (or, rarely, more) - local machines. The PLIP driver has two modes, mode 0 and mode - 1. The parallel ports (the connectors at the computers with 25 - holes) are connected with "null printer" or "Turbo Laplink" cables - which can transmit 4 bits at a time (mode 0) or with special PLIP - cables, to be used on bidirectional parallel ports only, which can - transmit 8 bits at a time (mode 1); you can find the wiring of these - cables in Documentation/networking/PLIP.txt. The cables can be up to - 15m long. Mode 0 works also if one of the machines runs DOS/Windows - and has some PLIP software installed, e.g. the Crynwr PLIP packet - driver (http://www.kanren.net/pktdrvr-info.html; to browse the WWW, - you need to have access to a machine on the Internet that has a - program like lynx or netscape) and winsock or NCSA's telnet. If you - want to use PLIP, say Y and read the PLIP mini-HOWTO, available via - ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini - as well as the NET-2-HOWTO in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the PLIP protocol - was changed and this PLIP driver won't work together with the PLIP - support in Linux versions 1.0.x. This option enlarges your kernel - by about 8kB. If you want to compile this 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 as well as + local machines. A PLIP link from a Linux box is a popular means to + install a Linux distribution on a machine which doesn't have a CDROM + drive (a minimal system has to be transferred with floppies + first). The kernels on both machines need to have this PLIP option + enabled for this to work. + + The PLIP driver has two modes, mode 0 and mode 1. The parallel ports + (the connectors at the computers with 25 holes) are connected with + "null printer" or "Turbo Laplink" cables which can transmit 4 bits + at a time (mode 0) or with special PLIP cables, to be used on + bidirectional parallel ports only, which can transmit 8 bits at a + time (mode 1); you can find the wiring of these cables in + Documentation/networking/PLIP.txt. The cables can be up to 15m long. + Mode 0 works also if one of the machines runs DOS/Windows and has + some PLIP software installed, e.g. the Crynwr PLIP packet driver + (http://oak.oakland.edu/simtel.net/msdos/pktdrvr-pre.html; to browse + the WWW, you need to have access to a machine on the Internet that + has a program like lynx or netscape) and winsock or NCSA's telnet. + + If you want to use PLIP, say Y and read the PLIP mini-HOWTO, + available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini as well as the + NET-2-HOWTO in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Note that + the PLIP protocol was changed and this PLIP driver won't work + together with the PLIP support in Linux versions 1.0.x. This option + enlarges your kernel by about 8kB. + + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called plip.o. If unsure, say Y or M, in case you buy a laptop later. @@ -3582,16 +3998,18 @@ CONFIG_EQUALIZER If you have two serial connections to some other computer (this usually requires two modems and two telephone lines) and you use - SLIP (= the protocol for sending internet traffic over telephone + SLIP (= the protocol for sending Internet traffic over telephone lines) or PPP (= a better SLIP) on them, you can make them behave like one double speed connection using this driver. Naturally, this has to be supported at the other end as well, either with a similar EQL Linux driver or with a Livingston Portmaster 2e. Say Y if you - want this and read Documentation/networking/eql.txt. 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 eql.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. If unsure, say N. + want this and read Documentation/networking/eql.txt. + + 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 eql.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. If unsure, + say N. Ethertap network tap CONFIG_ETHERTAP @@ -3599,25 +4017,26 @@ driver", above) and create a character special file /dev/tap0 with major number 36 and minor number 16 using mknod ("man mknod"), you will be able to have a user space program read and write raw - ethernet frames from/to that special file. tap0 can be configured - with ifconfig and route like any other ethernet device but it is not + Ethernet frames from/to that special file. tap0 can be configured + with ifconfig and route like any other Ethernet device but it is not connected to any physical LAN; everything written by the user to /dev/tap0 is treated by the kernel as if it had come in from a LAN to the device tap0; everything the kernel wants to send out over the device tap0 can instead be read by the user from /dev/tap0: the user mode program replaces the LAN that would be attached to an ordinary - ethernet device. Please read the file - Documentation/networking/ethertap.txt for more information. 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 ethertap.o. If you want to compile it as a + Ethernet device. Please read the file + Documentation/networking/ethertap.txt for more information. + + 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 ethertap.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. If you don't know what to use this for, you don't need it. Frame Relay (DLCI) support CONFIG_DLCI This is support for the frame relay protocol; frame relay is a fast - low-cost way to connect to a remote internet access provider or to + low-cost way to connect to a remote Internet access provider or to form a private wide area network. The one physical line from your box to the local "switch" (i.e. the entry point to the frame relay network, usually at the phone company) can carry several logical @@ -3626,42 +4045,97 @@ http://www.frforum.com/ on the WWW. (To browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or netscape.) To use frame relay, you need supporting hardware - (FRAD) and certain programs from the net-tools package as explained - in Documentation/networking/framerelay.txt. 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 dlci.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt. + (called FRAD) and certain programs from the net-tools package as + explained in Documentation/networking/framerelay.txt. + + 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 dlci.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Max open DLCI +CONFIG_DLCI_COUNT + This is the maximal number of logical point-to-point frame relay + connections (the identifiers of which are called DCLIs) that + the driver can handle. The default is probably fine. + +Max DLCI per device +CONFIG_DLCI_MAX + You can specify here how many logical point-to-point frame relay + connections (the identifiers of which are called DCLIs) should be + handled by each of your hardware frame relay access devices. Go with + the default. + +Sangoma S502A FRAD support +CONFIG_SDLA + Say Y here if you need a driver for the Sangoma S502A, S502E, and + S508 Frame Relay Access Devices. These are multi-protocol cards, but + only frame relay is supported by the driver at this time. Please + read Documentation/framerelay.txt. + + 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 sdla.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +WAN Router +CONFIG_WAN_ROUTER + Wide Area Networks (WANs), such as X.25, frame relay and leased + lines, are used to interconnect Local Area Networks (LANs) over vast + distances with data transfer rates significantly higher than those + achievable with commonly used asynchronous modem connections. + Usually, a quite expensive external device called a `WAN router' is + needed to connect to a WAN. + + As an alternative, WAN routing can be built into the Linux kernel. + With relatively inexpensive WAN interface cards available on the + market, a perfectly usable router can be built for less than half + the price of an external router. If you have one of those cards and + wish to use your Linux box as a WAN router, say Y here and to the + WAN driver for your card, below. You will also need a wan-tools + package available via FTP (user: anonymous) from + ftp://ftp.sangoma.com. Read Documentation/networking/wan-router.txt + for more information. + + WAN routing support is always built as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module is called wanrouter.o. For general information + about modules read Documentation/modules.txt. -Max open DLCI -CONFIG_DLCI_COUNT - This is the maximal number of logical point-to-point frame relay - connections (the identifiers of which are called DCLIs) that - the driver can handle. The default is probably fine. +Fast switching (read help!) +CONFIG_NET_FASTROUTE + Saying Y here enables direct NIC-to-NIC (NIC = Network Interface + Card) data transfers, which is fast. -Max DLCI per device -CONFIG_DLCI_MAX - You can specify here how many logical point-to-point frame relay - connections (the identifiers of which are called DCLIs) should be - handled by each of your hardware frame relay access devices. Go with - the default. + *** This option is NOT COMPATIBLE with several important *** + *** networking options: especially CONFIG*FIREWALL. *** -Sangoma S502A FRAD support -CONFIG_SDLA - Say Y here if you need a driver for the Sangoma S502A, S502E, and - S508 Frame Relay Access Devices. These are multi-protocol cards, but - only frame relay is supported by the driver at this time. Please - read Documentation/framerelay.txt. 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 - sdla.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt. + However, it will work with all options in CONFIG_IP_ADVANCED_ROUTER + section (except for CONFIG_IP_ROUTE_TOS). At the moment, few devices + support fast switching (tulip is one of them, modified 8390 can be + found at ftp://ftp.inr.ac.ru/ip-routing/fastroute-8390.tar.gz). + + If unsure, say N. + +Forwarding between high speed interfaces +CONFIG_NET_HW_FLOWCONTROL + This option enables NIC (Network Interface Card) hardware throttling + during periods of extremal congestion. At the moment only a couple + of device drivers support it (really only one ---tulip, modified + 8390 can be found at + ftp://ftp.inr.ac.ru/ip-routing/fastroute-8390.tar.gz). Really, this + option is applicable to any machine attached to a fast enough + network, and even a 10Mb NIC is able to kill a not very slow box, + such as a 120MHz Pentium. + + However, do not say Y here if you did not experience any serious + problems. CPU is too slow to handle full bandwidth CONFIG_CPU_IS_SLOW -### -### How to know when the CPU is too slow? -### + If you suspect that your CPU is not fast enough to handle the + full bandwidth of your network connection, try saying Y here. If + unsure, say N. QoS and/or fair queueing CONFIG_NET_SCHED @@ -3669,11 +4143,16 @@ devices, it has to make a decision which one to send first. This is especially important if some of the network devices are real time devices that need a certain minimum data flow rate. There are - several different algorithms how to do this "fairly"; they are + several different algorithms for how to do this "fairly"; they are called packet schedulers. You can attach different schedulers to different network devices. If you want to stick to the default scheduling algorithm, say N here. If you want to experiment with a - couple of different algorithms, say Y. The available schedulers are + couple of different algorithms, say Y. + + To administer these schedulers, you'll need the user-level utilities + from the package iproute2+tc at ftp://ftp.inr.ac.ru/ip-routing/ + + The available schedulers are listed in the following questions; you can say Y to as many as you like. If unsure, say N now. @@ -3686,11 +4165,11 @@ separate algorithms (called "disciplines" in this context) which you can choose below from among the "auxiliary disciplines". See the top of net/sched/sch_cbq.c for references about the CBQ algorithm. - This code is also available as a - module called sch_cbq.o ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read - Documentation/modules.txt. + + This code is also available as a module called sch_cbq.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. CSZ packet scheduler CONFIG_NET_SCH_CSZ @@ -3698,21 +4177,26 @@ scheduling algorithm for some of your network devices. At the moment, this is the only algorithm that can guarantee service for real-time applications (see the top of net/sched/sch_csz.c for - details and references about the algorithm). This code is also - available as a module called sch_csz.o ( = code which can be - inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + details and references about the algorithm). + + Note: this scheduler is currently broken. + + This code is also available as a module called sch_csz.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. RED queueing discipline CONFIG_NET_SCH_RED Say Y here if you want to use the Random Early Detection (RED) packet scheduling algorithm for some of your network devices (see the top of net/sched/sch_red.c for details and references about the - algorithm). This code is also available as a module called sch_red.o - ( = code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt. + algorithm). + + This code is also available as a module called sch_red.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. SFQ queueing discipline CONFIG_NET_SCH_SFQ @@ -3720,206 +4204,228 @@ packet scheduling algorithm for some of your network devices or as a leaf discipline for the CBQ scheduling algorithm (see the top of net/sched/sch_sfq.c for details and references about the SFQ - algorithm). This code is also available as a module called sch_sfq.o - ( = code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt. + algorithm). + + This code is also available as a module called sch_sfq.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. auxiliary TBF queue CONFIG_NET_SCH_TBF Say Y here if you want to use the Simple Token Bucket Filter (TBF) packet scheduling algorithm for some of your network devices or as a leaf discipline for the CBQ scheduling algorithm (see the top of - net/sched/sch_tbf.c for a description of the TBF algorithm). This code - is also available as a module called sch_tbf.o ( = code which can be - inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + net/sched/sch_tbf.c for a description of the TBF algorithm). + + This code is also available as a module called sch_tbf.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. auxiliary FIFO queue CONFIG_NET_SCH_PFIFO Say Y here if you want to use a simple FIFO (first in - first out) packet "scheduler" for some of your network devices or as a leaf - discipline for the CBQ scheduling algorithm. This code is also - available as a module called sch_fifo.o ( = code which can be - inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + discipline for the CBQ scheduling algorithm. + + This code is also available as a module called sch_fifo.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. auxiliary PRIO queue CONFIG_NET_SCH_PRIO Say Y here if you want to use an n-band priority queue packet "scheduler" for some of your network devices or as a leaf discipline - for the CBQ scheduling algorithm. This code is also available as a - module called sch_prio.o ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read - Documentation/modules.txt. -### -### what user level programs are needed to administrate these packet -### schedulers? -### + for the CBQ scheduling algorithm. -WAN Router -CONFIG_WAN_ROUTER - Wide Area Networks (WANs), such as X.25, frame relay and leased - lines, are used to interconnect Local Area Networks (LANs) over vast - distances with data transfer rates significantly higher than those - achievable with commonly used asynchronous modem connections. - Usually, a quite expensive external device called `WAN router' is - needed to connect to WAN. - As an alternative, WAN router can be build into Linux kernel. - With relatively inexpensive WAN interface cards available on the - market, a perfectly usable router can be built for less than half a - price of an external router. If you have one of those cards (with - appropriate WAN Link Driver) and wish to use your Linux box as a WAN - router, you may say 'Y' to this option. You will also need a - wan-tools package available via FTP (user: anonymous) from - ftp.sangoma.com. Read Documentation/networking/wan-router.txt for - more information. - WAN router is always built as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - For general information about modules read Documentation/modules.txt. + This code is also available as a module called sch_prio.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. + +Network code profiler +CONFIG_NET_PROFILE + If you say Y here and to "/proc filesystem support" below, some + obscure and undocumented information about the network code's + performance will be written to /proc/net/profile. If you don't know + what it is about, you don't need it: say N. WAN Drivers CONFIG_WAN_DRIVERS - Say 'Y' to this option if you are planning to use your Linux box - as a WAN router ( = device used to interconnect local area networks - over wide area communication links, such as leased lines and public - data networks, e.g. X.25 and frame relay) and you will be offered a - list of WAN drivers currently available. For more information, read - Documentation/networking/wan-router.txt. + Say Y to this option if your Linux box contains a WAN card and you + are planning to use the box as a WAN ( = Wide Area Network) router ( + = device used to interconnect local area networks over wide area + communication links, such as leased lines and public data networks, + e.g. X.25 and frame relay) and you will be offered a list of drivers + for WAN cards currently available. For more information, read + Documentation/networking/wan-router.txt. Note that the answer to + this question won't directly affect the kernel: saying N will just + cause this configure script to skip all the questions about WAN + card drivers. If unsure, say N. Sangoma WANPIPE(tm) multiprotocol cards CONFIG_VENDOR_SANGOMA - WANPIPE from Sangoma Technologies Inc. (http://www.sangoma.com) - is a family of intelligent multiprotocol WAN adapter with data - transfer rates up to T1 (1.544 Mbps). They are also known as - Synchronous Data Link Adapters (SDLA) and designated S502E(A), S503 - or S508. If you have one of these cards, say 'Y' to this option. - WANPIPE driver is always built as a module ( = code which can be + WANPIPE from Sangoma Technologies Inc. (http://www.sangoma.com; to + browse the WWW, you need to have access to a machine on the Internet + that has a program like lynx or netscape) is a family of intelligent + multiprotocol WAN adapters with data transfer rates up to T1 (1.544 + Mbps). They are also known as Synchronous Data Link Adapters (SDLA) + and designated S502E(A), S503 or S508. These cards support the X.25, + Frame Relay, and PPP protocols. If you have one or more of these + cards, say Y to this option and read + Documentation/networking/wanpipe.txt. The next questions will ask + you about the protocols you want the driver to support. + + The driver will be compiled as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - For general information about modules read Documentation/modules.txt. + The module will be called wanpipe.o. For general information about + modules read Documentation/modules.txt. Maximum number of cards CONFIG_WANPIPE_CARDS - Enter number of WANPIPE adapters installed in your machine. The - driver can support up to 8 cards. You may enter more that you + Enter number of WANPIPE adapters installed in your machine. The + driver can support up to 8 cards. You may enter more than you actually have if you plan to add more cards in the future without re-compiling the driver, but remember that in this case you'll waste some kernel memory (about 1K per card). WANPIPE X.25 support CONFIG_WANPIPE_X25 - Say 'Y' to this option, if you are planning to connect WANPIPE - card to an X.25 network. If you say 'N', the X.25 support will not - be included in the driver (saves about 16K of kernel memory). + Say Y to this option if you are planning to connect a WANPIPE card + to an X.25 network. You should then also have said Y to "CCITT X.25 + Packet Layer" and "LAPB Data Link Driver", above. If you say N, the + X.25 support will not be included in the driver (saves about 16K of + kernel memory). WANPIPE Frame Relay support CONFIG_WANPIPE_FR - Say 'Y' to this option, if you are planning to connect WANPIPE - card to a frame relay network. If you say 'N', the frame relay + Say Y to this option if you are planning to connect a WANPIPE card + to a frame relay network. You should then also have said Y to "Frame + Relay (DLCI) support", above. If you say N, the frame relay support will not be included in the driver (saves about 16K of kernel memory). WANPIPE PPP support CONFIG_WANPIPE_PPP - Say 'Y' to this option, if you are planning to connect WANPIPE - card to a leased line using Point-to-Point protocol (PPP). If you - say 'N', the PPP support will not be included in the driver (saves + Say Y to this option if you are planning to connect a WANPIPE card + to a leased line using Point-to-Point protocol (PPP). You should + then also have said Y to "PPP (point-to-point) support", above. If + you say N, the PPP support will not be included in the driver (saves about 16K of kernel memory). +Ethernet (10 or 100Mbit) +CONFIG_NET_ETHERNET + Ethernet (also called IEEE 802.3 or ISO 8802-2) is the most common + type of Local Area Networks (LANs) in universities or + companies. 10-base-2 or Thinnet (10 Mbps over coaxial cable, linking + computers in a chain), 10-base-T (10 Mbps over twisted pair + telephone cable, linking computers to a central hub) and + 100-base- (100 Mbps) are common types of Ethernet. + + If your Linux machine will be connected to an Ethernet and you have + an Ethernet network card installed in your computer, say Y here and + read the Ethernet-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note that the answer to this question won't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about Ethernet network cards. If unsure, say N. - Sun LANCE Ethernet support - CONFIG_SUN_LANCE - This is support for lance ethernet cards on Sun workstations such as Sun LANCE Ethernet support CONFIG_SUN_LANCE - This is support for lance ethernet cards on Sun workstations such as + This is support for lance Ethernet cards on Sun workstations such as the Sparcstation IPC (any Sparc with a network interface 'le0' under - SunOS basically). 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 lance.o. If you want - to compile it as a module, say M here and read - Documentation/modules.txt. + SunOS basically). + + 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 lance.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Sun Intel Ethernet support CONFIG_SUN_INTEL - This is support for the intel ethernet cards on some Sun workstations + This is support for the Intel Ethernet cards on some Sun workstations (all those with a network interface 'ie0' under SunOS). -Ethernet (10 or 100Mbit) -CONFIG_NET_ETHERNET - Ethernet (also called IEEE 802.3 or ISO 8802-2) is the most common - type of Local Area Networks (LANs) in universities or - companies. 10-base-2 or Thinnet (10 Mbps over coaxial cable, linking - computers in a chain), 10-base-T (10 Mbps over twisted pair - telephone cable, linking computers to a central hub) and - 100-base- (100 Mbps) are common types of ethernet. If your - Linux machine will be connected to an Ethernet and you have an - ethernet network card installed in your computer, say Y here and - read the Ethernet-HOWTO, available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the answer to this - question won't directly affect the kernel: saying N will just cause - this configure script to skip all the questions about Ethernet - network cards. If unsure, say N. - Western Digital/SMC cards CONFIG_NET_VENDOR_SMC - If you have a network (ethernet) card belonging to this class, say Y - and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the - answer to this question doesn't directly affect the kernel: - saying N will just cause this configure script to skip all the - questions about Western Digital cards. If you say Y, you will be + If you have a network (Ethernet) card belonging to this class, say Y + and read the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about Western Digital cards. If you say Y, you will be asked for your specific card in the following questions. WD80*3 support CONFIG_WD80x3 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - wd.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 wd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. + +SMC Ultra MCA support +CONFIG_ULTRAMCA + If you have a network (Ethernet) card of this type and are running + an MCA based system (PS/2), say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 smc-mca.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. SMC Ultra support CONFIG_ULTRA - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 smc-ultra.o. If you want to compile it as a module, say M - here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. - Important: There have been many reports that, with some motherboards + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Important: There have been many reports that, with some motherboards mixing an SMC Ultra and an Adaptec AHA154x SCSI card (or compatible, - such as some BusLogic models) causes corruption problems with many - operating systems. The linux smc-ultra driver has a work-around for this - but keep it in mind if you have such a SCSI card and have problems. + such as some BusLogic models) causes corruption problems with many + operating systems. The Linux smc-ultra driver has a work-around for + this but keep it in mind if you have such a SCSI card and have + problems. -SMC Ultra32 EISA support -CONFIG_ULTRA - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 smc-ultra32.o. If you want to compile it as a module, say M - here and read Documentation/modules.txt as well as + 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 smc-ultra.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. +SMC Ultra32 EISA support +CONFIG_ULTRA32 + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 smc-ultra32.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt as well + as Documentation/networking/net-modules.txt. + SMC 9194 Support CONFIG_SMC9194 - This is support for the SMC9xxx based Ethernet cards. Choose this + This is support for the SMC9xxx based Ethernet cards. Choose this option if you have a DELL laptop with the docking station, or - another SMC9192/9194 based chipset. Say Y if you want it compiled - into the kernel, and read the the file + another SMC9192/9194 based chipset. Say Y if you want it compiled + into the kernel, and read the file Documentation/networking/smc9.txt and the Ethernet-HOWTO, available - via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. + via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + 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 smc9194.o. If you want to compile @@ -3928,183 +4434,204 @@ Racal-Interlan (Micom) NI cards CONFIG_NET_VENDOR_RACAL - If you have a network (ethernet) card belonging to this class, such + If you have a network (Ethernet) card belonging to this class, such as the NI5010, NI5210 or NI6210, say Y and read the Ethernet-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the answer - to this question doesn't directly affect the kernel: - saying N will just cause this configure script to skip all the - questions about NI cards. If you say Y, you will be asked for your - specific card in the following questions. + available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about NI cards. If you say Y, you will be asked for + your specific card in the following questions. NI5010 support CONFIG_NI5010 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that this is still - experimental code. 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 - ni5010.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Note that this is still + experimental code. + + 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 ni5010.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. NI5210 support CONFIG_NI52 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - ni52.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 ni52.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. NI6510 support CONFIG_NI65 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - ni65.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 ni65.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. AMD LANCE and PCnet (AT1500 and NE2100) support CONFIG_LANCE - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Some LinkSys cards are of - this type. + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Some LinkSys cards are + of this type. 3COM cards CONFIG_NET_VENDOR_3COM - If you have a network (ethernet) card belonging to this class, say Y - and read the Ethernet-HOWTO, available via ftp (user: anonymous) - in sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the answer to - this question doesn't directly affect the kernel: saying N will just - cause this configure script to skip all the questions about 3COM - cards. If you say Y, you will be asked for your specific card in the - following questions. + If you have a network (Ethernet) card belonging to this class, say Y + and read the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about 3COM cards. If you say Y, you will be asked for + your specific card in the following questions. 3c501 support CONFIG_EL1 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also, consider buying a new - card, since the 3c501 is slow, broken, and obsolete: you will have - problems. Some people suggest to ping ("man ping") a nearby machine - every minute ("man cron") when using this card. 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 3c501.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Also, consider buying a + new card, since the 3c501 is slow, broken, and obsolete: you will + have problems. Some people suggest to ping ("man ping") a nearby + machine every minute ("man cron") when using this card. + + 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 3c501.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. 3c503 support CONFIG_EL2 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - 3c503.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 3c503.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. 3c505 support CONFIG_ELPLUS - Information about this network (ethernet) card can be found in + Information about this network (Ethernet) card can be found in Documentation/networking/3c505.txt. If you have a card of this type, - say Y and read the Ethernet-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to - compile this 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 as well as + say Y and read the Ethernet-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called 3c505.o. 3c507 support CONFIG_EL16 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - 3c507.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 3c507.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. 3c523 support CONFIG_ELMC - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - 3c523.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 3c523.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. 3c509/3c579 support CONFIG_EL3 - If you have a network (ethernet) card belonging to the 3Com + If you have a network (Ethernet) card belonging to the 3Com EtherLinkIII series, say Y and read the Ethernet-HOWTO, available - via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. + via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If your card is not working you may need to use the DOS + setup disk to disable Plug & Play mode, and to select the default + media type. + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called - 3c509.o. If your card is not working you may need to use the DOS setup - disk to disable Plug & Play mode, and to select the default media type. + 3c509.o. 3c590 series (592/595/597) "Vortex" support CONFIG_VORTEX - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is - in Documentation/networking/vortex.txt and in the comments at the - beginning of drivers/net/3c59x.c. If you want to compile this 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 as well as - Documentation/networking/net-modules.txt. The module will be called - 3c59x.o. + If you have a 3Com "Vortex" or "Boomerang" series network (Ethernet) + card (Fast EtherLink 3c590/3c592/3c595/3c597 or the EtherLink XL + 3c900 or 3c905), say Y and read the Ethernet-HOWTO, available via + FTP (user: anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + More specific information is in Documentation/networking/vortex.txt + and in the comments at the beginning of drivers/net/3c59x.c. + + If you want to compile this 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 as well as + Documentation/networking/net-modules.txt. Other ISA cards CONFIG_NET_ISA - If your network (ethernet) card hasn't been mentioned yet and its + If your network (Ethernet) card hasn't been mentioned yet and its bus system (that's the way the components of the card talk to each other) is ISA (as opposed to EISA, VLB or PCI), say Y. Make sure you know the name of your card. Read the Ethernet-HOWTO, available via - ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If - unsure, say Y. Note that the answer to this question doesn't - directly affect the kernel: saying N will just cause this configure - script to skip all the remaining ISA network card questions. If you - say Y, you will be asked for your specific card in the following - questions. + FTP (user: anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + If unsure, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the remaining ISA network card questions. If you say Y, you will be + asked for your specific card in the following questions. Generic ARCnet support CONFIG_ARCNET If you have a network card of this type, say Y and check out the (arguably) beautiful poetry in Documentation/networking/arcnet.txt. + You need both this driver, and the driver for the particular ARCnet chipset of your card. If you don't know, then it's probably a COM90xx type card, so say Y (or M) to "ARCnet COM90xx chipset support" below. + You might also want to have a look at the Ethernet-HOWTO, available - via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO - (even though ARCnet is not really ethernet). 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 arcnet.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt as well as + via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO (even though ARCnet is + not really Ethernet). + + 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 arcnet.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Enable arc0e (ARCnet "ether-encap" packet format) CONFIG_ARCNET_ETH - This allows you to use "ethernet encapsulation" with your ARCnet + This allows you to use "Ethernet encapsulation" with your ARCnet card via the virtual arc0e device. You only need arc0e if you want to talk to nonstandard ARCnet software, specifically, DOS/Windows-style "NDIS" drivers. You do not need to say Y here to @@ -4131,23 +4658,26 @@ CONFIG_ARCNET_COM90xx This is the chipset driver for the standard COM90xx cards. If you have always used the old arcnet driver without knowing what type of - card you had, this is probably the one for you. 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 com90xx.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt as well as + card you had, this is probably the one for you. + + 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 com90xx.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. ARCnet COM90xx (IO mapped) chipset driver -CONFIG_ARCNET_COM90x +CONFIG_ARCNET_COM90xxIO This is the chipset driver for the COM90xx cards, using them in IO-mapped mode instead of memory-mapped mode. This is slower than the normal driver. Only use it if your card doesn't support shared - memory. 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 com90io.o. If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. + memory. + + 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 com90io.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. ARCnet COM90xx (RIM I) chipset driver CONFIG_ARCNET_RIM_I @@ -4155,6 +4685,7 @@ time only using memory-mapped mode, and no IO ports at all. This driver is completely untested, so if you have one of these cards, please mail dwmw2@cam.ac.uk, especially if it works! + 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 arc-rimi.o. If you want to compile @@ -4165,415 +4696,468 @@ CONFIG_ARCNET_COM20020 This is the driver for the new COM20020 chipset. It supports such things as promiscuous mode, so packet sniffing is possible, and - extra diagnostic information. 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 - com20020.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt as well as + extra diagnostic information. + + 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 com20020.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Cabletron E21xx support CONFIG_E2100 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - e2100.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 e2100.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. CS89x0 support CONFIG_CS89x0 - Support for CS89x0 chipset based ethernet cards. If you have a - network (ethernet) card of this type, say Y and read the - Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO as well as - Documentation/networking/cs89x0.txt. If you want to compile this 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 as well as + Support for CS89x0 chipset based Ethernet cards. If you have a + network (Ethernet) card of this type, say Y and read the + Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO as well as + Documentation/networking/cs89x0.txt. + + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called cs89x.o. DEPCA support CONFIG_DEPCA - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO as well as - drivers/net/depca.c. If you want to compile this 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 as - well as Documentation/networking/net-modules.txt. The module will be - called depca.o. + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO as well as + drivers/net/depca.c. + + If you want to compile this 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 as well as + Documentation/networking/net-modules.txt. The module will be called + depca.o. EtherWorks 3 support CONFIG_EWRK3 - This driver supports the DE203, DE204 and DE205 network (ethernet) + This driver supports the DE203, DE204 and DE205 network (Ethernet) cards. If this is for you, say Y and read Documentation/networking/ewrk3.txt in the kernel source as well as - the Ethernet-HOWTO, available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - 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 as well as + the Ethernet-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called ewrk3.o. SEEQ8005 support CONFIG_SEEQ8005 - This is a driver for the SEEQ 8005 network (ethernet) card. If this - is for you, read the Ethernet-HOWTO, available via ftp (user: - anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. + This is a driver for the SEEQ 8005 network (Ethernet) card. If this + is for you, read the Ethernet-HOWTO, available via FTP (user: + anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. AT1700 support CONFIG_AT1700 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available - as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. The module will be called at1700.o. FMV-181/182/183/184 support CONFIG_FMV18X - If you have a Fujitsu FMV-181/182/183/184 network (ethernet) card, - say Y and read the Ethernet-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 fmv18x.o. If you want to compile it as a module, say M - here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you use FMV-183 or - FMV-184 and it is not working, you may need to disable Plug & Play - mode of the card. + If you have a Fujitsu FMV-181/182/183/184 network (Ethernet) card, + say Y and read the Ethernet-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you use an FMV-183 or FMV-184 and it is not working, you may need + to disable Plug & Play mode of the card. + + 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 fmv18x.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. EtherExpressPro support CONFIG_EEXPRESS_PRO - If you have a network (ethernet) card of this type, say Y. Note - however that the EtherExpressPro 100 ethernet card has its own - separate driver. Please read the Ethernet-HOWTO, available via ftp - (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 eepro.o. If you want to compile it as a + If you have a network (Ethernet) card of this type, say Y. Note + however that the EtherExpressPro 100 Ethernet card has its own + separate driver. Please read the Ethernet-HOWTO, available via FTP + (user: anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 eepro.o. If you want to compile it as a module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. EtherExpress support CONFIG_EEXPRESS - If you have an EtherExpress16 network (ethernet) card, say Y and - read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the Intel + If you have an EtherExpress16 network (Ethernet) card, say Y and + read the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Note that the Intel EtherExpress16 card used to be regarded as a very poor choice because the driver was very unreliable. We now have a new driver - that should do better. 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 as well as + that should do better. + + 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 as well as Documentation/networking/net-modules.txt. The module will be called eexpress.o. -AT&T WaveLAN & DEC RoamAbout DS support -CONFIG_WAVELAN - The Lucent Wavelan (formerly NCR and AT&T ; or DEC RoamAbout DS) is - a Radio LAN (wireless ethernet-like Local Area Network) using the - radio frequencies 900 MHz and 2.4 GHz. - This driver support the ISA version of the Wavelan card. A driver - for the pcmcia hardware is available in David Hinds's pcmcia - package. - If you want to use a card of this type under Linux, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Some more specific - information is contained in - Documentation/networking/wavelan.txt. You will also need the - wireless tools package available from - ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/contrib/. - 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 wavelan.o. If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. - HP PCLAN+ (27247B and 27252A) support CONFIG_HPLAN_PLUS - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - hp-plus.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 hp-plus.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. HP PCLAN (27245 and other 27xxx series) support CONFIG_HPLAN - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - hp.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 hp.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. HP 10/100VG PCLAN (ISA, EISA, PCI) support CONFIG_HP100 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - 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 as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called hp100.o. NE2000/NE1000 support CONFIG_NE2000 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Many ethernet cards without a - specific driver are compatible with NE2000. 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 ne.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Many Ethernet cards + without a specific driver are compatible with NE2000. + + 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 ne.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. SK_G16 support CONFIG_SK_G16 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. EISA, VLB, PCI and on board controllers CONFIG_NET_EISA This is another class of network cards which attach directly to the bus. If you have one of those, say Y and read the Ethernet-HOWTO, - available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you are unsure, say Y. - Note that the answer to this question doesn't - directly affect the kernel: saying N will just cause this configure - script to skip all the questions about this class of network - cards. If you say Y, you will be asked for your specific card in the - following questions. + available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about this class of network cards. If you say Y, you + will be asked for your specific card in the following questions. If + you are unsure, say Y. AMD PCnet32 (VLB and PCI) support CONFIG_PCNET32 - If you have a PCnet32 or PCnetPCI based network (ethernet) card, say - Y here and read the Ethernet-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. + If you have a PCnet32 or PCnetPCI based network (Ethernet) card, say + Y here and read the Ethernet-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Ansel Communications EISA 3200 support CONFIG_AC3200 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - ac3200.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 ac3200.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Racal-Interlan EISA ES3210 support CONFIG_ES3210 - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - es3210.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 es3210.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. + +Mylex EISA LNE390A/LNE390B support +CONFIG_LNE390 + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 lne390.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. -Apricot Xen-II on board ethernet +Apricot Xen-II on board Ethernet CONFIG_APRICOT - If you have a network (ethernet) controller of this type, say Y and - read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - 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 as well as + If you have a network (Ethernet) controller of this type, say Y and + read the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to compile this 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 as well as Documentation/networking/net-modules.txt. The module will be called apricot.o. Generic DECchip & DIGITAL EtherWORKS PCI/EISA CONFIG_DE4X5 - This is support for the DIGITAL series of PCI/EISA ethernet - cards. These include the DE425, DE434, DE435, DE450 and DE500 - models. If you have a network card of this type, say Y and read the - Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is - contained in Documentation/networking/de4x5.txt. 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 de4x5.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt as well as + This is support for the DIGITAL series of PCI/EISA Ethernet cards. + These include the DE425, DE434, DE435, DE450 and DE500 models. If + you have a network card of this type, say Y and read the + Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. More specific + information is contained in Documentation/networking/de4x5.txt. + + 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 de4x5.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. DECchip Tulip (dc21x4x) PCI support CONFIG_DEC_ELCP - This driver is developed for the SMC EtherPower series ethernet + This driver is developed for the SMC EtherPower series Ethernet cards and also works with cards based on the DECchip 21040/21041/21140 (Tulip series) chips. Some LinkSys PCI cards are of this type. (If your card is NOT SMC EtherPower 10/100 PCI (smc9332dst), you can also try the driver for "Generic DECchip" cards, above. However, most people with a network card of this type - will say Y here.) Do read the Ethernet-HOWTO, available via ftp - (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More - specific information is contained in - Documentation/networking/tulip.txt. 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 - tulip.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + will say Y here.) Do read the Ethernet-HOWTO, available via FTP + (user: anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + More specific information is contained in + Documentation/networking/tulip.txt. + + 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 tulip.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Digi Intl. RightSwitch support CONFIG_DGRS This is support for the Digi International RightSwitch series of - PCI/EISA ethernet switch cards. These include the SE-4 and the SE-6 + PCI/EISA Ethernet switch cards. These include the SE-4 and the SE-6 models. If you have a network card of this type, say Y and read the - Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is - contained in Documentation/networking/dgrs.txt. 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 dgrs.o. If you want to compile it as a module, say M here and - read Documentation/modules.txt as well as + Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. More specific + information is contained in Documentation/networking/dgrs.txt. + + 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 dgrs.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. EtherExpressPro/100 support CONFIG_EEXPRESS_PRO100 - If you have an Intel EtherExpressPro 100 PCI network (ethernet) - card, say Y and read the Ethernet-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 eepro100.o. If you want to compile it as a module, say M - here and read Documentation/modules.txt as well as + If you have an Intel EtherExpressPro 100 PCI network (Ethernet) + card, say Y and read the Ethernet-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 eepro100.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. ICL EtherTeam 16i/32 support CONFIG_ETH16I - If you have a network (ethernet) card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - eth16i.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt as well as + If you have a network (Ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 eth16i.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. TI ThunderLAN support (EXPERIMENTAL) CONFIG_TLAN If you have a TLAN based network card which is supported by this - driver, say Y and read the Ethernet-HOWTO. Devices currently - supported are the Compaq Netelligent 10, Netelligent 10/100, and - Internal NetFlex 3. This driver is also available as a module. The - module will be called tlan.o. Please email feedback to - james.banks@caldera.com. + driver, say Y and read the Ethernet-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Devices + currently supported are the Compaq Netelligent 10, Netelligent + 10/100, and Internal NetFlex 3. + + 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 tlan.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. + + Please email feedback to james.banks@caldera.com. + +SMC EtherPower II (EXPERIMENTAL) +CONFIG_EPIC100 + If you have an SMC EtherPower II 9432 PCI Ethernet network card + which is based on the SMC83c170, say Y and read the Ethernet-HOWTO, + available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + 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 epic100.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. Zenith Z-Note support CONFIG_ZNET The Zenith Z-Note notebook computer has a built-in network - (ethernet) card, and this is the Linux driver for it. Note that the + (Ethernet) card, and this is the Linux driver for it. Note that the IBM Thinkpad 300 is compatible with the Z-Note and is also supported - by this driver. Read the Ethernet-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. + by this driver. Read the Ethernet-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Pocket and portable adapters CONFIG_NET_POCKET - Cute little network (ethernet) devices which attach to the parallel + Cute little network (Ethernet) devices which attach to the parallel port ("pocket adapters"), commonly used with laptops. If you have - one of those, say Y and read the Ethernet-HOWTO, available via ftp - (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you - want to plug a network card into the PCMCIA slot of your laptop - instead (PCMCIA is the standard for credit card size extension cards - used by all modern laptops), look in - cb-iris.stanford.edu:/pub/pcmcia and say N here. Note that the - answer to this question doesn't directly affect the kernel: saying N - will just cause this configure script to skip all the questions - about this class of network devices. If you say Y, you will be - asked for your specific device in the following questions. If you - plan to use more than one network device under linux, read the - Multiple-Ethernet-mini-HOWTO, available from - sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + one of those, say Y and read the Ethernet-HOWTO, available via FTP + (user: anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to plug a network card into the PCMCIA slot of your + laptop instead (PCMCIA is the standard for credit card size + extension cards used by all modern laptops), look on the ftp site + (user: anonymous) ftp://cb-iris.stanford.edu/pub/pcmcia and say N + here. + + Laptop user want to read the Linux Laptop homepage at + http://www.cs.utexas.edu/users/kharker/linux-laptop/ (to browse the + WWW, you need to have access to a machine on the Internet that has a + program like lynx or netscape). + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about this class of network devices. If you say Y, you + will be asked for your specific device in the following questions. AT-LAN-TEC/RealTek pocket adapter support CONFIG_ATP - This is a network (ethernet) device which attaches to your parallel + This is a network (Ethernet) device which attaches to your parallel port. Read drivers/net/atp.c as well as the Ethernet-HOWTO, - available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO if you want to use this. If - you plan to use more than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from - sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. If you intend to use - this driver, you should have said N to the Parallel Printer support, - because the two drivers don't like each other. + available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO if you want to use this. + If you intend to use this driver, you should have said N to the + Parallel Printer support, because the two drivers don't like each + other. D-Link DE600 pocket adapter support CONFIG_DE600 - This is a network (ethernet) device which attaches to your parallel + This is a network (Ethernet) device which attaches to your parallel port. Read Documentation/networking/DLINK.txt as well as the - Ethernet-HOWTO, available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO if you want to use this. It is - possible to have several devices share a single parallel port and it - is safe to compile the corresponding drivers into the kernel. If you - want to compile this driver as a module however ( = code which can - be inserted in and removed from the running kernel whenever you - want), say M here and read Documentation/modules.txt. The module - will be called de600.o. + Ethernet-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO if you want to use this. + It is possible to have several devices share a single parallel port + and it is safe to compile the corresponding drivers into the kernel. + + If you want to compile this driver as a module however ( = code + which can be inserted in and removed from the running kernel + whenever you want), say M here and read Documentation/modules.txt. + The module will be called de600.o. D-Link DE620 pocket adapter support CONFIG_DE620 - This is a network (ethernet) device which attaches to your parallel + This is a network (Ethernet) device which attaches to your parallel port. Read Documentation/networking/DLINK.txt as well as the - Ethernet-HOWTO, available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO if you want to use this. It is - possible to have several devices share a single parallel port and it - is safe to compile the corresponding drivers into the kernel. If you - want to compile this driver as a module however ( = code which can - be inserted in and removed from the running kernel whenever you - want), say M here and read Documentation/modules.txt. The module - will be called de620.o. + Ethernet-HOWTO, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO if you want to use this. + It is possible to have several devices share a single parallel port + and it is safe to compile the corresponding drivers into the kernel. + + If you want to compile this driver as a module however ( = code + which can be inserted in and removed from the running kernel + whenever you want), say M here and read Documentation/modules.txt. + The module will be called de620.o. Token Ring driver support CONFIG_TR Token Ring is IBM's way of communication on a local network; the - rest of the world uses ethernet. If you are connected to a token - ring network and want to use your Token Ring card under Linux, say Y. - Most people can say N here. + rest of the world uses Ethernet. To participate on a Token Ring + network, you need a special Token ring network card. If you are + connected to such a Token Ring network and want to use your Token + Ring card under Linux, say Y here and to the driver for your + particular card below and read the Token-Ring mini-HOWTO, available + via FTP (user:anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. Most people can say N + here. IBM Tropic chipset based adapter support CONFIG_IBMTR This is support for all IBM Token Ring cards that don't use DMA. If - you have such a beast, say Y, otherwise N. Warning: this driver will - almost definitely fail if more than one active Token Ring card is - present. 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 ibmtr.o. If you want to compile it - as a module, say M here and read Documentation/modules.txt. + you have such a beast, say Y and read the Token-Ring mini-HOWTO, + available via FTP (user:anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Warning: this driver will almost definitely fail if more than one + active Token Ring card is present. + + 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 ibmtr.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Traffic Shaper (EXPERIMENTAL) CONFIG_SHAPER The traffic shaper is a virtual network device that allows you to - limit the rate of outgoing data flow over another network + limit the rate of outgoing data flow over some other network device. See Documentation/networking/shaper.txt for more information. To set up and configure shaper devices, you need the - shapecfg program, available via ftp (user: anonymous) from - shadow.cabi.net/pub/Linux in the shaper package. 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 shaper.o. If you want to compile it as a module, say M - here and read Documentation/modules.txt. If unsure, say N. + shapecfg program, available via FTP (user: anonymous) from + ftp://shadow.cabi.net/pub/Linux in the shaper package. + + 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 shaper.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. If unsure, + say N. FDDI driver support CONFIG_FDDI Fiber Distributed Data Interface is a high speed local area network - design; essentially a replacement for high speed ethernet. FDDI can + design; essentially a replacement for high speed Ethernet. FDDI can run over copper or fiber. If you are connected to such a network and want a driver for the FDDI card in your computer, say Y here (and then also Y to the driver for your FDDI card, below). Most people @@ -4584,25 +5168,49 @@ This is support for the DIGITAL series of EISA (DEFEA) and PCI (DEFPA) controllers which can connect you to a local FDDI network. +Acorn Ether1 card +CONFIG_ARM_ETHER1 + If you have an Acorn system with one of these (AKA25) network cards, + you should say Y to this option if you wish to use it with Linux. + +Acorn/ANT Ether3 card +CONFIG_ARM_ETHER3 + If you have an Acorn system with one of these network cards, you + should say Y to this option if you wish to use it with Linux. + +I Cubed EtherH card +CONFIG_ARM_ETHERH + If you have an Acorn system with one of these network cards, you + should say Y to this option if you wish to use it with Linux. + +EBSA-110 Ethernet interface +CONFIG_AM79C961A + If you wish to compile a kernel for the EBSA-110, then you should + always answer Y to this. + Support CDROM drives that are not SCSI or IDE/ATAPI CONFIG_CD_NO_IDESCSI If you have a CDROM drive that is neither SCSI nor IDE/ATAPI, say Y - here, otherwise N. Read the CDROM-HOWTO, available via ftp (user: - anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the - answer to this question doesn't directly affect the kernel: saying N - will just cause this configure script to skip all the questions - about these CDROM drives. If you are unsure what you have, say Y and - find out whether you have one of the following drives. + here, otherwise N. Read the CDROM-HOWTO, available via FTP (user: + anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about these CDROM drives. If you are unsure what you + have, say Y and find out whether you have one of the following + drives. + For each of these drivers, a file Documentation/cdrom/ exists. Especially in cases where you do not know exactly which kind - of drive you have you should read there. - Most of these drivers use a file drivers/cdrom/.h - where you can define your interface parameters and switch some - internal goodies. - All these CDROM drivers are also usable as a module (= code which can - be inserted in and removed from the running kernel whenever you want). - If you want to compile them as module, say M instead of Y and read - Documentation/modules.txt. + of drive you have you should read there. Most of these drivers use a + file drivers/cdrom/.h where you can define your + interface parameters and switch some internal goodies. + + All these CDROM drivers are also usable as a module (= code which + can be inserted in and removed from the running kernel whenever you + want). If you want to compile them as module, say M instead of Y and + read Documentation/modules.txt. + If you want to use any of these CDROM drivers, you also have to say Y to "ISO9660 cdrom filesystem support" below (this answer will get "defaulted" for you if you enable any of the Linux CDROM drivers). @@ -4617,34 +5225,41 @@ parameters into drivers/cdrom/cdu31a.c. Try "man bootparam" or see the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel. The lilo procedure is also - explained in the SCSI-HOWTO. If you say Y here, you should also say - Y to "ISO9660 cdrom filesystem support" below, because that's the - filesystem used on CDROMs. 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 cdu31a.o. If - you want to compile it as a module, say M here and read - Documentation/modules.txt. + explained in the SCSI-HOWTO. + + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. + + 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 cdu31a.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Standard Mitsumi [no XA/Multisession] CDROM support CONFIG_MCD This is the older of the two drivers for the older Mitsumi models LU-005, FX-001 and FX-001D. This is not the right driver for the FX-001DE and the triple or quad speed models (all these are - IDE/ATAPI models). + IDE/ATAPI models). Please also the file Documentation/cdrom/mcd. + With the old LU-005 model, the whole drive chassis slides out for cd insertion. The FX-xxx models use a motorized tray type mechanism. Note that this driver does not support XA or MultiSession CDs (PhotoCDs). There is a new driver (next question) which can do this. If you want that one, say N here. + If the driver doesn't work out of the box, you might want to have a - look at drivers/cdrom/mcd.h. If you say Y here, you should - also say Y to "ISO9660 cdrom filesystem support" below, because - that's the filesystem used on CDROMs. Please also read the file - Documentation/cdrom/mcd. 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 mcd.o. If you want to - compile it as a module, say M here and read - Documentation/modules.txt. + look at drivers/cdrom/mcd.h. + + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. + + 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 mcd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Mitsumi [XA/MultiSession] support CONFIG_MCDX @@ -4653,105 +5268,124 @@ FX-001 or FX-001D CDROM drive. In addition, this driver uses much less kernel memory than the old one, if that is a concern. This driver is able to support more than one drive, but each drive needs a separate - interface card. + interface card. Please read the file Documentation/cdrom/mcdx. + If you say Y here, you should also say Y to "ISO9660 cdrom filesystem support" below, because that's the filesystem used on - CDROMs. Please also read the file Documentation/cdrom/mcdx. 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 mcdx.o. If you want to compile it as a module, - say M here and read Documentation/modules.txt. + CDROMs. + + 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 mcdx.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support CONFIG_SBPCD This driver supports most of the drives which use the Panasonic or - SoundBlaster interface. + SoundBlaster interface. Please read the file + Documentation/cdrom/sbpcd. + The Matsushita CR-521, CR-522, CR-523, CR-562, CR-563 drives (sometimes labeled "Creative"), the CreativeLabs CD200, the Longshine LCS-7260, the "IBM External ISA CDROM" (in fact a CR-56x model), the TEAC CD-55A fall under this category. Some other "electrically compatible" drives (Vertos, Genoa, some Funai models) are currently not supported; for the Sanyo H94A drive currently a - separate driver (asked later) is responsible. Most drives have a + separate driver (asked later) is responsible. Most drives have a uniquely shaped faceplate, with a caddyless motorized drawer, but without external brand markings. The older CR-52x drives have a - caddy and manual loading/eject, but still no external markings. The + caddy and manual loading/eject, but still no external markings. The driver is able to do an extended auto-probing for interface addresses and drive types; this can help to find facts in cases you are not sure, but can consume some time during the boot process if - none of the supported drives gets found. - Once your drive got found, you should enter the reported parameters - into drivers/cdrom/sbpcd.h and set "DISTRIBUTION 0" there. - This driver can support up to four CDROM interface cards, and each + none of the supported drives gets found. Once your drive got found, + you should enter the reported parameters into drivers/cdrom/sbpcd.h + and set "DISTRIBUTION 0" there. + + This driver can support up to four CDROM controller cards, and each card can support up to four CDROM drives; if you say Y here, you - will be asked how many controllers you have. If compiled as a - module, only one interface card (but with up to four drives) is - usable. + will be asked how many controller cards you have. If compiled as a + module, only one controller card (but with up to four drives) is + usable. + If you say Y here, you should also say Y to "ISO9660 cdrom filesystem support" below, because that's the filesystem used on - CDROMs. Please also read the file Documentation/cdrom/sbpcd. 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 sbpcd.o. If you want to compile it as a + CDROMs. + + 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 sbpcd.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. Matsushita/Panasonic, ... second CDROM controller support CONFIG_SBPCD2 - Say Y here only if you have two CDROM controller boards of this type + Say Y here only if you have two CDROM controller cards of this type (usually only if you have more than four drives). You should enter the parameters for the second, third and fourth interface card into linux/include/linux/sbpcd.h before compiling the new kernel. Read the file Documentation/cdrom/sbpcd. -Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support +Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support CONFIG_AZTCD This is your driver if you have an Aztech CDA268-01A, Orchid CD-3110, Okano or Wearnes CDD110, Conrad TXC, or CyCDROM CR520 or CR540 CDROM drive. This driver - just like all these CDROM drivers - - is NOT for CDROM drives with IDE/ATAPI interface, such as Aztech - CDA269-031SE. If you say Y here, you should also say Y to "ISO9660 - cdrom filesystem support" below, because that's the filesystem used - on CDROMs. Please also read the file Documentation/cdrom/aztcd. 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 aztcd.o. If you want to compile it as a + - is NOT for CDROM drives with IDE/ATAPI interfaces, such as Aztech + CDA269-031SE. Please read the file Documentation/cdrom/aztcd. + + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. + + 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 aztcd.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. Sony CDU535 CDROM support CONFIG_CDU535 This is the driver for the older Sony CDU-535 and CDU-531 CDROM - drives. If you say Y here, you should also say Y to "ISO9660 cdrom + drives. Please read the file Documentation/cdrom/sonycd535. + + If you say Y here, you should also say Y to "ISO9660 cdrom filesystem support" below, because that's the filesystem used on - CDROMs. Please also read the file Documentation/cdrom/sonycd535. + CDROMs. + 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 sonycd535.o. If you want to compile - it as a module, say M here and read Documentation/modules.txt. + inserted in and removed from the running kernel whenever you want). + The module will be called sonycd535.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. Goldstar R420 CDROM support CONFIG_GSCD If this is your CDROM drive, say Y here. As described in linux/Documentation/cdrom/gscd, you might have to change a setting in the file linux/drivers/cdrom/gscd.h before compiling the - kernel. Please read the file Documentation/cdrom/gscd. If you say Y - here, you should also say Y to "ISO9660 cdrom filesystem support" - below, because that's the filesystem used on CDROMs. 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 gscd.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + kernel. Please read the file Documentation/cdrom/gscd. + + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. + + 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 gscd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Philips/LMS CM206 CDROM support CONFIG_CM206 If you have a Philips/LMS CDROM drive cm206 in combination with a cm260 host adapter card, say Y here. Please also read the file - Documentation/cdrom/cm206. If you say Y here, you should also say Y - to "ISO9660 cdrom filesystem support" below, because that's the - filesystem used on CDROMs. 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 cm206.o. If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + Documentation/cdrom/cm206. + + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. + + 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 cm206.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Optics Storage DOLPHIN 8000AT CDROM support CONFIG_OPTCD @@ -4760,79 +5394,95 @@ you have one of those, say Y. This driver does not work for the Optics Storage 8001 drive; use the IDE-ATAPI CDROM driver for that one. Please read the file Documentation/cdrom/optcd. + If you say Y here, you should also say Y to "ISO9660 cdrom filesystem support" below, because that's the filesystem used on - CDROMs. 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 optcd.o. If you want to compile it - as a module, say M here and read Documentation/modules.txt. + CDROMs. + + 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 optcd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Sanyo CDR-H94A CDROM support CONFIG_SJCD If this is your CDROM drive, say Y here and read the file Documentation/cdrom/sjcd. You should then also say Y to "ISO9660 - cdrom filesystem support" below, because that's the filesystem used - on CDROMs. 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 sjcd.o. If you want to compile it - as a module, say M here and read Documentation/modules.txt. + cdrom filesystem support" below, because that's the filesystem used + on CDROMs. + + 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 sjcd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Soft configurable cdrom interface card support CONFIG_CDI_INIT If you want to include boot-time initialization of any cdrom interface card that is software configurable, say Y here. Currently - only the ISP16/MAD16/Mozart soundcards with built-in cdrom - interfaces are supported. Note that the answer to this question - doesn't directly affect the kernel: saying N will just cause this - configure script to skip all the questions about these CDROM drives. + only the ISP16/MAD16/Mozart sound cards with built-in cdrom + interfaces are supported. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about these CDROM drives. ISP16/MAD16/Mozart soft configurable cdrom interface support CONFIG_ISP16_CDI - These are soundcards with with built-in cdrom interfaces using the + These are sound cards with with built-in cdrom interfaces using the OPTi 82C928 or 82C929 chips. Say Y here to have them detected and possibly configured at boot time. In addition, You'll have to say Y to a driver for the particular cdrom drive you have attached to the - card. Read Documentation/cdrom/isp16 for details. 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 isp16.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + card. Read Documentation/cdrom/isp16 for details. + + 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 isp16.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Preload dcache CONFIG_DCACHE_PRELOAD Preloading will create dcache entries when a directory is scanned - (e.g. with ls) for the *first* time. This should speed up successive - lookups of information about files in that directory, but can also - consume large amounts of memory. + (e.g. because the ls command was used) for the *first* time. This + should speed up successive lookups of information about files in + that directory, but can also consume large amounts of memory. + Please report speedups (or slowdowns due to the memory usage if they occur) to schoebel@informatik.uni-stuttgart.de . + If unsure, say N. Quota support CONFIG_QUOTA If you say Y here, you will be able to set per user limits for disk - usage (also called diskquotas). Currently, it works only for the + usage (also called disk quotas). Currently, it works only for the ext2 filesystem. You need additional software in order to use quota - support; for details, read the Quota mini-HOWTO, available via ftp + support; for details, read the Quota mini-HOWTO, available via FTP (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. Probably the quota + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini. Probably the quota support is only useful for multi user systems. If unsure, say N. Online mirror support CONFIG_OMIRR omirr is a package for _symmetric_ mirroring of files over the - internet. In contrast to rdist, the online mirror daemon (omirrd) - is running all the time and transfers any changes on the file system - as soon as possible to all other servers. Symmetric means that all + Internet. In contrast to rdist, the online mirror daemon (omirrd) is + running all the time and transfers any changes on the file system as + soon as possible to all other servers. Symmetric means that all servers have equal rights in changing a file: the last changer of a file will win. This is the same behaviour as multiple processes operating on a global file system. In effect, omirr can do the same - as nfs mounts, but will have better performance since the data is + as NFS mounts, but will have better performance since the data is stored on local disks. In contrast to a cache filesystem which has a - dedicated master copy, broken connections and/or servers are no problem - for continuing work on the remaining ones, because there is no master - copy. You must say Y if you want to use omirrd, but you should (but - need not) say N if you don't (for performance reasons). + dedicated master copy, broken connections and/or servers are no + problem for continuing work on the remaining ones, because there is + no master copy. Every computer that wants to participate in the + mirroring needs to run the daemon omirrd, contained in the omirr + package which is available via FTP (user: anonymous) from + ftp://ftp.isa.de/pub/home/luik. You must say Y if you want to use + in.omirrd, but you should (but need not) say N if you don't (for + performance reasons). + + Note that this is experimental code; use at your own risk. Filename translation support CONFIG_TRANS_NAMES @@ -4843,6 +5493,7 @@ minimum when used for configuration files. The kernel running on the clients should have this option enabled. If you don't administer a pool of Linux clients, say N here, otherwise read on: + When you say Y here, filenames, directory names etc become context-sensitive. If you have a file named "/etc/config#host=banana#", it will appear (by default) as @@ -4851,19 +5502,26 @@ hardlinked to "/etc/config". This default behaviour can be changed by setting the _first_ environment variable NAMETRANS to a colon-separated list of suffixes - which are tried in the specified order. For example, in 'env - - NAMETRANS=#host=mango#:#ktype=diskless# "`env`" command ...' the - command will see the same files as if it had been executed on host - "mango" with a diskless kernel. + which are tried in the specified order. For example, in + + 'env - NAMETRANS=#host=mango#:#ktype=diskless# "`env`" command ...' + + the command will see the same files as if it had been executed on + host "mango" with a diskless kernel. + Using NAMETRANS supersedes _all_ default translations. Thus translations can be completely switched off with an empty list, - e.g. 'env - NAMETRANS= "`env`" command ...'. Note that some system - utilities like tar, dump, restore should be used with translation - switched off, in order to avoid doubled space in archive files and - when extracting from them. Also, make sure that nfsd, mountd (and - similar ones like samba daemons) run without translation, in order - to avoid doubled (or even wrong) translation at the server and at - the client. + e.g. + + 'env - NAMETRANS= "`env`" command ...' + + Note that some system utilities like tar, dump, restore should be + used with translation switched off, in order to avoid doubled space + in archive files and when extracting from them. Also, make sure that + nfsd, mountd (and similar ones like samba daemons) run without + translation, in order to avoid doubled (or even wrong) translation + at the server and at the client. + You can automatically force the creation of context-dependent filenames if there exists a template filename like "/etc/mtab#host=CREATE#". As soon as a process running on "mango" @@ -4876,6 +5534,7 @@ otherwise try to create one shared /etc/mtab which would result in a clash. Also one should execute "touch /etc/nologin#host=CREATE#" to prevent global side effects from shutdown resp. runlevel. + Please read Documentation/transname.txt if you intend to say Y here. Restrict translation to gid @@ -4889,9 +5548,11 @@ context-dependent files to some special group like "adm" (group id 4) and enable this option. As a result, users will not notice any performance degradation resulting from filename translation. + Note that translations resulting from the first environment variable "NAMETRANS=..." are always carried out regardless of the gid of directories. + Beware: before turning on this option make sure that all directories containing context-dependent files belong to the special group, or system initialization may fail. If unsure, select N. @@ -4918,7 +5579,7 @@ the hostname at boot time, and there is no way to tell the hostname by lilo or bootp. Please avoid using this option and prefer "Nodename (hostname) translation" (CONFIG_TR_NODENAME) wherever - possible. When mounting the root over nfs, the own hostname must be + possible. When mounting the root over NFS, the own hostname must be known at boot time anyway; this option is just for special use. Note that the default translations are tried in the order as occurring in the configuration, that is 1) host 2) kname 3) ktype 4) @@ -4971,24 +5632,25 @@ Minix fs support CONFIG_MINIX_FS Minix is a simple operating system used in many classes about - OS's. The minix filesystem (= method to organize files on a harddisk + OS's. The minix filesystem (= method to organize files on a hard disk partition or a floppy disk) was the original filesystem for Linux, has been superseded by the second extended filesystem ext2fs but is still used for root/boot and other floppies or ram disks since it is - leaner. You don't want to use it on your harddisk because of certain + leaner. You don't want to use it on your hard disk because of certain built-in restrictions. This option will enlarge your kernel by about 25 kB. Everyone should say Y or M so that they are able to read this - common floppy format. If you want to compile this 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. The module will be called minix.o. Note - that the filesystem of your root partition cannot be compiled as a - module. + common floppy format. + + If you want to compile this 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. The module will be + called minix.o. Note that the filesystem of your root partition + cannot be compiled as a module. Second extended fs support CONFIG_EXT2_FS This is the de facto standard Linux filesystem (= method to organize - files on a storage device) for harddisks. You want to say Y, unless + files on a storage device) for hard disks. You want to say Y, unless you intend to use Linux exclusively from inside a DOS partition using the umsdos filesystem. The advantage of the latter is that you can get away without repartitioning your hard drive (which often @@ -5000,32 +5662,41 @@ transition to a *real* Linux partition later. Another (rare) case which doesn't require ext2fs is a diskless Linux box which mounts all files over the network using NFS (in this case it's sufficient - to say Y to "NFS filesystem support" below). There is a short - ext2fs-FAQ, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/faqs. This option will enlarge your - kernel by about 41 kB. If you want to compile this filesystem 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. The module will be called ext2.o. Be - aware however that the filesystem of your root partition cannot be - compiled as a module, and so this could be dangerous. Most everyone - wants to say Y here. + to say Y to "NFS filesystem support" below). Saying Y here will + enlarge your kernel by about 41 kB. + + The Ext2fs-Undeletion mini-HOWTO, available via FTP (user: + anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini, + gives information about how to retrieve deleted files on ext2fs + filesystems. + + To change the behavior of ext2fs filesystems, you can use the + tune2fs utility ("man tune2fs"). + + If you want to compile this filesystem 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. The module + will be called ext2.o. Be aware however that the filesystem of your + root partition cannot be compiled as a module, and so this could be + dangerous. Most everyone wants to say Y here. ISO9660 cdrom filesystem support CONFIG_ISO9660_FS This is the standard filesystem used on CDROMs. It was previously known as "High Sierra Filesystem" and is called "hsfs" on other Unix systems. The so-called Rock-Ridge extensions which allow for long - Unix filenames and symbolic links are also supported by this - driver. If you have a CDROM drive and want to do more with it than - just listen to audio CDs and watch its LEDs, say Y (and read + Unix filenames and symbolic links are also supported by this driver. + If you have a CDROM drive and want to do more with it than just + listen to audio CDs and watch its LEDs, say Y (and read Documentation/filesystems/isofs.txt and the CDROM-HOWTO, available - via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/HOWTO), thereby enlarging your - kernel by about 27 kB; otherwise say N. If you want to compile this - 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. The module will be called isofs.o. + via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO), thereby enlarging your + kernel by about 27 kB; otherwise say N. + + If you want to compile this 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. The module will be + called isofs.o. Microsoft Joliet cdrom extensions CONFIG_JOLIET @@ -5041,66 +5712,75 @@ fat fs support CONFIG_FAT_FS If you want to use one of the FAT-based filesystems (the MS-DOS, - VFAT (Windows'95) and UMSDOS (used to run Linux on top of an + VFAT (Windows 95) and UMSDOS (used to run Linux on top of an ordinary DOS partition) filesystems), then you must include FAT support. This is not a filesystem in itself, but it provides the - foundation for the other filesystems. This option will enlarge your - kernel by about 24 kB. If unsure, say Y. If you want to compile this - as a module however ( = code which can be inserted in and removed - from the running kernel whenever you want), say M here and read - Documentation/modules.txt. The module will be called fat.o. Note - that if you compile the FAT support as a module, you cannot compile - any of the FAT-based filesystems into the kernel - they will have to - be modules as well. The filesystem of your root partition cannot be - a module, so don't say M here if you intend to use UMSDOS as your - root filesystem. + foundation for the other filesystems. It is now also becoming + possible to read and write compressed FAT filesystems; read + Documentation/filesystems/fat_cvf.txt for details. This option will + enlarge your kernel by about 24 kB. If unsure, say Y. + + If you want to compile this as a module however ( = code which can + be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called fat.o. Note that if you compile the FAT support as a + module, you cannot compile any of the FAT-based filesystems into the + kernel - they will have to be modules as well. The filesystem of + your root partition cannot be a module, so don't say M here if you + intend to use UMSDOS as your root filesystem. msdos fs support CONFIG_MSDOS_FS - This allows you to mount MSDOS partitions of your harddrive (unless + This allows you to mount MSDOS partitions of your hard drive (unless they are compressed; to access compressed MSDOS partitions under Linux, you can either use the DOS emulator DOSEMU, described in the - DOSEMU-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO, or try dmsdosfs in - sunsite.unc.edu:/pub/Linux/system/filesystems/dosfs. If you intend - to use dosemu with a non-compressed MSDOS partition, say Y here) and - MSDOS floppies. This means that file access becomes transparent, - i.e. the MSDOS files look and behave just like all other Unix files. + DOSEMU-HOWTO, available via FTP (user: anonymous) at + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO, or try dmsdosfs in + ftp://sunsite.unc.edu/pub/Linux/system/filesystems/dosfs. If you + intend to use dosemu with a non-compressed MSDOS partition, say Y + here) and MSDOS floppies. This means that file access becomes + transparent, i.e. the MSDOS files look and behave just like all + other Unix files. + Another way to read and write MSDOS floppies from within Linux (but not transparently) is with the mtools ("man mtools") program suite, - which doesn't require the msdos filesystem support. If you want to - use umsdos, the Unix-like filesystem on top of DOS, which allows you - to run Linux from within a DOS partition without repartitioning, - you'll have to say Y or M here. If your have Windows'95 or Windows - NT installed on your MSDOS partitions, you should use the VFAT - filesystem instead, or you will not be able to see the long - filenames generated by Windows'95 / Windows NT. This option will - enlarge your kernel by about 7 kB. If unsure, say Y. This will only - work if you said Y to "fat fs support" as well. If you want to - compile this as a module however ( = code which can be inserted in - and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. The module will be called - msdos.o. + which doesn't require the msdos filesystem support. + + If you want to use umsdos, the Unix-like filesystem on top of DOS, + which allows you to run Linux from within a DOS partition without + repartitioning, you'll have to say Y or M here. If you have Windows + 95 or Windows NT installed on your MSDOS partitions, you should use + the VFAT filesystem instead, or you will not be able to see the long + filenames generated by Windows 95 / Windows NT. + + This option will enlarge your kernel by about 7 kB. If unsure, say + Y. This will only work if you said Y to "fat fs support" as well. If + you want to compile this as a module however ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called msdos.o. vfat fs support CONFIG_VFAT_FS - This allows you to mount MSDOS partitions of your harddrive. It + This allows you to mount MSDOS partitions of your hard drive. It will let you use filenames in a way compatible with the long - filenames used by Windows'95 and Windows NT fat-based (not NTFS) - partitions. It does not support Windows'95 compressed filesystems. + filenames used by Windows 95 and Windows NT fat-based (not NTFS) + partitions. It does not support Windows 95 compressed filesystems. You cannot use the VFAT filesystem for your root partition; use UMSDOS instead. This option enlarges your kernel by about 10 kB and it only works if you said Y to the "fat fs support" above. Please read the file Documentation/filesystems/vfat.txt for details. - If unsure, say N. If you want to compile this 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. The module - will be called vfat.o. + If unsure, say N. + + If you want to compile this 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. The module will be + called vfat.o. umsdos: Unix like fs on top of std MSDOS fs CONFIG_UMSDOS_FS Say Y here if you want to run Linux from within an existing DOS - partition of your harddrive. The advantage of this is that you can + partition of your hard drive. The advantage of this is that you can get away without repartitioning your hard drive (which often implies backing everything up and restoring afterwards) and hence you're able to quickly try out Linux or show it to your friends; the @@ -5109,12 +5789,13 @@ is to write files with long unix filenames to MSDOS floppies; it also allows unix style softlinks and owner/permissions of files on MSDOS floppies. You will need a program called umssync in order to - make use of umsdos; read Documentation/filesystems/umsdos.txt. This - option enlarges your kernel by about 25 kB and it only works if you - said Y to both "fat fs support" and "msdos fs support" above. If you - want to compile this 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. The module will be called + make use of umsdos; read Documentation/filesystems/umsdos.txt. + + This option enlarges your kernel by about 25 kB and it only works if + you said Y to both "fat fs support" and "msdos fs support" above. If + you want to compile this 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. The module will be called umsdos.o. Note that the filesystem of your root partition cannot be a module, so this could be dangerous. If unsure, say N. @@ -5122,121 +5803,112 @@ CONFIG_PROC_FS This is a virtual filesystem providing information about the status of the system. "Virtual" means that it doesn't take up any space on - your harddisk: the files are created on the fly when you access - them. Also, you cannot read the files with less: you need to use - more or cat. The filesystem is explained in the Kernel Hacker's - Guide at http://www.redhat.com:8080/HyperNews/get/khg.html on the - WWW (to browse the WWW, you need to have access to a machine on the - Internet that has a program like lynx or netscape), and also on the - proc(8) manpage ("man 8 proc"). This option will enlarge your - kernel by about 18 kB. It's totally cool; for example, "cat - /proc/interrupts" gives information about what the different IRQs - are used for at the moment (there is a small number of Interrupt - ReQuest lines in your computer that are used by the attached devices - to gain the CPU's attention - often a source of trouble if two - devices are mistakenly configured to use the same IRQ). Several - programs depend on this, so everyone should say Y here. + your hard disk: the files are created on the fly by the kernel when + you try to access them. Also, you cannot read the files with older + version of the program less: you need to use more or cat. The + filesystem is explained in the Kernel Hacker's Guide at + http://www.redhat.com:8080/HyperNews/get/khg.html on the WWW (to + browse the WWW, you need to have access to a machine on the Internet + that has a program like lynx or netscape), and also on the proc(8) + manpage ("man 8 proc"). + + It's totally cool; for example, "cat /proc/interrupts" gives + information about what the different IRQs are used for at the moment + (there is a small number of Interrupt ReQuest lines in your computer + that are used by the attached devices to gain the CPU's attention - + often a source of trouble if two devices are mistakenly configured + to use the same IRQ). This option will enlarge your kernel by about + 18 kB. Several programs depend on this, so everyone should say Y + here. NFS filesystem support CONFIG_NFS_FS If you are connected to some other (usually local) Unix computer - (using SLIP, PLIP, PPP or ethernet) and want to mount files residing + (using SLIP, PLIP, PPP or Ethernet) and want to mount files residing on that computer (the NFS server) using the Network File Sharing protocol, say Y. "Mounting files" means that the client can access the files with usual UNIX commands as if they were sitting on the - client's harddisk. For this to work, the server must run the + client's hard disk. For this to work, the server must run the programs nfsd and mountd (but does not need to have NFS filesystem - support enabled). NFS is explained in the Network Administrator's - Guide, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/LDP, and on its man page: "man - nfs". There is also a NFS-FAQ in - sunsite.unc.edu:/pub/Linux/docs/faqs which presumes that you know - the basics of NFS already. If you say Y here, you should have said Y - to TCP/IP networking also. This option would enlarge your kernel by - about 27 kB. This filesystem is also available as a module ( = code - which can be inserted in and removed from the running kernel - whenever you want). The module is called nfs.o. If you want to - compile it as a module, say M here and read - Documentation/modules.txt. If you configure a diskless machine which - will mount its root filesystem over nfs (in order to do that, check - out the netboot package, available via ftp (user: anonymous) from - sunsite.unc.edu in /pub/Linux/system/boot/ethernet/, extract with "tar - xzvf filename", and say Y to "Root file system on NFS" below), then - you cannot compile this driver as a module. If you don't know what - all this is about, say N. + support enabled in its kernel). NFS is explained in the Network + Administrator's Guide, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/LDP, on its man page: "man + nfs", and in the NFS-HOWTO. + + If you say Y here, you should have said Y to TCP/IP networking also. + This option would enlarge your kernel by about 27 kB. + + This filesystem is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module is called nfs.o. If you want to compile it as a module, + say M here and read Documentation/modules.txt. + + If you are configuring a diskless machine which will mount its root + filesystem over NFS (in order to do that, check out the netboot + package, available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/system/boot/ethernet/, extract with + "tar xzvf filename", and say Y to "Root file system on NFS" and to + "IP: kernel level autoconfiguration"), then you cannot compile this + driver as a module. + + If you don't know what all this is about, say N. Root file system on NFS CONFIG_ROOT_NFS If you want your Linux box to mount its whole root filesystem from some other computer over the net via NFS (presumably because your - box doesn't have a harddisk), say Y. Read Documentation/nfsroot.txt - for details. Most people say N here. + box doesn't have a hard disk), say Y. Read Documentation/nfsroot.txt + for details. It is likely that in this case, you also want to say Y + to "IP: kernel level autoconfiguration" so that your box can + discover its network address at boot time. + + Most people say N here. NFS server support CONFIG_NFSD If you want your Linux box to act as a NFS *server*, so that other - computers on your local network which support NFS can access files - on your box transparently, you have two options: you can use the - self-contained user space program nfsd, in which case you should say - N here, or you can say Y and use this new experimental kernel based - NFS server. The advantage of the kernel based solution is that it is - faster; it might not be completely stable yet, though. You will need - the support software from the linux-nfs package available at - ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/. - The nfs server is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you - want). The module is called nfsd.o. If you want to compile it as a - module, say M here and read Documentation/modules.txt. If unsure, - say N. - -BOOTP support -CONFIG_RNFS_BOOTP - If you want your Linux box to mount its whole root filesystem from - some other computer over the net via NFS and you want the IP address - of your computer to be discovered automatically at boot time using - the BOOTP protocol (a special protocol designed for doing this job), - say Y here. In case the boot ROM of your network card was designed - for booting Linux and does BOOTP itself, providing all necessary - information on the kernel command line, you can say N here. If - unsure, say Y. Note that in case you want to use BOOTP, a BOOTP - server must be operating on your network. Read - Documentation/nfsroot.txt for details. + computers on your local network which support NFS can access certain + directories on your box transparently, you have two options: you can + use the self-contained user space program nfsd, in which case you + should say N here, or you can say Y and use this new experimental + kernel based NFS server. The advantage of the kernel based solution + is that it is faster; it might not be completely stable yet, though. + You will need the support software from the linux-nfs package + available at ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/. + Please read the NFS-HOWTO, available via FTP (user: anonymous) from + sunsite.unc.edu:/pub/Linux/docs/HOWTO. -RARP support -CONFIG_RNFS_RARP - If you want your Linux box to mount its whole root filesystem from - some other computer over the net via NFS and you want the IP address - of your computer to be discovered automatically at boot time using - the RARP protocol (an older protocol which is being obsoleted by - BOOTP and DHCP), say Y here. Note that in case you want to use RARP, - a RARP server must be operating on your network. Read - Documentation/nfsroot.txt for details. + The NFS server is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module is called nfsd.o. If you want to compile it as a module, + say M here and read Documentation/modules.txt. If unsure, say N. OS/2 HPFS filesystem support (read only) CONFIG_HPFS_FS OS/2 is IBM's operating system for PC's, the same as Warp, and HPFS - is the filesystem used for organizing files on OS/2 harddisk + is the filesystem used for organizing files on OS/2 hard disk partitions. Say Y if you want to be able to read files from an OS/2 - HPFS partition of your harddrive. OS/2 floppies however are in + HPFS partition of your hard drive. OS/2 floppies however are in regular MSDOS format, so you don't need this option in order to be - able to read them. Read Documentation/filesystems/hpfs.txt. This - filesystem is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you - want). The module is called hpfs.o. If you want to compile it as a - module, say M here and read Documentation/modules.txt. If unsure, - say N. + able to read them. Read Documentation/filesystems/hpfs.txt. + + This filesystem is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module is called hpfs.o. If you want to compile it as a module, + say M here and read Documentation/modules.txt. If unsure, say N. Windows NT NTFS support (read only) CONFIG_NTFS_FS NTFS is the file system of Microsoft Windows NT. Say Y if you want - to access partitions using this file system. The Linux NTFS driver - supports most of the mount options of the VFAT driver, see - Documentation/filesystems/ntfs.txt. Saying Y here will give you - read-only access to NTFS partitions. This code 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 ntfs.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + to get read access to files on NTFS partitions of your hard drive. + The Linux NTFS driver supports most of the mount options of the VFAT + driver, see Documentation/filesystems/ntfs.txt. Saying Y here will + give you read-only access to NTFS partitions. + + This code 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 ntfs.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. NTFS read-write support (experimental) CONFIG_NTFS_RW @@ -5248,71 +5920,132 @@ System V and Coherent filesystem support CONFIG_SYSV_FS - SCO, Xenix and Coherent are commercial Unix systems for intel + SCO, Xenix and Coherent are commercial Unix systems for Intel machines. Saying Y here would allow you to read and write to and - from their floppies and harddisk partitions. If you have a floppy or - harddisk partition like that, it is probable that they contain - binaries from those other Unix systems; in order to run these - binaries, you will want to install iBCS2 (iBCS2 [Intel Binary - Compatibility Standard] is a kernel module which lets you run SCO, - Xenix, Wyse, Unix Ware, Dell Unix and System V programs under Linux - and is often needed to run commercial software, most prominently - WordPerfect. It's in tsx-11.mit.edu:/pub/linux/BETA). If you only - intend to mount files from some other Unix over the network using - NFS, you don't need the System V filesystem support (but you need - nfs filesystem support obviously). Note that this option is - generally not needed for floppies, since a good portable way to - transport files and directories between unixes (and even other - operating systems) is given by the tar program ("man tar" or - preferably "info tar"). Note also that this option has nothing + from their floppies and hard disk partitions. + + If you have a floppy or hard disk partition like that, it is likely + that they contain binaries from those other Unix systems; in order + to run these binaries, you will want to install iBCS2 (iBCS2 [Intel + Binary Compatibility Standard] is a kernel module which lets you run + SCO, Xenix, Wyse, UnixWare, Dell Unix and System V programs under + Linux and is often needed to run commercial software that's only + available for those systems. It's available via FTP (user: + anonymous) from ftp://tsx-11.mit.edu/pub/linux/BETA). + + If you only intend to mount files from some other Unix over the + network using NFS, you don't need the System V filesystem support + (but you need NFS filesystem support obviously). Note that this + option is generally not needed for floppies, since a good portable + way to transport files and directories between unixes (and even + other operating systems) is given by the tar program ("man tar" or + preferably "info tar"). Note also that this option has nothing whatsoever to do with the option "System V IPC". Read about the System V filesystem in Documentation/filesystems/sysv-fs.txt. This - option will enlarge your kernel by about 34 kB. If you want to - compile this 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. The module will be called sysv.o. If - you haven't heard about all of this before, it's safe to say N. + option will enlarge your kernel by about 34 kB. + + If you want to compile this 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. The module will be + called sysv.o. If you haven't heard about all of this before, it's + safe to say N. + +Amiga FFS filesystem support +CONFIG_AFFS_FS + The Fast File System (FFS) is the common filesystem used on hard + disks by Amiga(tm) Systems since AmigaOS Version 1.3 (34.20). With + this driver you can also mount diskfiles used by Bernd Schmidt's + Un*X Amiga Emulator (http://www.freiburg.linux.de/~uae/; to browse + the WWW, you need to have access to a machine on the Internet that + has a program like lynx or netscape). If you want to do the latter, + you will also need to say Y to "Loop device support", above. Say Y + if you want to be able to read and write files from and to an Amiga + FFS partition on your hard drive. Amiga floppies however cannot be + read with this driver due to an incompatibility of the floppy + controller used in an Amiga and the standard floppy controller in + PCs and workstations. Read Documentation/filesystems/affs.txt and + fs/affs/Changes. + + This filesystem is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module is called affs.o. If you want to compile it as a module, + say M here and read Documentation/modules.txt. If unsure, say N. + +Apple Macintosh filesystem support (experimental) +CONFIG_HFS_FS + If you say Y here, you will be able to mount Macintosh-formatted + floppy disks and hard drive partitions with full read-write access. + Please read fs/hfs/HFS.txt to learn about the available mount + options. + + This filesystem support is also available as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want). The module is called hfs.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +ROM filesystem support +CONFIG_ROMFS_FS + This is a very small read-only filesystem mainly intended for + initial ram disks of installation disks, but it could be used for + other read-only media as well. Read + Documentation/filesystems/romfs.txt for details. + + This filesystem support is also available as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want). The module is called romfs.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. -Kernel automounter support (experimental) + If you don't know whether you need it, then you don't need it: say + N. + +Kernel automounter support CONFIG_AUTOFS_FS The automounter is a tool to automatically mount remote filesystems on demand. This implementation is partially kernel-based to reduce overhead in the already-mounted case; this is unlike the BSD - automounter (amd), which is only in user space. To use the - automounter you need the user-space tools from - ftp.kernel.org:/pub/linux/daemons/autofs; you also want to say Y to - "NFS filesystem support", above. If you want to compile this 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. The module will be called autofs.o. + automounter (amd), which is only in user space. + + To use the automounter you need the user-space tools from + ftp://ftp.kernel.org/pub/linux/daemons/autofs; you also want to say Y to + "NFS filesystem support", above. + + If you want to compile this 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. The module will be + called autofs.o. + If you are not a part of a fairly large, distributed network, you probably do not need an automounter, and can say N here. BSD UFS filesystem support (read only) CONFIG_UFS_FS - BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD - and NeXTstep) use a filesystem called UFS. Some System V Unixes can - create and mount harddisk partitions and diskettes using this - filesystem as well. Saying Y here allows you to mount these - partitions and diskettes read-only. If you only intend to mount - files from some other Unix over the network using NFS, you don't - need the UFS filesystem support (but you need nfs filesystem support - obviously). Note that this option is generally not needed for - floppies, since a good portable way to transport files and - directories between unixes (and even other operating systems) is - given by the tar program ("man tar" or preferably "info tar"). When - accessing NeXTstep files, you may need to convert them from the NeXT - character set to the Latin1 character set; use the program recode - for this purpose. Say Y to build UFS read support into your - kernel. If you want to compile this 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. The module - will be called ufs.o. If you haven't heard about all of this before, - it's safe to say N. + BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD, + OpenBSD and NeXTstep) use a filesystem called UFS. Some System V + Unixes can create and mount hard disk partitions and diskettes using + this filesystem as well. Saying Y here allows you to mount these + partitions and diskettes read-only. + + If you only intend to mount files from some other Unix over the + network using NFS, you don't need the UFS filesystem support (but + you need NFS filesystem support obviously). Note that this option is + generally not needed for floppies, since a good portable way to + transport files and directories between unixes (and even other + operating systems) is given by the tar program ("man tar" or + preferably "info tar"). + + When accessing NeXTstep files, you may need to convert them from the + NeXT character set to the Latin1 character set; use the program + recode ("info recode") for this purpose. + + If you want to compile this 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. The module will be + called ufs.o. If you haven't heard about all of this before, it's + safe to say N. BSD disklabel (FreeBSD partition tables) support CONFIG_BSD_DISKLABEL - FreeBSD uses its own harddisk partition scheme on your PC. It + FreeBSD uses its own hard disk partition scheme on your PC. It requires only one entry in the primary partition table of your disk and manages it similarly to DOS extended partitions, putting in its first sector a new partition table in disklabel format. Saying Y @@ -5323,7 +6056,7 @@ SMD disklabel (Sun partition tables) support CONFIG_SMD_DISKLABEL - Like most systems, SunOS uses its own harddisk partition table + Like most systems, SunOS uses its own hard disk partition table format, incompatible with all others. Saying Y here allows you to read these partition tables and further mount SunOS disks read-only from within Linux if you have also said Y to "BSD ufs filesystem @@ -5335,54 +6068,82 @@ preferably "info tar"). If you don't know what all this is about, say N. +Solaris (x86) partition table support +CONFIG_SOLARIS_X86_PARTITION + Like most systems, Solaris x86 uses its own hard disk partition + table format, incompatible with all others. Saying Y here allows you + to read these partition tables and further mount Solaris x86 disks + read-only from within Linux if you have also said Y to "BSD ufs + filesystem support", above. + +ADFS filesystem support (read only) (EXPERIMENTAL) +CONFIG_ADFS_FS + The Acorn Disc Filing System is the standard filesystem of the RiscOS + operating system which runs on Acorn's ARM based Risc PC systems and + the Acorn Archimedes range of machines. These should be the first + partition (ie, /dev/[hs]d?1) on each of your drives. If you say Y + here, Linux will be able to read from ADFS partitions on hard drives + and from ADFS-formatted floppy discs. + + This code is also available as a module called adfs.o ( = code which + can be inserted in and removed from the running kernel whenever you + want). If you want to compile it as a module, say M here and read + Documentation/modules.txt. + + If unsure, say N. + +/dev/pts filesystem (experimental) +CONFIG_DEVPTS_FS + If you say Y here, you'll get a virtual filesystem which can be + mounted on /dev/pts with "mount -t devpts". This, together with the + pseudo terminal master multiplexer /dev/ptmx is used for pseudo + terminal support as described in the Open Group's Unix98 standard: + in order to acquire a pseudo terminal, a process opens /dev/ptmx; + the number of the pseudo terminal is then made available to the + process and the pseudo terminal slave can be accessed as + /dev/pts/. What was traditionally /dev/ttyp2 will then be + /dev/pts/2, for example. The GNU C library glibc 2.1 contains the + requisite support for this mode of operation. + + This code is also available as a module called devpts.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. + Macintosh partition map support CONFIG_MAC_PARTITION - Say Y here if you want your Linux system to be able to read - the partition tables of Macintosh hard drives, and thus use - partitions on those drives. + Say Y here if you want your Linux system to be able to read the + partition tables of Macintosh hard drives, and thus use partitions + on those drives. SMB filesystem support (to mount WfW shares etc..) CONFIG_SMB_FS - SMB (Server Message Buffer) is the protocol Windows for Workgroups + SMB (Server Message Block) is the protocol Windows for Workgroups (WfW), Windows 95, Windows NT and Lan Manager use to share files and printers over local networks. Saying Y here allows you to mount their filesystems (often called "shares" in this context) and access them just like any other unix directory. Currently, this works only if the Windows machines use TCP/IP as the underlying transport - protocol, and not Netbeui. For details, read - Documentation/filesystems/smbfs.txt. Note: if you just want your - box to act as an SMB *server* and make files and printing services - available to Windows clients (which need to have a TCP/IP stack), - you don't need to say Y here; you can use the program samba - (available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/system/network/samba) for that. General - information about how to connect Linux, Windows machines and Macs is - on the WWW at http://eats.com/linux_mac_win.html (to browse the WWW, - you need to have access to a machine on the Internet that has a - program like lynx or netscape). If you want to compile the SMB - support 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. The module will be called smbfs.o. Most - people say N, however. + protocol, and not Netbeui. For details, read + Documentation/filesystems/smbfs.txt and the SMB-HOWTO, available via + FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + Note: if you just want your box to act as an SMB *server* and make + files and printing services available to Windows clients (which need + to have a TCP/IP stack), you don't need to say Y here; you can use + the program samba (available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/system/network/samba) for that. -Coda filesystem support -CONFIG_CODA_FS - CODA is an advanced network filesystem. It has support for - disconnected operation for laptops, read/write server replication, - persistent client caches and write back caching. - By saying Y here you are compiling kernel support for Coda clients - into the Linux kernel. You will need user level code as well, both - for the client and server. Servers are currently user level, - i.e. need no kernel support. For technical information, read - Documentation/filesystems/coda.txt. - If you want to compile the coda client support 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. The module will be called coda.o. - For further information see http://www.coda.cs.cmu.edu (to browse - the WWW, you need to have access to a machine on the Internet that - has a program like lynx or netscape) or contact Peter Braam - . + General information about how to connect Linux, Windows machines and + Macs is on the WWW at http://www.eats.com/linux_mac_win.html (to + browse the WWW, you need to have access to a machine on the Internet + that has a program like lynx or netscape). + + If you want to compile the SMB support 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. The module + will be called smbfs.o. Most people say N, however. SMB Win95 bug work-around CONFIG_SMB_WIN95 @@ -5391,119 +6152,124 @@ directories unreliable. This option slows down the listing of directories. This makes the Windows 95 server a bit more stable. +Coda filesystem support +CONFIG_CODA_FS + Coda is an advanced network filesystem, similar to NFS in that it + enables you to mount filesystems of a remote server and access them + with regular Unix commands as if they were sitting on your hard + disk. Coda has several advantages over NFS: support for disconnected + operation for laptops, read/write server replication, security model + for authentication and encryption, persistent client caches and + write back caching. + + If you say Y here, your Linux box will be able to act as a Coda + *client*. You will need user level code as well, both for the client + and server. Servers are currently user level, i.e. need no kernel + support. For technical information, read + Documentation/filesystems/coda.txt. For further information see + http://www.coda.cs.cmu.edu (to browse the WWW, you need to have + access to a machine on the Internet that has a program like lynx or + netscape) or contact Peter Braam . + + If you want to compile the coda client support 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. + The module will be called coda.o. + NCP filesystem support (to mount NetWare volumes) CONFIG_NCP_FS NCP (NetWare Core Protocol) is a protocol that runs over IPX and is used by Novell NetWare clients to talk to file servers. It is to IPX - what nfs is to tcp/ip, if that helps. Saying Y here allows you to + what NFS is to TCP/IP, if that helps. Saying Y here allows you to mount NetWare file server volumes and to access them just like any other Unix directory. For details, please read the file Documentation/filesystems/ncpfs.txt in the kernel source and the - IPX-HOWTO on sunsite.unc.edu:/pub/Linux/docs/howto. If you want to - compile this 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. The module will be called - ncpfs.o. Say N unless you are connected to a Novell network. + IPX-HOWTO on sunsite.unc.edu:/pub/Linux/docs/howto. + + You do not have to say Y here if you want your Linux box to act as a + file *server* for Novell NetWare clients. + + General information about how to connect Linux, Windows machines and + Macs is on the WWW at http://www.eats.com/linux_mac_win.html (to + browse the WWW, you need to have access to a machine on the Internet + that has a program like lynx or netscape). + + If you want to compile this 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. The module will be + called ncpfs.o. Say N unless you are connected to a Novell network. Packet signatures CONFIG_NCPFS_PACKET_SIGNING - NCP allows to sign packets for stronger security. If you want + NCP allows packets to be signed for stronger security. If you want security, say Y. Normal users can leave it off. To be able to use packet signing you must use ncpfs > 2.0.12. Proprietary file locking CONFIG_NCPFS_IOCTL_LOCKING - Allows locking of records on remote volumes. Say N unless you have special - applications which are able to utilize this locking scheme. + Allows locking of records on remote volumes. Say N unless you have + special applications which are able to utilize this locking scheme. Clear remove/delete inhibit when needed CONFIG_NCPFS_STRONG - Allows manipulation of files flagged as Delete or Rename Inhibit. - To use this feature you must mount volumes with the ncpmount parameter + Allows manipulation of files flagged as Delete or Rename Inhibit. To + use this feature you must mount volumes with the ncpmount parameter "-s" (ncpfs-2.0.12 and newer). Say Y unless you are not mounting volumes with -f 444. Use NFS namespace when available CONFIG_NCPFS_NFS_NS - Allows you to utilize NFS namespace on NetWare servers. It brings you - case sensitive filesystems. Say Y. You can disable it at mount-time with - the -N nfs parameter of ncpmount. + Allows you to utilize NFS namespace on NetWare servers. It brings + you case sensitive filenames. Say Y. You can disable it at + mount-time with the `-N nfs' parameter of ncpmount. Use OS2/LONG namespace when available CONFIG_NCPFS_OS2_NS - Allows you to utilize OS2/LONG namespace on NetWare servers. Filenames - in this namespace are limited to 255 characters, they are case - insensitive, and case in names is preserved. - Say Y. You can disable it at mount time with the -N os2 parameter of - ncpmount. + Allows you to utilize OS2/LONG namespace on NetWare servers. + Filenames in this namespace are limited to 255 characters, they are + case insensitive, and case in names is preserved. Say Y. You can + disable it at mount time with the -N os2 parameter of ncpmount. Allow mounting of volume subdirectories CONFIG_NCPFS_MOUNT_SUBDIR - Allows you to mount not only whole servers or whole volumes, but also - subdirectory from a volume. It can be used to reexport data and so on. - There is no reason why to say N, so Y is recommended unless you count - every byte. + Allows you to mount not only whole servers or whole volumes, but + also subdirectories from a volume. It can be used to reexport data + and so on. There is no reason to say N, so Y is recommended unless + you count every byte. + To utilize this feature you must use ncpfs-2.0.12 or newer. NDS interserver authentication domains CONFIG_NCPFS_NDS_DOMAINS - This allows storing NDS private keys into kernel space where it can be - used to authenticate another server as interserver NDS accesses need - it. You must use ncpfs-2.0.12.1 or newer to utilize this feature. - Say Y if you are using NDS connections to NetWare servers. Do not say Y - if security is primary for you because root can read your session - key (from /proc/kcore). - -Amiga FFS filesystem support -CONFIG_AFFS_FS - The Fast File System (FFS) is the common filesystem used on - harddisks by Amiga(tm) Systems since AmigaOS Version 1.3 - (34.20). With this driver you can also mount diskfiles used by Bernd - Schmidt's Un*X Amiga Emulator (http://www.freiburg.linux.de/~uae/; - to browse the WWW, you need to have access to a machine on the - Internet that has a program like lynx or netscape). If you want to - do the latter, you will also need to say Y to "Loop device support", - above. Say Y if you want to be able to read and write files from and - to an Amiga FFS partition on your harddrive. Amiga floppies however - cannot be read with this driver due to an incompatibility of the - floppy controller used in an Amiga and the standard floppy - controller in PCs and workstations. Read - Documentation/filesystems/affs.txt and fs/affs/Changes. This filesystem is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). The module is called - affs.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt. If unsure, say N. - -ROM filesystem support -CONFIG_ROMFS_FS - This is a very small read-only filesystem mainly intended for - initial ram disks of installation disk, but it could be used for - other read-only media as well. Read - Documentation/filesystems/romfs.txt for details. This filesystem is - also available as a module ( = code which can be inserted in and - removed from the running kernel whenever you want). The module is - called romfs.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. If you don't know whether you - need it, then you don't need it: say N. + This allows storing NDS private keys in kernel space where they + can be used to authenticate another server as interserver NDS + accesses need it. You must use ncpfs-2.0.12.1 or newer to utilize + this feature. Say Y if you are using NDS connections to NetWare + servers. Do not say Y if security is primary for you because root + can read your session key (from /proc/kcore). nls: Native language codepages and Unicode support CONFIG_NLS This is required by the FAT and NTFS filesystems and by the ISO9660 - filesystem when it is compiled with Joliet support. Joliet is a - Microsoft extension for CDROMs that supports Unicode. This allows - translation between different character sets. When dealing with the - FAT based filesystems, there are two character sets that are - important. The first is the codepage. Codepages are character sets - that are used by DOS to allow filenames to have native language - characters when character sets were limited to 256 characters. The - codepage is the character set that is used to store native language - characters on disk. The two most common codepages are 437 in the - United States and 850 in much of Europe. The second important - character set is the input/output character set. This is the - character set that is displayed on the screen. In the United States, - this will almost always be the ISO 8859-1 character set. This is the - default. Linux will only do a translation of the FAT filenames, not - the contents of the files. + filesystem when it is compiled with Joliet support. Joliet is a + Microsoft extension for CDROMs that supports Unicode. This allows + translation between different character sets. + + When dealing with the FAT based filesystems, there are two character + sets that are important. The first is the codepage. Codepages are + character sets that are used by DOS to allow filenames to have + native language characters when character sets were limited to 256 + characters. The codepage is the character set that is used to store + native language characters on disk. The two most common codepages + are 437 in the United States and 850 in much of Europe. + + The second important character set is the input/output character + set. This is the character set that is displayed on the screen. In + the United States, this will almost always be the ISO 8859-1 + character set. This is the default. + + Linux will only translate the FAT filenames, not the contents of the + files. nls codepage 437 CONFIG_NLS_CODEPAGE_437 @@ -5535,7 +6301,7 @@ codepage if you want to be able to read/write these filenames on DOS/Windows partitions correctly. This does apply to the filenames only, not to the file contents. You can include several codepages; - say Y here if you want to include the DOS codepage that is used for + say Y here if you want to include the DOS codepage that is used for the Baltic Rim Languages. If unsure, say N. nls codepage 850 @@ -5699,7 +6465,7 @@ If you want to display filenames with native language characters from the Microsoft fat filesystem family or from JOLIET CDROMs correctly on the screen, you need to include the appropriate - input/output character sets. Say Y here for the the Latin 2 character + input/output character sets. Say Y here for the Latin 2 character set, which works for most Latin-written Slavic and Central European languages: Czech, German, Hungarian, Polish, Rumanian, Croatian, Slovak, Slovene. @@ -5801,90 +6567,107 @@ Software generated cursor CONFIG_SOFTCURSOR If you say Y here, you'll be able to do lots of nice things with the - cursors of your virtual consoles -- for example to turn them into - non-blinking block cursors which are more visible on laptop screens. + cursors of your virtual consoles -- for example turn them into + non-blinking block cursors which are more visible on laptop screens, + or change their color depending on the virtual console you're on. See Documentation/VGA-softcursor.txt for more information. Standard/generic serial support CONFIG_SERIAL This selects whether you want to include the driver for the standard - serial ports. People who might say N here are those that are - setting up dedicated ethernet WWW/ftp servers, or users that have - one of the various bus mice instead of a serial mouse. (Note that - the Cyclades and Stallion multi serial port drivers do not need this - driver built in for them to work.) If you want to compile this - driver as a module, say M here and read - Documentation/modules.txt. The module will be called - serial.o. [WARNING: Do not compile this driver as a module if you - are using non-standard serial ports, since the configuration - information will be lost when kerneld automatically unloads the - driver. This limitation may be lifted in the future.] BTW: If you - have a mouseman serial mouse which is not recognized by the X window - system, try running gpm first. Most people will say Y or M here, so - that they can use serial mice, modems and similar devices connecting - to the standard serial ports. + serial ports. The standard answer is Y. People who might say N here + are those that are setting up dedicated Ethernet WWW/FTP servers, or + users that have one of the various bus mice instead of a serial + mouse and don't intend to use their machine's standard serial port + for anything. (Note that the Cyclades and Stallion multi serial port + drivers do not need this driver built in for them to work.) + + If you want to compile this driver as a module, say M here and read + Documentation/modules.txt. The module will be called serial.o. + [WARNING: Do not compile this driver as a module if you are using + non-standard serial ports, since the configuration information will + be lost when kerneld automatically unloads the driver. This + limitation may be lifted in the future.] + + BTW: If you have a mouseman serial mouse which is not recognized by + the X window system, try running gpm first. + + Most people will say Y or M here, so that they can use serial mice, + modems and similar devices connecting to the standard serial ports. Support for console on serial port CONFIG_SERIAL_CONSOLE If you say Y here, it is possible to use a serial port as the console. By default still the currently visible virtual console will be used as the system console but you can alter that using a kernel - command line option. If you don't have a VGA card installed and you - say Y here, the kernel will automatically use /dev/ttyS0 as system - console. + command line option such as "console=ttyS1". (Try "man bootparam" or + see the documentation of your boot loader (lilo or loadlin) about + how to pass options to the kernel at boot time. The lilo procedure + is also explained in the SCSI-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO.) If you + don't have a VGA card installed and you say Y here, the kernel will + automatically use /dev/ttyS0 as system console. Comtrol Rocketport support CONFIG_ROCKETPORT This is a driver for the Comtrol Rocketport cards which provide multiple serial ports. You would need something like this to - connect more than two modems to your linux box, for instance in - order to become a BBS.If you want to compile this driver as a - module, say M here and read Documentation/modules.txt. The module - will be called rocket.o. + connect more than two modems to your Linux box, for instance in + order to become a BBS. + + If you want to compile this driver as a module, say M here and read + Documentation/modules.txt. The module will be called rocket.o. Digiboard Intelligent async support CONFIG_DIGIEPCA This is a driver for Digi International's Xx, Xeve, and Xem series of cards which provide multiple serial ports. You would need - something like this to connect more than two modems to your linux + something like this to connect more than two modems to your Linux box, for instance in order to become a BBS. This driver supports the original PC (ISA) boards as well as PCI, and EISA. If you have a card like this, say Y here and read the file - Documentation/digiepca.txt. NOTE: There is another, separate driver - for the Digiboard PC boards: "Digiboard PC/Xx Support" below. You - should (and can) only select one of the two drivers. If you want to - compile this driver as a module, say M here and read + Documentation/digiepca.txt. + + NOTE: There is another, separate driver for the Digiboard PC boards: + "Digiboard PC/Xx Support" below. You should (and can) only select + one of the two drivers. + + If you want to compile this driver as a module, say M here and read Documentation/modules.txt. The module will be called epca.o. Digiboard PC/Xx Support CONFIG_DIGI This is a driver for the Digiboard PC/Xe, PC/Xi, and PC/Xeve cards that give you many serial ports. You would need something like this - to connect more than two modems to your linux box, for instance in + to connect more than two modems to your Linux box, for instance in order to become a BBS. If you have a card like that, say Y here and - read the file Documentation/digiboard.txt. If you want to compile - this driver as a module, say M here and read + read the file Documentation/digiboard.txt. + + If you want to compile this driver as a module, say M here and read Documentation/modules.txt. The module will be called pcxx.o. SDL RISCom/8 card support CONFIG_RISCOM8 This is a driver for the SDL Communications RISCom/8 multiport card, which gives you many serial ports. You would need something like - this to connect more than two modems to your linux box, for instance + this to connect more than two modems to your Linux box, for instance in order to become a BBS. If you have a card like that, say Y here - and read the file Documentation/riscom8.txt. Also it's possible to - say M here and compile this driver as kernel loadable module; the - module will be called riscom8.o. + and read the file Documentation/riscom8.txt. + + Also it's possible to say M here and compile this driver as kernel + loadable module; the module will be called riscom8.o. Specialix IO8+ card support CONFIG_SPECIALIX This is a driver for the Specialix IO8+ multiport card, that give you many serial ports. You would need something like this to - connect more than two modems to your linux box, for instance in - order to become a BBS. If you have a card like that, say Y here and - read the file Documentation/specialix.txt. Also it's possible to say - M here and compile this driver as kernel loadable module which will - be called specialix.o. + connect more than two modems to your Linux box, for instance in + order to become a BBS. + + If you have a card like that, say Y here and read the file + Documentation/specialix.txt. Also it's possible to say M here and + compile this driver as kernel loadable module which will be called + specialix.o. Specialix DTR/RTS pin is RTS CONFIG_SPECIALIX_RTSCTS @@ -5898,19 +6681,24 @@ CONFIG_CYCLADES This is a driver for a card that gives you many serial ports. You would need something like this to connect more than two modems to - your linux box, for instance in order to become a BBS. For + your Linux box, for instance in order to become a BBS. For information about the Cyclades-Z card, read - drivers/char/README.cycladesZ. If you want to compile this 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. The module will be called cyclades.o. If - you haven't heard about it, it's safe to say N. (As of 1.3.9x - kernels, this driver's minor numbers start at 0 instead of 32.) + drivers/char/README.cycladesZ. + + As of 1.3.9x kernels, this driver's minor numbers start at 0 instead + of 32. + + If you want to compile this 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. The module will be + called cyclades.o. + + If you haven't heard about it, it's safe to say N. Stallion multiport serial support CONFIG_STALDRV Stallion cards give you many serial ports. You would need something - like this to connect more than two modems to your linux box, for + like this to connect more than two modems to your Linux box, for instance in order to become a BBS. If you say Y here, you will be asked for your specific card model in the next questions. Make sure to read drivers/char/README.stallion in this case. If you have never @@ -5920,28 +6708,33 @@ CONFIG_STALLION If you have an EasyIO or EasyConnection 8/32 multiport Stallion card, then this is for you; say Y. Make sure to read - Documentation/stallion.txt. If you want to compile this 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. The module will be called stallion.o. + Documentation/stallion.txt. + + If you want to compile this 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. The module will be + called stallion.o. Stallion EC8/64, ONboard, Brumby support CONFIG_ISTALLION If you have an EasyConnection 8/64, ONboard, Brumby or Stallion serial multiport card, say Y here. Make sure to read - Documentation/stallion.txt. To compile it 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. The module will be called istallion.o. + Documentation/stallion.txt. + + To compile it 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. The module will be called + istallion.o. Hayes ESP serial port support CONFIG_ESPSERIAL This is a driver which supports Hayes ESP serial ports. It uses DMA to transfer data to and from the host. Make sure to read - Documentation/hayes-esp.txt. 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. The module will be called esp.o. + Documentation/hayes-esp.txt. + + 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. The module will be called esp.o. If unsure, say N. Hayes ESP serial port DMA channel @@ -5952,16 +6745,17 @@ Hayes ESP serial port receive trigger level CONFIG_ESPSERIAL_RX_TRIGGER - This is the trigger level (in bytes) of the receive FIFO. Larger - values may result in fewer interrupts; however, a value too high - could result in data loss. Valid values are 1 through 1023. + This is the trigger level (in bytes) of the receive FIFO. Larger + values may result in fewer interrupts and hence better performance; + however, a value too high could result in data loss. Valid values + are 1 through 1023. Hayes ESP serial port transmit trigger level CONFIG_ESPSERIAL_TX_TRIGGER - This is the trigger level (in bytes) of the transmit FIFO. Larger - values may result in fewer interrupts; however, a value too high - could result in degraded transmit performance. Valid values are 1 - through 1023. + This is the trigger level (in bytes) of the transmit FIFO. Larger + values may result in fewer interrupts and hence better performance; + however, a value too high could result in degraded transmit + performance. Valid values are 1 through 1023. Hayes ESP serial port flow off level CONFIG_ESPSERIAL_FLOW_OFF @@ -5990,24 +6784,30 @@ If you intend to attach a printer to the parallel port of your Linux box (as opposed to using a serial printer; if the connector at the printer has 9 or 25 holes ["female"], then it's serial), say Y. Also - read the Printing-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. It is possible to share one - parallel port among several devices (e.g. printer and ZIP drive) and - it is safe to compile the corresponding drivers into the kernel. If - you want to compile this driver as a module however ( = code which - can be inserted in and removed from the running kernel whenever you - want), say M here and read Documentation/modules.txt. The module - will be called lp.o. If you have several parallel ports, you - should specify the base address for the port to use by the printer - with the "lp" kernel command line option. (Try "man bootparam" or - see the documentation of your boot loader (lilo or loadlin) about - how to pass options to the kernel at boot time. The lilo procedure - is also explained in the SCSI-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard - base addresses as well as the syntax of the "lp" command line option - can be found in drivers/char/lp.c. If you have more than 3 printers, - you need to increase the LP_NO variable in lp.c. + read the Printing-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + It is possible to share one parallel port among several devices + (e.g. printer and ZIP drive) and it is safe to compile the + corresponding drivers into the kernel. If you want to compile this + driver as a module however ( = code which can be inserted in and + removed from the running kernel whenever you want), say M here and + read Documentation/modules.txt. The module will be called lp.o. + + If you have several parallel ports, you should specify the base + address for the port to be used by the printer with the "lp" kernel + command line option. (Try "man bootparam" or see the documentation + of your boot loader (lilo or loadlin) about how to pass options to + the kernel at boot time. The lilo procedure is also explained in the + SCSI-HOWTO, available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO.) The standard base + addresses as well as the syntax of the "lp" command line option can + be found in drivers/char/lp.c. + + If you have more than 3 printers, you need to increase the LP_NO + variable in lp.c. + +Support IEEE1284 status readback CONFIG_PRINTER_READBACK If your printer conforms to IEEE 1284, it may be able to provide a status indication when you read from it (for example, with `cat @@ -6019,14 +6819,17 @@ a serial mouse. Most people have a regular serial MouseSystem or Microsoft mouse (made by Logitech) that plugs into a COM port (rectangular with 9 or 25 pins). These people say N here. If you - have something else, read the Busmouse-HOWTO, available via ftp - (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO and say Y - here. If you have a laptop, you either have to check the - documentation or experiment a bit to find out whether the trackball - is a serial mouse or not; it's best to say Y here for you. Note that - the answer to this question won't directly affect the kernel: saying - N will just cause this configure script to skip all the questions - about non-serial mice. If unsure, say Y. + have something else, read the Busmouse-HOWTO, available via FTP + (user: anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO and + say Y here. + + If you have a laptop, you either have to check the documentation or + experiment a bit to find out whether the trackball is a serial mouse + or not; it's best to say Y here for you. + + Note that the answer to this question won't directly affect the + kernel: saying N will just cause this configure script to skip all + the questions about non-serial mice. If unsure, say Y. Logitech busmouse support CONFIG_BUSMOUSE @@ -6034,13 +6837,14 @@ generally a round connector with 9 pins. Note that the newer mice made by Logitech don't use the Logitech protocol anymore; for those, you don't need this option. You want to read the Busmouse-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - 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. The module will be called busmouse.o. If - you are unsure, say N and read the HOWTO nevertheless: it will tell - you what you have. + available via FTP (user: anonymous) in + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to compile this 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. The module will be + called busmouse.o. If you are unsure, say N and read the HOWTO + nevertheless: it will tell you what you have. PS/2 mouse (aka "auxiliary device") support CONFIG_PSMOUSE @@ -6050,15 +6854,16 @@ for other input devices like light pens, tablets, keypads. Compaq, AST and IBM all use this as their mouse port on currently shipping machines. The trackballs of some laptops are PS/2 mice also. In - particular, the C&T 82C710 mouse on TI Travelmates is a PS/2 - mouse. Although PS/2 mice are not technically bus mice, they are - explained in detail in the Busmouse-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. When using a - PS/2 mouse, you can get problems if you want to use the mouse both - on the Linux console and under X. Using the "-R" option of the Linux - mouse managing program gpm (available from + particular, the C&T 82C710 mouse on TI Travelmates is a PS/2 mouse. + Although PS/2 mice are not technically bus mice, they are explained + in detail in the Busmouse-HOWTO, available via FTP (user: anonymous) + in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. When using a PS/2 + mouse, you can get problems if you want to use the mouse both on the + Linux console and under X. Using the "-R" option of the Linux mouse + managing program gpm (available from sunsite.unc.edu:/pub/Linux/system/Daemons) solves this problem, or you can get the "mconv" utility also from sunsite. + If you want to compile this mouse 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. The module @@ -6069,8 +6874,8 @@ CONFIG_82C710_MOUSE This is a certain kind of PS/2 mouse used on the TI Travelmate. If you are unsure, try first to say N here and come back if the mouse - doesn't work. Read the Busmouse-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. + doesn't work. Read the Busmouse-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. PC110 digitizer pad support CONFIG_PC110_PAD @@ -6078,36 +6883,44 @@ http://toy.cabi.net; to browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or netscape). It can turn the digitizer pad into a PS/2 mouse emulation - with tap gestures or into an absolute pad. If you want to compile - this 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. The module will be called pc110pad.o. + with tap gestures or into an absolute pad. + + If you want to compile this 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. The module will be + called pc110pad.o. Microsoft busmouse support CONFIG_MS_BUSMOUSE These animals (also called Inport mice) are connected to an expansion board using a round connector with 9 pins. If this is what - you have, say Y and read the Busmouse-HOWTO, available via ftp - (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you - want to compile this 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. The module will be called - msbusmouse.o. If you are unsure, say N and read the HOWTO - nevertheless: it will tell you what you have. Also be aware that - several vendors talk about 'Microsoft busmouse' and actually mean - PS/2 busmouse - so count the pins on the connector. + you have, say Y and read the Busmouse-HOWTO, available via FTP + (user: anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you are unsure, say N and read the HOWTO nevertheless: it will + tell you what you have. Also be aware that several vendors talk + about 'Microsoft busmouse' and actually mean PS/2 busmouse - so + count the pins on the connector. + + If you want to compile this 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. The module will be + called msbusmouse.o. ATIXL busmouse support CONFIG_ATIXL_BUSMOUSE This is a rare type of busmouse that is connected to the back of an ATI video card. Note that most ATI mice are actually Microsoft - busmice. Read the Busmouse-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to - compile this 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. The module will be called - atixlmouse.o. If you are unsure, say N and read the HOWTO - nevertheless: it will tell you what you have. + busmice. Read the Busmouse-HOWTO, available via FTP (user: + anonymous) in ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. + + If you want to compile this 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. The module will be + called atixlmouse.o. + + If you are unsure, say N and read the HOWTO nevertheless: it will + tell you what you have. Support for user miscellaneous modules CONFIG_UMISC @@ -6129,33 +6942,40 @@ CONFIG_QIC02_DYNCONF You can either configure this driver once and for all by editing a header file (include/linux/tpqic02.h), in which case you should - say N, or you can fetch a program via anonymous ftp which is able + say N, or you can fetch a program via anonymous FTP which is able to configure this driver during runtime. The program to do this is called 'qic02conf' and it is part of the 'tpqic02-support-X.Y.tar.gz' support package. + If you want to use the qic02conf program, say Y. Floppy tape drive (QIC-80/40/3010/3020/TR-1/TR-2/TR-3) support CONFIG_FTAPE If you have a tape drive that is connected to your floppy - controller, say Y here. Some tape drives (like the Seagate "Tape - Store 3200" or the Iomega "Ditto 3200" or the Exabyte "Eagle TR-3") - come with a "high speed" controller of their own. These drives (and - their companion controllers) are also supported if you say Y here. + controller, say Y here. + + Some tape drives (like the Seagate "Tape Store 3200" or the Iomega + "Ditto 3200" or the Exabyte "Eagle TR-3") come with a "high speed" + controller of their own. These drives (and their companion + controllers) are also supported if you say Y here. + If you have a special controller (such as the CMS FC-10, FC-20, Mountain Mach-II, or any controller that is based on the Intel 82078 FDC like the high speed controllers by Seagate and Exabyte and Iomega's "Ditto Dash") you must configure it by selecting the appropriate entries from the "Floppy tape controllers" sub-menu below and possibly modify the default values for the IRQ and DMA - channel and the IO base in ftape's configuration menu. If you want - to use your floppy tape drive on a PCI-bus based system, please read - the file drivers/char/ftape/README.PCI. + channel and the IO base in ftape's configuration menu. + + If you want to use your floppy tape drive on a PCI-bus based system, + please read the file drivers/char/ftape/README.PCI. + The ftape kernel driver is also available as a runtime loadable module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. The module - will be called ftape.o. + will be called ftape.o. + Note that the Ftape-HOWTO is out of date (sorry) and documents the older version 2.08 of this software but still contains useful information. There is a web page with more recent documentation at @@ -6171,29 +6991,34 @@ CONFIG_ZFTAPE Normally, you want to say Y or M. DON'T say N here or you WON'T BE ABLE TO USE YOUR FLOPPY TAPE DRIVE. + The ftape module itself no longer contains the routines necessary to interface with the kernel VFS layer (i.e. to actually write data to and read data from the tape drive). Instead the file system interface (i.e. the hardware independent part of the driver) has been moved to a separate module. + If you say M zftape will be compiled as a runtime loadable module ( = code which can be inserted in and removed from the running kernel whenever you want). In this case you should read Documentation/modules.txt. The module will be called zftape.o. + Regardless of whether you say Y or M here, an additional runtime loadable module called `zft-compressor.o' which contains code to support user transparent on-the-fly compression based on Ross - William's lzrw3 algorithm will be produced. If you have enabled - the kernel module loader (i.e. have said `Y' to CONFIG_KMOD) then - `zft-compressor.o' will be loaded automatically by zftape when - needed. - Despite of its name zftape does NOT use compression by default. The + William's lzrw3 algorithm will be produced. If you have enabled the + kernel module loader (i.e. have said Y to "Kernel module loader + support", above) then `zft-compressor.o' will be loaded + automatically by zftape when needed. + + Despite its name, zftape does NOT use compression by default. The file Documentation/ftape.txt contains a short description of the most important changes in the file system interface compared to previous versions of ftape. The ftape home page http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape/ contains further information (to browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or netscape). + IMPORTANT NOTE: zftape can read archives created by previous versions of ftape and provide file mark support (i.e. fast skipping between tape archives) but previous version of ftape will lack file @@ -6206,6 +7031,7 @@ changed at run time using the MTSETBLK tape operation with the MTIOCTOP ioctl (i.e. with "mt -f /dev/qft0 setblk #BLKSZ" from the shell command line). + The probably most striking difference between zftape and previous versions of ftape is the fact that all data must be written or read in multiples of a fixed block size. The block size defaults to @@ -6213,6 +7039,7 @@ should be either 1 or multiples of 1024 up to a maximum value of 63488 (i.e. 62k). If you specify `1' then zftape's builtin compression will be disabled. + Reasonable values are `10240' (GNU tar's default block size), `5120' (afio's default block size), `32768' (default block size some backup programs assume for SCSI tape drives) or `1' (no restriction @@ -6222,7 +7049,7 @@ CONFIG_FT_NR_BUFFERS Please leave this at `3' unless you REALLY know what you are doing. It is not necessary to change this value. Values below 3 make - the proper use of ftape impossible, values greater than 3 are waste + the proper use of ftape impossible, values greater than 3 are a waste of memory. You can change the amount of DMA memory used by ftape at runtime with "mt -f /dev/qft0 setdrvbuffer #NUMBUFFERS". Each buffer wastes 32kb of memory. Please note that this memory cannot be @@ -6230,15 +7057,16 @@ Procfs entry for ftape CONFIG_FT_PROC_FS - Optional. Saying `Y' will result in creation of a file - `/proc/ftape' under the proc file system. This files can be viewed + Optional. Saying Y will result in creation of a directory + `/proc/ftape' under the proc file system. The files can be viewed with your favorite pager (i.e. use "more /proc/ftape/history" or "less /proc/ftape/history" or simply "cat /proc/ftape/history"). The file will contain some status information about the inserted cartridge, the kernel driver, your tape drive, the floppy disk controller and the error history for the most recent use of the - kernel driver. Saying `Y' will enlarge the size of the ftape driver + kernel driver. Saying Y will enlarge the size of the ftape driver by approximately 2k. + WARNING: When compiling ftape as a module (i.e. saying `M' to "Floppy tape drive") it is dangerous to use ftape's proc file system interface. Accessing `/proc/ftape' while the module is unloaded will @@ -6250,10 +7078,12 @@ is ABLE to produce; it does not increase or diminish the debugging level itself. If unsure, leave this at its default setting, i.e. choose "Normal". + Ftape can print lots of debugging messages to the system console resp. kernel log files. Reducing the amount of possible debugging output reduces the size of the kernel module by some kb, so it might be a good idea to use "None" for emergency boot floppies. + If you want to save memory then the following strategy is recommended: leave this option at its default setting "Normal" until you know that the driver works as expected, afterwards reconfigure @@ -6262,6 +7092,7 @@ debugging output does not increase the amount of debugging output printed to the console but only makes it possible to produce "Excessive" debugging output. + Please read Documentation/ftape.txt for a short description how to control the amount of debugging output. @@ -6272,6 +7103,7 @@ plugged the floppy tape cable into the already existing floppy drive controller then you don't want to change the default setting, i.e. choose "Standard". + Choose "MACH-2" if you have a Mountain Mach-2 controller. Choose "FC-10/FC-20" if you have a Colorado FC-10 or FC-20 controller. @@ -6282,19 +7114,23 @@ `2'. This is necessary for any controller card that is based on Intel's 82078 FDC such as Seagate's, Exabyte's and Iomega's "high speed" controllers. + If you choose something other than "Standard" then please make sure that the settings for the IO base address and the IRQ and DMA channel in the configuration menus below are correct. Use the manual of your tape drive to determine the correct settings! + If you are already successfully using your tape drive with another operating system then you definitely should use the same settings for the IO base, the IRQ and DMA channel that have proven to work with that other OS. + Note that this menu lets you specify only the default setting for the hardware setup. The hardware configuration can be changed at boot time (when ftape is compiled into the kernel, i.e. if you have said Y to "Floppy tape drive") or module load time (i.e. if you have said M to "Floppy tape drive"). + Please read also the file Documentation/ftape.txt which contains a short description of the parameters that can be set at boot or load time. If you want to use your floppy tape drive on a @@ -6316,11 +7152,13 @@ successfully using the tape drive with another operating system then you definitely should use the same settings for the IO base that has proven to work with that other OS. + Note that this menu lets you specify only the default setting for the IO base. The hardware configuration can be changed at boot time (when ftape is compiled into the kernel, i.e. if you specified Y to "Floppy tape drive") or module load time (i.e. if you have said M to "Floppy tape drive"). + Please read also the file Documentation/ftape.txt which contains a short description of the parameters that can be set at boot or load time. @@ -6340,11 +7178,13 @@ successfully using the tape drive with another operating system then you definitely should use the same settings for the IO base that has proven to work with that other OS. + Note that this menu lets you specify only the default setting for the IRQ channel. The hardware configuration can be changed at boot time (when ftape is compiled into the kernel, i.e. if you specified Y to "Floppy tape drive") or module load time (i.e. if you have said M to "Floppy tape drive"). + Please read also the file Documentation/ftape.txt which contains a short description of the parameters that can be set at boot or load time. @@ -6364,11 +7204,13 @@ successfully using the tape drive with another operating system then you definitely should use the same settings for the IO base that has proven to work with that other OS. + Note that this menu lets you specify only the default setting for the DMA channel. The hardware configuration can be changed at boot time (when ftape is compiled into the kernel, i.e. if you specified Y to "Floppy tape drive") or module load time (i.e. if you have said M to "Floppy tape drive"). + Please read also the file Documentation/ftape.txt which contains a short description of the parameters that can be set at boot or load time. @@ -6376,25 +7218,48 @@ FDC FIFO Threshold before requesting DMA service CONFIG_FT_FDC_THR Set the FIFO threshold of the FDC. If this is higher the DMA - controller may serve the FCD after a higher latency time. If this is - lower, less DMA transfers occur leading to less bus contention. + controller may serve the FDC after a higher latency time. If this is + lower, fewer DMA transfers occur leading to less bus contention. You may try to tune this if ftape annoys you with "reduced data rate because of excessive overrun errors" messages. However, this - doesn't seem to have too much an effect. + doesn't seem to have too much effect. + If unsure, don't touch the initial value, i.e. leave it at "8". FDC maximum data rate CONFIG_FT_FDC_MAX_RATE - With some mother board/FDC combinations ftape will not be able to + With some motherboard/FDC combinations ftape will not be able to run your FDC/tape drive combination at the highest available speed. If this is the case you'll encounter "reduced data rate because of excessive overrun errors" messages and lots of retries before ftape finally decides to reduce the data rate. + In this case it might be desirable to tell ftape beforehand that it need not try to run the tape drive at the highest available speed. If unsure, leave this disabled, i.e. leave it at 2000 bits/sec. +MTRR control and configuration +CONFIG_MTRR + On Intel Pentium Pro/Pentium II systems the Memory Type Range + Registers (MTRRs) may be used to control processor access to memory + ranges. This is most useful when you have a video (VGA) card on a + PCI or AGP bus. Enabling write-combining allows bus write transfers + to be combined into a larger transfer before bursting over the + PCI/AGP bus. This can increase performance of image write operations + 2.5 times or more. + This option creates a /proc/mtrr file which may be used to manipulate + your MTRRs. Typically the X server should use this. This should have + a reasonably generic interface so that similar control registers on + other processors can be easily supported. + This option also fixes a problem with buggy SMP BIOSes which only + set the MTRRs for the boot CPU and not the secondary CPUs. This can + lead to all sorts of problems. + Compiling this as a module is not available because the BIOS fix + needs to be done early in the boot sequence, otherwise your machine + could lock up. + See Documentation/mtrr.txt for more information. + Main CPU frequency, only for DEC alpha machine CONFIG_FT_ALPHA_CLOCK On some DEC Alpha machines the CPU clock frequency cannot be @@ -6409,29 +7274,44 @@ Advanced Power Management CONFIG_APM APM is a BIOS specification for saving power using several different - techniques. This is mostly useful for battery powered laptops with - APM compliant BIOSes. Specifically, the time will be reset after a - USER RESUME operation, the /proc/apm device will provide battery - status information, and user-space programs will receive - notification of APM "events" (e.g., battery status - change). Supporting software is available; for more information, - read the Battery Powered Linux mini-HOWTO available via ftp (user: - anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. - This driver does not spin down disk drives (see hdparm(8) for that); - and it doesn't turn off VESA-compliant "green" monitors. This - driver does not support the TI 4000M TravelMate and the ACER - 486/DX4/75 because they don't have compliant BIOSes. Many "green" + techniques. This is mostly useful for battery powered laptops with + APM compliant BIOSes. If you say Y here, the system time will be + reset after a USER RESUME operation, the /proc/apm device will + provide battery status information, and user-space programs will + receive notification of APM "events" (e.g., battery status change). + + Supporting software is available; for more information, read the + Battery Powered Linux mini-HOWTO, available via FTP (user: + anonymous) from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini. + + This driver does not spin down disk drives (see the hdparm(8) + manpage ("man 8 hdparm") for that), and it doesn't turn off + VESA-compliant "green" monitors. + + This driver does not support the TI 4000M TravelMate and the ACER + 486/DX4/75 because they don't have compliant BIOSes. Many "green" desktop machines also don't have compliant BIOSes, and this driver will cause those machines to panic during the boot phase (typically, these machines are using a data segment of 0040, which is reserved - for the Linux kernel). Generally, if you don't have a battery in - your machine, there isn't much point in using this driver and you - should say N. If you get random kernel OOPSes or reboots that don't - seem to be related to anything, try disabling/enabling this - option. Some other things to try when experiencing seemingly random, - "weird" problems: + for the Linux kernel). + + If you are running Linux on a laptop, you may also want to read the + Linux Laptop homepage on the WWW at + http://www.cs.utexas.edu/users/kharker/linux-laptop/ (to browse the + WWW, you need to have access to a machine on the Internet that has a + program like lynx or netscape). + + Generally, if you don't have a battery in your machine, there isn't + much point in using this driver and you should say N. If you get + random kernel OOPSes or reboots that don't seem to be related to + anything, try disabling/enabling this option (or disabling/enabling + APM in your BIOS). + + Some other things to try when experiencing seemingly random, "weird" + problems: 1) passing the "no-hlt" option to the kernel - 2) passing the "no-387" option to the kernel + 2) switching on floating point emulation in the kernel and passing + the "no387" option to the kernel 3) passing the "floppy=nodma" option to the kernel 4) passing the "mem=4M" option to the kernel (thereby disabling all but the first 4M of RAM) @@ -6451,16 +7331,17 @@ CONFIG_APM_DO_ENABLE Enable APM features at boot time. From page 36 of the APM BIOS specification: "When disabled, the APM BIOS does not automatically - power manage devices, enter the Standby State, enter the Suspend State, - or take power saving steps in response to CPU Idle calls." This driver - will make CPU Idle calls when Linux is idle (unless this feature is - turned off -- see below). This should always save battery power, but - more complicated APM features will be dependent on your BIOS - implementation. You may need to turn this option off if your computer - hangs at boot time when using APM support, or if it beeps continuously - instead of suspending. Turn this off if you have a NEC UltraLite Versa - 33/C or a Toshiba T400CDT. This is off by default since most machines - do fine without this feature. + power manage devices, enter the Standby State, enter the Suspend + State, or take power saving steps in response to CPU Idle calls." + This driver will make CPU Idle calls when Linux is idle (unless this + feature is turned off -- see "Do CPU IDLE calls", below). This + should always save battery power, but more complicated APM features + will be dependent on your BIOS implementation. You may need to turn + this option off if your computer hangs at boot time when using APM + support, or if it beeps continuously instead of suspending. Turn + this off if you have a NEC UltraLite Versa 33/C or a Toshiba + T400CDT. This is off by default since most machines do fine without + this feature. Do CPU IDLE calls CONFIG_APM_CPU_IDLE @@ -6475,20 +7356,21 @@ Enable console blanking using APM CONFIG_APM_DISPLAY_BLANK Enable console blanking using the APM. Some laptops can use this to - turn off the LCD backlight when the VC screen blanker blanks the - screen. Note that this is only used by the VC screen blanker, and - won't turn off the backlight when using X11 (this also doesn't have - anything to do with your VESA-compliant power-saving monitor). - Further, this option doesn't work for all laptops -- it might not turn - off your backlight at all, or it might print a lot of errors to the - console, especially if you are using gpm. + turn off the LCD backlight when the screen blanker of the Linux + virtual console blanks the screen. Note that this is only used by + the virtual console screen blanker, and won't turn off the backlight + when using the X Window system. This also doesn't have anything to + do with your VESA-compliant power-saving monitor. Further, this + option doesn't work for all laptops -- it might not turn off your + backlight at all, or it might print a lot of errors to the console, + especially if you are using gpm. Power off on shutdown CONFIG_APM_POWER_OFF Enable the ability to power off the computer after the Linux kernel is halted. You will need software (e.g., a suitable version of the - halt(8) command) to cause the computer to power down. Recent - versions of the sysvinit package available from + halt(8) command ("man 8 halt")) to cause the computer to power down. + Recent versions of the sysvinit package available from ftp://sunsite.unc.edu/pub/Linux/system/daemons/init/ (user: anonymous) contain support for this ("halt -p" shuts down Linux and powers off the computer). As with the other APM options, this @@ -6496,30 +7378,33 @@ Ignore multiple suspend/standby events CONFIG_APM_IGNORE_MULTIPLE_SUSPEND - This option is necessary on the Thinkpad 560, but should work on all - other laptops. When the APM BIOS returns multiple suspend or standby - events while one is already being processed they will be ignored. - Without this the Thinkpad 560 has troubles with apmd, and pcmcia-cs. + This option is necessary on the IBM Thinkpad 560, but should work on + all other laptops. When the APM BIOS returns multiple suspend or + standby events while one is already being processed they will be + ignored. Without this the Thinkpad 560 has troubles with the user + level daemon apmd, and with the PCMCIA package pcmcia-cs. Watchdog Timer Support CONFIG_WATCHDOG If you say Y here (and to one of the following options) and create a character special file /dev/watchdog with major number 10 and minor number 130 using mknod ("man mknod"), you will get a watchdog, i.e.: - subsequently opening the file and failing to write to it for longer - than 1 minute will result in rebooting the machine. This could be - useful for a networked machine that needs to come back online as - fast as possible after a lock-up. There's both a watchdog + subsequently opening the file and then failing to write to it for + longer than 1 minute will result in rebooting the machine. This + could be useful for a networked machine that needs to come back + online as fast as possible after a lock-up. There's both a watchdog implementation entirely in software (which can sometimes fail to reboot the machine) and a driver for hardware watchdog boards, which are more robust and can also keep track of the temperature inside your computer. For details, read Documentation/watchdog.txt in the kernel source. + The watchdog is usually used together with the watchdog daemon which - is available via ftp (user: anonymous) from - tsx-11.mit.edu/pub/linux/sources/sbin/. This daemon can also monitor - NFS connections and can reboot the machine when the process table is - full. + is available via FTP (user: anonymous) from + ftp://tsx-11.mit.edu/pub/linux/sources/sbin/. This daemon can also + monitor NFS connections and can reboot the machine when the process + table is full. + If unsure, say N. Disable watchdog shutdown on close @@ -6535,10 +7420,12 @@ If you have a WDT500P or WDT501P watchdog board, say Y here, otherwise N. It is not possible to probe for this board, which means that you have to set the IO port and IRQ it uses in the kernel - source at the top of drivers/char/wdt.c. If you want to compile this - 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. The module will be called wdt.o. + source at the top of drivers/char/wdt.c. + + If you want to compile this 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. The module will be + called wdt.o. WDT501 features CONFIG_WDT_501 @@ -6558,32 +7445,36 @@ CONFIG_SOFT_WATCHDOG A software monitoring watchdog. This will fail to reboot your system from some situations that the hardware watchdog will recover - from. Equally it's a lot cheaper to install. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. The - module will be called softdog.o. + from. Equally it's a lot cheaper to install. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you want to compile it as a module, say M here and read + Documentation/modules.txt. The module will be called softdog.o. Berkshire Products PC Watchdog CONFIG_PCWATCHDOG This is the driver for the Berkshire Products PC Watchdog card. This card simply watches your kernel to make sure it doesn't freeze, - and if it does, it resets your computer after a certain amount of + and if it does, it reboots your computer after a certain amount of time. This driver is like the WDT501 driver but for different hardware. Please read Documentation/pcwd-watchdog.txt. The PC watchdog cards can be ordered from http://www.berkprod.com. Some - example rc.local files are available from ftp.bitgate.com. 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 is called pcwd.o. If you want to compile it as a module, say - M here and read Documentation/modules.txt. Most people will say N. + example rc.local files are available from ftp://ftp.bitgate.com. + + 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 is called pcwd.o. If you want to compile it as a module, + say M here and read Documentation/modules.txt. Most people will say + N. Acquire SBC Watchdog Timer CONFIG_ACQUIRE_WDT This is the driver for the hardware watchdog on the PSC-6x86 Single Board Computer produced by Acquire Inc (and others). This watchdog simply watches your kernel to make sure it doesn't freeze, and if - it does, it resets your computer after a certain amount of time. + it does, it reboots your computer after a certain amount of time. + This driver is like the WDT501 driver but for different hardware. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). @@ -6599,11 +7490,19 @@ generate signals from as low as 1Hz up to 8192Hz, and can also be used as a 24 hour alarm. It reports status information via the file /proc/rtc and its behaviour is set by various ioctls on - /dev/rtc. People running SMP (= multiprocessor) versions of Linux - should say Y here to read and set the RTC clock in a SMP compatible - fashion. (They should also read Documentation/smp.) If you think you - have a use for such a device (such as periodic data sampling), then - say Y here, and go read the file Documentation/rtc.txt for details. + /dev/rtc. + + People running SMP (= multiprocessor) versions of Linux should say Y + here to read and set the RTC clock in a SMP compatible + fashion. (They should also read Documentation/smp and + Documentation/IO-APIC.txt and the SMP-FAQ on the WWW at + http://www.irisa.fr/prive/mentre/smp-faq/ (to browse the WWW, you + need to have access to a machine on the Internet that has a program + like lynx or netscape)). + + If you think you have a use for such a device (such as periodic data + sampling), then say Y here, and go read the file + Documentation/rtc.txt for details. Tadpole ANA H8 Support CONFIG_H8 @@ -6624,11 +7523,12 @@ frequently save a few bits of very important data that may not be lost over power-off and for which writing to disk is too insecure. On Atari machines, /dev/nvram is always configured and - does not need to be selected. 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 - nvram.o. If you want to compile it as a module, say M here and read - Documentation/modules.txt. + does not need to be selected. + + 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 nvram.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. PC joystick support CONFIG_JOYSTICK @@ -6638,38 +7538,60 @@ using mknod ("man mknod"), you can read the status of the buttons and the x and y coordinates from that file. Please read the file Documentation/joystick.txt which contains more information and the - location of the joystick package that you'll need. 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 joystick.o. If you want to compile it as a module, say M - here and read Documentation/modules.txt. + location of the joystick package that you'll need. + + 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 joystick.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Atomwide Serial Support +CONFIG_ATOMWIDE_SERIAL + If you have an Atomwide Serial card for an Acorn system, say Y to + this option. The driver can handle 1, 2, or 3 port cards. + If unsure, say N + +The Serial Port Dual Serial Port +CONFIG_DUALSP_SERIAL + If you have the Serial Port's dual serial card for an Acorn system, + say Y to this option. If unsure, say N Sound card support CONFIG_SOUND - If you have a Sound Card in your Computer, i.e. if it can say more + If you have a sound card in your computer, i.e. if it can say more than an occasional beep, say Y. Be sure to have all the information about your sound card and its configuration down (I/O port, interrupt and DMA channel), because you will be asked for it. You - want to read the Sound-HOWTO, available via ftp (user: anonymous) - from sunsite.unc.edu:/pub/Linux/docs/HOWTO. There is also some - information in various README files in drivers/sound. If you want - to compile this 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. I'm told that even without a sound - card, you can make your computer say more than an occasional beep, - by programming the PC speaker. Kernel patches and programs to do - that are at - sunsite.unc.edu:/pub/Linux/kernel/patches/console/pcsndrv-X.X.tar.gz, - to be extracted with "tar xzvf filename". + want to read the Sound-HOWTO, available via FTP (user: anonymous) + from ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO. There is also some + information in various README files in drivers/sound, esp. in + Readme.cards which you should read first to find out whether your + card is supported by Linux. + + If you have a PnP sound card and you want to configure it at boot + time using the ISA PnP tools (read + http://www.roestock.demon.co.uk/isapnptools/ (to browse the WWW, you + need to have access to a machine on the Internet that has a program + like lynx or netscape)), then you need to compile the sound card + support as a module ( = code which can be inserted in and removed + from the running kernel whenever you want) and load that module + after the PnP configuration is finished. To do this, say M here and + read Documentation/modules.txt as well as + drivers/sound/Readme.modules; the module will be called sound.o. + + I'm told that even without a sound card, you can make your computer + say more than an occasional beep, by programming the PC speaker. + Kernel patches and programs to do that are in the pcsndrv package on + sunsite.unc.edu:/pub/Linux/kernel/patches/console/. ProAudioSpectrum 16 support CONFIG_PAS Answer Y only if you have a Pro Audio Spectrum 16, ProAudio Studio - 16 or Logitech SoundMan 16. Don't answer Y if you have some other - card made by Media Vision or Logitech since they are not PAS16 - compatible. + 16 or Logitech SoundMan 16 sound card. Don't answer Y if you have + some other card made by Media Vision or Logitech since they are not + PAS16 compatible. -SoundBlaster (SB, SBPro, SB16, clones) support +100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support CONFIG_SB Answer Y if you have an original SoundBlaster card made by Creative Labs or a 100% hardware compatible clone (like the @@ -6677,17 +7599,21 @@ cards look at the card specific instructions in the drivers/sound/Readme.cards file before answering this question. For an unknown card you may answer Y if the card claims to be - SoundBlaster compatible. + SoundBlaster compatible. + + Please read Documentation/sound/Soundblaster. + + If you have an SB AWE 32 or SB AWE 64, say + Y here and to "Additional lowlevel drivers" and to "SB32/AWE + support" below. Are you using the IBM Mwave "emulation" of SB ? CONFIG_SB_MWAVE - The IBM Mwave can do whats loosely describable as emulation of an 8bit - soundblaster if you load the right firmware from DOS warm boot and pray - and your machine happens to like you. Say Y if you are doing this as the - IRQ test normally fails on the mwave emulation. If you'd like real MWAVE - support phone IBM (425-556-8822) and ask them why they still haven't - released any documentation. - [http://204.200.238.31/cgi-bin/link.pl?co=i&cl=/ts/ibm/contact.html] + The IBM Mwave can do what's loosely describable as emulation of an + 8bit SoundBlaster card if you load the right firmware from DOS warm + boot and pray and your machine happens to like you. Say Y if you are + doing this as the IRQ test normally fails on the Mwave emulation. + Please read Documentation/sound/mwave. Generic OPL2/OPL3 FM synthesizer support CONFIG_ADLIB @@ -6695,20 +7621,24 @@ Answering Y is usually a safe and recommended choice, however some cards may have software (TSR) FM emulation. Enabling FM support with these cards may cause trouble (I don't currently know of any such - cards, however). - -Loopback MIDI device support -CONFIG_VMIDI + cards, however). If unsure, say Y. +#Loopback MIDI device support +#CONFIG_VMIDI +### +### somebody please fill this in. +### +# Gravis Ultrasound support CONFIG_GUS Say Y here for any type of Gravis Ultrasound card, including - the GUS or GUS MAX. + the GUS or GUS MAX. Please read Documentation/sound/ultrasound for + more information. MPU-401 support (NOT for SB16) CONFIG_MPU401 Be careful with this question. The MPU401 interface is supported by - all soundcards. However, some natively supported cards have their + all sound cards. However, some natively supported cards have their own driver for MPU401. Enabling this MPU401 option with these cards will cause a conflict. Also, enabling MPU401 on a system that doesn't really have a MPU401 could cause some trouble. If your card @@ -6722,12 +7652,18 @@ UART chip. This interface is rarely found on sound cards. It's safe to answer N to this question. -PSS (ECHO-ADI2111) support +PSS (AD1848, ADSP-2115, ESC614) support CONFIG_PSS Answer Y only if you have Orchid SW32, Cardinal DSP16 or some other card based on the PSS chipset (AD1848 codec + ADSP-2115 DSP chip + Echo ESC614 ASIC CHIP). +#Enable PSS mixer (Beethoven ADSP-16 and other compatible) +#CONFIG_PSS_MIXER +### +### Don't know what this is +### +# 16 bit sampling option of GUS (_NOT_ GUS MAX) CONFIG_GUS16 Answer Y if you have installed the 16 bit sampling daughtercard on @@ -6744,6 +7680,7 @@ safe to answer Y if you have the original Windows Sound System card made by Microsoft or Aztech SG 16 Pro (or NX16 Pro). Also you may answer Y in case your card is NOT among these: + ATI Stereo F/X, AdLib, Audio Excell DSP16, Cardinal DSP16, Ensoniq SoundScape (and compatibles made by Reveal and Spea), Gravis Ultrasound, Gravis Ultrasound ACE, Gravis Ultrasound Max, @@ -6757,6 +7694,7 @@ Blaster 2.0, Sound Blaster AWE32, Sound Blaster Pro, TI TM4000M notebook, ThunderBoard, Turtle Beach Tropez, Yamaha FM synthesizers (OPL2, OPL3 and OPL4), 6850 UART MIDI Interface. + For cards having native support in VoxWare, consult the card specific instructions in drivers/sound/Readme.cards. Some drivers have their own MSS support and saying Y to this option will cause a @@ -6764,7 +7702,7 @@ Ensoniq Soundscape support CONFIG_SSCAPE - Answer Y if you have a soundcard based on the Ensoniq SoundScape + Answer Y if you have a sound card based on the Ensoniq SoundScape chipset. Such cards are being manufactured at least by Ensoniq, Spea and Reveal (Reveal makes also other cards). @@ -6776,17 +7714,25 @@ Support for OPTi MAD16 and/or Mozart based cards CONFIG_MAD16 Answer Y if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi - 82C928 or 82C929 or 82C931) audio interface chip. For the 82C931, - please read drivers/sound/README.C931. These chips are currently - quite common so it's possible that many no-name cards have one of - them. In addition the MAD16 chip is used in some cards made by known - manufacturers such as Turtle Beach (Tropez), Reveal (some models) - and Diamond (latest ones). + 82C928 or 82C929 or 82C931) audio interface chip. Please read + Documentation/sound/MAD16. Please read Documentation/sound/Opti. For + the 82C931, additional information is in drivers/sound/README.C931. + These chips are currently quite common so it's possible that many + no-name cards have one of them. In addition the MAD16 chip is used + in some cards made by known manufacturers such as Turtle Beach + (Tropez), Reveal (some models) and Diamond (latest ones). + +Support MIDI in older MAD16 based cards (requires SB) +CONFIG_MAD16_OLDCARD + Answer Y (or M) if you have an older card based on the C928 or + Mozart chipset and you want to have MIDI support. If you enable this + option you also need to enable support for SoundBlaster. Support for Crystal CS4232 based (PnP) cards CONFIG_CS4232 Say Y here if you have a card based on the Crystal CS4232 chip set, - which use the Plug and Play protocol. + which use the Plug and Play protocol. Please read + Documentation/sound/CS4232 for more info. Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers CONFIG_MAUI @@ -6807,23 +7753,20 @@ FM synthesizer (YM3812/OPL-3) support CONFIG_YM3812 - Answer Y here, unless you know you will not need the option. + Answer Y here, unless you know you will not need the option. For + OPL-3 cards, you may want to read Documentation/sound/OPL3. Sun Audio support CONFIG_SUN_AUDIO - This is support for the soundcards on Sun workstations. The code + This is support for the sound cards on Sun workstations. The code does not exist yet, so you might as well say N here. -SB32/AWE support -CONFIG_AWE32_SYNTH - Say Y here if you have a SB32 or SB AWE soundcard. See - drivers/sound/lowlevel/README.awe for more info. - Additional low level drivers CONFIG_LOWLEVEL_SOUND - If you need additional low level sound drivers which are not part - of USS/Lite (UNIX Sound System), say Y. The only such driver at - present is the ACI driver for the miroSOUND PCM12 and PCM20. + If you need additional low level sound drivers which have not yet + appeared, say Y. The answer to this question does not directly + affect the kernel; saying Y will simply cause this configure script + to present you with more options. If unsure, say Y. ACI mixer (miroPCM12) CONFIG_ACI_MIXER @@ -6836,6 +7779,14 @@ also controls the radio tuner on this card, however this is not yet supported in this software. +SB32/AWE support +CONFIG_AWE32_SYNTH + Say Y here if you have a SoundBlaster SB32, AWE32-PnP, SB AWE64 or + similar sound card. See drivers/sound/lowlevel/README.awe, + Documentation/sound/AWE32 and the Soundblaster-AWE mini-HOWTO, + available via FTP (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini for more info. + Gallant's Audio Excel DSP 16 support (SC-6000 and SC-6600) CONFIG_AEDSP16 Answer Y if you have a Gallant's Audio Excel DSP 16 card. This card @@ -6847,7 +7798,7 @@ questions. Read the drivers/sound/lowlevel/README.aedsp16 file and the head of drivers/sound/lowlevel/aedsp16.c to get more information about this driver and its configuration. This driver supports Audio - Excel DSP 16 but not the III nor Pnp versions of this card. Read + Excel DSP 16 but not the III nor PnP versions of this card. Read drivers/sound/lowlevel/README.aedsp16 if you want to know something more on how to use the III version with this sound driver. @@ -6874,10 +7825,11 @@ This is for kernel hackers who want to know how much time the kernel spends in the various procedures. The information is stored in /proc/profile (say Y to "/proc filesystem support"!) and in order to - read it, you need the readprofile package from sunsite.unc.edu. Its - manpage gives information regarding the format of profiling data. To - become a kernel hacker, you can start with the Kernel Hacker's Guide - at http://www.redhat.com:8080/HyperNews/get/khg.html (to browse the + read it, you need the readprofile package from + sunsite.unc.edu:/pub/Linux/kernel. Its manpage gives information + regarding the format of profiling data. To become a kernel hacker, + you can start with the Kernel Hacker's Guide at + http://www.redhat.com:8080/HyperNews/get/khg.html (to browse the WWW, you need to have access to a machine on the Internet that has a program like lynx or netscape). Mere mortals say N. @@ -6890,14 +7842,13 @@ Magic System Request Key support CONFIG_MAGIC_SYSRQ - This is for kernel hackers who want to have some control over the - system even if the system crashes during kernel debugging (e.g., to - flush the disks, reboot the system immediately or dump some status - information). This is accomplished by pressing various keys while - holding SysRq (Alt+PrintScreen). As you are expected to be a kernel - hacker to use this, the simple rule about learning what the keys - mean is "Use the source, Luke!" -- read drivers/char/sysrq.c. - Don't say Y unless you really know what this hack does. + If you say Y here, you will have some control over the system even + if the system crashes for example during kernel debugging (e.g., you + will be able to flush the disks, reboot the system immediately or + dump some status information). This is accomplished by pressing + various keys while holding SysRq (Alt+PrintScreen). The keys are + documented in Documentation/sysrq.txt. Don't say Y unless you really + know what this hack does. ISDN subsystem CONFIG_ISDN @@ -6911,31 +7862,33 @@ provider purchased an ISDN line from the phone company. For details, read http://alumni.caltech.edu/~dank/isdn/ on the WWW. (To browse the WWW, you need to have access to a machine on the Internet - that has a program like lynx or netscape.) This driver allows you - to use an ISDN-card for networking connections and as dialin/out - device. The isdn-tty's have a built in AT-compatible modem - emulator. Network devices support autodial, channel-bundling, - callback and caller-authentication without having a daemon - running. A reduced T.70 protocol is supported with tty's suitable - for German BTX. On D-Channel, the protocols EDSS1 (Euro-ISDN) and - 1TR6 (German style) are supported. See Documentation/isdn/README for - more information. If you want to compile the ISDN code 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. The module will be called isdn.o. If - unsure, say N. + that has a program like lynx or netscape.) + + This driver allows you to use an ISDN-card for networking + connections and as dialin/out device. The isdn-tty's have a built in + AT-compatible modem emulator. Network devices support autodial, + channel-bundling, callback and caller-authentication without having + a daemon running. A reduced T.70 protocol is supported with tty's + suitable for German BTX. On D-Channel, the protocols EDSS1 + (Euro-ISDN) and 1TR6 (German style) are supported. See + Documentation/isdn/README for more information. + + If you want to compile the ISDN code 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. The module + will be called isdn.o. If unsure, say N. Support synchronous PPP CONFIG_ISDN_PPP Over digital connections such as ISDN, there is no need to synchronize sender and recipient's clocks with start and stop bits - as is done over telephone lines. Instead, one can use "synchronous - PPP". Saying Y here will include this protocol. This protocol is - used by Cisco and Sun for example. So you want to say Y here if the - other end of your ISDN connection supports it. You will need a - special version of pppd (called ipppd) for using this feature. See - Documentation/isdn/README.syncppp and Documentation/isdn/syncPPP.FAQ - for more information. + as is done over analog telephone lines. Instead, one can use + "synchronous PPP". Saying Y here will include this protocol. This + protocol is used by Cisco and Sun for example. So you want to say Y + here if the other end of your ISDN connection supports it. You will + need a special version of pppd (called ipppd) for using this + feature. See Documentation/isdn/README.syncppp and + Documentation/isdn/syncPPP.FAQ for more information. Support generic MP (RFC 1717) CONFIG_ISDN_MPP @@ -6946,6 +7899,7 @@ Use VJ-compression with synchronous PPP CONFIG_ISDN_PPP_VJ This enables Van Jacobson header compression for synchronous PPP. + Say Y if the other end of the connection supports it. Support audio via ISDN CONFIG_ISDN_AUDIO @@ -6958,6 +7912,12 @@ is the only voice-supporting driver. See Documentation/isdn/README.audio for more information. +X.25 PLP on top of ISDN (EXPERIMENTAL) +CONFIG_ISDN_X25 + This experimental feature provides the X.25 protocol over ISDN + connections. See Documentation/isdn/README.x25 for more information + if you are thinking about using this. + ICN 2B and 4B support CONFIG_ISDN_DRV_ICN This enables support for two kinds of ISDN-cards made by a German @@ -6966,21 +7926,39 @@ this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and README.icn for more - information. If you want to compile this 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. The module - will be called icn.o. + information. + + If you want to compile this 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. The module will be + called icn.o. + +isdnloop support +CONFIG_ISDN_DRV_LOOP + This driver provides a virtual ISDN card. Its primary purpose is + testing of linklevel features or configuration without getting + charged by your service-provider for lots of phone calls. + You need will need the loopctrl utility from the latest isdn4k-utils + package to set up this driver. HiSax SiemensChipSet driver support CONFIG_ISDN_DRV_HISAX This is a driver supporting the Siemens chipset on various ISDN-cards (like AVM A1, Elsa ISDN cards, Teles S0-16.0, Teles S0-16.3, Teles S0-8, Teles/Creatix PnP, ITK micro ix1 and many - compatibles). If you want to compile this 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. The module - will be called hisax.o. See Documentation/isdn/README.HiSax for - further informations on using this driver. + compatibles). + + HiSax is just the name of this driver, not the name of any hardware. + + If you have a card with such a chipset, you should say Y here and + also to the configuration option of the driver for your particular + card, below. + + If you want to compile this 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. The module will be + called hisax.o. See Documentation/isdn/README.HiSax for more + information on using this driver. HiSax Support for Teles 16.0/8.0 CONFIG_HISAX_16_0 @@ -6988,7 +7966,7 @@ S0-8 and many compatibles. See Documentation/isdn/README.HiSax on how to configure it using the different cards, a different D-channel protocol, or - non-standard irq/port/shmem settings. + non-standard IRQ/port/shmem settings. HiSax Support for Teles 16.3 or PNP or PCMCIA CONFIG_HISAX_16_3 @@ -6996,67 +7974,152 @@ the Teles/Creatix PnP and the Teles PCMCIA. See Documentation/isdn/README.HiSax on how to configure it using the different cards, a different D-channel protocol, or - non-standard irq/port/shmem settings. + non-standard IRQ/port settings. + +HiSax Support for Teles 16.3c +CONFIG_HISAX_TELES3C + This enables HiSax support for the Teles ISDN-cards 16.3c. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard IRQ/port settings. HiSax Support for AVM A1 (Fritz) CONFIG_HISAX_AVM_A1 This enables HiSax support for the AVM A1 (aka "Fritz"). See Documentation/isdn/README.HiSax on how to configure it using the different cards, a different D-channel protocol, or - non-standard irq/port/shmem settings. + non-standard IRQ/port settings. HiSax Support for Elsa ISA cards -CONFIG_HISAX_ELSA_PCC - This enables HiSax support for the Elsa Mircolink ISA cards and - for the Elsa Quickstep series cards. - See Documentation/isdn/README.HiSax on how to configure it - using the different cards, a different D-channel protocol, or - non-standard irq/port/shmem settings. - -HiSax Support for Elsa PCMCIA card -CONFIG_HISAX_ELSA_PCMCIA - This enables HiSax support for the Elsa PCMCIA cards. +CONFIG_HISAX_ELSA + This enables HiSax support for the Elsa Mircolink ISA cards, + for the Elsa Quickstep series cards and Elsa PCMCIA. See Documentation/isdn/README.HiSax on how to configure it using the different cards, a different D-channel protocol, or - non-standard irq/port/shmem settings. + non-standard IRQ/port settings. HiSax Support for ITK ix1-micro Revision 2 CONFIG_HISAX_IX1MICROR2 This enables HiSax support for the ITK ix1-micro Revision 2 card. See Documentation/isdn/README.HiSax on how to configure it using the different cards, a different D-channel protocol, or - non-standard irq/port/shmem settings. + non-standard IRQ/port settings. + +HiSax Support for Eicon.Diehl Diva cards +CONFIG_HISAX_DIEHLDIVA + This enables HiSax support for the Eicon.Diehl Diva none PRO versions + passive ISDN cards. + + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard IRQ/port settings. + +HiSax Support for ASUSCOM cards +CONFIG_HISAX_ASUSCOM + This enables HiSax support for the AsusCom and their OEM versions + passive ISDN cards. + + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard IRQ/port settings. + +HiSax Support for TELEINT cards +CONFIG_HISAX_TELEINT + This enables HiSax support for the TELEINT SA1 semiactiv ISDN card. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard IRQ/port settings. + +HiSax Support for Sedlbauer speed card/win-star +CONFIG_HISAX_SEDLBAUER + This enables HiSax support for the Sedlbauer passive ISDN cards. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard IRQ/port settings. + +HiSax Support for USR Sportster internal TA +CONFIG_HISAX_SPORTSTER + This enables HiSax support for the USR Sportster internal TA card. + See Documentation/isdn/README.HiSax on how to configure it using a + different D-channel protocol, or non-standard IRQ/port settings. + +HiSax Support for MIC card +CONFIG_HISAX_MIC + This enables HiSax support for the ITH MIC card. See + Documentation/isdn/README.HiSax on how to configure it using a + different D-channel protocol, or non-standard IRQ/port settings. + +HiSax Support for NETjet card +CONFIG_HISAX_NETJET + This enables HiSax support for the NetJet from Traverse + Technologies. See Documentation/isdn/README.HiSax on how to + configure it using a different D-channel protocol, or non-standard + IRQ/port settings. + +HiSax Support for Niccy PnP/PCI card +CONFIG_HISAX_NICCY + This enables HiSax support for the Dr. Neuhaus Niccy PnP or PCI. See + Documentation/isdn/README.HiSax on how to configure it using a + different D-channel protocol, or non-standard IRQ/port settings. + +HiSax Support for Am7930 (EXPERIMENTAL) +CONFIG_HISAX_AMD7930 + This enables HiSax support for the AMD7930 chips on some sparcs. + This code is not finished yet. HiSax Support for EURO/DSS1 CONFIG_HISAX_EURO - You should choose the D-channel protocol your local - telephone service provider uses here by saying Y or N. - NOTE: This is mutually exclusive with HiSax Support for - German 1TR6 if you have only one ISDN card installed. + Say Y or N according to the D-channel protocol which your local + telephone service company provides. + + NOTE: If you say Y here and you have only one ISDN card installed, + you cannot say Y to "HiSax Support for German 1TR6", below. And vice + versa. + +Support for German tariff info +CONFIG_DE_AOC + If you want that the HiSax hardware driver sends messages to the + upper level of the isdn code on each AOCD (Advice Of Charge, During + the call - transmission of the fee information during a call) and on + each AOCE (Advice Of Charge, at the End of the call - transmission + of fee information at the end of the call), say Y here. This works + only in Germany. + +Support for Australian Microlink service (not for std. EURO) +CONFIG_HISAX_ML + If you are in Australia and connected to the Microlink telephone + network, enable this, because there are little differences in + protocol. + + Please don't enable this in other countries. -HiSax Support for US/NI-1 +HiSax Support for US/NI-1 (not released yet) CONFIG_HISAX_NI1 - You should choose the D-channel protocol your local - telephone service provider uses here by saying Y or N. + Say Y or N according to the D-channel protocol which your local + telephone service company provides. HiSax Support for German 1TR6 CONFIG_HISAX_1TR6 - You should choose the D-channel protocol your local - telephone service provider uses here by saying Y or N. - NOTE: This is mutually exclusive with HiSax Support for - EURO/DSS1 if you have only one ISDN card installed. + Say Y or N according to the D-channel protocol which your local + telephone service company provides. + + NOTE: If you say Y here and you have only one ISDN card installed, + you cannot say Y to "HiSax Support for EURO/DSS1", above. And vice + versa. PCBIT-D support CONFIG_ISDN_DRV_PCBIT - This enables support for the PCBIT ISDN-cards. This card is + This enables support for the PCBIT ISDN-card. This card is manufactured in Portugal by Octal. For running this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and Documentation/isdn/README.pcbit for - more information. If you want to compile this 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. The module will be called pcbit.o. + more information. + + If you want to compile this 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. The module will be + called pcbit.o. Spellcaster support (EXPERIMENTAL) CONFIG_ISDN_DRV_SC @@ -7079,11 +8142,12 @@ interface for this card is provided. In order to use this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. Please - read the file Documentation/isdn/README.avmb1. This code 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 avmb1.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + read the file Documentation/isdn/README.avmb1. + + This code 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 avmb1.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Verbose reason code reporting (kernel size +=7K) CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON @@ -7091,6 +8155,14 @@ disconnecting. This will increase the size of the kernel by 7K. If unsure, say Y. +IBM Active 2000 support (EXPERIMENTAL) +CONFIG_ISDN_DRV_ACT2000 + Say Y here if you have an IBM Active 2000 ISDN card. In order to use + this card, additional firmware is necessary, which has to be loaded + into the card using a utility which is part of the latest isdn4k-utils + package. Please read the file Documentation/isdn/README.act2000 for + more information. + Support for AP1000 multicomputer CONFIG_AP1000 This enables support for a sparc based parallel multi-computer @@ -7108,23 +8180,24 @@ CONFIG_SUN_OPENPROMIO This driver provides user programs with an interface to the Sparc PROM device tree. The driver implements a SunOS-compatible - interface and a NetBSD-compatible interface. If you want to - compile this as a module ( = code which can be inserted in and - removed from the running kernel whenever you want), say M and read - Documentation/modules.txt. If unsure, say Y. + interface and a NetBSD-compatible interface. -Mostek real time clock support -CONFIG_SUN_MOSTEK_RTC + If you want to compile this as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M and read Documentation/modules.txt. If unsure, say Y. -Siemens SAB82532 serial support -CONFIG_SAB82532 +#Mostek real time clock support +#CONFIG_SUN_MOSTEK_RTC +# +#Siemens SAB82532 serial support +#CONFIG_SAB82532 ### ### Please someone fill these in. ### - +# # m68k-specific kernel options # Documented by Chris Lawrence et al. - +# Amiga support CONFIG_AMIGA This option enables support for the Amiga series of computers. If @@ -7140,8 +8213,9 @@ Macintosh support CONFIG_MAC - This option would enable support for the Apple Macintosh if there was - any for it. Say N unless you've coded all the necessary support. ;) + This option enables support for the Apple Macintosh series of computers + (yes, there is experimental support now, at least for part of the series). + Say N unless you're willing to code the remaining necessary support. ;) # CONFIG_APOLLO, etc. coming soon (?) @@ -7213,6 +8287,7 @@ it will enlarge your kernel by about 10KB. The identification information is also available through /proc/zorro (say Y to "/proc filesystem support"!). + Note that even if you say N here, you can still use your expansion cards. If in doubt, say Y. @@ -7282,10 +8357,11 @@ driver is also the basis for certain other drivers for devices attached to the ACSI bus: Atari SLM laser printer, BioNet-100 Ethernet, and PAMsNet Ethernet. If you want to use one of these - devices, you need ACSI support, too. 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 acsi.o. + devices, you need ACSI support, too. + + 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 acsi.o. Probe all LUNs on each ACSI device CONFIG_ACSI_MULTI_LUN @@ -7329,6 +8405,7 @@ (such as the GVP A4008 or a Combo board). Otherwise, say N. This driver does NOT work for the T-Rex series of accelerators from TekMagic and GVP-M. + 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 gvp11.o. If you want to compile it @@ -7366,7 +8443,7 @@ CONFIG_ATARI_SCSI If you have an Atari with built-in NCR5380 SCSI controller (TT, Falcon, ...) say Y to get it supported. Of course also, if you have - an compatible SCSI controller (e.g. for Medusa). This driver is also + a compatible SCSI controller (e.g. for Medusa). 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 is called atari_scsi.o. If you want to compile it as a module, say M here and @@ -7386,6 +8463,7 @@ CONFIG_ARIADNE If you have a VillageTronics Ariadne Ethernet adapter, say Y. Otherwise, say N. + 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 is called ariadne.o. If you want to compile it as @@ -7395,6 +8473,7 @@ CONFIG_A2065 If you have a Commodore A2065 Ethernet adapter, say Y. Otherwise, say N. + 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 is called a2065.o. If you want to compile it as a @@ -7403,6 +8482,7 @@ Hydra support CONFIG_HYDRA If you have a Hydra Ethernet adapter, say Y. Otherwise, say N. + 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 is called hydra.o. If you want to compile it as a @@ -7429,18 +8509,20 @@ Multiface Card III parallel support CONFIG_MULTIFACE_III_LP If you have a Multiface III card for your Amiga, and want to use its - parallel port in Linux, say Y. Otherwise, say N. 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 is - called lp_m68k.o. If you want to compile it as a module, say M here - and read Documentation/modules.txt. + parallel port in Linux, say Y. Otherwise, say N. + + 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 is called lp_m68k.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Amiga mouse support CONFIG_AMIGAMOUSE - If you want to be able to use an Amiga mouse in Linux, say Y. 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 is called amigamouse.o. If you want to compile it as a + If you want to be able to use an Amiga mouse in Linux, say Y. + + 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 is called amigamouse.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. Amiga Copper Console @@ -7452,21 +8534,24 @@ Atari mouse support CONFIG_ATARIMOUSE - If you want to be able to use an Atari mouse in Linux, say Y. 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 is called atarimouse.o. If you want to compile it as a + If you want to be able to use an Atari mouse in Linux, say Y. + + 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 is called atarimouse.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. Atari MFP serial support CONFIG_ATARI_MFPSER If you like to use the MFP serial ports ("Modem1", "Serial1") under Linux, say Y. The driver equally supports all kinds of MFP serial - ports and automatically detects whether Serial1 is available. This - driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + ports and automatically detects whether Serial1 is available. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you want to compile it as a module, say M here and read + Documentation/modules.txt. + Note for Falcon users: You also have an MFP port, it's just not wired to the outside... But you could use the port under Linux. @@ -7476,10 +8561,12 @@ LAN) and like to use them under Linux, say Y. All built-in SCC's are supported (TT, MegaSTE, Falcon), and also the ST-ESCC. If you have two connectors for channel A (Serial2 and LAN), they are visible as - two separate devices. This driver is also available as a module ( = - code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + two separate devices. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you want to compile it as a module, say M here and read + Documentation/modules.txt. Atari SCC serial DMA support CONFIG_ATARI_SCC_DMA @@ -7492,6 +8579,7 @@ Atari MIDI serial support CONFIG_ATARI_MIDI If you want to use your Atari's MIDI port in Linux, say Y. + This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read @@ -7502,6 +8590,7 @@ If you want to be able to use the DSP56001 in Falcons, say Y. This driver is still experimental, and if you don't know what it is, or if you don't have this processor, just say N. + This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read @@ -7511,6 +8600,7 @@ CONFIG_AMIGA_BUILTIN_SERIAL If you want to use your Amiga's built-in serial port in Linux, say Y. + This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read @@ -7525,9 +8615,10 @@ CONFIG_MULTIFACE_III_TTY If you want to use a Multiface III card's serial port in Linux, say Y. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + If you want to compile it as a module, say M here and read Documentation/modules.txt. Amiga or Atari DMA sound support @@ -7536,6 +8627,7 @@ Linux, answer Y to this question. This will provide a Sun-like /dev/audio, compatible with the Linux/i386 sound system. Otherwise, say N. + This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read @@ -7614,15 +8706,16 @@ On Power Macintoshes (and clones) with two SCSI buses, the external SCSI bus is usually controlled by a 53C94 SCSI bus adaptor. Older machines which only have one SCSI bus, such as the 7200, also use - the 53C94. Say Y to include support for the 53C94. This driver is - also available as a module called mac53c94.o ( = code which can be - inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + the 53C94. Say Y to include support for the 53C94. + + This driver is also available as a module called mac53c94.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. -MACE (Power Mac ethernet) support +MACE (Power Mac Ethernet) support CONFIG_MACE - Power Macintoshes and clones with ethernet built-in on the + Power Macintoshes and clones with Ethernet built-in on the motherboard will usually use a MACE (Medium Access Control for Ethernet) interface. Say Y to include support for the MACE chip. @@ -7630,35 +8723,50 @@ CONFIG_VIDEO_DEV Support for audio/video capture and overlay devices. The exact capabilities of each device vary. User tools for this are available - from ftp://ftp.uk.linux.org/pub/linux/video4linux. This driver is - also available as a module called videodev.o ( = code which can be - inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + from ftp://ftp.uk.linux.org/pub/linux/video4linux. + + This driver is also available as a module called videodev.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. BT848 Video For Linux CONFIG_VIDEO_BT848 Support for BT848 based frame grabber/overlay boards. This includes - the Miro, Hauppauge and STB boards. This driver is - also available as a module called bttv.o ( = code which can be - inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + the Miro, Hauppauge and STB boards. + + This driver is also available as a module called bttv.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. + +SAA5249 Teletext processor +CONFIG_VIDEO_SAA5249 + Support for I2C bus based teletext using the SAA5249 chip. At the + moment this is only useful on some European WinTV cards. + + This driver is also available as a module called saa5249.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. Quickcam BW Video For Linux CONFIG_VIDEO_BWQCAM - Say Y have if you have such a thing. This driver is also available - as a module called bw-qcam.o ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read - Documentation/modules.txt. + Say Y have if you the black and white version of the QuickCam + camera. See the next option for the color version. + + This driver is also available as a module called bw-qcam.o ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. Colour QuickCam Video For Linux CONFIG_VIDEO_CQCAM - This is the video4linux driver for the colour version of the Connectix - Quickcam. If you have one of these cameras, say Y here, otherwise say N. - This driver does not work with the original monochrome Quickcam, - Quickcam VC or QuickClip. It is also available as a module (c-qcam.o). + This is the video4linux driver for the colour version of the + Connectix Quickcam. If you have one of these cameras, say Y here, + otherwise say N. This driver does not work with the original + monochrome Quickcam, Quickcam VC or QuickClip. It is also available + as a module (c-qcam.o). Mediavision Pro Movie Studio Video For Linux CONFIG_VIDEO_PMS @@ -7667,28 +8775,31 @@ from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. -# need an empty line after last entry, for sed script in Configure. - # -# This is used by ispell.el: +# A couple of things I keep forgetting: +# capitalize: DMA, Internet, Intel, IRQ, Linux, NetWare, NFS, PCI, SCSI +# two words: hard drive, hard disk, sound card +# other: it's safe to save; daemon +# +# This is used by Emacs' spell checker ispell.el: # # LocalWords: CONFIG coprocessor DX Pentium SX lilo loadlin HOWTO ftp sunsite # LocalWords: unc edu docs emu README kB BLK DEV FD Thinkpad fd MFM RLL IDE gz -# LocalWords: cdrom harddisk diskless netboot nfs xzvf ATAPI MB harddrives ide -# LocalWords: HD harddisks CDROMs IDECD NEC MITSUMI filesystem XT XD PCI bios +# LocalWords: cdrom diskless netboot nfs xzvf ATAPI MB ide pavia rubini pl pd +# LocalWords: HD CDROMs IDECD NEC MITSUMI filesystem XT XD PCI BIOS cezar ATEN # LocalWords: ISA EISA Microchannel VESA BIOSes IPC SYSVIPC ipc Ctrl dmesg hlt # LocalWords: BINFMT Linkable http ac uk jo html GCC Sparc AVANTI CABRIOLET EB # LocalWords: netscape gcc LD CC toplevel MODVERSIONS insmod rmmod modprobe IP -# LocalWords: genksyms INET loopback gatewaying ethernet internet PPP ARP Arp +# LocalWords: genksyms INET loopback gatewaying ethernet PPP ARP Arp MEMSIZE # LocalWords: howto multicasting MULTICAST MBONE firewalling ipfw ACCT resp ip # LocalWords: proc acct IPIP encapsulator decapsulator klogd PCTCP RARP EXT PS -# LocalWords: telneting subnetted NAGLE rlogin NOSR ttyS TGA techinfo mbone nl -# LocalWords: Mb SKB IPX Novell Netware dosemu Appletalk DDP ATALK tapedrive +# LocalWords: telnetting subnetted NAGLE rlogin NOSR ttyS TGA techinfo mbone nl +# LocalWords: Mb SKB IPX Novell dosemu Appletalk DDP ATALK tapedrive vmalloc # LocalWords: SD CHR scsi thingy SG CD LUNs LUN jukebox Adaptec BusLogic EATA # LocalWords: buslogic DMA DPT ATT eata dma PIO UltraStor fdomain umsdos ext # LocalWords: QLOGIC qlogic TMC seagate Trantor ultrastor FASST wd NETDEVICES # LocalWords: unix BBS linux nullmodem CSLIP PLIP Kirch's LDP CSlip SL SCC IRQ -# LocalWords: Turbo Laplink plip NCSA port's ReQuest IRQs EQL SMC AMD PCnet NE +# LocalWords: Turbo Laplink plip NCSA ReQuest IRQs EQL SMC AMD PCnet NE # LocalWords: COM ELPLUS Com EtherLinkIII VLB Arcnet arcnet Cabletron DEPCA DE # LocalWords: depca EtherWorks EWRK ewrk SEEQ EtherExpressPro EEXPRESS NI xxx # LocalWords: EtherExpress WaveLAN wavelan PCLAN HPLAN VG SK Ansel Xen de ZNET @@ -7696,21 +8807,21 @@ # LocalWords: TR Sony CDU caddyless cdu Mitsumi MCD cd mcd XA MultiSession CDA # LocalWords: Matsushita Panasonic SBPCD Soundblaster Longshine sbpcd Aztech # LocalWords: Okano Wearnes AZTCD CDD SE aztcd sonycd Goldstar GSCD Philips fs -# LocalWords: LMS OPTCD Sanyo SJCD minix faqs xiafs XIA msdos harddrive mtools +# LocalWords: LMS OPTCD Sanyo SJCD minix faqs xiafs XIA msdos mtools Cichocki # LocalWords: std softlinks umssync NetworkFileSharing nfsd mountd CDs HPFS TI -# LocalWords: hpfs SYSV SCO intel iBCS Wyse WordPerfect tsx mit unixes sysv NR +# LocalWords: hpfs SYSV SCO iBCS Wyse WordPerfect tsx mit unixes sysv NR irisa # LocalWords: SMB WfW Cyclades async mux Logitech busmouse MouseSystem aka AST # LocalWords: PSMOUSE Compaq trackballs Travelmate Inport ATIXL ATI busmice ld # LocalWords: gpm config QIC DYNCONF FTAPE Stor Ftape ftape pcsndrv manpage NT # LocalWords: readprofile diskdrives org com masq EtherTalk tcp netrom sunacm # LocalWords: misc AIC aic pio nullmodems scc Portmaster eql GIS PhotoCDs MCDX -# LocalWords: mcdx gscd optcd sjcd ISP soundcard hdparm Workgroups Lan samba +# LocalWords: mcdx gscd optcd sjcd ISP hdparm Workgroups Lan samba PARIDE PCD # LocalWords: filesystems smbfs ATA ppp PCTech RZ www powerquest txt CMD ESDI # LocalWords: chipset FB multicast MROUTE appletalk ifconfig IBMTR multiport # LocalWords: Multisession STALDRV EasyIO EC EasyConnection ISTALLION ONboard # LocalWords: Brumby pci TNC cis ohio faq usenet NETLINK dev hydra ca Tyne mem -# LocalWords: carleton Deskstation DECstation SUNFD JENSEN Noname XXXM SLiRP -# LocalWords: pppd Zilog ZS soundcards SRM bootloader ez mainmenu rarp ipfwadm +# LocalWords: carleton Deskstation DECstation SUNFD JENSEN Noname SLiRP +# LocalWords: pppd Zilog ZS SRM bootloader ez mainmenu rarp ipfwadm paride pcd # LocalWords: RTNETLINK mknod xos MTU lwared Macs mac netatalk macs cs Wolff # LocalWords: dartmouth flowerpt MultiMaster FlashPoint tudelft etherexpress # LocalWords: ICL EtherTeam ETH IDESCSI TXC SmartRAID SmartCache httpd sjc dlp @@ -7720,7 +8831,7 @@ # LocalWords: Vertos Genoa Funai hsfs NCP NetWare tgz APM apm ioctls UltraLite # LocalWords: TravelMate CDT LCD backlight VC RPC Mips DECStation AXP barlow # LocalWords: PMAX MILO Alphas Multia Tseng linuxelf endian mipsel mips drv HT -# LocalWords: KERNELD kerneld callouts AdvanSys advansys diskquotas Admin WDT +# LocalWords: KERNELD kerneld callouts AdvanSys advansys Admin WDT DataStor EP # LocalWords: wdt hdb hdc bugfix SiS vlb Acculogic CSA DTC dtc Holtek ht QDI # LocalWords: QD qd UMC umc ALI ali lena fnet fr homepage azstarnet axplinux # LocalWords: Avanti XL AlphaStations Jensen DECpc AXPpci UDB Cabriolet MCA RC @@ -7731,10 +8842,10 @@ # LocalWords: ipppd syncppp RFC MPP VJ downloaded icn NICCY Creatix shmem ufr # LocalWords: ibp md ARCnet ether encap NDIS arcether ODI Amigas AmiTCP NetBSD # LocalWords: initrd tue util DES funet des OnNet BIOSP smc Travan Iomega CMS -# LocalWords: FC DC dc PPA IOMEGA's ppa RNFS FMV Fujitsu ARPD arpd loran layes +# LocalWords: FC DC dc PPA ppa RNFS FMV Fujitsu ARPD arpd loran layes # LocalWords: FRAD indiana framerelay DLCI DCLIs Sangoma SDLA mrouted sync sec # LocalWords: Starmode Metricom MosquitoNet mosquitonet kbit nfsroot Digiboard -# LocalWords: DIGI Xe Xeve digiboard UMISC touchscreens mtu ethernets HBAs MEX +# LocalWords: DIGI Xe Xeve digiboard UMISC touchscreens mtu HBAs MEX # LocalWords: Shifflett netcom js jshiffle WIC DECchip ELCP EtherPower dst RTC # LocalWords: rtc SMP lp Digi Intl RightSwitch DGRS dgrs AFFS Amiga UFS SDL AP # LocalWords: Solaris RISCom riscom syncPPP PCBIT pcbit sparc anu au artoo ufs @@ -7743,7 +8854,7 @@ # LocalWords: Bernd informatik rwth aachen uae affs multihosting bytecode java # LocalWords: applets applet JDK ncsa cabi SNI Alphatronix readme LANs scarab # LocalWords: winsock RNIS caltech OSPF honour Honouring Mbit Localtalk DEFRAG -# LocalWords: localtalk download Packetwin Baycom baycom interwork ascii JNT +# LocalWords: download Packetwin Baycom baycom interwork ascii JNT # LocalWords: Camtec proxying indyramp defragment defragmented UDP FAS FASXX # LocalWords: FastSCSI SIO FDC qlogicfas QLogic qlogicisp setbaycom ife ee LJ # LocalWords: ethz ch Travelmates ProAudioSpectrum ProAudio SoundMan SB SBPro @@ -7786,10 +8897,10 @@ # LocalWords: smp HiSax SiemensChipSet Siemens AVM Elsa ITK hisax PCC MICROR # LocalWords: Mircolink EURO DSS Spellcaster BRI sc spellcast Digiboards GPIO # LocalWords: SYMBIOS COMPAT SDMS rev ASUS Tekram HX VX API ibmmcascsi ASY asy -# LocalWords: loader's PCnetPCI automounter AUTOFS amd autofs VT Gallant's Pnp +# LocalWords: loader's PCnetPCI automounter AUTOFS amd autofs VT Gallant's PnP # LocalWords: AEDSP aedsp enskip tik Sysctl sysctl PARPORT parport pnp IDs EPP -# LocalWords: Autoprobe conformant bart patrickr HDLS READBACK AB usr DAMA DS -# LocalWords: Symbios PCscsi tmscsim RoamAbout GHz Hinds's contrib mathematik +# LocalWords: Autoprobe bart patrickr HDLS READBACK AB usr DAMA DS SparQ aten +# LocalWords: Symbios PCscsi tmscsim RoamAbout GHz Hinds' contrib mathematik # LocalWords: darmstadt okir DIGIEPCA International's Xem digiepca epca bootup # LocalWords: zorro CAPI AVMB capi avmb VP SYN syncookies EM em pc Ethertalk # LocalWords: Dayna DL Daynatalk LT PhoneNET ATB Daystar queueing CMDS SCBs ls @@ -7798,7 +8909,7 @@ # LocalWords: stuttgart rdist TRANS hostnames mango jukeboxes ESS userland PD # LocalWords: hardlinked NAMETRANS env mtab fstab umount nologin runlevel gid # LocalWords: transname filespace adm Nodename hostname uname Kernelname bootp -# LocalWords: KERNNAME kname ktype kernelname Kerneltype KERNTYPE Alt SCB's RX +# LocalWords: KERNNAME kname ktype kernelname Kerneltype KERNTYPE Alt RX # LocalWords: dataless kerneltype SYSNAME Netbeui Comtrol Rocketport palmtop # LocalWords: nvram SYSRQ SysRq PrintScreen sysrq NVRAMs NvRAM Shortwave RTTY # LocalWords: HFMODEM shortwave Sitor Amtor Pactor GTOR hfmodem hayes TX TMOUT @@ -7808,22 +8919,35 @@ # LocalWords: misconfigured autoconfiguration IPGRE ICMP tracert ipautofw PIM # LocalWords: netis rlynch autofw ipportfw monmouth ipsubs portforwarding pimd # LocalWords: portfw PIMSM netweb usc pim pf EUI aggregatable PB decapsulate -# LocalWords: ipddp Decapsulation DECAP bool HAMRADIO WAN's tcpdump af CD's tx +# LocalWords: ipddp Decapsulation DECAP bool HAMRADIO tcpdump af CDs tx # LocalWords: ethertap multisession PPC MMIO GDT GDTH ICP gdth hamradio LAN's # LocalWords: lmh weejock AIMSlab RadioTrack RTRACK HZP OptoSCC TRX rx TRXECHO # LocalWords: DMASCC paccomm dmascc addr cfg oevsv oe kib picpar FDX baudrate # LocalWords: baudrates fdx HDX hdx PSK kanren frforum QoS SCHED CBQ SCH sched # LocalWords: sch cbq CSZ Shenker Zhang csz SFQ sfq TBF tbf PFIFO fifo PRIO RW -# LocalWords: prio Micom xIO dwmw rimi OMIRR omirr omirrd unicode ntfs cmu +# LocalWords: prio Micom xIO dwmw rimi OMIRR omirr omirrd unicode ntfs cmu NIC # LocalWords: Braam braam Schmidt's freiburg nls codepages codepage Romanian # LocalWords: Slovak Slovenian Sorbian Nordic iso Catalan Faeroese Galician SZ # LocalWords: Valencian Slovene Esperanto Estonian Latvian Byelorussian KOI mt # LocalWords: charset Inuit Greenlandic Sami Lappish koi SOFTCURSOR softcursor -# LocalWords: Specialix specialix DTR RTS RTSCTS cycladesZ Exabyte ftape's +# LocalWords: Specialix specialix DTR RTS RTSCTS cycladesZ Exabyte ftape's inr # LocalWords: Iomega's LBFM claus ZFTAPE VFS zftape zft William's lzrw DFLT kb # LocalWords: MTSETBLK MTIOCTOP qft setblk zftape's tar's afio's setdrvbuffer # LocalWords: Procfs Exabyte's THR FCD sysvinit init PSC pscwdt VMIDI Euro SAB # LocalWords: Mostek Fastlane PowerMac PReP PMAC PowerPC Macintoshes Starmax # LocalWords: PowerStack Starmaxes MCOMMON DEVICETREE ATY IMS IMSTT videodev # LocalWords: BT Hauppauge STB bttv Quickcam BW BWQCAM bw qcam Mediavision PMS -# LocalWords: pms +# LocalWords: pms Avatar Freecom Imation Superdisk BPCK bpck COMM comm DSTR ru +# LocalWords: dstr EPAT EPEZ epat EPIA epia FreeCom FRPW frpw KingByte KBIC HW +# LocalWords: KingByte's kbic OnSpec ValuStore FASTROUTE fastroute FLOWCONTROL +# LocalWords: struct APIC realtime OSs LynxOS CNC tmp cvf HFS hfs ADFS Risc os +# LocalWords: adfs ncpmount namespace SUBDIR reexport NDS kcore FT SPX spx DAT +# LocalWords: interserver BLKSZ NUMBUFFERS apmd Tadpole ANA roestock QuickCam +# LocalWords: isapnptools Colour CQCAM colour Connectix QuickClip prive mentre +# LocalWords: KMOD kmod conformant utexas kharker UnixWare Mwave cgi cl ts ibm +# LocalWords: eXchange threepio oakland simtel pre ULTRAMCA EtherLink isa luik +# LocalWords: EtherLink OpenBSD pts DEVPTS devpts ptmx ttyp glibc readback SA +# LocalWords: mwave OLDCARD isdnloop linklevel loopctrl Eicon Diehl DIEHLDIVA +# LocalWords: ASUSCOM AsusCom TELEINT semiactiv Sedlbauer Sportster TA MIC ITH +# LocalWords: NETjet NetJet Niccy Neuhaus sparcs AOC AOCD AOCE Microlink SAA +# LocalWords: teletext WinTV saa iproute tc diff -ur --new-file old/linux/Documentation/IO-APIC.txt new/linux/Documentation/IO-APIC.txt --- old/linux/Documentation/IO-APIC.txt Wed Feb 4 00:28:34 1998 +++ new/linux/Documentation/IO-APIC.txt Thu May 21 03:54:33 1998 @@ -11,10 +11,10 @@ or - the board does not have PCI pins connected to the IO-APIC - or - the user has overriden blacklisted settings with the + or - the user has overridden blacklisted settings with the pirq= boot option line. -Kernel messages tell you wether the board is 'safe'. If your box +Kernel messages tell you whether the board is 'safe'. If your box boots with enabled IO-APIC IRQs, then you have nothing else to do. Your /proc/interrupts will look like this one: @@ -42,8 +42,8 @@ A) if your board is unlisted, then mail to linux-smp to get it into either the white or the blacklist - B) if your board is blacklisted, then figure out the apropriate - pirq= option to get your system boot + B) if your board is blacklisted, then figure out the appropriate + pirq= option to get your system to boot pirq= lines look like the following in /etc/lilo.conf: @@ -52,7 +52,7 @@ the actual numbers depend on your system, on your PCI cards and on their PCI slot position. Usually PCI slots are 'daisy chained' before they are -connected to the PCI chipset irq routing facility (the incoming PIRQ1-4 +connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4 lines): ,-. ,-. ,-. ,-. ,-. @@ -80,11 +80,11 @@ These INTA-D PCI IRQs are always 'local to the card', their real meaning depends on which slot they are in. If you look at the daisy chaining diagram, a card in slot4, issuing INTA IRQ, it will end up as a signal on PIRQ2 of -the PCI chipset. Most cards issue INTA, this creates optimal distibution +the PCI chipset. Most cards issue INTA, this creates optimal distribution between the PIRQ lines. (distributing IRQ sources properly is not a necessity, PCI IRQs can be shared at will, but it's a good for performance to have non shared interrupts). Slot5 should be used for videocards, they -dont use interrupts normally, thus they are not daisy chained either. +do not use interrupts normally, thus they are not daisy chained either. so if you have your SCSI card (IRQ11) in Slot1, Tulip card (IRQ9) in Slot2, then you'll have to specify this pirq= line: @@ -98,7 +98,7 @@ note that this script wont work if you have skipped a few slots or if your board does not do default daisy-chaining. (or the IO-APIC has the PIRQ pins -connected in some strange way). Eg. if in the above case you have your SCSI +connected in some strange way). E.g. if in the above case you have your SCSI card (IRQ11) in Slot3, and have Slot1 empty: append="pirq=0,9,11" @@ -107,9 +107,9 @@ slots.] generally, it's always possible to find out the correct pirq= settings, just -permutate all IRQ numbers properly ... it will take some time though. An +permute all IRQ numbers properly ... it will take some time though. An 'incorrect' pirq line will cause the booting process to hang, or a device -wont function properly (if it's inserted as eg. a module). +won't function properly (if it's inserted as eg. a module). If you have 2 PCI buses, then you can use up to 8 pirq values. Although such boards tend to have a good configuration and will be included in the @@ -130,7 +130,7 @@ to the official whitelist, contact us] good luck and mail to linux-smp@vger.rutgers.edu or -linux-kernel@vger.rutger.edu if you have any problems that are not covered +linux-kernel@vger.rutgers.edu if you have any problems that are not covered by this document. -- mingo diff -ur --new-file old/linux/Documentation/IO-mapping.txt new/linux/Documentation/IO-mapping.txt --- old/linux/Documentation/IO-mapping.txt Sat Sep 28 10:05:38 1996 +++ new/linux/Documentation/IO-mapping.txt Thu May 21 03:54:33 1998 @@ -56,13 +56,13 @@ where all the addresses actually point to the same thing, it's just seen through different translations.. -Similarly, on the alpha, the normal translation is +Similarly, on the Alpha, the normal translation is physical address: 0 virtual address: 0xfffffc0000000000 bus address: 0x40000000 -(but there are also alpha's where the physical address and the bus address +(but there are also Alphas where the physical address and the bus address are the same). Anyway, the way to look up all these translations, you do @@ -169,7 +169,7 @@ Ok, that just about covers the basics of accessing IO portably. Questions? Comments? You may think that all the above is overly complex, but one day you -might find yourself with a 500MHz alpha in front of you, and then you'll be +might find yourself with a 500 MHz Alpha in front of you, and then you'll be happy that your driver works ;) Note that kernel versions 2.0.x (and earlier) mistakenly called the diff -ur --new-file old/linux/Documentation/SMP.txt new/linux/Documentation/SMP.txt --- old/linux/Documentation/SMP.txt Mon May 6 11:26:01 1996 +++ new/linux/Documentation/SMP.txt Thu May 21 03:54:34 1998 @@ -19,7 +19,7 @@ o Clean up warnings/volatiles. o Fix load_TR() for non contiguous processor ids o Iterate over the slave timer requests if one is lost (keep a count per cpu) -o Distribute irq's (locking present just needs the 82489 to be asked +o Distribute IRQs (locking present just needs the 82489 to be asked nicely). o 486 startup code. o How to handle mixed FPU/non FPU processors. diff -ur --new-file old/linux/Documentation/binfmt_misc.txt new/linux/Documentation/binfmt_misc.txt --- old/linux/Documentation/binfmt_misc.txt Sat Jan 24 01:40:13 1998 +++ new/linux/Documentation/binfmt_misc.txt Tue Apr 28 23:22:03 1998 @@ -1,8 +1,8 @@ Kernel Support for miscellaneous (your favourite) Binary Formats v1.1 ===================================================================== -This Kernel feature allows to invoke almost (for restrictions see below) every -program by simply typing its name in the shell. +This Kernel feature allows you to invoke almost (for restrictions see below) +every program by simply typing its name in the shell. This includes for example compiled Java(TM), Python or Emacs programs. To achieve this you must tell binfmt_misc which interpreter has to be invoked @@ -34,7 +34,7 @@ There are some restrictions: - the whole register string may not exceed 255 characters - - the magic must resist in the first 128 bytes of the file, i.e. + - the magic must reside in the first 128 bytes of the file, i.e. offset+size(magic) has to be less than 128 - the interpreter string may not exceed 127 characters diff -ur --new-file old/linux/Documentation/cdrom/00-INDEX new/linux/Documentation/cdrom/00-INDEX --- old/linux/Documentation/cdrom/00-INDEX Sun Dec 28 21:05:44 1997 +++ new/linux/Documentation/cdrom/00-INDEX Fri Jun 5 07:53:50 1998 @@ -1,8 +1,9 @@ 00-INDEX - this file (info on CD-ROMs and Linux) +Makefile + - only used to generate TeX output from the documentation. aztcd - info on Aztech/Orchid/Okano/Wearnes/Conrad/CyCDROM driver. - cdrom-standard.tex - LaTeX document on standardizing the CD-ROM programming interface. cdu31a diff -ur --new-file old/linux/Documentation/cdrom/aztcd new/linux/Documentation/cdrom/aztcd --- old/linux/Documentation/cdrom/aztcd Tue Dec 2 20:43:16 1997 +++ new/linux/Documentation/cdrom/aztcd Thu May 21 03:54:34 1998 @@ -173,7 +173,7 @@ If you did not set the correct base address in aztcd.h, you can also supply the base address when loading the driver via insmod /lib/modules/X.X.X/misc/aztcd.o aztcd= -Again specifing aztcd=-1 will cause autoprobing. +Again specifying aztcd=-1 will cause autoprobing. If you do not have the iso9660-filesystem in your boot kernel, you also have to load it before you can mount the CDROM: insmod /lib/modules/X.X.X/fs/isofs.o @@ -202,7 +202,7 @@ 5.1 MULTISESSION SUPPORT Multisession support for CD's still is a myth. I implemented and tested a basic support for multisession and XA CDs, but I still have not enough CDs and appli- -cations to test it rigourously. So if you'd like to help me, please contact me +cations to test it rigorously. So if you'd like to help me, please contact me (Email address see below). As of version 1.4 and newer you can enable the multisession support in aztcd.h by setting AZT_MULTISESSION to 1. Doing so will cause the ISO9660-filesystem to deal with multisession CDs, ie. redirect @@ -375,7 +375,7 @@ the finite state machine in azt_poll(). The most important are the status messages, look how they are defined and try to understand, if they make sense in the context where they appear. With a CD-ROM inserted the status - should always be 8, except in aztcd_open(). Try to open the tray, insert a + should always be 8, except in aztcd_open(). Try to open the tray, insert an audio disk, insert no disk or reinsert the CD-ROM and check, if the status bits change accordingly. The status bits are the most likely point, where the drive manufacturers may implement changes. @@ -400,7 +400,7 @@ that the ACMD_SOFT_RESET is issued in any case, by substituting the if-statement 'if ( ...=AFL_OP_OK)' by 'if (1)'. -If you succeed, please mail may the exact version string of your drive and +If you succeed, please mail me the exact version string of your drive and the code modifications, you have made together with a short explanation. If you don't succeed, you may mail me the output of the debugging messages. But remember, they are only useful, if they are exact and complete and you @@ -439,13 +439,13 @@ code around function azt_poll() case AZT_S_MODE does work. In my test I have not been able to switch to reading in raw mode. For reading raw mode, Aztech uses a different command than for cooked mode, which I only have implemen- -ted in the ioctl-section but not in the section which is used by the ISO9660- +ted in the ioctl-section but not in the section which is used by the ISO9660. The driver was developed on an AST PC with Intel 486/DX2, 8MB RAM, 340MB IDE hard disk and on an AST PC with Intel Pentium 60MHz, 16MB RAM, 520MB IDE running Linux kernel version 1.0.9 from the LST 1.8 Distribution. The kernel was compiled with gcc.2.5.8. My CD-ROM drive is an Aztech CDA268-01A. My -drive says, that it has Firmware Version AZT26801A1.3. It came with a ISA-bus +drive says, that it has Firmware Version AZT26801A1.3. It came with an ISA-bus interface card and works with polled I/O without DMA and without interrupts. The code for all other drives was 'remote' tested and debugged by a number of volunteers on the Internet. @@ -508,7 +508,7 @@ /dev/aztcd0 in order to use it. Remember, that you should not have /dev/cdrom mounted, when you're playing audio CDs. -This program is just a hack for testing the ioctl-functions in aztcd.c, I will +This program is just a hack for testing the ioctl-functions in aztcd.c. I will not maintain it, so if you run into problems, discard it or have a look into the source code 'cdplay.c'. The program does only contain a minimum of user protection and input error detection. If you use the commands in the wrong @@ -517,11 +517,11 @@ error messages when using cdplay, after that, the system might not be stable any more, so you'd better reboot. As the ioctl-functions run in kernel mode, most normal Linux-multitasking protection features do not work. By using -uninitialized 'wild' pointers etc., it is easy to write to other users data and -program areas, destroy kernel tables etc.. So if you experiment with ioctls +uninitialized 'wild' pointers etc., it is easy to write to other users' data +and program areas, destroy kernel tables etc.. So if you experiment with ioctls as always when you are doing systems programming and kernel hacking, you should have a backup copy of your system in a safe place (and you also -should try before, how to restore from a backup copy)! +should try restoring from a backup copy first)! A reworked and improved version called 'cdtester.c', which has yet more features for testing CDROM-drives can be found in diff -ur --new-file old/linux/Documentation/cdrom/cdrom-standard.tex new/linux/Documentation/cdrom/cdrom-standard.tex --- old/linux/Documentation/cdrom/cdrom-standard.tex Wed Dec 31 20:34:15 1997 +++ new/linux/Documentation/cdrom/cdrom-standard.tex Tue Apr 28 23:22:04 1998 @@ -45,15 +45,15 @@ \end{itemize} The openness of \linux, and the many different types of available hardware has allowed \linux\ to support many different hardware devices. -Unfortunatly, the very openness that has allowed \linux\ to support +Unfortunately, the very openness that has allowed \linux\ to support all these different devices has also allowed the behavior of each device driver to differ significantly from one device to another. -This divergence of behavior has been the very significant for \cdrom\ +This divergence of behavior has been very significant for \cdrom\ devices; the way a particular drive reacts to a `standard' $ioctl()$ call varies greatly from one device driver to another. To avoid making their drivers totally inconsistent, the writers of \linux\ \cdrom\ drivers generally created new device drivers by understanding, copying, -and then changing an existing one. Unfortunatly, this practice did not +and then changing an existing one. Unfortunately, this practice did not maintain uniform behavior across all the \linux\ \cdrom\ drivers. This document describes an effort to establish Uniform behavior across @@ -85,7 +85,7 @@ set of commands and data formats.\footnote{I cannot recollect what kernel version I looked at, then, presumably 1.2.13 and 1.3.34---the latest kernel that I was indirectly involved in.} It seemed that many -features of the software interface had been added to accomodate the +features of the software interface had been added to accommodate the capabilities of a particular drive, in an {\fo ad hoc\/} manner. More importantly, it appeared that the behavior of the `standard' commands was different for most of the different drivers: \eg, some drivers @@ -93,7 +93,7 @@ others do not. Some drivers lock the door upon opening the device, to prevent an incoherent file system, but others don't, to allow software ejection. Undoubtedly, the capabilities of the different drives vary, -but even when two drives have the same capability their driver's +but even when two drives have the same capability their drivers' behavior was usually different. I decided to start a discussion on how to make all the \linux\ \cdrom\ @@ -109,7 +109,7 @@ The goal of the \UCD\ is {\em not\/} to alienate driver developers who have not yet taken steps to support this effort. The goal of \UCD\ is -simply is give people writing application programs for \cdrom\ drives +simply to give people writing application programs for \cdrom\ drives {\em one\/} \linux\ \cdrom\ interface with consistent behavior for all \cdrom\ devices. In addition, this also provides a consistent interface between the low-level device driver code and the \linux\ kernel. Care @@ -147,14 +147,14 @@ from the actual hardware implementation. Note that this effort has made few changes which will effect a user's application programs. The greatest change involved moving the contents of the various low-level -\cdrom\ driver's header files to the kernel's cdrom directory. This was +\cdrom\ drivers' header files to the kernel's cdrom directory. This was done to help ensure that the user is only presented with only one cdrom interface, the interface defined in \cdromh. \cdrom\ drives are specific enough (\ie, different from other block-devices such as floppy or hard disc drives), to define a set of common {\em \cdrom\ device operations}, $_dops$. -These operations are different than the classical block-device file +These operations are different from the classical block-device file operations, $_fops$. The routines for the \UCD\ interface level are implemented in the file @@ -267,7 +267,7 @@ Note that most functions have fewer parameters than their $blkdev_fops$ counterparts. This is because very little of the -information in the structures $inode$ and $file$ are used. For most +information in the structures $inode$ and $file$ is used. For most drivers, the main parameter is the $struct$ $cdrom_device_info$, from which the major and minor number can be extracted. (Most low-level \cdrom\ drivers don't even look at the major and minor number though, @@ -291,7 +291,7 @@ \noalign{\medskip} &int& options : 30;& options flags \cr &long& mc_flags : 2;& media-change buffer flags \cr - & int& use_count;& number of times devices is opened\cr + & int& use_count;& number of times device is opened\cr \}\cr }$$ Using this $struct$, a linked list of the registered minor devices is @@ -312,23 +312,23 @@ A few registers contain variables local to the \cdrom\ drive. The flags $options$ are used to specify how the general \cdrom\ routines should behave. These various flags registers should provide enough -flexibility to adapt to the different user's wishes (and {\em not\/} the +flexibility to adapt to the different users' wishes (and {\em not\/} the `arbitrary' wishes of the author of the low-level device driver, as is the case in the old scheme). The register $mc_flags$ is used to buffer the information from $media_changed()$ to two separate queues. Other -data that is specific to minor drive, can be accessed through $handle$, +data that is specific to a minor drive, can be accessed through $handle$, which can point to a data structure specific to the low-level driver. The fields $use_count$, $next$, $options$ and $mc_flags$ need not be initialized. -The intermediate software layer that \cdromc\ forms will performs some +The intermediate software layer that \cdromc\ forms will perform some additional bookkeeping. The use count of the device (the number of processes that have the device opened) is registered in $use_count$. The function $cdrom_ioctl()$ will verify the appropriate user-memory regions for read and write, and in case a location on the CD is transferred, it will `sanitize' the format by making requests to the low-level drivers in a standard format, and translating all formats between the -user-software and low level drivers. This relieves much of the drivers +user-software and low level drivers. This relieves much of the drivers' memory checking and format checking and translation. Also, the necessary structures will be declared on the program stack. @@ -469,7 +469,7 @@ sanitization goes even further: the low-level implementation may return the requested information in $CDROM_MSF$ format if it wishes so (setting the $ms_info\rightarrow addr_format$ field appropriately, of -course) and the routines in \cdromc\ will make the transform if +course) and the routines in \cdromc\ will make the transformation if necessary. The return value is 0 upon success. \subsection{$Int\ get_mcn(struct\ cdrom_device_info * cdi, struct\ @@ -498,7 +498,7 @@ Some of the \cdrom-$ioctl$s defined in \cdromh\ can be implemented by the routines described above, and hence the function $cdrom_ioctl$ will use those. However, most $ioctl$s deal with -audio-control. We have decided to leave these accessed through a +audio-control. We have decided to leave these to be accessed through a single function, repeating the arguments $cmd$ and $arg$. Note that the latter is of type $void*{}$, rather than $unsigned\ long\ int$. The routine $cdrom_ioctl()$ does do some useful things, @@ -532,7 +532,7 @@ so either the audio-file-system should ask for 75264 bytes at once (the least common multiple of 512 and 2352), or the drivers should bend their backs to cope with this incoherence (to which I would be -opposed). Furthermore, it it very difficult for the hardware to find +opposed). Furthermore, it is very difficult for the hardware to find the exact frame boundaries, since there are no synchronization headers in audio frames. Once these issues are resolved, this code should be standardized in \cdromc. @@ -562,7 +562,7 @@ CDC_SELECT_SPEED& can select speed, in units of $\sim$150\,kB/s\cr CDC_SELECT_DISC& drive is juke-box\cr CDC_MULTI_SESSION& can read sessions $>\rm1$\cr -CDC_MCN& can read Medium Catalog Number\cr +CDC_MCN& can read Media Catalog Number\cr CDC_MEDIA_CHANGED& can report if disc has changed\cr CDC_PLAY_AUDIO& can perform audio-functions (play, pause, etc)\cr CDC_RESET& hard reset device\cr @@ -724,12 +724,12 @@ \begin{description} \item[$CDO_AUTO_CLOSE \mathrel| CDO_USE_FFLAGS \mathrel| CDO_LOCK$] This is the default setting. (With $CDO_CHECK_TYPE$ it will be better, in the -future.) If the device is not yet opened by any other process, and it +future.) If the device is not yet opened by any other process, and if the device is being opened for data ($O_NONBLOCK$ is not set) and the tray is found to be open, an attempt to close the tray is made. Then, it is verified that a disc is in the drive and, if $CDO_CHECK_TYPE$ is set, that it contains tracks of type `data mode 1.' Only if all tests -are passed, the return value is zero. The door is locked to prevent file +are passed is the return value zero. The door is locked to prevent file system corruption. If the drive is opened for audio ($O_NONBLOCK$ is set), no actions are taken and a value of 0 will be returned. \item[$CDO_AUTO_CLOSE \mathrel| CDO_AUTO_EJECT \mathrel| CDO_LOCK$] This @@ -745,7 +745,7 @@ \newsection{Description of routines in \cdromc} Only a few routines in \cdromc\ are exported to the drivers. In this -newsection we will discuss these, as well as the functions that `take +new section we will discuss these, as well as the functions that `take over' the \cdrom\ interface to the kernel. The header file belonging to \cdromc\ is called \cdromh. Formerly, some of the contents of this file were placed in the file {\tt {ucdrom.h}}, but this file has now been @@ -833,7 +833,7 @@ \item[CDROMEJECT_SW] If $arg\not=0$, set behavior to auto-close (close tray on first open) and auto-eject (eject on last release), otherwise set behavior to non-moving on $open()$ and $release()$ calls. -\item[CDROM_GET_MCN or CDROM_GET_UPC] Get the Medium Catalog Number from a CD. +\item[CDROM_GET_MCN or CDROM_GET_UPC] Get the Media Catalog Number from a CD. \end{description} \subsubsection{$Ioctl$s routed through $audio_ioctl()$} @@ -878,7 +878,7 @@ \item[CDROM_SELECT_SPEED] Select head-rate speed of disc specified as by $arg$ in units of standard cdrom speed (176\,kB/sec raw data or 150\,kB/sec file system data). The value 0 means `auto-select', \ie, - play audio discs at real time and data disc at maximum speed. The value + play audio discs at real time and data discs at maximum speed. The value $arg$ is checked against the maximum head rate of the drive found in the $cdrom_dops$. \item[CDROM_SELECT_DISC] Select disc numbered $arg$ from a juke-box. @@ -887,18 +887,18 @@ \item[CDROM_MEDIA_CHANGED] Returns 1 if a disc has been changed since the last call. Note that calls to $cdrom_media_changed$ by the VFS are treated by an independent queue, so both mechanisms will detect - a media change once. For Juke-boxes, an extra argument $arg$ + a media change once. For juke-boxes, an extra argument $arg$ specifies the slot for which the information is given. The special value $CDSL_CURRENT$ requests that information about the currently - selected slot is returned. + selected slot be returned. \item[CDROM_DRIVE_STATUS] Returns the status of the drive by a call to $drive_status()$. Return values are defined in section~\ref{drive status}. Note that this call doesn't return information on the current playing activity of the drive; this can be polled through an - $ioctl$ call to $CDROMSUBCHNL$. For Juke-boxes, an extra argument + $ioctl$ call to $CDROMSUBCHNL$. For juke-boxes, an extra argument $arg$ specifies the slot for which (possibly limited) information is given. The special value $CDSL_CURRENT$ requests that information - about the currently selected slot is returned. + about the currently selected slot be returned. \item[CDROM_DISC_STATUS] Returns the type of the disc currently in the drive. It should be viewed as a complement to $CDROM_DRIVE_STATUS$. This $ioctl$ can provide \emph {some} information about the current @@ -996,7 +996,7 @@ \item Change the prototypes of $_open()$ and $_release()$, and remove any strategic code (\ie, tray movement, door locking, etc.). -\item Try to recompile the drivers. We advice you to use modules, both +\item Try to recompile the drivers. We advise you to use modules, both for {\tt {cdrom.o}} and your driver, as debugging is much easier this way. \end{enumerate} @@ -1004,7 +1004,7 @@ \newsection{Thanks} Thanks to all the people involved. First, Erik Andersen, who has -taken over the torch in maintaining \cdromc\ and integrating many +taken over the torch in maintaining \cdromc\ and integrating much \cdrom-related code in the 2.1-kernel. Thanks to Scott Snyder and Gerd Knorr, who were the first to implement this interface for SCSI and IDE-CD drivers and added many ideas for extension of the data diff -ur --new-file old/linux/Documentation/cdrom/cdu31a new/linux/Documentation/cdrom/cdu31a --- old/linux/Documentation/cdrom/cdu31a Fri Apr 12 08:49:29 1996 +++ new/linux/Documentation/cdrom/cdu31a Tue Apr 28 23:22:04 1998 @@ -32,7 +32,7 @@ Setting Up the Hardware ----------------------- -The CDU31A driver in unable to safely tell if an interface card is +The CDU31A driver is unable to safely tell if an interface card is present that it can use because the interface card does not announce its presence in any way besides placing 4 I/O locations in memory. It used to just probe memory and attempt commands, but Linus wisely asked @@ -44,7 +44,7 @@ soundcard. If you have the Sony CDU31A/CDU33A drive interface card, the following -diagram will help you set it up. If You have another card, you are on +diagram will help you set it up. If you have another card, you are on your own. You need to make sure that the I/O address and interrupt is not used by another card in the system. You will need to know the I/O address and interrupt you have set. Note that use of interrupts is diff -ur --new-file old/linux/Documentation/cdrom/cm206 new/linux/Documentation/cdrom/cm206 --- old/linux/Documentation/cdrom/cm206 Tue Dec 2 20:41:44 1997 +++ new/linux/Documentation/cdrom/cm206 Tue Apr 28 23:22:04 1998 @@ -14,7 +14,7 @@ - Full audio support, that is, both workman, workbone and cdp work now reasonably. Reading TOC still takes some time. xmcd has been reported to run successfully. -- Made auto-probe code a little better, i hope +- Made auto-probe code a little better, I hope Features since version 0.28 --------------------------- @@ -37,8 +37,8 @@ Further, you must decide if you are going to specify the base port address and the interrupt request line of the adapter card cm260 as boot options for (a), module parameters for (b), use automatic - probing of these values, or hard-wire your adaptor cards settings - into the source code. If you don't care, you can choose for + probing of these values, or hard-wire your adaptor card's settings + into the source code. If you don't care, you can choose autoprobing, which is the default. In that case you can move on to the next step. @@ -48,10 +48,10 @@ make config - If you have chosen for option (a), answer yes to CONFIG_CM206 and + If you have chosen option (a), answer yes to CONFIG_CM206 and CONFIG_ISO9660_FS. - If you have chosen for option (b), answer yes to CONFIG_MODVERSIONS + If you have chosen option (b), answer yes to CONFIG_MODVERSIONS and no (!) to CONFIG_CM206 and CONFIG_ISO9660_FS. 2) then do a @@ -64,7 +64,7 @@ Using the driver as a module ---------------------------- -If you will only seldomly use the cd-rom driver, you can choose for +If you will only occasionally use the cd-rom driver, you can choose option (b), install as a loadable module. You may have to re-compile the module when you upgrade the kernel to a new version. @@ -84,7 +84,7 @@ insmod /usr/src/linux/modules/cm206.o cm206=0x300,11 -The order of base port and irq line doesn't matter; you may specify only +The order of base port and irq line doesn't matter; if you specify only one, the other will have the value of the compiled-in default. You may also have to install the file-system module `iso9660.o', if you didn't compile that into the kernel. @@ -92,17 +92,17 @@ Using the driver as part of the kernel -------------------------------------- -If you have chosen for option a, you can specify the base-port +If you have chosen option (a), you can specify the base-port address and irq on the lilo boot command line, e.g.: LILO: linux cm206=0x340,11 This assumes that your linux kernel image keyword is `linux'. -If you may specify either IRQ (3--11) or base port (0x300--0x370), +If you specify either IRQ (3--11) or base port (0x300--0x370), auto probing is turned off for both settings, thus setting the other value to the compiled-in default. -Note that you can put these parameters also in the lilo configuration file: +Note that you can also put these parameters in the lilo configuration file: # linux config image = /vmlinuz @@ -122,7 +122,7 @@ Mounting the cdrom ------------------ -1) Make sure that there is the right device installed in /dev. +1) Make sure that the right device is installed in /dev. mknod /dev/cm206cd b 32 0 @@ -159,7 +159,7 @@ DISCLAIMER ---------- I cannot guarantee that this driver works, or that the hardware will -not be harmed, although i consider it most unlikely. +not be harmed, although I consider it most unlikely. I hope that you'll find this driver in some way useful. diff -ur --new-file old/linux/Documentation/cdrom/gscd new/linux/Documentation/cdrom/gscd --- old/linux/Documentation/cdrom/gscd Tue Dec 2 20:41:44 1997 +++ new/linux/Documentation/cdrom/gscd Tue Apr 28 23:22:04 1998 @@ -1,7 +1,7 @@ Goldstar R420 CD-Rom device driver README For all kind of other information about the GoldStar R420 CDROM -and this Linux device driver is a WWW-URL Page installed: +and this Linux device driver see the WWW page: http://linux.rz.fh-hannover.de/~raupach @@ -44,12 +44,12 @@ Before you can use the driver, you have to mknod /dev/gscd0 b 16 0 -to create the appropriate device file (once for all times). +to create the appropriate device file (you only need to do this once). If you use modules, you can try to insert the driver. Say: 'insmod /usr/src/linux/modules/gscd.o' or: 'insmod /usr/src/linux/modules/gscd.o gscd=
' -The driver should report his results now. +The driver should report its results. That's it! Mount a disk, i.e. 'mount -rt iso9660 /dev/gscd0 /cdrom' diff -ur --new-file old/linux/Documentation/cdrom/ide-cd new/linux/Documentation/cdrom/ide-cd --- old/linux/Documentation/cdrom/ide-cd Wed Mar 18 06:39:11 1998 +++ new/linux/Documentation/cdrom/ide-cd Tue Apr 28 23:22:04 1998 @@ -22,7 +22,7 @@ - Reading from data tracks, and mounting iso9660 filesystems. - Playing audio tracks. Most of the cdrom player programs floating - around should work; i usually use Workman. + around should work; I usually use Workman. - Multisession support. @@ -148,7 +148,7 @@ cdtester program in Documentation/cdrom/sbpcd. On a few drives, you can read digital audio directly using a program -such as cdda2wav. The only types of drive which i've heard support +such as cdda2wav. The only types of drive which I've heard support this are Sony and Toshiba drives. You will get errors if you try to use this function on a drive which does not support it. @@ -189,7 +189,7 @@ ioctl. The default is 8. TEST - This presently enables an additional ioctl which enables a user-mode + This currently enables an additional ioctl which enables a user-mode program to execute an arbitrary packet command. See the source for details. This should be left off unless you know what you're doing. @@ -271,7 +271,7 @@ and 15 for the secondary (0x1f0) interface.) Also be sure that you don't have some other hardware which might be conflicting with the IRQ you're using. Also check the BIOS setup for your system; - some have the ability to disable individual IRQ levels, and i've + some have the ability to disable individual IRQ levels, and I've had one report of a system which was shipped with IRQ 15 disabled by default. @@ -282,7 +282,7 @@ - If you own a Pioneer DR-A24X, you _will_ get nasty error messages on boot such as "irq timeout: status=0x50 { DriveReady SeekComplete }" The Pioneer DR-A24X cdrom drives are fairly popular these days. - Unfortunatly, these drives seem to become very confused when we perform + Unfortunately, these drives seem to become very confused when we perform the standard Linux ATA disk drive probe. If you own one of these drives, you can bypass the ATA probing which confuses these cdrom drives, by adding `append="hdX=noprobe hdX=cdrom"' to your lilo.conf file and runing @@ -377,7 +377,7 @@ /* * cdchange.c [-v] [] * - * This load a cdrom from a specified slot in a changer, and displays + * This loads a cdrom from a specified slot in a changer, and displays * information about the changer status. The drive should be unmounted before * using this program. * diff -ur --new-file old/linux/Documentation/cdrom/isp16 new/linux/Documentation/cdrom/isp16 --- old/linux/Documentation/cdrom/isp16 Tue Dec 2 20:41:44 1997 +++ new/linux/Documentation/cdrom/isp16 Tue Apr 28 23:22:04 1998 @@ -71,7 +71,7 @@ The syntax of the command line does not allow the specification of irq when there's nothing specified for the base address and no specification of dma when there is no specification of irq. -The value 'nosip16' for drive_type, which may be used as the first +The value 'noisp16' for drive_type, which may be used as the first non-integer option value (e.g. 'isp16=noisp16'), makes sure that probing for and subsequent configuration of an ISP16-compatible card is skipped all together. This can be useful to overcome possible conflicts which diff -ur --new-file old/linux/Documentation/cdrom/mcdx new/linux/Documentation/cdrom/mcdx --- old/linux/Documentation/cdrom/mcdx Wed Jun 5 09:47:05 1996 +++ new/linux/Documentation/cdrom/mcdx Tue Apr 28 23:22:04 1998 @@ -1,6 +1,6 @@ This is a first attempt to create an `improved' driver for the Mitsumi drives. It is able to "live together" with mcd.c, if you have at least two Mitsumi -drives: each driver can use his own drive. +drives: each driver can use its own drive. To allow this "coexistence" as long as mcdx.c is not a superset of mcd.c, this driver has to use its own device files. We use MAJOR 20 for it. So, diff -ur --new-file old/linux/Documentation/cdrom/sbpcd new/linux/Documentation/cdrom/sbpcd --- old/linux/Documentation/cdrom/sbpcd Tue Dec 2 20:41:44 1997 +++ new/linux/Documentation/cdrom/sbpcd Thu May 21 03:54:34 1998 @@ -4,7 +4,7 @@ sbpcd really, really is NOT for ANY IDE/ATAPI drive! Not even if you have an "original" SoundBlaster card with an IDE interface! -So, you better have a look into README.ide if your port address is 0x1F0, +So, you'd better have a look into README.ide if your port address is 0x1F0, 0x170, 0x1E8, 0x168 or similar. I get tons of mails from IDE/ATAPI drive users - I really can't continue any more to answer them all. So, if your drive/interface information sheets @@ -18,7 +18,7 @@ and get lucky. To make it fully clear to you: if you mail me about IDE/ATAPI drive problems, my answer is above, and I simply will discard your mail, hoping to stop the -flood and to find time to lead my 12-years old son towards happy computing. +flood and to find time to lead my 12-year old son towards happy computing. The driver is able to drive the whole family of "traditional" AT-style (that is NOT the new "Enhanced IDE" or "ATAPI" drive standard) Matsushita, @@ -29,13 +29,13 @@ The Longshine LCS-7260 is a double-speed drive which uses the "old" Matsushita command set. It is supported - with help by Serge Robyns. Vertos ("Elitegroup Computer Systems", ECS) has a similar drive - support -has started; come in contact if you have such a "Vertos 100" or "ECS-AT" +has started; get in contact if you have such a "Vertos 100" or "ECS-AT" drive. There exists an "IBM External ISA CD-ROM Drive" which in fact is a CR-563 with a special controller board. This drive is supported (the interface is of the "LaserMate" type), and it is possibly the best buy today (cheaper than -an internal drive, and you can use it as an internal, too - f.e. plug it into +an internal drive, and you can use it as an internal, too - e.g. plug it into a soundcard). CreativeLabs has a new drive "CD200" and a similar drive "CD200F". The latter @@ -51,7 +51,7 @@ to 64 (it is not recommended to do that for normal "file access" usage, but it can speed up things a lot if you use something like "dd" to read from the drive; I use it for verifying self-written CDs this way). -The drive itself is able to deliver 600 kB/sec, so this has to get a point of +The drive itself is able to deliver 600 kB/sec, so this needs work; with the normal setup, the performance currently is not even as good as double-speed. @@ -63,7 +63,7 @@ a complete idiot needs to understand your hassle already with your first mail. And if you want to say "as I have mailed you before", be sure that I don't remember your "case" by such remarks; at the moment, I have some -hundreds open correspondences about Linux CDROM questions (hope to reduce if +hundreds of open correspondences about Linux CDROM questions (hope to reduce if the IDE/ATAPI user questions disappear). @@ -79,7 +79,7 @@ If you have a sound card which needs a "configuration driver" instead of jumpers for interface types and addresses (like Mozart cards) - those drivers get invoked before the DOS CDROM driver in your CONFIG.SYS, typical -names are "cdsetup.sys" and "mztinit.sys" -, let the sound driver do the +names are "cdsetup.sys" and "mztinit.sys" - let the sound driver do the CDROM port configuration (the leading comments in linux/drivers/sound/mad16.c are just for you!). Hannu Savolainen's mad16.c code is able to set up my Mozart card - I simply had to add @@ -184,10 +184,10 @@ 1. Setup your hardware parameters. Though the driver does "auto-probing" at a lot of (not all possible!) addresses, this step is recommended for - every-day use. You should let sbpcd auto-probe once and use the reported + everyday use. You should let sbpcd auto-probe once and use the reported address if a drive got found. The reported type may be incorrect; it is correct if you can mount a data CD. There is no choice for you with the - type; only one is the right, the others are deadly wrong. + type; only one is right, the others are deadly wrong. a. Go into /usr/src/linux/drivers/cdrom/sbpcd.h and configure it for your hardware (near the beginning): @@ -229,7 +229,7 @@ second, third, or fourth controller installed, do not say "y" to the secondary Matsushita CD-ROM questions. -3. Then do a "make dep", then make the kernel image ("make zlilo" or else). +3. Then do a "make dep", then make the kernel image ("make zlilo" or similar). 4. Make the device file(s). This step usually already has been done by the MAKEDEV script. @@ -242,7 +242,7 @@ mknod /dev/sbpcd3 b 25 3 to make the node(s). - The "first found" drive gets MINOR 0 (regardless to its jumpered ID), the + The "first found" drive gets MINOR 0 (regardless of its jumpered ID), the "next found" (at the same cable) gets MINOR 1, ... For a second interface board, you have to make nodes like @@ -297,21 +297,21 @@ To reduce or increase the amount of kernel messages, edit sbpcd.c and play with the "DBG_xxx" switches (initialization of the variable "sbpcd_debug"). -Don't forget to reflect what you do; enabling all DBG_xxx switches at once +Don't forget to reflect on what you do; enabling all DBG_xxx switches at once may crash your system, and each message line is accompanied by a delay. The driver uses the "variable BLOCK_SIZE" feature. To use it, you have to specify "block=2048" as a mount option. Doing this will disable the direct execution of a binary from the CD; you have to copy it to a device with the -standard BLOCK_SIZE (1024) before. So, do not use this if your system is -directly "running from the CDROM" (like some of YGGDRASIL's installation -variants). There are CDs on the market (like the german "unifix" Linux +standard BLOCK_SIZE (1024) first. So, do not use this if your system is +directly "running from the CDROM" (like some of Yggdrasil's installation +variants). There are CDs on the market (like the German "unifix" Linux distribution) which MUST get handled with a block_size of 1024. Generally, one can say all the CDs which hold files of the name YMTRANS.TBL are defective; do not use block=2048 with those. -Within sbpcd.h, you will find some "#define"s (f.e. EJECT and JUKEBOX). With -that, you can configure the driver for some special things. +Within sbpcd.h, you will find some "#define"s (e.g. EJECT and JUKEBOX). With +these, you can configure the driver for some special things. You can use the appended program "cdtester" to set the auto-eject feature during runtime. Jeff Tranter's "eject" utility can do this, too (and more) for you. @@ -344,7 +344,7 @@ command line" feature and specify address & type at boot time to find out the right setup. -For every-day use, address and type should get configured within sbpcd.h. That +For everyday use, address and type should get configured within sbpcd.h. That will stop the auto-probing due to success with the first try. The kernel command "sbpcd=0" suppresses each auto-probing and causes @@ -373,7 +373,7 @@ interfaces, i.e. need SBPRO 0! With "original" SB Pro cards, an initial setting of CD_volume through the -sound cards MIXER register gets done. +sound card's MIXER register gets done. If you are using a "compatible" sound card of types "LaserMate" or "SPEA", you can set SOUND_BASE (in sbpcd.h) to get it done with your card, too... @@ -385,8 +385,8 @@ README.aztcd from the Aztech driver package) should work. The program CDplayer likes to talk to "/dev/mcd" only, xcdplayer wants -"/dev/rsr0", workman loves "/dev/sr0" or "/dev/cdrom" - so, do the appropriate -links for using them without the need of supplying parameters. +"/dev/rsr0", workman loves "/dev/sr0" or "/dev/cdrom" - so, make the +appropriate links to use them without the need to supply parameters. Copying audio tracks: diff -ur --new-file old/linux/Documentation/cdrom/sjcd new/linux/Documentation/cdrom/sjcd --- old/linux/Documentation/cdrom/sjcd Tue Dec 2 20:41:44 1997 +++ new/linux/Documentation/cdrom/sjcd Tue Apr 28 23:22:04 1998 @@ -1,10 +1,10 @@ -- Documentation/cdrom/sjcd 80% of the work takes 20% of the time, 20% of the work takes 80% of the time... - (Murphy law) + (Murphy's law) Once started, training can not be stopped... - (StarWars) + (Star Wars) This is the README for the sjcd cdrom driver, version 1.6. @@ -13,7 +13,7 @@ For info on configuring the ISP16 sound card look at Documentation/cdrom/isp16. The driver should work with any of the Panasonic, Sony or Mitsumi style -CDROM interface. +CDROM interfaces. The cdrom interface on Media Magic's soft configurable sound card ISP16, which used to be included in the driver, is now supported in a separate module. This initialisation module will probably also work with other interfaces diff -ur --new-file old/linux/Documentation/cdrom/sonycd535 new/linux/Documentation/cdrom/sonycd535 --- old/linux/Documentation/cdrom/sonycd535 Tue Dec 2 20:41:44 1997 +++ new/linux/Documentation/cdrom/sonycd535 Thu May 21 03:54:34 1998 @@ -1,7 +1,7 @@ README FOR LINUX SONY CDU-535/531 DRIVER ======================================== -This is the the Sony CDU-535 (and 531) driver version 0.7 for Linux. +This is the Sony CDU-535 (and 531) driver version 0.7 for Linux. I do not think I have the documentation to add features like DMA support so if anyone else wants to pursue it or help me with it, please do. (I need to see what was done for the CDU-31A driver -- perhaps I can @@ -35,7 +35,7 @@ - Drive must be set up as unit 1. Only the first unit will be recognized - - you must enter your interface address into + - You must enter your interface address into /usr/src/linux/drivers/cdrom/sonycd535.h and build the appropriate kernel or use the "kernel command line" parameter sonycd535=0x320 diff -ur --new-file old/linux/Documentation/devices.tex new/linux/Documentation/devices.tex --- old/linux/Documentation/devices.tex Wed Feb 18 05:11:25 1998 +++ new/linux/Documentation/devices.tex Tue Apr 28 23:22:04 1998 @@ -1148,11 +1148,11 @@ \end{devicelist} \noindent -Network Block Device is somehow similar to loopback devices: If you -read from it, it sends packet accross network asking server for -data. If you write to it, it sends packet telling server to write. It -could be used to mounting filesystems over the net, swapping over the -net, implementing block device in userland etc. +Network Block Device is somewhat similar to the loopback device: if you +read from it, it sends packets across the network asking a server for +data. If you write to it, it sends packets telling the server to write. It +could be used for mounting filesystems over the net, swapping over the +net, implementing block devices in userland etc. \begin{devicelist} \major{44}{}{char }{isdn4linux virtual modem -- alternate devices} @@ -1283,7 +1283,7 @@ \end{devicelist} \noindent -This device is used for the interfacing to the MC683xx +This device is used for interfacing to the MC683xx microcontrollers via Background Debug Mode by use of a Parallel Port interface. PD is the Motorola Public Domain Interface and ICD is the commercial interface by P\&E. @@ -1832,7 +1832,7 @@ Serial ports are RS-232 serial ports and any device which simulates one, either in hardware (such as internal modems) or in software (such -as the ISDN driver.) Under Linux, each serial ports has two device +as the ISDN driver.) Under Linux, each serial port has two device names, the primary or callin device and the alternate or callout one. Each kind of device is indicated by a different letter. For any letter $X$, the names of the devices are {\file /dev/tty${X\#}$} and diff -ur --new-file old/linux/Documentation/devices.txt new/linux/Documentation/devices.txt --- old/linux/Documentation/devices.txt Wed Feb 18 05:11:25 1998 +++ new/linux/Documentation/devices.txt Thu May 21 03:54:34 1998 @@ -236,7 +236,7 @@ 1 = /dev/loop1 Second loopback device ... - The loopback devices are used to mount filesystems not + The loopback devices are used to mount file systems not associated with block devices. The binding to the loopback devices is handled by mount(8) or losetup(8). @@ -288,7 +288,7 @@ ... The metadisk driver is used to span a - filesystem across multiple physical disks. + file system across multiple physical disks. 10 char Non-serial mice, misc features 0 = /dev/logibm Logitech bus mouse @@ -387,11 +387,11 @@ 33 = /dev/patmgr1 Sequencer patch manager 34 = /dev/midi02 Third MIDI port 50 = /dev/midi03 Fourth MIDI port - block BIOS harddrive callback support - 0 = /dev/dos_hda First BIOS harddrive whole disk - 64 = /dev/dos_hdb Second BIOS harddrive whole disk - 128 = /dev/dos_hdc Third BIOS harddrive whole disk - 192 = /dev/dos_hdd Fourth BIOS harddrive whole disk + block BIOS hard drive callback support + 0 = /dev/dos_hda First BIOS hard drive whole disk + 64 = /dev/dos_hdb Second BIOS hard drive whole disk + 128 = /dev/dos_hdc Third BIOS hard drive whole disk + 192 = /dev/dos_hdd Fourth BIOS hard drive whole disk Partitions are handled in the same way as IDE disks (see major number 3). @@ -785,18 +785,18 @@ 1 = /dev/nb1 Second network block device ... - Network Block Device is somehow similar to loopback - devices: If you read from it, it sends packet accross - network asking server for data. If you write to it, it - sends packet telling server to write. It could be used - to mounting filesystems over the net, swapping over - the net, implementing block device in userland etc. + The network block device is similar to a loopback device: + if you read from it, it sends packets across the network + asking the server for data. If you write to it, it sends + packets telling the server to write. It could be used to + mount file systems over the net, swap over the net, + implement block devices in userland, etc. 44 char isdn4linux virtual modem - alternate devices 0 = /dev/cui0 Callout device corresponding to ttyI0 ... 63 = /dev/cui63 Callout device corresponding to ttyI63 - block Flash Translatio Layer (FTL) filesystems + block Flash Translation Layer (FTL) file systems 0 = /dev/ftla FTL on first Memory Technology Device 16 = /dev/ftlb FTL on second Memory Technology Device 32 = /dev/ftlc FTL on third Memory Technology Device @@ -1247,7 +1247,7 @@ /dev/cdwriter CD-writer symbolic Current CD-writer device /dev/scanner scanner symbolic Current scanner device /dev/modem modem port symbolic Current dialout device -/dev/root root device symbolic Current root filesystem +/dev/root root device symbolic Current root file system /dev/swap swap device symbolic Current swap device /dev/modem should not be used for a modem which supports dialin as @@ -1280,7 +1280,7 @@ pseudoterminals (PTYs). All terminal devices share a common set of capabilities known as line -diciplines; these include the common terminal line dicipline as well +disciplines; these include the common terminal line discipline as well as SLIP and PPP modes. All terminal devices are named similarly; this section explains the @@ -1359,7 +1359,7 @@ Pseudoterminals (PTYs) Pseudoterminals, or PTYs, are used to create login sessions or provide -other capabilities requiring a TTY line dicipline (including SLIP or +other capabilities requiring a TTY line discipline (including SLIP or PPP capability) to arbitrary data-generation processes. Each PTY has a master side, named /dev/pty[p-za-e][0-9a-f], and a slave side, named /dev/tty[p-za-e][0-9a-f]. The kernel arbitrates the use of PTYs by diff -ur --new-file old/linux/Documentation/digiboard.txt new/linux/Documentation/digiboard.txt --- old/linux/Documentation/digiboard.txt Fri Jan 30 22:52:57 1998 +++ new/linux/Documentation/digiboard.txt Tue Apr 28 23:22:04 1998 @@ -5,18 +5,18 @@ DigiBoard PC/Xi, PC/Xe, PC/Xeve(which is the newer, smaller Xe with a 8K window which is also known as PC/Xe(8K) and has no memory/irq - switches) You can use up to 4 cards with this driver and should work + switches) You can use up to 4 cards with this driver and it should work on other architectures than intel also. -In case you have problems with this version(1.6.1) of this driver, please +In case you have problems with this version (1.6.1) of this driver, please email directly to me as I made the last update. It you have a report about runnning it on other architectures than intel, email me, so I can document it here. -An version of this driver has been taken by Digiboard to make a driver +A version of this driver has been taken by Digiboard to make a driver software package which supports also PC/Xem cards and newer PCI cards -but it don't support the old PC/Xi cards and it isn't yet ported to -linux-2.1.x and may not be useable on other architectures than intel now. +but it doesn't support the old PC/Xi cards and it isn't yet ported to +linux-2.1.x and may not be usable on other architectures than intel now. It is available from ftp.digi.com/ftp.digiboard.com. You can write me if you need an patch for this driver. @@ -25,7 +25,7 @@ Configuring the Driver ---------------------- -The driver can be build direct into the kernel or as module. +The driver can be built direct into the kernel or as a module. The pcxx driver can be configured using the command line feature while loading the kernel with LILO or LOADLIN or, if built as a module, with arguments to insmod and modprobe or with parameters in @@ -66,14 +66,14 @@ membase - Memory start address of that card. memsize - Memory size of that card, in kilobytes. If given, this value is compared against the card to verify configuration and - hinder the driver to use a misconfigured card. If the parameter + hinder the driver from using a misconfigured card. If the parameter does not match the board it is disabled with a memory size error. numports - Number of ports on this card. This is the number of devices to assign to this card or reserve if disabled. altpin - 1: swap DCD and DSR for 8-pin RJ-45 with modems. 0: don't swap DCD and DSR. other values count as 1. -verbose - 1: give nice verbose output during initialisation of the driver. +verbose - 1: give nice verbose output during initialisation of the driver, possibly helpful during board configuration. 0: normal terse output. @@ -82,19 +82,19 @@ io=0x200 membase=0xD0000 numports=16 altpin=0 -Only parameters applicable need be specified. For example to configure +Only applicable parameters need be specified. For example to configure 2 boards, first one at 0x200 with 8 ports, rest defaults, second one at 0x120, memory at 0xD80000, altpin enabled, rest defaults, you can do this by using these parameters: modprobe pcxx io=0x200,0x120 numports=8,8 membase=,0xD80000 altpin=,1 -To disable a temporary unuseable board without changing the mapping of the +To disable a temporary unusable board without changing the mapping of the devices following that board, you can empty the io-value for that board: modprobe pcxx io=,0x120 numports=8,8 membase=,0xD80000 altpin=,1 -The remainig board still uses ttyD8-ttyD15 and cud8-cud15. +The remaining board still uses ttyD8-ttyD15 and cud8-cud15. Example line for /etc/conf.modules for use with kerneld and as default parameters for modprobe: @@ -120,7 +120,7 @@ Card type: PC/Xi - the old ones with 64/128/256/512K RAM. PC/Xe - PC/Xe(old ones with 64k mem range). - PC/Xeve - PC/Xe(newers with 8k mem range). + PC/Xeve - PC/Xe(new ones with 8k mem range). Note: This is for documentation only, the type is detected from the board. @@ -146,7 +146,8 @@ board 1: io=0x200, membase=0xd0000, altpin=off and numports=16 are used. If you have the resources (io&mem) free for use, configure your board to -these settings and you should be set up fine even if yours has not 16 ports. +these settings and you should be set up fine even if yours has not got 16 +ports. Sources of Information @@ -274,7 +275,7 @@ append="digi=E,PC/Xi,D,16,200,D0000" append="digi=1,0,0,16,512,(whatever D0000 is in base 10 :) -Driver's minor device numbers are conserved. This means that instead of +Drivers' minor device numbers are conserved. This means that instead of each board getting a block of 16 minors pre-assigned, it gets however many it should, with the next card following directly behind it. A system with 4 2-port PC/Xi boards will use minor numbers 0-7. diff -ur --new-file old/linux/Documentation/exception.txt new/linux/Documentation/exception.txt --- old/linux/Documentation/exception.txt Mon Nov 11 10:07:43 1996 +++ new/linux/Documentation/exception.txt Thu May 21 03:54:34 1998 @@ -9,7 +9,7 @@ int verify_area(int type, const void * addr, unsigned long size) function. -This function verified, that the memory area starting at address +This function verified that the memory area starting at address addr and of size size was accessible for the operation specified in type (read or write). To do this, verify_read had to look up the virtual memory area (vma) that contained the address addr. In the @@ -36,24 +36,24 @@ do_page_fault first obtains the unaccessible address from the CPU control register CR2. If the address is within the virtual address -space of the process, the fault probably occured, because the page -was not swapped in, write protected or something similiar. However, +space of the process, the fault probably occurred, because the page +was not swapped in, write protected or something similar. However, we are interested in the other case: the address is not valid, there is no vma that contains this address. In this case, the kernel jumps to the bad_area label. There it uses the address of the instruction that caused the exception -(i.e. regs->eip) to find an address where the excecution can continue +(i.e. regs->eip) to find an address where the execution can continue (fixup). If this search is successful, the fault handler modifies the return address (again regs->eip) and returns. The execution will continue at the address in fixup. Where does fixup point to? -Since we jump to the the contents of fixup, fixup obviously points +Since we jump to the contents of fixup, fixup obviously points to executable code. This code is hidden inside the user access macros. I have picked the get_user macro defined in include/asm/uacess.h as an -example. The definition is somewhat hard to follow, so lets peek at +example. The definition is somewhat hard to follow, so let's peek at the code generated by the preprocessor and the compiler. I selected the get_user call in drivers/char/console.c for a detailed examination. @@ -122,7 +122,7 @@ } ); -WOW! Black GCC/assembly magic. This is impossible to follow, so lets +WOW! Black GCC/assembly magic. This is impossible to follow, so let's see what code gcc generates: > xorl %edx,%edx @@ -266,7 +266,7 @@ 3.) CPU calls do_page_fault 4.) do page fault calls search_exception_table (regs->eip == c017e7a5); 5.) search_exception_table looks up the address c017e7a5 in the - exception table (i.e. the contents of the ELF section __ex_table + exception table (i.e. the contents of the ELF section __ex_table) and returns the address of the associated fault handle code c0199ff5. 6.) do_page_fault modifies its own return address to point to the fault handle code and returns. @@ -278,7 +278,7 @@ The steps 8a to 8c in a certain way emulate the faulting instruction. -That's it, mostely. If you look at our example, you might ask, why +That's it, mostly. If you look at our example, you might ask why we set EAX to -EFAULT in the exception handler code. Well, the get_user macro actually returns a value: 0, if the user access was successful, -EFAULT on failure. Our original code did not test this diff -ur --new-file old/linux/Documentation/filesystems/00-INDEX new/linux/Documentation/filesystems/00-INDEX --- old/linux/Documentation/filesystems/00-INDEX Thu Oct 23 23:00:14 1997 +++ new/linux/Documentation/filesystems/00-INDEX Fri Jun 5 07:53:50 1998 @@ -2,12 +2,18 @@ - this file (info on some of the filesystems supported by linux). affs.txt - info and mount options for the Amiga Fast File System. +coda.txt + - description of the CODA filesystem. +fat_cvf.txt + - info on the Compressed Volume Files extension to the FAT filesystem hpfs.txt - info and mount options for the OS/2 HPFS. isofs.txt - info and mount options for the ISO9660 (CDROM) filesystem. ncpfs.txt - info on Novell Netware(tm) filesystem using NCP protocol. +ntfs.txt + - info and mount options for the NTFS filesystem (Win NT). romfs.txt - Description of the ROMFS filesystem. smbfs.txt @@ -18,3 +24,5 @@ - info on the umsdos extensions to the msdos filesystem. vfat.txt - info on using the VFAT filesystem used in Win NT and Win 95 +vfs.txt + - Overview of the Virtual File System diff -ur --new-file old/linux/Documentation/filesystems/affs.txt new/linux/Documentation/filesystems/affs.txt --- old/linux/Documentation/filesystems/affs.txt Tue Feb 24 07:01:26 1998 +++ new/linux/Documentation/filesystems/affs.txt Fri May 8 07:58:04 1998 @@ -26,7 +26,7 @@ All of the above filesystems allow block sizes from 512 to 32K bytes. Supported block sizes are: 512, 1024, 2048 and 4096 bytes. Larger blocks -speed up almost everything with the expense of wasted disk space. The speed +speed up almost everything at the expense of wasted disk space. The speed gain above 4K seems not really worth the price, so you don't lose too much here, either. @@ -45,12 +45,13 @@ mode=mode Sets the mode flags to the given (octal) value, regardless of the original permissions. Directories will get an x - permission, if the corresponding r bit is set. + permission if the corresponding r bit is set. This is useful since most of the plain AmigaOS files will map to 600. reserved=num Sets the number of reserved blocks at the start of the - partition to num. Default is 2. + partition to num. You should never need this option. + Default is 2. root=block Sets the block number of the root block. This should never be necessary. @@ -71,11 +72,13 @@ as one. prefix=path Path will be prefixed to every absolute path name of - symbolic links on an AFFS partition. Default = / + symbolic links on an AFFS partition. Default = "/". + (See below.) volume=name When symbolic links with an absolute path are created - on an AFFS partition, volume will be prepended as the + on an AFFS partition, name will be prepended as the volume name. Default = "" (empty string). + (See below.) Handling of the Users/Groups and protection flags ================================================= @@ -92,11 +95,13 @@ - H and P are always retained and ignored under Linux. - - A is always reset when written. + - A is always reset when a file is written to. User id and group id will be used unless set[gu]id are given as mount options. Since most of the Amiga file systems are single user systems -they will be owned by root. +they will be owned by root. The root directory of the Amiga filesystem +(i. e. the mount point) will be owned by the user who actually mounts +the filesystem (the root directory doesn't have uid/gid fields). Linux -> Amiga: @@ -120,8 +125,8 @@ Although the Amiga and Linux file systems resemble each other, there are some, not always subtle, differences. One of them becomes apparent with symbolic links. While Linux has a file system with exactly one -root directory, the Amiga has a seperate root directory for each -file system (i. e. partition, floppy disk, ...). With the Amiga, +root directory, the Amiga has a separate root directory for each +file system (e.g. partition, floppy disk, ...). With the Amiga, these entities are called "volumes". They have symbolic names which can be used to access them. Thus, symbolic links can point to a different volume. AFFS turns the volume name into a directory name @@ -139,12 +144,12 @@ Examples ======== -Command line - mount Archive/Amiga/Workbench3.1.adf /mnt -t affs -o loop,reserved=4 +Command line: + mount Archive/Amiga/Workbench3.1.adf /mnt -t affs -o loop,verbose mount /dev/sda3 /Amiga -t affs -/etc/fstab example - /dev/sdb5 /d/f affs ro +/etc/fstab entry: + /dev/sdb5 /amiga/Workbench affs noauto,user,exec,verbose 0 0 Bugs, Restrictions, Caveats =========================== @@ -156,13 +161,13 @@ Filenames are truncated to 30 characters without warning (this can be changed by setting the compile-time option AFFS_NO_TRUNCATE -ina include/linux/amigaffs.h). +in include/linux/amigaffs.h). Case is ignored by the affs in filename matching, but Linux shells -do care about the case. Example (with /mnt being an affs mounted fs): - rm /mnt/WRONGCASE +do care about the case. Example (with /wb being an affs mounted fs): + rm /wb/WRONGCASE will remove /mnt/wrongcase, but - rm /mnt/WR* + rm /wb/WR* will not since the names are matched by the shell. The block allocation is designed for hard disk partitions. If more @@ -170,14 +175,20 @@ in an ugly way (but the real AFFS doesn't do much better). This is also true when space gets tight. +You cannot execute programs on an OFS (Old File System), since the +program files cannot be memory mapped due to the 488 byte blocks. +For the same reason you cannot mount an image on such a filesystem +via the loopback device. + The bitmap valid flag in the root block may not be accurate when the system crashes while an affs partition is mounted. There's currently -no way to fix this without an Amiga (disk validator) or manually -(who would do this?). Maybe later. +no way to fix a garbled filesystem without an Amiga (disk validator) +or manually (who would do this?). Maybe later. A fsck.affs and mkfs.affs will probably be available in the future. -Until then, you should do - ln -s /bin/true /etc/fs/mkfs.affs +If you mount them on system startup, you may want to tell fsck +that the fs should not be checked (place a '0' in the sixth field +of /etc/fstab). It's not possible to read floppy disks with a normal PC or workstation due to an incompatibility with the Amiga floppy controller. diff -ur --new-file old/linux/Documentation/filesystems/coda.txt new/linux/Documentation/filesystems/coda.txt --- old/linux/Documentation/filesystems/coda.txt Thu Mar 5 00:14:32 1998 +++ new/linux/Documentation/filesystems/coda.txt Tue Apr 28 23:22:04 1998 @@ -28,7 +28,7 @@ This document describes the communication between Venus and kernel level file system code needed for the operation of the Coda filesys- - tem. This version document is meant to describe the current interface + tem. This document version is meant to describe the current interface (version 1.0) as well as improvements we envisage. ______________________________________________________________________ @@ -161,7 +161,7 @@ client cache and makes remote procedure calls to Coda file servers and related servers (such as authentication servers) to service these requests it receives from the operating system. When Venus has - serviced a request it replies to the operating system with appropiate + serviced a request it replies to the operating system with appropriate return codes, and other data related to the request. Optionally the kernel support for Coda may maintain a minicache of recently processed requests to limit the number of interactions with Venus. Venus @@ -218,10 +218,10 @@ as applicable in the operating system. These differ very significantly among operating systems, but share features such as facilities to read/write and create and remove objects. The Coda FS layer services - such VFS requests in by invoking on or more well defined services + such VFS requests by invoking one or more well defined services offered by the cache manager Venus. When the replies from Venus have come back to the FS driver, servicing of the VFS call continues and - finishes with a reply to the kernels VFS. Finally the VFS layer + finishes with a reply to the kernel's VFS. Finally the VFS layer returns to the process. As a result of this design a basic interface exposed by the FS driver @@ -277,7 +277,7 @@ FS Driver in kernel memory on behalf of P and copied to user memory in Venus. - The FS Driver while servicing P makes upcall's to Venus. Such an + The FS Driver while servicing P makes upcalls to Venus. Such an upcall is dispatched to Venus by creating a message structure. The structure contains the identification of P, the message sequence number, the size of the request and a pointer to the data in kernel @@ -289,7 +289,7 @@ synchronization objects. In the upcall routine the message structure is filled in, flags are set to 0, and it is placed on the _p_e_n_d_i_n_g queue. The routine calling upcall is responsible for allocating the - data buffer; it's structure will be described in the next section. + data buffer; its structure will be described in the next section. A facility must exist to notify Venus that the message has been created, and implemented using available synchronization objects in @@ -323,15 +323,15 @@ +o The message is a _d_o_w_n_c_a_l_l. A downcall is a request from Venus to the FS Driver. The FS driver processes the request immediately - (usually a cache eviction or replacement) and when finishes + (usually a cache eviction or replacement) and when it finishes sendmsg_to_kernel returns. Now P awakes and continues processing upcall. There are some - subtleties to take account off. First P will determine if it was woken + subtleties to take account of. First P will determine if it was woken up in upcall by a signal from some other source (for example an attempt to terminate P) or as is normally the case by Venus in its sendmsg_to_kernel call. In the normal case, the upcall routine will - deallocate message structure and return. The FS routine can proceed + deallocate the message structure and return. The FS routine can proceed with its processing. @@ -344,7 +344,7 @@ In case P is woken up by a signal and not by Venus, it will first look at the flags field. If the message is not yet READ, the process P can - handle it's signal without notifying Venus. If Venus has READ, and + handle its signal without notifying Venus. If Venus has READ, and the request should not be processed, P can send Venus a signal message to indicate that it should disregard the previous message. Such signals are put in the queue at the head, and read first by Venus. If @@ -407,7 +407,7 @@ Before going on let us elucidate the role of the various fields. The inputArgs start with the opcode which defines the type of service requested from Venus. There are approximately 30 upcalls at present - which we will discuss. The unique field labels the inputArg with + which we will discuss. The unique field labels the inputArg with a unique number which will identify the message uniquely. A process and process group id are passed. Finally the credentials of the caller are included. @@ -421,9 +421,9 @@ 44..11.. DDaattaa ssttrruuccttuurreess sshhaarreedd bbyy tthhee kkeerrnneell aanndd VVeennuuss - The CodaCred structure defines a variety of user and group id's as + The CodaCred structure defines a variety of user and group ids as they are set for the calling process. The vuid_t and guid_t are 32 bit - unsigned integers. It also defines group member ship in an array. On + unsigned integers. It also defines group membership in an array. On Unix the CodaCred has proven sufficient to implement good security semantics for Coda but the structure may have to undergo modification for the Windows environment when these mature. @@ -462,7 +462,7 @@ to be prefixed to identify the Coda cell; this will probably take the form of a Ipv6 size IP address naming the Coda cell through DNS. - The next important structure shared between Venus and the kernel are + The next important structure shared between Venus and the kernel is the attributes of the file. The following structure is used to exchange information. It has room for future extensions such as support for device files (currently not present in Coda). @@ -514,7 +514,7 @@ Coda specific requests can be made by application through the pioctl interface. The pioctl is implemented as an ordinary ioctl on a - ficticious file /coda/.CONTROL. The piocl call opens this file, gets + ficticious file /coda/.CONTROL. The pioctl call opens this file, gets a file handle and makes the ioctl call. Finally it closes the file. The kernel involvement in this is limited to providing the facility to @@ -614,7 +614,7 @@ The name of the object is an 8 bit character string of maximum length CFS_MAXNAMLEN, currently set to 256 (including a 0 terminator.) - It is extremely important to realize that Venus bitwise or's the field + It is extremely important to realize that Venus bitwise ors the field cfs_lookup.vtype with CFS_NOCACHE to indicate that the object should not be put in the kernel name cache. @@ -650,11 +650,11 @@ DDeessccrriippttiioonn This call returns the attributes of the file identified by fid. - EErrrroorrss Errors can occur if the object with fid does not exist, are + EErrrroorrss Errors can occur if the object with fid does not exist, is unaccessible or if the caller does not have permission to fetch attributes. - NNoottee Many kernel FS drivers (Linux, NT and Windows 95 need to acquire + NNoottee Many kernel FS drivers (Linux, NT and Windows 95) need to acquire the attributes as well as the Fid for the instantiation of an internal "inode" or "FileHandle". A significant improvement in performance on such systems could be made by combining the _l_o_o_k_u_p and _g_e_t_a_t_t_r calls @@ -689,7 +689,7 @@ in BSD style. Attributes not to be changed are set to -1, apart from vtype which is set to VNON. Other are set to the value to be assigned. The only attributes which the FS driver may request to change are the - mode, ownner, groupid, atime, mtime and ctime. The return value + mode, owner, groupid, atime, mtime and ctime. The return value indicates success or failure. EErrrroorrss A variety of errors can occur. The object may not exist, may @@ -719,7 +719,7 @@ DDeessccrriippttiioonn Verify if access to the object identified by VFid for operations described by flags is permitted. The result indicates if access will be granted. It is important to remember that Coda uses - ACL's to enforce protection and that ultimately the servers, not the + ACLs to enforce protection and that ultimately the servers, not the clients enforce the security of the system. The result of this call will depend on wether a _t_o_k_e_n is held by the user. @@ -851,7 +851,7 @@ DDeessccrriippttiioonn This call creates a link to the sourceFid in the directory identified by destFid with name tname. The source must reside in the - targets parent, i.e. the source must be have parent destFid, i.e. Coda + target's parent, i.e. the source must be have parent destFid, i.e. Coda does not support cross directory hard links. Only the return value is relevant. It indicates success or the type of failure. @@ -1015,7 +1015,7 @@ EErrrroorrss NNOOTTEE Currently the cfs_open_out structure is not properly adapted to - deal with the windows case. It might be best to implement two + deal with the Windows case. It might be best to implement two upcalls, one to open aiming at a container file name, the other at a container file inode. @@ -1051,7 +1051,7 @@ fetching the data in Venus vproc_vfscalls. This seems silly. If a file is being closed, the data in the container file is to be the new data. Here again the execp flag might be in play to create confusion: - presently Venus might think a file can be flushed from the cache when + currently Venus might think a file can be flushed from the cache when it is still memory mapped. This needs to be understood. 0wpage @@ -1059,7 +1059,7 @@ 44..1177.. iiooccttll - SSuummmmaarryy Do an ioctl on a file. This includes the piocl interface. + SSuummmmaarryy Do an ioctl on a file. This includes the pioctl interface. AArrgguummeennttss @@ -1091,7 +1091,7 @@ EErrrroorrss NNOOTTEE Another bogus parameter. flags is not used. What is the - business about PREFETCHING in the Venus' code? + business about PREFETCHING in the Venus code? 0wpage @@ -1154,8 +1154,8 @@ DDeessccrriippttiioonn Read directory entries from VFid starting at offset and - read at most count bytes. Returns the data into data and indicates - the size returned size. + read at most count bytes. Returns the data in data and returns + the size in size. EErrrroorrss @@ -1196,7 +1196,7 @@ NNOOTTEE This operation is not used. However, it is extremely useful since it can be used to deal with read/write memory mapped files. - These can be "pinned" in the Venus cache using vget and release with + These can be "pinned" in the Venus cache using vget and released with inactive. 0wpage @@ -1219,8 +1219,8 @@ oouutt none - DDeessccrriippttiioonn Ask Venus to update RVM attributes of object VFid. This - should be called as part of kernel level fsync type calls. The + DDeessccrriippttiioonn Ask Venus to update RVM attributes of object VFid. This + should be called as part of kernel level fsync type calls. The result indicates if the synching was successful. EErrrroorrss @@ -1452,7 +1452,7 @@ 4. the cnode of the object The lookup call in the Coda FS Driver may request the cnode of the - desired object from the cache, by passing it's name, directory and the + desired object from the cache, by passing its name, directory and the CodaCred's of the caller. The cache will return the cnode or indicate that it cannot be found. The Coda FS Driver must be careful to invalidate cache entries when it modifies or removes objects. @@ -1496,7 +1496,7 @@ DDeessccrriippttiioonn Remove all entries in the cache carrying the Cred. This - call is issued when tokes for a user expire or are flushed. + call is issued when tokens for a user expire or are flushed. 55..44.. ZZAAPPFFIILLEE @@ -1567,7 +1567,7 @@ DDeessccrriippttiioonn Flush the attribute for the file. If it is a dir (odd - vnode), purge its children from the namecache remove the file from the + vnode), purge its children from the namecache and remove the file from the namecache. @@ -1589,7 +1589,7 @@ DDeessccrriippttiioonn This routine replaces a ViceFid in the name cache with another. It is added to allow Venus during reintegration to replace locally allocated temp fids while disconnected with global fids even - when the reference count on those fids are not zero. + when the reference counts on those fids are not zero. 0wpage @@ -1629,7 +1629,7 @@ 66..11.. RReeqquuiirreemmeennttss - The following requirements should be accomodated: + The following requirements should be accommodated: 1. The message queueus should have open and close routines. On Unix the opening of the character devices are such routines. @@ -1659,7 +1659,7 @@ 6. All memory held by cnodes can be freed without relying on upcalls. - 7. Unmounting the file system can be done without relying on upcalss. + 7. Unmounting the file system can be done without relying on upcalls. 8. Mounting the Coda filesystem should fail gracefully if Venus cannot get the rootfid or the attributes of the rootfid. The latter is diff -ur --new-file old/linux/Documentation/filesystems/fat_cvf.txt new/linux/Documentation/filesystems/fat_cvf.txt --- old/linux/Documentation/filesystems/fat_cvf.txt Thu Jan 8 23:02:41 1998 +++ new/linux/Documentation/filesystems/fat_cvf.txt Tue Apr 28 23:22:04 1998 @@ -34,7 +34,7 @@ - BMAP problems - CVF filesystems cannot do bmap. It's impossible by principle. Thus + CVF filesystems cannot do bmap. It's impossible in principle. Thus all actions that require bmap do not work (swapping, writable mmapping). Read-only mmapping works because the FAT driver has a hack for this situation :) Well, with some tricks writable mmapping could work, @@ -66,7 +66,7 @@ cvf_format=xxx Forces the driver to use the CVF module "xxx" instead of auto-detection. - This is only necessary if the CVF format is not recognized corrrectly + This is only necessary if the CVF format is not recognized correctly because of bugs or incompatibilities in the CVF modules. (It skips the detect_cvf call.) "xxx" may be the text "none" (without the quotes) to inhibit using any of the loaded CVF modules, just in case a CVF @@ -80,7 +80,7 @@ misinterpretation by the FAT driver, which would recognize the text after a comma as a FAT driver option and might get confused or print strange error messages. The documentation for the CVF module should - offer a different seperation symbol, for example the dot ".", which + offer a different separation symbol, for example the dot ".", which is only valid inside the string "yyy". @@ -109,11 +109,11 @@ It contains... - cvf_version: - A version id which must be uniqe. Choose one. + A version id which must be unique. Choose one. - cvf_version_text: A human readable version string that should be one short word describing the CVF format the module implements. This text is used - for the cvf_format option. This name must also be uniqe. + for the cvf_format option. This name must also be unique. - flags: Bit coded flags, currently only used for a readpage/mmap hack that provides both mmap and readpage functionality. If CVF_USE_READPAGE @@ -178,7 +178,7 @@ This is usually called in cleanup_module. Return value =0 means success. An error only occurs if you try to unregister a CVF format that has not been previously registered. The code uses the version id - to distinguish the modules, so be sure to keep it uniqe. + to distinguish the modules, so be sure to keep it unique. 5. CVS Modules ------------------------------------------------------------------------------ diff -ur --new-file old/linux/Documentation/filesystems/ntfs.txt new/linux/Documentation/filesystems/ntfs.txt --- old/linux/Documentation/filesystems/ntfs.txt Sat Dec 20 00:24:20 1997 +++ new/linux/Documentation/filesystems/ntfs.txt Tue Apr 28 23:22:04 1998 @@ -5,9 +5,9 @@ currently works only in read-only mode, with no fault-tolerance supported. If you enable the experimental write support, make sure you can recover from a complete loss of data. For ftdisk support, -limit success was reported with volume sets on top of the md driver, +limited success was reported with volume sets on top of the md driver, although mirror and stripe sets should work as well - if the md -driver can be talked into using the same lay-out as Windows NT. +driver can be talked into using the same layout as Windows NT. The ntfs driver supports the following mount options: iocharset=name Character set to use when returning file names. diff -ur --new-file old/linux/Documentation/filesystems/romfs.txt new/linux/Documentation/filesystems/romfs.txt --- old/linux/Documentation/filesystems/romfs.txt Wed Jul 23 19:38:24 1997 +++ new/linux/Documentation/filesystems/romfs.txt Tue Apr 28 23:22:04 1998 @@ -22,7 +22,7 @@ its mirrors, in the /pub/Linux/system/recovery/ directory. As the name suggests, romfs could be also used (space-efficiently) on -various read-only medias, like (E)EPROM disks if someone will have the +various read-only media, like (E)EPROM disks if someone will have the motivation.. :) However, the main purpose of romfs is to have a very small kernel, @@ -79,7 +79,7 @@ inspector. After that, in the 3rd longword, it contains the number of bytes accessible from the start of this filesystem. The 4th longword is the checksum of the first 512 bytes (or the number of bytes -accessible, whichever is smallest). The applied algorithm is the same +accessible, whichever is smaller). The applied algorithm is the same as in the AFFS filesystem, namely a simple sum of the longwords (assuming bigendian quantities again). For details, please consult the source. This algorithm was chosen because although it's not quite diff -ur --new-file old/linux/Documentation/filesystems/umsdos.txt new/linux/Documentation/filesystems/umsdos.txt --- old/linux/Documentation/filesystems/umsdos.txt Tue Jan 31 08:39:02 1995 +++ new/linux/Documentation/filesystems/umsdos.txt Tue Apr 28 23:22:04 1998 @@ -1,20 +1,26 @@ +Firstly, let me say that UMSDOS is going through some major code changes, +and has some KNOWN BUGS (and quite a few unknown :-). Please read +fs/umsdos/README-WIP.txt for more information on current status. Thanks. + +---------------------------------------------------------------------------- Very short explanation for the impatient!!! Umsdos is a file system driver that run on top the MSDOS fs driver. It is written by Jacques Gelinas (jacques@solucorp.qc.ca) +and is currently maintained by Matija Nalis (mnalis@jagor.srce.hr) Umsdos is not a file system per se, but a twist to make a boring one into a useful one. It gives you: - long file name - Permissions and owner + long file names + Permissions and owners Links - Special files (devices, pipe...) - All is need to be a linux root fs. + Special files (devices, pipes...) + All that is needed to be a linux root fs. -There is plenty of documentation on it in the source. A formated document +There is plenty of documentation on it in the source. A formatted document made from those comments is available from sunsite.unc.edu:/pub/Linux/system/Filesystems/umsdos. @@ -26,21 +32,21 @@ ^ ---------| -All option are passed to the msdos drivers. Option like uid,gid etc are +All options are passed to the msdos drivers. Option like uid,gid etc are given to msdos. The default behavior of Umsdos is to do the same thing as the msdos driver mostly passing commands to it without much processing. Again, this is the default. After doing the mount on a DOS partition, nothing special -happen. This is why all mount options are passed to the Msdos fs driver. +happens. This is why all mount options are passed to the msdos fs driver. -Umsdos use a special DOS file --linux-.--- to store the information +Umsdos uses a special DOS file --linux-.--- to store the information which can't be handle by the normal MsDOS file system. This is the trick. --linux-.--- is optional. There is one per directory. **** If --linux-.--- is missing, then Umsdos process the directory the - same way the msdos driver do. Short file name, no goodies, default + same way the msdos driver does. Short file names, no goodies, default owner and permissions. So each directory may have or not this --linux-.--- @@ -53,7 +59,7 @@ $5 per directory. Add any applicable taxes. \end joke_section -A utility umssync creates those. The kernel maintain them. It is available +A utility umssync creates those. The kernel maintains them. It is available from the same directory above (sunsite) in the file umsdos_progs-0.7.tar.gz. A compiled version is available in umsdos_progs-0.7.bin.tar.gz. @@ -63,20 +69,20 @@ This will promote this directory (a recursive option is available) to full umsdos capabilities (long name ...). A ls -l before and after won't show -much difference however. The file which were there are still there. But now +much difference however. The files which were there are still there. But now you can do all this: chmod 644 * - chown you.your_groupe * + chown you.your_group * ls >THIS_IS.A.VERY.LONG.NAME ln -s toto tata ls -l -Once a directory is promoted, all subdirectory created will inherit that +Once a directory is promoted, all subdirectories created will inherit that promotion. -What happen if you boot DOS and create files in those promoted directories ? -Umsdos won't notice new files, but will signal removed file (it won't crash). +What happens if you boot DOS and create files in those promoted directories ? +Umsdos won't notice new files, but will signal removed files (it won't crash). Using umssync in /etc/rc will make sure the DOS directory is in sync with the --linux-.---. @@ -89,8 +95,8 @@ (You put one for each umsdos mount point in the fstab) This will insure nice operation. A umsdos.fsck is in the making, -so you will be allowed to managed umsdos partition in the same way -other filesystem are, using the generic fsck front end. +so you will be allowed to manage umsdos partitions in the same way +other filesystems are, using the generic fsck front end. Hope this helps! diff -ur --new-file old/linux/Documentation/filesystems/vfat.txt new/linux/Documentation/filesystems/vfat.txt --- old/linux/Documentation/filesystems/vfat.txt Sun Dec 21 06:33:20 1997 +++ new/linux/Documentation/filesystems/vfat.txt Tue Apr 28 23:22:04 1998 @@ -71,7 +71,7 @@ * vfat_valid_longname does not properly checked reserved names. * When a volume name is the same as a directory name in the root directory of the filesystem, the directory name sometimes shows - up empty an empty file. + up as an empty file. * autoconv option does not work correctly. BUG REPORTS @@ -103,7 +103,7 @@ The extended FAT file system is almost identical to the FAT file system used in DOS versions up to and including 6.223410239847 :-). The significant change has been the addition of long file names. -Theses names support up to 255 characters including spaces and lower +These names support up to 255 characters including spaces and lower case characters as opposed to the traditional 8.3 short names. Here is the description of the traditional FAT entry in the current @@ -142,7 +142,7 @@ legally fits within the old 8.3 encoding scheme does not have extra entries.) I call these extra entries slots. Basically, a slot is a specially formatted directory entry which holds up to 13 characters of -a files extended name. Think of slots as additional labeling for the +a file's extended name. Think of slots as additional labeling for the directory entry of the file to which they correspond. Microsoft prefers to refer to the 8.3 entry for a file as its alias and the extended slot directory entries as the file name. @@ -163,7 +163,7 @@ If the layout of the slots looks a little odd, it's only because of Microsoft's efforts to maintain compatibility with old software. The slots must be disguised to prevent old software from -panicing. To this end, a number of measures are taken: +panicking. To this end, a number of measures are taken: 1) The attribute byte for a slot directory entry is always set to 0x0f. This corresponds to an old directory entry with @@ -206,9 +206,9 @@ sum = (((sum&1)<<7)|((sum&0xfe)>>1)) + name[i] } - 3) If there is in the final slot, a Unicode NULL (0x0000) is stored - after the final character. After that, all unused characters in - the final slot are set to Unicode 0xFFFF. + 3) If there is free space in the final slot, a Unicode NULL (0x0000) + is stored after the final character. After that, all unused + characters in the final slot are set to Unicode 0xFFFF. Finally, note that the extended name is stored in Unicode. Each Unicode character takes two bytes. diff -ur --new-file old/linux/Documentation/filesystems/vfs.txt new/linux/Documentation/filesystems/vfs.txt --- old/linux/Documentation/filesystems/vfs.txt Wed Feb 25 07:08:00 1998 +++ new/linux/Documentation/filesystems/vfs.txt Sat May 2 23:35:51 1998 @@ -5,12 +5,11 @@ Noone else seems to be writing this, so here's a quick description of what I've learned while writing lofs... -The VFS relatively simple, but it is nice not to have to browse through +The VFS is relatively simple, but it is nice not to have to browse through pages of code to determine what is expected when writing a filesystem. Hopefully this helps anyone attempting such a feat, as well as clearing up a few important points/dependencies. - register_filesystem (struct file_system_type *fstype) ===================================================== @@ -133,10 +132,12 @@ int (*follow_link) (struct inode *,struct inode *,int,int,struct inode **); [optional] - The follow_link function is only nescessary if a filesystem uses a really - twisted form of symbolic links - namely if the symbolic link comes from a - foriegn filesystem that makes no sense.... - I threw this one out - too much redundant code! + follow_link must be implemented if readlink is implemented. + Note that follow_link can return a different inode than a + lookup_dentry() on the result of readlink() would return. + The proc filesystem, in particular, uses this feature heavily. + For most user filesystems, however, follow_link() and readlink() + should return consistent results. int (*readpage) (struct inode *, struct page *); [optional] int (*writepage) (struct inode *, struct page *); [mandatory with readpage] diff -ur --new-file old/linux/Documentation/ftape.txt new/linux/Documentation/ftape.txt --- old/linux/Documentation/ftape.txt Tue Nov 25 23:45:26 1997 +++ new/linux/Documentation/ftape.txt Thu May 21 03:54:34 1998 @@ -6,7 +6,7 @@ document deals with ftape-3.04 and later. Please read the section "Changes" for the most striking differences between version 3.04 and 2.08; the latter was the version of ftape delivered with the kernel -until kernel version 2.030 and 2.1.57. ftape-3.x developed as the +until kernel version 2.0.30 and 2.1.57. ftape-3.x developed as the re-unification of ftape-2.x and zftape. zftape was developed in parallel with the stock ftape-2.x driver sharing the same hardware support but providing an enhanced file system interface. zftape also @@ -54,7 +54,7 @@ ============================== Unluckily, the ftape-HOWTO is out of date. This really needs to be -changed. Up to data documentation as well as recent development +changed. Up to date documentation as well as recent development versions of ftape and useful links to related topics can be found at the ftape home page at @@ -118,7 +118,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ftape-2.x didn't handle the MTBSF tape operation correctly. A MTBSF call (i.e. "mt -f /dev/nqft0 bsf #COUNT") should space over #COUNT - file marks and then position at the EOT tape side of the the file + file marks and then position at the EOT tape side of the file mark. This has to be taken literally, i.e. "mt -f /dev/nqft0 bsf 1" should simply position at the start of the current volume. @@ -245,7 +245,7 @@ insmod ftape.o ft_tracing=4 or by editing the file `/etc/conf.modules' in which case they take - affect each time when the module is loaded with `modprobe' (please + effect each time when the module is loaded with `modprobe' (please refer to the modules documentation, i.e. `modules.txt' and the respective manual pages). Thus, you should add a line diff -ur --new-file old/linux/Documentation/hayes-esp.txt new/linux/Documentation/hayes-esp.txt --- old/linux/Documentation/hayes-esp.txt Fri Feb 13 00:47:44 1998 +++ new/linux/Documentation/hayes-esp.txt Thu May 21 03:54:34 1998 @@ -51,7 +51,7 @@ irq=[0x100],[0x140],[0x180],[0x200],[0x240],[0x280],[0x300],[0x380] The address in brackets is the base address of the card. The IRQ of -nonexistant cards can be set to 0. If and IRQ of a card that does exist is set +nonexistent cards can be set to 0. If an IRQ of a card that does exist is set to 0, the driver will attempt to guess at the correct IRQ. For example, to set the IRQ of the card at address 0x300 to 12, the insmod command would be: @@ -143,7 +143,7 @@ The ESP module and the serial module should not conflict (they can be used at the same time). After the ESP module has been loaded the ports on the ESP card -will no longer be accessable by the serial driver. +will no longer be accessible by the serial driver. If I/O errors are experienced when accessing the port, check for IRQ and DMA conflicts ('cat /proc/interrupts' and 'cat /proc/dma' for a list of IRQs and diff -ur --new-file old/linux/Documentation/ide.txt new/linux/Documentation/ide.txt --- old/linux/Documentation/ide.txt Sun Nov 30 22:48:41 1997 +++ new/linux/Documentation/ide.txt Thu May 21 03:54:34 1998 @@ -136,7 +136,7 @@ Note that the first parameter reserves 8 contiguous ioports, whereas the second value denotes a single ioport. If in doubt, do a 'cat /proc/ioports'. -In all probability the device uses these ports and irqs if it is attached +In all probability the device uses these ports and IRQs if it is attached to the appropriate ide channel. Pass the parameter for the correct ide channel to the kernel, as explained above. @@ -181,7 +181,7 @@ Courtesy of Scott Snyder, the driver supports ATAPI cdrom drives such as the NEC-260 and the new MITSUMI triple/quad speed drives. -Such drives will be identified at boot time, just like a harddisk. +Such drives will be identified at boot time, just like a hard disk. If for some reason your cdrom drive is *not* found at boot time, you can force the probe to look harder by supplying a kernel command line parameter @@ -191,7 +191,7 @@ or hdd=cdrom /* hdd = "slave" on second interface */ -For example, a GW2000 system might have a harddrive on the primary +For example, a GW2000 system might have a hard drive on the primary interface (/dev/hda) and an IDE cdrom drive on the secondary interface (/dev/hdc). To mount a CD in the cdrom drive, one would use something like: @@ -221,7 +221,7 @@ not making it to the host. Check how you have the hardware jumpered and make sure it matches what the driver expects (see the configuration instructions above). If you have a PCI system, also check the BIOS -setup; i've had one report of a system which was shipped with IRQ 15 +setup; I've had one report of a system which was shipped with IRQ 15 disabled by the BIOS. The kernel is able to execute binaries directly off of the cdrom, @@ -450,7 +450,7 @@ must reside within the first 1024 cylinders of the drive. If your linux root partition is *not* completely within the first 1024 cyls (quite common), then you can use LILO to boot linux from files on your DOS partition -by doing the following after installing slackware (or whatever): +by doing the following after installing Slackware (or whatever): 0. Boot from the "boot floppy" created during the installation 1. Mount your DOS partition as /dos (and stick it in /etc/fstab) diff -ur --new-file old/linux/Documentation/initrd.txt new/linux/Documentation/initrd.txt --- old/linux/Documentation/initrd.txt Fri Apr 12 08:49:29 1996 +++ new/linux/Documentation/initrd.txt Fri Jun 5 07:53:50 1998 @@ -93,7 +93,7 @@ First, the "normal" root file system has to be prepared as follows: -# mknod /dev/initrd b 0 250 +# mknod /dev/initrd b 1 250 # chmod 400 /dev/initrd # mkdir /initrd diff -ur --new-file old/linux/Documentation/isdn/00-INDEX new/linux/Documentation/isdn/00-INDEX --- old/linux/Documentation/isdn/00-INDEX Fri May 30 06:53:03 1997 +++ new/linux/Documentation/isdn/00-INDEX Thu Apr 2 02:20:56 1998 @@ -19,4 +19,12 @@ syncPPP.FAQ - frequently asked questions about running PPP over ISDN. README.avmb1 - - info on driver for AVM-B1 ISDN card + - info on driver for AVM-B1 ISDN card. +README.act2000 + - info on driver for IBM ACT-2000 card. +README.concap + - info on "CONCAP" ecapsulation protocol interface used for X.25. +README.sc + - info on driver for Spellcaster cards. +README.x25 + _ info for running X.25 over ISDN. diff -ur --new-file old/linux/Documentation/isdn/CREDITS new/linux/Documentation/isdn/CREDITS --- old/linux/Documentation/isdn/CREDITS Fri May 30 06:53:03 1997 +++ new/linux/Documentation/isdn/CREDITS Thu Apr 2 02:20:56 1998 @@ -8,6 +8,9 @@ Alan Cox (alan@cymru.net) For help getting into standard-kernel. +Henner Eisen (eis@baty.hanse.de) + For X.25 implementation. + Volker Götz (volker@oops.franken.de) For contribution of man-pages, the imontty-tool and a perfect maintaining of the mailing-list at hub-wue. @@ -37,18 +40,24 @@ Eberhard Moenkeberg (emoenke@gwdg.de) For testing and help to get into kernel. +Thomas Neumann (tn@ruhr.de) + For help with Cisco-SLARP and keepalive + Jan den Ouden (denouden@groovin.xs4all.nl) - For contribution of the teles-driver + For contribution of the original teles-driver + +Carsten Paeth (calle@calle.in-berlin.de) + For the AVM-B1-CAPI2.0 driver + +Thomas Pfeiffer (pfeiffer@pds.de) + For V.110, extended T.70 and Hylafax extensions in isdn_tty.c Max Riegel (riegel@max.franken.de) For making the ICN hardware-documentation and test-equipment available. -Gerhard 'Fido' Schneider (fido@wuff.franken.de) +Gerhard 'Fido' Schneider (fido@wuff.mayn.de) For heavy-duty-beta-testing with his BBS ;) Thomas Uhl (uhl@think.de) For distributing the cards. For pushing me to work ;-) - -Carsten Paeth (calle@calle.in-berlin.de) - For the AVM-B1-CAPI2.0 driver diff -ur --new-file old/linux/Documentation/isdn/INTERFACE new/linux/Documentation/isdn/INTERFACE --- old/linux/Documentation/isdn/INTERFACE Thu Feb 27 19:57:29 1997 +++ new/linux/Documentation/isdn/INTERFACE Tue Apr 28 23:22:04 1998 @@ -1,4 +1,4 @@ -$Id: INTERFACE,v 1.6 1997/02/10 22:40:57 fritz Exp $ +$Id: INTERFACE,v 1.8 1998/02/20 17:38:20 fritz Exp $ Description of the Interface between Linklevel and Hardwarelevel of isdn4linux: @@ -22,7 +22,7 @@ got a separate version number. These numbers are shown at initialization, separated by slashes: - c.c/t.t/n.n/p.p/a.a + c.c/t.t/n.n/p.p/a.a/v.v where @@ -31,11 +31,13 @@ n.n is the revision of the network related code. p.p is the revision of the ppp related code. a.a is the revision of the audio related code. + v.v is the revision of the V.110 related code. Changes in this document are marked with '***CHANGEx' where x representing the version number. If that number starts with 0, it refers to the old, separately distributed package. If it starts with one of the letters above, it refers to the revision of the corresponding module. + ***CHANGEIx refers to the revision number of the isdnif.h 1. Description of the fields of isdn_if: @@ -51,7 +53,7 @@ ***CHANGE0.6: New since this version. Also to be preset by the HL-driver. With this value the HL-driver - tells to the LL the maximum size of a data-packet it will accept. + tells the LL the maximum size of a data-packet it will accept. unsigned long features; @@ -65,32 +67,16 @@ unsigned short hl_hdrlen; - ***CHANGED.7.4: New field. + ***CHANGE0.7.4: New field. To be preset by the HL-driver, if it supports sk_buff's. The driver - should put here the amount of additional space needed in sk-buff's for - its internal purposes. Drivers not supporting sk_buff's should put + should put here the amount of additional space needed in sk_buff's for + its internal purposes. Drivers not supporting sk_buff's should initialize this field to 0. - void (*rcvcallb)(int, int, u_char*, int); - - ***CHANGEc1.14: Declared obsolete. Do NOT use this field/function - anymore, since it will be removed when all current - LL drivers have been changed accordingly. Use - rcvcallb_skb instead. - - This field will be set by LL. The HL-driver delivers received data- - packets by calling this function. - - Parameter: - int driver-Id - int Channel-number locally to the driver. (starting with 0) - u_char Pointer to received data. (in kernel-space) - int length of data-packet. - void (*rcvcallb_skb)(int, int, struct sk_buff *) - ***CHANGED.7.4: New field. + ***CHANGE0.7.4: New field. This field will be set by LL. The HL-driver delivers received data- packets by calling this function. Upon calling, the HL-driver must @@ -138,41 +124,22 @@ Returnvalue: >=0 on success, else error-code (-ENODEV etc.) - int (*writebuf)(int, int, u_char*, int, int); + int (*writebuf_skb)(int, int, int, struct sk_buff *) - ***CHANGED1.14: Declared obsolete. Do NOT use this field/function - anymore, since it will be removed when all current - LL drivers have been changed accordingly. Set this - field to NULL and use writebuf_skb instead. - - This field has to be preset by the HL-driver. The given function will - be called by the LL for delivering data to be send via B-Channel. - - Parameter: - int driver-Id ***CHANGE.7.4: New parameter. - int channel-number locally to the HL-driver. (starts with 0) - u_char* pointer to data. - int length of data-packet. - int flag: 0 = call from within kernel-space. (HL-driver must use - memcpy, may NOT use schedule()) - 1 = call from user-space. (HL-driver must use - memcpy_fromfs, use of schedule() allowed) - - Returnvalue: - Length of data accepted on success, else error-code (-EINVAL on - oversized packets etc.) - - int (*writebuf_skb)(int, int, struct sk_buff *) - - ***CHANGED.7.4: New field. + ***CHANGE0.7.4: New field. + ***CHANGEI.1.21: New field. This field has to be preset by the HL-driver. The given function will be called by the LL for delivering data to be send via B-Channel. Parameter: - int driver-Id ***CHANGE.7.4: New parameter. + int driver-Id ***CHANGE0.7.4: New parameter. int channel-number locally to the HL-driver. (starts with 0) + int ack ***ChangeI1.21: New parameter + If this is !0, the driver has to signal the delivery + by sending an ISDN_STAT_BSENT. If this is 0, the driver + MUST NOT send an ISDN_STAT_BSENT. struct sk_buff * Pointer to sk_buff containing data to be send via B-channel. @@ -199,7 +166,7 @@ int driver-Id. int channel-number locally to the HL-driver. (starts with 0) -***CHANGED1.14: The driver-Id and channel-number are new since this revision. +***CHANGEI1.14: The driver-Id and channel-number are new since this revision. Returnvalue: Length of data accepted on success, else error-code (-EINVAL etc.) @@ -223,7 +190,7 @@ int driver-Id. int channel-number locally to the HL-driver. (starts with 0) -***CHANGED1.14: The driver-Id and channel-number are new since this revision. +***CHANGEI1.14: The driver-Id and channel-number are new since this revision. Returnvalue: Length of data on success, else error-code (-EINVAL etc.) @@ -244,12 +211,12 @@ All commands will be performed by calling the function command() described above from within the LL. The field command of the struct-parameter will - contain the desired command, the field driver always is set to the + contain the desired command, the field driver is always set to the appropriate driver-Id. Until now, the following commands are defined: -***CHANGED1.34: The parameter "num" has been replaced by a union "para" containing +***CHANGEI1.34: The parameter "num" has been replaced by a union "para" containing the old "num" and a new setup_type struct used for ISDN_CMD_DIAL and ISDN_STAT_ICALL callback. @@ -469,7 +436,7 @@ arg = unused. para = unused. -3. Description of the events to be signaled by the HL-driver to th LL. +3. Description of the events to be signaled by the HL-driver to the LL. All status-changes are signaled via calling the previously described function statcallb(). The field command of the struct isdn_cmd has @@ -552,6 +519,9 @@ a B-Channel-connection. (Response to ISDN_CMD_ACCEPTB or because the remote-station has initiated establishment) + The HL driver should call this when the logical l2/l3 protocol + connection on top of the physical B-channel is established. + Parameter: driver = driver-Id command = ISDN_STAT_BCONN @@ -577,6 +547,9 @@ B-Channel-connection. This could be a response to a prior ISDN_CMD_HANGUP, or caused by a remote-hangup. + The HL driver should call this as soon as the logical l2/l3 protocol + connection on top of the physical B-channel is released. + Parameter: driver = driver-Id command = ISDN_STAT_BHUP @@ -617,7 +590,9 @@ driver = driver-Id command = ISDN_STAT_BSENT arg = channel-number, locally to the driver. (starting with 0) - para = unused. + para.length = ***CHANGEI.1.21: New field. + the driver has to set this to the original length + of the skb at the time of receiving it from the linklevel. ISDN_STAT_NODCH: @@ -649,7 +624,7 @@ With this call, the HL-driver delivers CAUSE-messages to the LL. Currently the LL does not use this messages. Their contents is simply logged via kernel-messages. Therefore, currently the format of the - messages is currently completely free. However they should be printable. + messages is completely free. However they should be printable. Parameter: driver = driver-Id @@ -657,3 +632,16 @@ arg = channel-number, locally to the driver. (starting with 0) para.num = ASCII string containing CAUSE-message. + ISDN_STAT_L1ERR: + + ***CHANGEI1.21 new status message. + A signal can be sent to the linklevel if an Layer1-error results in + packet-loss on receive or send. The field errcode of the cmd.parm + union describes the error more precisely. + + Parameter: + driver = driver-Id + command = ISDN_STAT_L1ERR + arg = channel-number, locally to the driver. (starting with 0) + para.errcode= ISDN_STAT_L1ERR_SEND: Packet lost while sending. + ISDN_STAT_L1ERR_RECV: Packet lost while receiving. diff -ur --new-file old/linux/Documentation/isdn/README new/linux/Documentation/isdn/README --- old/linux/Documentation/isdn/README Wed Feb 25 07:08:00 1998 +++ new/linux/Documentation/isdn/README Thu May 21 03:54:34 1998 @@ -62,7 +62,7 @@ read: raw D-channel-messages (format: depends on driver). ioctl: depends on driver, i.e. for the ICN-driver, the base-address of the ports and the shared memory on the card can be set and read - also the boot-code an the protocol software can be loaded into + also the boot-code and the protocol software can be loaded into the card. O N L Y !!! for debugging (no locking against other devices): @@ -74,7 +74,7 @@ 128 tty-devices (64 cuix and 64 ttyIx) with integrated modem-emulator: The functionality is almost the same as that of a serial device - (the line-discs are handled by the kernel, which lets you run + (the line-discs are handled by the kernel), which lets you run SLIP, CSLIP and asynchronous PPP through the devices. We have tested Seyon, minicom, CSLIP (uri-dip) PPP and mgetty (compiled with NO_FAX), XCept. @@ -96,7 +96,7 @@ ATI Return "ISDN for Linux...". ATI0 " ATI1 " - ATI2 Report of last connection. + ATI2 Report of last connection. ATO On line (data mode). ATQ0 Enable result codes (default). ATQ1 Disable result codes (default). @@ -107,9 +107,9 @@ ATZ Load registers and EAZ/MSN from Profile. AT&Bx Set Send-Packet-size to x (max. 4000) The real packet-size may be limited by the - low-level-driver used. i.e.: the HiSax-Module- + low-level-driver used. e.g. the HiSax-Module- limit is 2000. You will get NO Error-Message, - if you set it to higher Values, because at the + if you set it to higher values, because at the time of giving this command the corresponding driver may not be selected (see "Automatic Assignment") however the size of outgoing packets @@ -120,12 +120,35 @@ AT&D3 Same as AT&D2 but also resets all registers. AT&Ex Set the EAZ/MSN for this channel to x. AT&F Reset all registers and profile to "factory-defaults" + AT&Rx Select V.110 bitrate adaption. + This command enables V.110 protocol with 9600 baud + (x=9600), 19200 baud (x=19200) or 38400 baud + (x=38400). A value of x=0 disables V.110 switching + back to default X.75. This command sets the following + Registers: + Reg 14 (Layer-2 protocol): + x = 0: 0 + x = 9600: 7 + x = 19200: 8 + x = 38400: 9 + Reg 18.2 = 1 + Reg 19 (Additional Service Indicator): + x = 0: 0 + x = 9600: 197 + x = 19200: 199 + x = 38400: 198 + Note on value in Reg 19: + There is _NO_ common convention for 38400 baud. + The value 198 is choosen arbitrarily. Users + _MUST_ negotiate this value before establishing + a connection. AT&Sx Set window-size (x = 1..8) (not yet implemented) AT&V Show all settings. AT&W0 Write registers and EAZ/MSN to profile. See also iprofd (5.c in this README). - AT&X0 BTX-mode off (default) - AT&X1 BTX-mode on. (S13.1=1, S14=0, S16=7, S18=7, S19=0) + AT&X0 BTX-mode and T.70-mode off (default) + AT&X1 BTX-mode on. (S13.1=1, S13.5=0 S14=0, S16=7, S18=7, S19=0) + AT&X2 T.70-mode on. (S13.1=1, S13.5=1, S14=0, S16=7, S18=7, S19=0) For voice-mode commands refer to README.audio @@ -184,12 +207,23 @@ 1 = Extended response messages Bit 4: 0 = CALLER NUMBER before every RING. 1 = CALLER NUMBER after first RING. + Bit 5: 0 = T.70 extended protocol off + 1 = T.70 extended protocol on + Bit 6: 0 = Special RUNG Message off + 1 = Special RUNG Message on + "RUNG" is delivered on a ttyI, if + an incoming call happened (RING) and + the remote party hung up before any + local ATA was given. 14 0 Layer-2 protocol: 0 = X75/LAPB with I-frames 1 = X75/LAPB with UI-frames 2 = X75/LAPB with BUI-frames 3 = HDLC 4 = Transparent (audio) + 7 = V.110, 9600 baud + 8 = V.110, 19200 baud + 9 = V.110, 38400 baud 15 0 Layer-3 protocol: (at the moment always 0) 0 = transparent 16 250 Send-Packet-size/16 @@ -211,7 +245,7 @@ 19 0 Service-Octet-2 20 0 Bit coded register (readonly) Service-Octet-1 of last call. - Bit mapping is the same like register 18 + Bit mapping is the same as register 18 21 0 Bit coded register (readonly) Set on incoming call (during RING) to octet 3 of calling party number IE (Numbering plan) @@ -229,17 +263,17 @@ All inactive physical lines are listening to all EAZs for incoming calls and are NOT assigned to a specific tty or network interface. When an incoming call is detected, the driver looks first for a network - interfaces and then for an opened tty which: + interface and then for an opened tty which: 1. is configured for the same EAZ. 2. has the same protocol settings for the B-channel. 3. (only for network interfaces if the security flag is set) contains the caller number in its access list. 4. Either the channel is not bound exclusively to another Net-interface, or - it is bound AND the other checks apply to exact this Interface. + it is bound AND the other checks apply to exactly this Interface. (For usage of the bind-features, refer to the isdnctrl-man-page) - Only when a matching interface or tty is found, the call is accepted + Only when a matching interface or tty is found is the call accepted and the "connection" between the low-level-layer and the link-level-layer is established and kept until the end of the connection. In all other cases no connection is established. Isdn4linux can be @@ -275,7 +309,7 @@ 4. Device-inodes - The major and minor-numbers and its names are described in + The major and minor numbers and their names are described in Documentation/devices.txt. The major-numbers are: 43 for the ISDN-tty's. @@ -323,7 +357,7 @@ i) Setup the interface with ifconfig as usual, and set a route to it. - j) (optional) If you run X11 and have Tcl/Tk-wish Version4.0, you can use + j) (optional) If you run X11 and have Tcl/Tk-wish Version 4.0, you can use the script tools/tcltk/isdnmon. You can add actions for line-status changes. See the comments at the beginning of the script for how to do that. There are other tty-based tools in the tools-subdirectory @@ -353,7 +387,7 @@ command "isdnctrl addphone in " Euro-ISDN does not transmit the leading '0' of the caller-id for an incoming call, therefore you should configure it accordingly. - If the real number for the dialout e.g. is "09311234567" the the number + If the real number for the dialout e.g. is "09311234567" the number to configure here is "9311234567". The pattern-match function works similar to the shell mechanism. @@ -365,7 +399,7 @@ "isdnctrl secure off" - Switch of secure operation (default). + Switch off secure operation (default). "isdnctrl ihup [on|off]" Switch the hang-up-timer for incoming calls on or off. @@ -374,7 +408,7 @@ Returns the EAZ of an interface. "isdnctrl delphone in|out " - Deletes a number from one of the the access-lists of the interface. + Deletes a number from one of the access-lists of the interface. "isdnctrl delif " Removes the interface (and possible slaves) from the kernel. @@ -400,12 +434,15 @@ Selects the type of packet-encapsulation. The encapsulation can be changed only while an interface is down. - At the moment th following Values are supported: + At the moment the following values are supported: rawip (Default) Selects raw-IP-encapsulation. This means, MAC-headers are stripped off. ip IP with type-field. Same as IP but the type-field of the MAC-header is preserved. + x25iface X.25 interface encapsulation (first byte semantics as defined in + ../networking/x25-iface.txt). Use this for running the linux + X.25 network protocol stack (AF_X25 sockets) on top of isdn. cisco-h A special-mode for communicating with a Cisco, which is configured to do "hdlc" ethernet No stripping. Packets are sent with full MAC-header. @@ -415,6 +452,11 @@ uihdlc HDLC with UI-frame-header (for use with DOS ISPA, option -h1) + + NOTE: x25iface encapsulation is currently experimental. Please + read README.x25 for further details + + Watching packets, using standard-tcpdump will fail for all encapsulations except ethernet because tcpdump does not know how to handle packets without MAC-header. A patch for tcpdump is included in the utility-package @@ -423,7 +465,8 @@ "isdnctrl l2_prot " Selects a layer-2-protocol. (With the ICN-driver and the HiSax-driver, "x75i" and "hdlc" is available. - With other drivers, "x75ui", "x75bui" may be possible too.) + With other drivers, "x75ui", "x75bui", "x25dte", "x25dce" may be + possible too. See README.x25 for x25 related l2 protocols.) isdnctrl l3_prot The same for layer-3. (At the moment only "trans" is allowed) @@ -440,7 +483,7 @@ dial out using a specific Card or even preserve a specific Channel for Dialout of a specific net-interface. This can be done with the above command. Replace by whatever you assigned while loading the - module. The is counting from zero. the upper Limit + module. The is counting from zero. The upper Limit depends on the card used. At the Moment no card supports more than 2 Channels, so the upper limit is one. diff -ur --new-file old/linux/Documentation/isdn/README.HiSax new/linux/Documentation/isdn/README.HiSax --- old/linux/Documentation/isdn/README.HiSax Fri May 30 06:53:03 1997 +++ new/linux/Documentation/isdn/README.HiSax Tue Apr 28 23:22:04 1998 @@ -23,24 +23,39 @@ --------------- Teles 8.0/16.0/16.3 and compatible ones +Teles 16.3c Teles S0/PCMCIA Creatix PnP S0 -AVM A1 (Fritz) +Compaq ISDN S0 ISA card +AVM A1 (Fritz, Teledat 150) ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8 ELSA Quickstep 1000 +ELSA Quickstep 1000PCI +ELSA Quickstep 3000 (same settings as QS1000) ELSA PCMCIA ITK ix1-micro Rev.2 +Eicon.Diehl Diva 2.0 ISA and PCI (S0 and U interface, no PRO version) +Eicon.Diehl Diva Piccola +ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-IN100-ST-D) +Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K adapter) +HFC-2BS0 based cards (TeleInt SA1) +Sedlbauer Speed Card (Speed Win, Teledat 100) +Sedlbauer Speed Star (PCMCIA) +USR Sportster internal TA (compatible Stollmann tina-pp V3) +ith Kommunikationstechnik GmbH MIC 16 ISA card +Traverse Technologie NETjet PCI S0 card +Dr. Neuhaus Niccy PnP/PCI Note: PCF, PCF-Pro: up to now, only the ISDN part is supported PCC-8: not tested yet Teles PCMCIA is EXPERIMENTAL + Teles 16.3c is EXPERIMENTAL + Eicon.Diehl Diva U interface not tested If you know other passive cards with the Siemens chipset, please let me know. To use the PNP cards you need the isapnptools. You can combine any card, if there is no conflict between the ressources -(io, mem, irq), with one exception: The ELSA PCMCIA cannot work with an other -non PCMCIA ELSA card at the same time. You cannot select ELSA ISA and ELSA -PCMCIA support at the same time during kernel config. +(io, mem, irq). Configuring the driver @@ -51,7 +66,7 @@ with LILO or LOADLIN or, if built as a module, using insmod/modprobe with parameters. There is also some config needed before you compile the kernel and/or -modules. It is enclose in the normal "make [menu]config" target at the +modules. It is included in the normal "make [menu]config" target at the kernel. Don't forget it, especially to select the right D-channel protocol. Please note: All PnP cards need to be configured with isapnp and will work @@ -113,15 +128,31 @@ 6 ELSA PCC/PCF cards io or nothing for autodetect (the iobase is required only if you have more than one ELSA card in your PC) - 7 ELSA Quickstep 1000 irq, io (from isapnp setup) - 7 ELSA PCMCIA irq, io (set with card manager) + 7 ELSA Quickstep 1000 irq, io (from isapnp setup) 8 Teles 16.3 PCMCIA irq, io 9 ITK ix1-micro Rev.2 irq, io + 10 ELSA PCMCIA irq, io (set with card manager) + 11 Eicon.Diehl Diva ISA PnP irq, io + 11 Eicon.Diehl Diva PCI no parameter + 12 ASUS COM ISDNLink irq, io (from isapnp setup) + 13 HFC-2BS0 based cards irq, io + 14 Teles 16.3c PnP irq, io + 15 Sedlbauer Speed Card irq, io + 16 USR Sportster internal irq, io + 17 MIC card irq, io + 18 ELSA Quickstep 1000PCI no parameter + 19 Compaq ISDN S0 ISA card irq, io0, io1, io (from isapnp setup io=IO2) + 20 NETjet PCI card no parameter + 22 Sedlbauer Speed Star (PCMCIA) irq, io (set with card manager) + 24 Dr. Neuhaus Niccy PnP irq, io0, io1 (from isapnp setup) + 24 Dr. Neuhaus Niccy PCI no parameter + + At the moment IRQ sharing is not possible. Please make sure that your IRQ is free and enabled for ISA use. Note: For using the ELSA PCMCIA you need the cardmanager under MSDOS for -enabling in the moment, then boot linux with loadlin. +enabling at the moment, then boot linux with loadlin. Examples for module loading @@ -181,17 +212,28 @@ Card types: type - 1 Teles 16.0 pa=irq pb=membase pc=iobase - 2 Teles 8.0 pa=irq pb=membase - 3 Teles 16.3 pa=irq pb=iobase + 1 Teles 16.0 pa=irq pb=membase pc=iobase + 2 Teles 8.0 pa=irq pb=membase + 3 Teles 16.3 pa=irq pb=iobase 4 Creatix/Teles PNP ONLY WORKS AS A MODULE ! - 5 AVM A1 (Fritz) pa=irq pb=iobase + 5 AVM A1 (Fritz) pa=irq pb=iobase 6 ELSA PCC/PCF cards pa=iobase or nothing for autodetect - 7 ELSA Quickstep 1000 ONLY WORKS AS A MODULE ! - 7 ELSA PCMCIA irq, io (set with card manager) - 8 Teles S0 PCMCIA pa=irq pb=iobase + 7 ELSA Quickstep 1000 ONLY WORKS AS A MODULE ! + 8 Teles S0 PCMCIA pa=irq pb=iobase 9 ITK ix1-micro Rev.2 pa=irq pb=iobase - + 10 ELSA PCMCIA pa=irq, pb=io (set with card manager) + 11 Eicon.Diehl Diva ISAPnP ONLY WORKS AS A MODULE ! + 11 Eicon.Diehl Diva PCI no parameter + 12 ASUS COM ISDNLink ONLY WORKS AS A MODULE ! + 13 HFC-2BS0 based cards pa=irq pb=io + 14 Teles 16.3c PnP ONLY WORKS AS A MODULE ! + 15 Sedlbauer Speed Card pa=irq pb=io (Speed Win only as module !) + 16 USR Sportster internal pa=irq pb=io + 17 MIC card pa=irq pb=io + 18 ELSA Quickstep 1000PCI no parameter + 19 Compaq ISDN S0 ISA card ONLY WORKS AS A MODULE ! + 20 NETjet PCI card no parameter + 21 Sedlbauer Speed Star (PCMCIA) pa=irq, pb=io (set with card manager) Running the driver ------------------ @@ -215,8 +257,8 @@ Apr 13 21:01:59 kke01 kernel: HiSax: 2 channels added This means that the card is ready for use. -Cabling problems or line-downs are not detected, and only ELSA cards can detect -the S0 power. +Cabling problems or line-downs are not detected, and only some ELSA cards can +detect the S0 power. Remember that, according to the new strategy for accessing low-level drivers from within isdn4linux, you should also define a driver ID while doing @@ -226,11 +268,11 @@ At this point you can run a 'cat /dev/isdnctrl0' and view debugging messages. -At the moment, debugging messages are enabled with the telesctrl tool: +At the moment, debugging messages are enabled with the hisaxctrl tool: - telesctrl DebugCmd + hisaxctrl DebugCmd - default is HiSax, if you didn't specified one. + default is HiSax, if you didn't specify one. DebugCmd is 1 for generic debugging 11 for layer 1 development debugging @@ -267,11 +309,18 @@ With DebugCmd set to 13: 1 Warnings (default: on) - 2 l3 protocol discriptor errors + 2 l3 protocol descriptor errors 4 l3 state machine 8 charge info debugging (1TR6) -For example, 'telesctrl HiSax 1 0x3ff' enables full generic debugging. +For example, 'hisaxctrl HiSax 1 0x3ff' enables full generic debugging. + +Because of some obscure problems with some switch equipment, the delay +between the CONNECT message and sending the first data on the B-channel is now +configurable with + +hisaxctrl 2 + in ms Value between 50 and 800 ms is recommended. Warning @@ -284,7 +333,7 @@ Limitations ----------- At this time, HiSax only works on Euro ISDN lines and German 1TR6 lines. - +For leased lines see appendix. Bugs ---- @@ -301,10 +350,20 @@ Andreas Kool, Pekka Sarnila, Sim Yskes, Johan Myrre'en, Klaus-Peter Nischke (ITK AG), Christof Petig, Werner Fehn (ELSA GmbH), Volker Schmidt + Edgar Toernig and Marcus Niemann for the Sedlbauer driver + Stephan von Krawczynski + Juergen Quade for the Leased Line part + Klaus Lichtenwalder (Klaus.Lichtenwalder@WebForum.DE), for ELSA PCMCIA support and more people who are hunting bugs. (If I forgot somebody, please send me a mail). Firma ELSA GmbH + Firma Eicon.Diehl GmbH + Firma Dynalink NL + Firma ASUSCOM NETWORK INC. Taiwan + Firma S.u.S.E + Firma ith Kommunikationstechnik GmbH + Firma Traverse Technologie Australia My girl friend and partner in life Ute for her patience with me. @@ -321,3 +380,171 @@ See http://www.stud.uni-wuppertal.de/~ea0141/pcmcia.html for instructions. + +Appendix: Linux and ISDN-leased lines +------------------------------------- + +Original from Juergen Quade, new version KKe. + +Attention NEW VERSION, the old leased line syntax won't work !!! + +You can use HiSax to connect your Linux-Box via an ISDN leased line +to e.g. the Internet: + +1. Build a kernel which includes the HiSax driver either as a module + or as part of the kernel. + cd /usr/src/linux + make menuconfig + + make clean; make dep; make zImage; make modules; make modules_install +2. Install the new kernel + cp /usr/src/linux/arch/i386/boot/zImage /etc/kernel/linux.isdn + vi /etc/lilo.conf + + lilo +3. in case the hisax driver is a "fixed" part of the kernel, configure + the driver with lilo: + vi /etc/lilo.conf + + lilo + Your lilo.conf _might_ look like the following: + + # LILO configuration-file + # global section + # teles 16.0 on IRQ=5, MEM=0xd8000, PORT=0xd80 + append="hisax=1,3,5,0xd8000,0xd80,HiSax" + # teles 16.3 (non pnp) on IRQ=15, PORT=0xd80 + # append="hisax=3,3,5,0xd8000,0xd80,HiSax" + boot=/dev/sda + compact # faster, but won't work on all systems. + linear + read-only + prompt + timeout=100 + vga = normal # force sane state + # Linux bootable partition config begins + image = /etc/kernel/linux.isdn + root = /dev/sda1 + label = linux.isdn + # + image = /etc/kernel/linux-2.0.30 + root = /dev/sda1 + label = linux.secure + + In the line starting with "append" you have to adapt the parameters + according to your card (see above in this file) + +3. boot the new linux.isdn kernel +4. start the ISDN subsystem: + a) load - if necessary - the modules (depends, whether you compiled + the ISDN driver as module or not) + According to the type of card you have to specify the necessary + driver parameter (irq, io, mem, type, protocol). + For the leased line the protocol is "3". See the table above for + the parameters, which you have to specify depending on your card. + b) configure i4l + /sbin/isdnctrl addif isdn0 + # EAZ 1 -- B1 channel 2 --B2 channel + /sbin/isdnctrl eaz isdn0 1 + /sbin/isdnctrl secure isdn0 on + /sbin/isdnctrl huptimeout isdn0 0 + /sbin/isdnctrl l2_prot isdn0 hdlc + # Attention you must not set an outgoing number !!! This won't work !!! + # The incomming number is LEASED0 for the first card, LEASED1 for the + # second and so on. + /sbin/isdnctrl addphone isdn0 in LEASED0 + # Here is no need to bind the channel. + c) in case the remote partner is a CISCO: + /sbin/isdnctrl encap isdn0 cisco-h + d) configure the interface + /sbin/ifconfig isdn0 ${LOCAL_IP} pointopoint ${REMOTE_IP} + e) set the routes + /sbin/route add -host ${REMOTE_IP} isdn0 + /sbin/route add default gw ${REMOTE_IP} + f) switch the card into leased mode for each used B-channel + /sbin/hisaxctrl HiSax 5 1 + +Remarks: +a) If you have a CISCO don't forget to switch off the KEEP ALIVE option! + +Here an example script: +#!/bin/sh +# Start/Stop ISDN lesaed line connection + +I4L_AS_MODULE=yes +I4L_REMOTE_IS_CISCO=no +I4L_MODULE_PARAMS="type=16 io=0x268 irq=7 " +I4L_DEBUG=no +I4L_LEASED_128K=yes +LOCAL_IP=192.168.1.1 +REMOTE_IP=192.168.2.1 + +case "$1" in + start) + echo "Starting ISDN ..." + if [ ${I4L_AS_MODULE} = "yes" ]; then + echo "loading modules..." + /sbin/modprobe hisax ${I4L_MODULE_PARAMS} + fi + # configure interface + /sbin/isdnctrl addif isdn0 + /sbin/isdnctrl secure isdn0 on + if [ ${I4L_DEBUG} = "yes" ]; then + /sbin/isdnctrl verbose 7 + /sbin/hisaxctrl HiSax 1 0xffff + /sbin/hisaxctrl HiSax 11 0xff + cat /dev/isdnctrl >/tmp/lea.log & + fi + if [ ${I4L_REMOTE_IS_CISCO} = "yes" ]; then + /sbin/isdnctrl encap isdn0 cisco-h + fi + /sbin/isdnctrl huptimeout isdn0 0 + # B-CHANNEL 1 + /sbin/isdnctrl eaz isdn0 1 + /sbin/isdnctrl l2_prot isdn0 hdlc + # 1. card + /sbin/isdnctrl addphone isdn0 in LEASED0 + if [ ${I4L_LEASED_128K} = "yes" ]; then + /sbin/isdnctrl addslave isdn0 isdn0s + /sbin/isdnctrl secure isdn0s on + /sbin/isdnctrl huptimeout isdn0s 0 + # B-CHANNEL 2 + /sbin/isdnctrl eaz isdn0s 2 + /sbin/isdnctrl l2_prot isdn0s hdlc + # 1. card + /sbin/isdnctrl addphone isdn0s in LEASED0 + if [ ${I4L_REMOTE_IS_CISCO} = "yes" ]; then + /sbin/isdnctrl encap isdn0s cisco-h + fi + fi + # configure tcp/ip + /sbin/ifconfig isdn0 ${LOCAL_IP} pointopoint ${REMOTE_IP} + /sbin/route add -host ${REMOTE_IP} isdn0 + /sbin/route add default gw ${REMOTE_IP} + # switch to leased mode + # B-CHANNEL 1 + /sbin/hisaxctrl HiSax 5 1 + if [ ${I4L_LEASED_128K} = "yes" ]; then + # B-CHANNEL 2 + /sbin/hisaxctrl HiSax 5 2 + fi + ;; + stop) + /sbin/ifconfig isdn0 down + /sbin/isdnctrl delif isdn0 + if [ ${I4L_DEBUG} = "yes" ]; then + killall cat + fi + if [ ${I4L_AS_MODULE} = "yes" ]; then + /sbin/rmmod hisax + /sbin/rmmod isdn + /sbin/rmmod ppp + /sbin/rmmod slhc + fi + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 +esac +exit 0 + diff -ur --new-file old/linux/Documentation/isdn/README.act2000 new/linux/Documentation/isdn/README.act2000 --- old/linux/Documentation/isdn/README.act2000 Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/isdn/README.act2000 Tue Apr 28 23:22:04 1998 @@ -0,0 +1,104 @@ +$Id: README.act2000,v 1.1 1997/09/24 23:50:16 fritz Exp $ + +This document describes the ACT2000 driver for the +IBM Active 2000 ISDN card. + +There are 3 Types of this card available. A ISA-, MCA-, and PCMCIA-Bus +Version. Currently, only the ISA-Bus version of the card is supported. +However MCA and PCMCIA will follow soon. + +The ISA-Bus Version uses 8 IO-ports. The base port adress has to be set +manually using the DIP switches. + +Setting up the DIP switches for the IBM Active 2000 ISDN card: + + Note: S5 and S6 always set off! + + S1 S2 S3 S4 Base-port + on on on on 0x0200 (Factory default) + off on on on 0x0240 + on off on on 0x0280 + off off on on 0x02c0 + on on off on 0x0300 + off on off on 0x0340 + on off off on 0x0380 + on on on off 0xcfe0 + off on on off 0xcfa0 + on off on off 0xcf60 + off off on off 0xcf20 + on on off off 0xcee0 + off on off off 0xcea0 + on off off off 0xce60 + off off off off Card disabled + +IRQ is configured by software. Possible values are: + + 3, 5, 7, 10, 11, 12, 15 and none (polled mode) + + +The ACT2000 driver may either be built into the kernel or as a module. +Initialization depends on how the driver is built: + +Driver built into the kernel: + + The ACT2000 driver can be configured using the commandline-feature while + loading the kernel with LILO or LOADLIN. It accepts the following syntax: + + act2000=b,p,i[,idstring] + + where + + b = Bus-Type (1=ISA, 2=MCA, 3=PCMCIA) + p = portbase (-1 means autoprobe) + i = Interrupt (-1 means use next free IRQ, 0 means polled mode) + + The idstring is an arbitrary string used for referencing the card + by the actctrl tool later. + + Defaults used, when no parameters given at all: + + 1,-1,-1,"" + + which means: Autoprobe for an ISA card, use next free IRQ, let the + ISDN linklevel fill the IdString (usually "line0" for the first card). + + If you like to use more than one card, you can use the program + "actctrl" from the utility-package to configure additional cards. + + Using the "actctrl"-utility, portbase and irq can also be changed + during runtime. The D-channel protocol is configured by the "dproto" + option of the "actctrl"-utility after loading the firmware into the + card's memory using the "actctrl"-utility. + +Driver built as module: + + The module act2000.o can be configured during modprobe (insmod) by + appending its parameters to the modprobe resp. insmod commandline. + The following syntax is accepted: + + act_bus=b act_port=p act_irq=i act_id=idstring + + where b, p, i and idstring have the same meanings as the parameters + described for the builtin version above. + + Using the "actctrl"-utility, the same features apply to the modularized + version as to the kernel-builtin one. (i.e. loading of firmware and + configuring the D-channel protocol) + +Loading the firmware into the card: + + The firmware is supplied together with the isdn4k-utils package. It + can be found in the subdirectory act2000/firmware/ + + Assuming you have installed the utility-package correctly, the firmware + will be downloaded into the card using the following command: + + actctrl -d idstring load /etc/isdn/bip11.btl + + where idstring is the Name of the card, given during insmod-time or + (for kernel-builtin driver) on the kernel commandline. If only one + ISDN card is used, the -d isdstrin may be omitted. + + For further documentation (adding more IBM Active 2000 cards), refer to + the manpage actctrl.8 which is included in the isdn4k-utils package. + diff -ur --new-file old/linux/Documentation/isdn/README.audio new/linux/Documentation/isdn/README.audio --- old/linux/Documentation/isdn/README.audio Fri May 30 06:53:03 1997 +++ new/linux/Documentation/isdn/README.audio Tue Apr 28 23:22:04 1998 @@ -22,7 +22,7 @@ Commands supported in audio mode: -All audio mode commands have the one of the following form: +All audio mode commands have one of the following forms: AT+Vxx? Show current setting. AT+Vxx=? Show possible settings. @@ -89,8 +89,8 @@ End of audio data. (i.e. caused by a hangup of the remote side) Emulator stops recording, responding with VCON. - Abort recording, (send by appl.) Emulator - stops recording, sends DLE,ETX. + Abort recording, (send by appl.) Emulator + stops recording, sends DLE,ETX. Escape sequence for DLE in data stream. 0 Touchtone "0" received. ... diff -ur --new-file old/linux/Documentation/isdn/README.avmb1 new/linux/Documentation/isdn/README.avmb1 --- old/linux/Documentation/isdn/README.avmb1 Fri May 30 06:53:03 1997 +++ new/linux/Documentation/isdn/README.avmb1 Tue Apr 28 23:22:04 1998 @@ -26,7 +26,7 @@ AVM GmbH provides several t4-files for the different D-channel protocols (b1.t4 for Euro-ISDN). Install these file in /lib/isdn. -If you not compile the driver as modules, you have to add the +If you do not compile the driver as modules, you have to add the card(s) and load them after booting: avmcapictrl add 0x150 15 diff -ur --new-file old/linux/Documentation/isdn/README.concap new/linux/Documentation/isdn/README.concap --- old/linux/Documentation/isdn/README.concap Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/isdn/README.concap Tue Apr 28 23:22:04 1998 @@ -0,0 +1,258 @@ +Description of the "concap" encapsulation protocol interface +============================================================ + +The "concap" interface is intended to be used by network device +drivers that need to process an encapsulation protocol. +It is assumed that the protocol interacts with a linux network device by +- data transmission +- connection control (establish, release) +Thus, the mnemonic: "CONnection CONtrolling eNCAPsulation Protocol". + +This is currently only used inside the isdn subsystem. But it might +also be useful to other kinds of network devices. Thus, if you want +to suggest changes that improve usability or performance of the +interface, please let me know. I'm willing to include them in future +releases (even if I needed to adapt the current isdn code to the +changed interface). + + +Why is this useful? +=================== + +The encapsulation protocol used on top of WAN connections or permanent +point-to-point links are frequently chosen upon bilateral agreement. +Thus, a device driver for a certain type of hardware must support +several different encapsulation protocols at once. + +The isdn device driver did already support several different +encapsulation protocols. The encapsulation protocol is configured by a +user space utility (isdnctrl). The isdn network interface code then +uses several case statements which select appropriate actions +depending on the currently configured encapsulation protocol. + +In contrast, LAN network interfaces always used a single encapsulation +protocol which is unique to the hardware type of the interface. The LAN +encapsulation is usually done by just sticking a header on the data. Thus, +traditional linux network device drivers used to process the +encapsulation protocol directly (usually by just providing a hard_header() +method in the device structure) using some hardware type specific support +functions. This is simple, direct and efficient. But it doesn't fit all +the requirements for complex WAN encapsulations. + + + The configurability of the encapsulation protocol to be used + makes isdn network interfaces more flexible, but also much more + complex than traditional lan network interfaces. + + +Many Encapsulation protocols used on top of WAN connections will not just +stick a header on the data. They also might need to set up or release +the WAN connection. They also might want to send other data for their +private purpose over the wire, e.g. ppp does a lot of link level +negotiation before the first piece of user data can be transmitted. +Such encapsulation protocols for WAN devices are typically more complex +than encapsulation protocols for lan devices. Thus, network interface +code for typical WAN devices also tends to be more complex. + + +In order to support Linux' x25 PLP implementation on top of +isdn network interfaces I could have introduced yet another branch to +the various case statements inside drivers/isdn/isdn_net.c. +This eventually made isdn_net.c even more complex. In addition, it made +isdn_net.c harder to maintain. Thus, by identifying an abstract +interface between the network interface code and the encapsulation +protocol, complexity could be reduced and maintainability could be +increased. + + +Likewise, a similar encapsulation protocol will frequently be needed by +several different interfaces of even different hardware type, e.g. the +synchronous ppp implementation used by the isdn driver and the +asyncronous ppp implementation used by the ppp driver have a lot of +similar code in them. By cleanly separating the encapsulation protocol +from the hardware specific interface stuff such code could be shared +better in future. + + +When operating over dial-up-connections (e.g. telephone lines via modem, +non-permanent virtual circuits of wide area networks, ISDN) many +encapsulation protocols will need to control the connection. Therefore, +some basic connection control primitives are supported. The type and +semantics of the connection (i.e the ISO layer where connection service +is provided) is outside our scope and might be different depending on +the encapsulation protocol used, e.g. for a ppp module using our service +on top of a modem connection a connect_request will result in dialing +a (somewhere else configured) remote phone number. For an X25-interface +module (LAPB semantics, as defined in Documentation/networking/x25-iface.txt) +a connect_request will ask for establishing a reliable lapb +datalink connection. + + +The encapsulation protocol currently provides the following +service primitives to the network device. + +- create a new encapsulation protocol instance +- delete encapsulation protocol instance and free all its resources +- initialize (open) the encapsulation protocol instance for use. +- deactivate (close) an encapsulation protocol instance. +- process (xmit) data handed down by upper protocol layer +- receive data from lower (hardware) layer +- process connect indication from lower (hardware) layer +- process disconnect indication from lower (hardware) layer + + +The network interface driver accesses those primitives via callbacks +provided by the encapsulation protocol instance within a +struct concap_proto_ops. + +struct concap_proto_ops{ + + /* create a new encapsulation protocol instance of same type */ + struct concap_proto * (*proto_new) (void); + + /* delete encapsulation protocol instance and free all its resources. + cprot may no loger be referenced after calling this */ + void (*proto_del)(struct concap_proto *cprot); + + /* initialize the protocol's data. To be called at interface startup + or when the device driver resets the interface. All services of the + encapsulation protocol may be used after this*/ + int (*restart)(struct concap_proto *cprot, + struct device *ndev, + struct concap_device_ops *dops); + + /* deactivate an encapsulation protocol instance. The encapsulation + protocol may not call any *dops methods after this. */ + int (*close)(struct concap_proto *cprot); + + /* process a frame handed down to us by upper layer */ + int (*encap_and_xmit)(struct concap_proto *cprot, struct sk_buff *skb); + + /* to be called for each data entity received from lower layer*/ + int (*data_ind)(struct concap_proto *cprot, struct sk_buff *skb); + + /* to be called when a connection was set up/down. + Protocols that don't process these primitives might fill in + dummy methods here */ + int (*connect_ind)(struct concap_proto *cprot); + int (*disconn_ind)(struct concap_proto *cprot); +}; + + +The data structures are defined in the header file include/linux/concap.h. + + +A Network interface using encapsulation protocols must also provide +some service primitives to the encapsulation protocol: + +- request data being submitted by lower layer (device hardware) +- request a connection being set up by lower layer +- request a connection being released by lower layer + +The encapsulation protocol accesses those primitives via callbacks +provided by the network interface within a struct concap_device_ops. + +struct concap_device_ops{ + + /* to request data be submitted by device */ + int (*data_req)(struct concap_proto *, struct sk_buff *); + + /* Control methods must be set to NULL by devices which do not + support connection control. */ + /* to request a connection be set up */ + int (*connect_req)(struct concap_proto *); + + /* to request a connection be released */ + int (*disconn_req)(struct concap_proto *); +}; + +The network interface does not explicitly provide a receive service +because the encapsulation protocol directly calls netif_rx(). + + + + +An encapsulation protocol itself is actually the +struct concap_proto{ + struct device *net_dev; /* net device using our service */ + struct concap_device_ops *dops; /* callbacks provided by device */ + struct concap_proto_ops *pops; /* callbacks provided by us */ + int flags; + void *proto_data; /* protocol specific private data, to + be accessed via *pops methods only*/ + /* + : + whatever + : + */ +}; + +Most of this is filled in when the device requests the protocol to +be reset (opend). The network interface must provide the net_dev and +dops pointers. Other concap_proto members should be considered private +data that are only accessed by the pops callback functions. Likewise, +a concap proto should access the network device's private data +only by means of the callbacks referred to by the dops pointer. + + +A possible extended device structure which uses the connection controlling +encapsulation services could look like this: + +struct concap_device{ + struct device net_dev; + struct my_priv /* device->local stuff */ + /* the my_priv struct might contain a + struct concap_device_ops *dops; + to provide the device specific callbacks + */ + struct concap_proto *cprot; /* callbacks provided by protocol */ +}; + + + +Misc Thoughts +============= + +The concept of the concap proto might help to reuse protocol code and +reduce the complexity of certain network interface implementations. +The trade off is that it introduces yet another procedure call layer +when processing the protocol. This has of course some impact on +performance. However, typically the concap interface will be used by +devices attached to slow lines (like telephone, isdn, leased synchronous +lines). For such slow lines, the overhead is probably negligible. +This might no longer hold for certain high speed WAN links (like +ATM). + + +If general linux network interfaces explicitly supported concap +protocols (e.g. by a member struct concap_proto* in struct device) +then the interface of the service function could be changed +by passing a pointer of type (struct device*) instead of +type (struct concap_proto*). Doing so would make many of the service +functions compatible to network device support fuctions. + +e.g. instead of the concap protocol's service function + + int (*encap_and_xmit)(struct concap_proto *cprot, struct sk_buff *skb); + +we could have + + int (*encap_and_xmit)(struct device *ndev, struct sk_buff *skb); + +As this is compatible to the dev->hard_start_xmit() method, the device +driver could directly register the concap protocol's encap_and_xmit() +fuction as its hard_start_xmit() method. This would eliminate one +procedure call layer. + + +The device's data request function could also be defined as + + int (*data_req)(struct device *ndev, struct sk_buff *skb); + +This might even allow for some protocol stacking. And the network +interface might even register the same data_req() function directly +as its hard_start_xmit() method when a zero layer encapsulation +protocol is configured. Thus, eliminating the performance penalty +of the concap interface when a trivial concap protocol is used. +Nevertheless, the device remains able to support encapsulation +protocol configuration. diff -ur --new-file old/linux/Documentation/isdn/README.icn new/linux/Documentation/isdn/README.icn --- old/linux/Documentation/isdn/README.icn Fri May 30 06:53:03 1997 +++ new/linux/Documentation/isdn/README.icn Tue Apr 28 23:22:04 1998 @@ -62,8 +62,8 @@ 1 1 1 0 0x368 1 1 1 1 NOT ALLOWED! -The ICN driver either may be build into kernel or as a module. Initialization -depends on how the drive is built: +The ICN driver may be built into the kernel or as a module. Initialization +depends on how the driver is built: Driver built into the kernel: @@ -102,7 +102,7 @@ portbase=p membase=m icn_id=idstring [icn_id2=idstring2] - where p, m, idstring1 and idstring2 have the same meanings like + where p, m, idstring1 and idstring2 have the same meanings as the parameters described for the kernel-version above. When using the ICN double card (4B), you MUST define TWO idstrings. @@ -127,12 +127,12 @@ pc_1t_ca.bin - Image of firmware for german 1TR6 protocol. pc_eu_ca.bin - Image if firmware for EDSS1 (Euro-ISDN) protocol. - Assumed you have installed the utility-package correctly, the firmware + Assuming you have installed the utility-package correctly, the firmware will be downloaded into the 2B-card using the following command: icnctrl -d Idstring load /etc/isdn/loadpg.bin /etc/isdn/pc_XX_ca.bin - where XX is either "1t" or "eu", depending of the D-Channel protocol + where XX is either "1t" or "eu", depending on the D-Channel protocol used on your S0-bus and Idstring is the Name of the card, given during insmod-time or (for kernel-builtin driver) on the kernel commandline. diff -ur --new-file old/linux/Documentation/isdn/README.pcbit new/linux/Documentation/isdn/README.pcbit --- old/linux/Documentation/isdn/README.pcbit Tue Apr 23 11:31:46 1996 +++ new/linux/Documentation/isdn/README.pcbit Tue Apr 28 23:22:04 1998 @@ -16,20 +16,20 @@ Known Limitations: -- The board reset proceeding is at the moment incorrect and will only +- The board reset procedure is at the moment incorrect and will only allow you to load the firmware after a hard reset. -- Only HDLC in B-channels is supported at the moment. There is now -current support to X.25 in B or D channels nor LAPD in B -channels. The main reason is that this two other protocol modes have, +- Only HDLC in B-channels is supported at the moment. There is no +current support for X.25 in B or D channels nor LAPD in B +channels. The main reason is that these two other protocol modes have, to my knowledge, very little use. If you want to see them implemented *do* send me a mail. -- The driver often triggers errors in the board that i and the +- The driver often triggers errors in the board that I and the manufacturer believe to be caused by bugs in the firmware. The current -version includes several proceedings for error recovery that should +version includes several procedures for error recovery that should allow normal operation. Plans for the future include cooperation with -the manufacturer in order to solve this problems. +the manufacturer in order to solve this problem. Information/hints/help can be obtained in the linux isdn mailing list (isdn4linux@hub-wue.franken.de) or directly from me. diff -ur --new-file old/linux/Documentation/isdn/README.sc new/linux/Documentation/isdn/README.sc --- old/linux/Documentation/isdn/README.sc Thu Feb 27 19:57:29 1997 +++ new/linux/Documentation/isdn/README.sc Tue Apr 28 23:22:04 1998 @@ -9,7 +9,7 @@ bugs and defects either known or unknown. Use this software at your own risk. There is NO SUPPORT for this software. Some help may be available through the web site or the mailing list but such support is totally at -our own option and without warrantee. If you choose to assume all and +our own option and without warranty. If you choose to assume all and total risk by using this driver, we encourage you to join the beta mailing list. @@ -17,7 +17,7 @@ majordomo@spellcast.com with the words "subscribe linux-beta" as the only contents of the message. Do not include a signature. If you choose to remove yourself from this list at a later date, send another message to -the same address with the words "unsubscribe linux-beta" as it's only +the same address with the words "unsubscribe linux-beta" as its only contents. TABLE OF CONTENTS @@ -42,7 +42,7 @@ --------------- The revision 2 Linux driver for SpellCaster ISA ISDN adapters is built -upon ISDN4Linux available seperately or as included in Linux 2.0 and later. +upon ISDN4Linux available separately or as included in Linux 2.0 and later. The driver will support a maximum of 4 adapters in any one system of any type including DataCommute/BRI, DataCommute/PRI and TeleCommute/BRI for a maximum of 92 channels for host. The driver is supplied as a module in @@ -74,14 +74,14 @@ allow us to utilize all of the available RAM on the adapter through only one 16K page. - Better detection of available upper memory. The probing routines - have been improved to better detect avaialble shared RAM pages and + have been improved to better detect available shared RAM pages and used pages are now locked. - Decreased loading time and a wider range of I/O ports probed. We have significantly reduced the amount of time it takes to load the driver and at the same time doubled the number of I/O ports - probed increasing the likelyhood of finding an adapter. + probed increasing the likelihood of finding an adapter. - We now support all ISA adapter models with a single driver instead - of seperate drivers for each model. The revision 2 driver supports + of separate drivers for each model. The revision 2 driver supports the DataCommute/BRI, DataCommute/PRI and TeleCommute/BRI in any combination up to a maximum of four adapters per system. - On board PPP protocol support has been removed in favour of the @@ -115,7 +115,7 @@ 2.1 Unpacking and installing the driver - 1. As root, create a directory in a convienient place. We suggest + 1. As root, create a directory in a convenient place. We suggest /usr/src/spellcaster. 2. Unpack the archive with : @@ -170,36 +170,38 @@ 2.6 How to setup ISDN4Linux with the driver -There are two main configurations which you can use with the driver: +There are three main configurations which you can use with the driver: A) Basic HDLC connection B) PPP connection C) MLPPP connection -It should be mentioned here that you may also use a tty connection if you desire. -The Documentation directory of the isdn4linux subsystem offers a good documentation -on this feature. +It should be mentioned here that you may also use a tty connection if you +desire. The Documentation directory of the isdn4linux subsystem offers good +documentation on this feature. A) 10 steps to the establishment of a basic HDLC connection ----------------------------------------------------------- - please open the isdn-hdlc file in the examples directory and follow along... - This file is a script used to configure a BRI ISDN TA to establish a basic HDLC - connection between its two channels. There two network interfaces which are - created and two routes added between the channels. + This file is a script used to configure a BRI ISDN TA to establish a + basic HDLC connection between its two channels. Two network + interfaces are created and two routes added between the channels. - i) using the isdnctrl utitity, add an interface with "addif" and name it "isdn0" + i) using the isdnctrl utitity, add an interface with "addif" and + name it "isdn0" ii) add the outgoing and inbound telephone numbers iii) set the Layer 2 protocol to hdlc - iv) set the eaz of the interface to be the phone number of that specific channel + iv) set the eaz of the interface to be the phone number of that + specific channel v) to turn the callback features off, set the callback to "off" and the callback delay (cbdelay) to 0. vi) the hangup timeout can be set to a specified number of seconds - vii) the hangup upon incomming call can be set on or off - viii) use the ifconfig command to bring-up the network interface with a specific - IP address and point to point address - viv) add a route to the IP address through the isdn0 interface + vii) the hangup upon incoming call can be set on or off + viii) use the ifconfig command to bring up the network interface with + a specific IP address and point to point address + ix) add a route to the IP address through the isdn0 interface x) a ping should result in the establishment of the connection @@ -208,13 +210,15 @@ - please open the isdn-ppp file in the examples directory and follow along... - This file is a script used to configure a BRI ISDN TA to establish a PPP connection - between the two channels. The file is almost identical to the HDLC connection - example except that the packet ecapsulation type has to be set. - - use the same procedure as in the HDLC connection from steps i) to iii) then, - after the Layer 2 protocol is set, set the encapsulation "encap" to syncppp. - With this done, the rest of the steps, iv) to x) can be followed from above. + This file is a script used to configure a BRI ISDN TA to establish a + PPP connection between the two channels. The file is almost + identical to the HDLC connection example except that the packet + ecapsulation type has to be set. + + use the same procedure as in the HDLC connection from steps i) to + iii) then, after the Layer 2 protocol is set, set the encapsulation + "encap" to syncppp. With this done, the rest of the steps, iv) to x) + can be followed from above. Then, the ipppd (ippp daemon) must be setup: @@ -223,52 +227,55 @@ xiii) set the mru size to 2000 xiv) link the two /dev interfaces to the daemon -NOTE: A "*" in the inbound telephone number specifies that a call can be accepted - on any number. +NOTE: A "*" in the inbound telephone number specifies that a call can be +accepted on any number. C) Establishment of a MLPPP connection -------------------------------------- - please open the isdn-mppp file in the examples directory and follow along... - This file is a script used to configure a BRI ISDN TA to accept a Multi Link PPP - connection. + This file is a script used to configure a BRI ISDN TA to accept a + Multi Link PPP connection. - i) using the isdnctrl utitity, add an interface with "addif" and name it "ippp0" + i) using the isdnctrl utitity, add an interface with "addif" and + name it "ippp0" ii) add the inbound telephone number - iii) set the Layer 2 protocol to hdlc and the Layer 3 protocol to trans (transparent) + iii) set the Layer 2 protocol to hdlc and the Layer 3 protocol to + trans (transparent) iv) set the packet encapsulation to syncppp - v) set the eaz of the interface to be the phone number of that specific channel - vi) to turn the callback features off, set the callback to "off" and + v) set the eaz of the interface to be the phone number of that + specific channel + vi) to turn the callback features off, set the callback to "off" and the callback delay (cbdelay) to 0. vi) the hangup timeout can be set to a specified number of seconds - vii) the hangup upon incomming call can be set on or off + vii) the hangup upon incoming call can be set on or off viii) add a slave interface and name it "ippp32" for example - viv) set the similar parameters for the ippp32 interface - x) use the ifconfig command to bring-up the ippp0 interface with a specific - IP address and point to point address + ix) set the similar parameters for the ippp32 interface + x) use the ifconfig command to bring-up the ippp0 interface with a + specific IP address and point to point address xi) add a route to the IP address through the ippp0 interface xii) use the ipppd function found in /sbin/ipppd to set the following: xiii) take out (minus) bsd compression xiv) set the mru size to 2000 xv) add (+) the multi-link function "+mp" - xv) link the two /dev interfaces to the daemon + xvi) link the two /dev interfaces to the daemon -NOTE: To use the MLPPP connection to dial OUT to a MLPPP connection, change the - inbound telephone numbers to the outgoing telephone numbers of the MLPPP - host. +NOTE: To use the MLPPP connection to dial OUT to a MLPPP connection, change +the inbound telephone numbers to the outgoing telephone numbers of the MLPPP +host. 3. Beta Change Summaries and Miscellaneous Notes ------------------------------------------------ -When using the "scctrl" utility to upload firmware revisions on the board, please -note that the byte count displayed at the end of the operation may be different -than the total number of bytes in the "dcbfwn.nn.sr" file. Please disregard the -displayed byte count. - -It was noted that in Beta Release 1, the module would fail to load and result in a -segmentation fault when insmod"ed". This problem was created when one of the -isdn4linux parameters, (isdn_ctrl, data field) was filled in. In some cases, this -data field was NULL, and was left unchecked, so when it was referenced.. segv. -The bug has been fixed around line 63-68 of event.c. +When using the "scctrl" utility to upload firmware revisions on the board, +please note that the byte count displayed at the end of the operation may be +different from the total number of bytes in the "dcbfwn.nn.sr" file. Please +disregard the displayed byte count. + +It was noted that in Beta Release 1, the module would fail to load and result +in a segmentation fault when 'insmod'ed. This problem was created when one of +the isdn4linux parameters, (isdn_ctrl, data field) was filled in. In some +cases, this data field was NULL, and was left unchecked, so when it was +referenced... segv. The bug has been fixed around line 63-68 of event.c. diff -ur --new-file old/linux/Documentation/isdn/README.x25 new/linux/Documentation/isdn/README.x25 --- old/linux/Documentation/isdn/README.x25 Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/isdn/README.x25 Tue Apr 28 23:22:04 1998 @@ -0,0 +1,217 @@ + +X25 support within isdn4linux + + +This is experimental code and should be used with linux version 2.1.72. +or later. Use it completely at your own risk. + + +As new versions appear, the stuff described here might suddenly change +or become invalid without notice. + +Keep in mind: + +You are using an experimental kernel (2.1.x series) with an experimental +x25 protocol implementation and experimental x25-on-top-of-isdn extensions. +Thus, be prepared to face problems related therefrom. + +- If you connect to an x25 neighbour not operated by yourself, ASK the + other side first. Be prepared that bugs in the protocol implementation + might result in problems (even crashing the peer, however such ugly events + should only happen if your peer's protocol implementation has serious bugs). + +- This implementation has never wiped out my whole hard disk yet. But as + this is experimental code, don't blame me if that happened to you. Take + appropriate actions (such as backing up important data) before + trying this code. + +- Monitor your isdn connections while using this software. This should + prevent you from undesired phone bills in case of driver problems. + + + + +How to configure the kernel + + +The ITU-T (former CCITT) X.25 network protocol layer has been implemented +in the Linux source tree since version 2.1.16. The isdn subsystem might be +useful to run X.25 on top of ISDN. If you want to try it, select + + "CCITT X.25 Packet Layer" + +from the networking options as well as + + "ISDN Support" and "X.25 PLP on Top of ISDN" + +from the ISDN subsystem options when you configure your kernel for +compilation. You currently also need to enable +"Prompt for development and/or incomplete code/drivers" from the +"Code maturity level options" menu. For the x25trace utility to work +you also need to enable "Packet socket" (I recommend to choose "y", +not "m" for testing) from the networking options. + + +For testing you should also select the isdnloop driver from the +isdn subsystem's configuration menu. + + + +What's it for? How to use it? + + +X25 on top of isdn might be useful with two different scenarios: + +- You might want to access a public X.25 data network from your Linux box. + You can use i4l if you were physically connected to the X.25 switch + by an ISDN line (leased line as well as dial up connection should work, + but connecting to x.25 network switches is currently untested. Testing + needs to be done by somebody with access to such a switch.) + +- Or you might want to operate certain ISDN teleservices on + your linux box. A lot of those teleservices run on top of the ISO-8208 + network layer protocol. ISO-8208 is essentially the same as ITU-T X.25. + + Popular candidates of such teleservices are EUROFILE transfer or any + teleservice applying ITU-T recommendation T.90 (i.e., AFAIK, G4 Fax). + +To use the X.25 protocol on top of isdn, just create an isdn network +interface as usual, configure your own and/or peer's ISDN numbers, +and choose x25iface encapsulation by + + isdnctrl encap x25iface. + +Once encap is set like this, the device can be used by the x25 packet layer. + +All the stuff needed for x25 is implemented inside the isdn link +level (mainly isdn_net.c and some new source files). Thus, it should +work with every existing HL driver. I was able to successfully open x25 +connections on top of the isdnloop driver and the hisax driver. +"x25iface"-encapsulation bypasses demand dialing. Dialing will be +initiated when the upper (x25 packet) layer requests the lapb datalink to +be established. But hangup timeout is still active. The connection +will not automatically be re-established by the isdn_net module +itself when new data arrives after the hangup timeout. But +the x25 network code will re-establish the datalink connection +(resulting in re-dialing and an x25 protocol reset) when new data is +to be transmitted. (This currently does not work properly with the +isdnloop driver, see "known problems" below) + + +In order to set up a conforming protocol stack you also need to +specify the proper l2_prot parameter: + +To operate in ISO-8208 X.25 DTE-DTE mode, use + + isdnctrl l2_prot x75i + +To access an X.25 network switch via isdn (your linux box is the DTE), use + + isdnctrl l2_prot x25dte + +To mimic an X.25 network switch (DCE side of the connection), use + + isdnctrl l2_prot x25dce + +However, x25dte or x25dce is currently not supported by any real HL +level driver. The main difference between x75 and x25dte/dce is that +x25d[tc]e uses fixed lap_b addresses. With x75i, the side which +initiates the isdn connection uses the DTE's lap_b address while the +called side used the DCE's lap_b address. Thus, l2_prot x75i will +probably work if you access a public x25 network as long as the +corresponding isdn connection is set up by you. However, I've never +tested this. + + + +How to use the test installation? + + +To test x25 on top of isdn, you need to get + +- a patched version of the "isdnctrl" program that supports setting the new + x25 specific parameters. + +- the x25-utils-2.1.x package from ftp.pspt.fi/pub/ham/linux/ax25 + or any mirror site (i.e. ftp://ftp.gwdg.de/pub/linux/misc/ax25/). + +- a kernel patch that enhances isdn4linux to provide x25 network + interface support. (This file is part of that kernel patch). + +- an application that uses linux AF_X25 sockets program. + +Before compiling the user level utilities make sure that the compiler/ +preprocessor will fetch the proper (patched) kernel header files. Either make +/usr/include/linux a symbolic link pointing to your developer kernel's +include/linux directory or set the appropriate compiler flags. + +It is recommended that all isdn drivers and the x25 PLP protocol +are compiled as loadable modules. Like this, you can recover +from certain errors by simply unloading and reloading the modules. + +When all drivers and interfaces are loaded and configured you need to +ifconfig the network interfaces up and add x25-routes to them. Use +the usual ifconfig tool. + +ifconfig up + +But a special x25route tool (distributed with the x25-util package) +is needed to set up x25 routes. I.e. + +x25route add 01 + +will cause all x.25 connections to the destination x.25-address +"01" to be routed to your created isdn network interface. + + +There are currently no real x25 applications available. However, for +tests, the x25-utils package contains a modified version of telnet +and telnetd that uses x25 sockets instead of tcp/ip sockets. Use +this for your first tests. Furthermore, there is an x25.echod and a client +named "eftp" (which contains some experimental code to download files +from a remote eft server using the EUROfile transfer protocol). +It available at ftp://ftp.hamburg.pop.de/pub/LOCAL/linux/i4l-eft/eftp4linux-* + +The x25-utility package also contains an x25trace tool that can be +used to monitor x25 packets received by the network interfaces. +The /proc/net/x25* files also contain useful information. + +The eftp4linux test release also contains an "ix25test" script that can +be used for testing x25 on top of isdn4linux. Edit +this script according to your local needs and then call it as + +ix25test start + +This will set up a sample configuration using the isdnloop and hisax +driver and create some isdn network interfaces. +It is recommended that all other isdn drivers and the +x25 module are unloaded before calling this script. + + + +Known problems and deficiencies: + +The isdnloop HL driver apparently has problems to re-establish a +connection that has been hung up from the outgoing device. You have to +unload the isdnloop driver after the faked isdn-connection is closed +and insmod it again. With the Hisax driver, this problem is not present. + +Sometimes the x25 module cannot be unloaded (decrementation of its use +count seems to get lost occasionally). + +Using the x25 based telnet and telnetd programm to establish connection +from your own to your own computer repeatedly sometimes totally locked +up my system. However, this kernel patch also modifies +net/x25/af_x25.c to include a workaround. With this workaround +enabled, my system is stable. (If you want to disable the +workaround, just undefine ISDN_X25_FIXES in af_x25.c). + +The latter problem could be reproduced by using hisax as well as the +isdnloop driver. It seems that it is not caused by the isdn code. +Somehow, the inode of a socket is freed while a process still refers +the socket's wait queue. This causes problems when the process tries to +remove itself from the wait queue (refered by the dangling +sock->sleep pointer) before returning from a select() system call. + +- Henner + diff -ur --new-file old/linux/Documentation/isdn/syncPPP.FAQ new/linux/Documentation/isdn/syncPPP.FAQ --- old/linux/Documentation/isdn/syncPPP.FAQ Mon May 20 07:38:42 1996 +++ new/linux/Documentation/isdn/syncPPP.FAQ Tue Apr 28 23:22:04 1998 @@ -1,8 +1,8 @@ simple isdn4linux PPP FAQ .. to be continued .. not 'debugged' ------------------------------------------------------------------- -Q01: what's pppd,ipppd, syncPPP , asyncPPP ?? -Q02: error message "this systems lacks PPP support" +Q01: what's pppd, ipppd, syncPPP, asyncPPP ?? +Q02: error message "this system lacks PPP support" Q03: strange information using 'ifconfig' Q04: MPPP?? What's that and how can I use it ... Q05: I tried MPPP but it doesn't work @@ -16,7 +16,7 @@ ------------------------------------------------------------------- -Q01: pppd,ipppd, syncPPP , asyncPPP .. what is that ? +Q01: pppd, ipppd, syncPPP, asyncPPP .. what is that ? what should I use? A: The pppd is for asynchronous PPP .. asynchronous means here, the framing is character based. (e.g when @@ -45,7 +45,7 @@ -- Q02: when I start the ipppd .. I only get the - error message "this systems lacks PPP support" + error message "this system lacks PPP support" A: check that at least the device 'ippp0' exists. (you can check this e.g with the program 'ifconfig') The ipppd NEEDS this device under THIS name .. @@ -123,7 +123,7 @@ -- -Q08: A wanna talk to remote machines, which need +Q08: I wanna talk to remote machines, which need a different configuration. The only way I found to do this is to kill the ipppd and start a new one with another config to connect @@ -152,14 +152,14 @@ Q10: I wanna use dynamic IP address assignment ... How must I configure the network device. -A: At least you must have a routing, which forwards +A: At least you must have a route which forwards a packet to the ippp network-interface to trigger the dial-on-demand. - A default routing to the ippp-interface will work. + A default route to the ippp-interface will work. Now you must choose a dummy IP address for your interface. If for some reason you can't set the default - routing to the ippp interface, you may take any + route to the ippp interface, you may take any address of the subnet from which you expect your dynamic IP number and set a 'network route' for this subnet to the ippp interface. diff -ur --new-file old/linux/Documentation/java.txt new/linux/Documentation/java.txt --- old/linux/Documentation/java.txt Sat Jan 24 01:40:13 1998 +++ new/linux/Documentation/java.txt Tue Apr 28 23:22:04 1998 @@ -18,7 +18,7 @@ nonstandard classes (not included in the same directory as the application itself). -2) You have to compile BINFMT_MISC either as module or into +2) You have to compile BINFMT_MISC either as a module or into the kernel (CONFIG_BINFMT_MISC) and set it up properly. If you choose to compile it as a module, you will have to insert it manually with modprobe/insmod, as kerneld diff -ur --new-file old/linux/Documentation/joystick.txt new/linux/Documentation/joystick.txt --- old/linux/Documentation/joystick.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/joystick.txt Sat May 9 08:07:44 1998 @@ -1,5 +1,5 @@ - PC Joystick driver v1.0.6 beta - (c) 1997 Vojtech Pavlik + PC Joystick driver v1.0.9 + (c) 1997 Vojtech Pavlik ---------------------------------------------------------------------------- 1. Intro @@ -8,20 +8,22 @@ resistor based) and digital (switch based) joysticks connected via the PC game port. It can support up to 2 joysticks. - Because the joystick driver is still in its beta stage I'm very interested -in any problems you encounter while using it. Bug reports and success -stories are also welcome. + Should you encounter any problems while using the driver, or joysticks +this driver can't make complete use of, I'm very interested in hearing about +them. Bug reports and success stories are also welcome. 2. Usage ~~~~~~~~ If you enable the joystick driver in the kernel configuration, all -connected joystick should be found automatically. If that doesn't work, you -can pass the joystick driver the following kernel command line arguments: +connected joysticks should be found automatically. The driver can detect +standard two-axis two-button, and three-axis four-button joysticks only. If +that isn't your case, you can pass the joystick driver the following kernel +command line arguments: js=0xXX,0xYY Where XX and YY are bit masks for the two joysticks, with the bits -representing: +representing which buttons and axes of the joystick are present: Bit | Explanation ----------------- @@ -34,36 +36,35 @@ 6 | Button 2 7 | Button 3 - These bitmasks are ANDed with what's found by the driver and the result is -used. - Another method of using the driver is loading it as a module. For that, select `M' for this driver in the kernel configuration and insert the module: -insmod js.o js=0xXX,0xYY +insmod joystick.o js=0xXX,0xYY + + To enable autoloading/-unloading of the joystick module, you have to add +these lines to /etc/conf.modules: + +alias char-major-15 joystick +options joystick js=0xXX,0xYY To enable the user space programs to read the joystick device, you have to create the device files using mknod (man mknod for more info): mknod /dev/js0 c 15 0 -mknod /dev/js1 c 15 1 +mknod /dev/js1 c 15 1 3. Calibration ~~~~~~~~~~~~~~ As of version 1.0 the calibration routines used in the joystick driver are worth using. The idea of calibration is that you have to calibrate the joystick only once, and then set the calibration at boot-time, thus removing -the need of re-calibrating it in each program that uses it. +the need of re-calibrating it in each program that uses it. For calibration, use the jscal program, contained in the joystick package which is available at: -ftp://atrey.karlin.mff.cuni.cz/pub/local/vojtech/joystick/joystick-1.0.6.tar.gz - -And soon also at: - -ftp://sunsite.unc.edu/pub/Linux/kernel/patches/console/joystick-1.0.6.tar.gz +ftp://atrey.karlin.mff.cuni.cz/pub/linux/joystick/joystick-1.0.9.tar.gz 4. Programming Interface ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -82,65 +83,65 @@ Thanks to the following authors that contributed to the joystick driver development: - 0.1-0.5 Arthur C. Smith - 0.5 Eyal Lebedinsky - 0.6 Jeff Tranter - 0.7 Carlos Puchol - 0.7.1-0.8 Matt Rhoten - 0.7.3 Dan Fandrich - 0.7.3 Sverker Wilberg - 0.8 Hal Maney - 0.8 Bernd Schmidt - 0.9 Alan Cox - 0.9.0-1.0.6 Vojtech Pavlik + 0.1-0.5 Arthur C. Smith + 0.5 Eyal Lebedinsky + 0.6 Jeff Tranter + 0.7 Carlos Puchol + 0.7.1-0.8 Matt Rhoten + 0.7.3 Dan Fandrich + 0.7.3 Sverker Wilberg + 0.8 Hal Maney + 0.8 Bernd Schmidt + 0.9 Alan Cox + 0.9.0-1.0.9 Vojtech Pavlik 6. Change Log ~~~~~~~~~~~~~ The current (1.0.x) version was originally based on the 0.7.3 version of the joystick driver, which caused some inconsistencies in version numbering. -The following log documents all changes done to the driver by various +The following log documents all changes done to the driver by the above contributors: -Version 0.1 Original version +Version 0.1 Original version Works but lacks multi-joystick support Version 0.2 Added multi-joystick support (minor 0 and 1) - Added delay between measuring joystick axis - Added scaling ioctl + Added delay between measuring joystick axis + Added scaling ioctl Version 0.3 Modified scaling to use ints to prevent kernel - panics 8-) + panics 8-) Version 0.4 Linux 0.99.6 and fixed race condition in js_read. - After looking at a schematic of a joystick card - it became apparent that any write to the joystick - port started ALL the joystick one shots. If the - one that we are reading is short enough and the - first one to be read, the second one will return - bad data if it's one shot has not expired when - the joystick port is written for the second time. - Thus solves the mystery delay problem in 0.2! + After looking at a schematic of a joystick card + it became apparent that any write to the joystick + port started ALL the joystick one shots. If the + one that we are reading is short enough and the + first one to be read, the second one will return + bad data if its one shot has not expired when + the joystick port is written for the second time. + Thus solves the mystery delay problem in 0.2! Version 0.5 Upgraded the driver to the 0.99.9 kernel, added - joystick support to the make config options, - updated the driver to return the buttons as - positive logic, and read both axis at once - and added some new ioctls. + joystick support to the make config options, + updated the driver to return the buttons as + positive logic, and read both axis at once + and added some new ioctls. Version 0.6 Made necessary changes to work with 0.99.15 - kernel (and hopefully 1.0). Also did some - cleanup: indented code, fixed some typos, wrote - man page, etc ... -Version 0.7 Support for modules + kernel (and hopefully 1.0). Also did some + cleanup: indented code, fixed some typos, wrote + man page, etc ... +Version 0.7 Support for modules Version 0.7.1 Fix bug in reading button state of js1 - Add include so module compiles under recent kernels + Add include so module compiles under recent kernels Version 0.7.3 Include directives changed for joystick.h - Separated out joystick detection/counting, cleanup - Fix for detection of 3-axis joysticks - Better detection announcement - Added I/O port registration, cleaned up code + Separated out joystick detection/counting, cleanup + Fix for detection of 3-axis joysticks + Better detection announcement + Added I/O port registration, cleaned up code Version 0.8 New read loop - Cleaned up #includes to allow #include of joystick.h with - gcc -Wall and from g++ - Made js_init fail if it finds zero joysticks - General source/comment cleanup - Use of MOD_(INC|DEC)_USE_COUNT - Changes to compile correctly under 1.3 in kernel or as module + Cleaned up #includes to allow #include of joystick.h with + gcc -Wall and from g++ + Made js_init fail if it finds zero joysticks + General source/comment cleanup + Use of MOD_(INC|DEC)_USE_COUNT + Changes to compile correctly under 1.3 in kernel or as module Version 0.9 Ported to 2.1.x Reformatted to resemble Linux coding standard Removed semaphore bug (we can dump the lot I think) @@ -149,52 +150,64 @@ Better ioctl names. Kept binary compatibility. Removed 'save_busy'. Just set busy to 1. Version 0.9.0 Based on 0.7.3 - New read function that allows two axes have same value - New joystick calibration code - Real support for 3-axis joysticks - CPU speed independent timeouts - Reads may happen even for unwhole record size => cat /dev/js0 works - Correct error for lseek - /dev/js? can be read simultaneously by several processes + New read function that allows two axes to have the same value + New joystick calibration code + Real support for 3-axis joysticks + CPU speed independent timeouts + Reads may happen even for unwhole record size => cat /dev/js0 works + Correct error for lseek + /dev/js? can be read simultaneously by several processes Version 0.9.1 IOCTLs now obey general Linux IOCTL rules ('j' letter assigned) - Use of verify_area result codes + Use of verify_area result codes Fuzz correction added - Semaphore and many cli()'s removed - Fix for TurboFire joysticks - read buttons always - Fix for broken joysticks - return with -ENODEV only if joystick - completely disconnected - Fix in read function to allow zero results - Broken line correction added for broken joysticks (eg. JB-500) - Timeouts back separated for easier setting - Some fixes and cleanups in read function + Semaphore and many cli()'s removed + Fix for TurboFire joysticks - read buttons always + Fix for broken joysticks - return with -ENODEV only if joystick + completely disconnected + Fix in read function to allow zero results + Broken line correction added for broken joysticks (eg. JB-500) + Timeouts back separated for easier setting + Some fixes and cleanups in read function Version 0.9.2 Fixed a typo causing nothing to be working Version 1.0.0 Event approach started Version 1.0.1 Complete rewrite Compiles but doesn't work Version 1.0.2 Works, many bugs fixed, more yet to come Version 1.0.3 Tail cutting logic changes & fixes - Fix in js_do_bh - no more zero values for axes - Lost event changest & fixes + Fix in js_do_bh - no more zero values for axes + Lost event changes & fixes Version 1.0.4 Kernel command line & module configuration support - Better cli()/sti() handling - Linux 2.1.25 select => poll changes + Better cli()/sti() handling + Linux 2.1.25 select => poll changes Version 1.0.5 Fixes in calibration routines Better jscal Version 1.0.6 Backward compatibility with old js driver added - Init value after recalibration bug fixed + Init value after recalibration bug fixed Using KERN_* printk() codes - Finally leaving ALPHA and going beta - Cosmetic changes + Finally leaving ALPHA and going beta + Cosmetic changes +Version 1.0.7 Readme update + Linux 2.1.89 poll update + Compatibility mode fix - refresh data after open + Cosmetic changes & cleanup +Version 1.0.8 Changing the __u16 data to __s16 in event packet + The range is now -32727..0..32767 + Broken line correction needs 2 coefs less + Fix to report number of buttons correctly + Removed various trailing spaces +Version 1.0.9 Fix for compatibility mode - don't do correction + Fix max number of module parameters 7. To do ~~~~~~~~ Sooner or later I'll get to these: - Backport & create patches for 2.0 - Try using Pentium timers for better precision - Create patches for most common programs using joystick - Support for cards with hw calibration (Gravis Ultrasound, QuickShot) - Support for multiport cards (QuickShot 4-joy board) - Support for multiaxis, multibutton joysticks (Gravis Firebird) - Support for MS digital joystick + Make an optional read routine using Pentium timers for better precision (*) + Support for hats and more buttons ala CH Flightstick (*) + Support for hats ala TM FCS (*) + Include support for MS SideWinder digital mode (*) + Create patches for most common programs using joystick + Support for cards with HW speed compensation + Support for more than one joystick port + (*) - Already in the development 1.1 version. diff -ur --new-file old/linux/Documentation/kmod.txt new/linux/Documentation/kmod.txt --- old/linux/Documentation/kmod.txt Tue Mar 10 23:43:13 1998 +++ new/linux/Documentation/kmod.txt Sun Apr 26 07:13:39 1998 @@ -4,19 +4,19 @@ Kmod is a simple replacement for kerneld. It consists of a request_module() replacement and a kernel thread called kmod. When the kernel requests a module, the kmod wakes up and execve()s modprobe, -passing it the name that was requested. After a configurable period of -time, kmod will have delete_module() remove any unused modules. +passing it the name that was requested. -Kmod is configurable through two entries in /proc/sys/kernel. You can -set the path of modprobe (where the kernel looks for it) by doing: +If you have the /proc filesystem mounted, you can set the path of +modprobe (where the kernel looks for it) by doing: echo "/sbin/modprobe" > /proc/sys/kernel/modprobe -To tell kmod when to unload unused modules, do something like: +To periodically unload unused modules, put something like the following +in root's crontab entry: - echo "120" > /proc/sys/kernel/kmod_unload_delay + 0-59/5 * * * * /sbin/rmmod -a -Kmod only loads and unloads modules. Kerneld could do more (although +Kmod only loads modules. Kerneld could do more (although nothing in the standard kernel used its other features). If you require features such as request_route, we suggest that you take a similar approach. A simple request_route function could be called, diff -ur --new-file old/linux/Documentation/locks.txt new/linux/Documentation/locks.txt --- old/linux/Documentation/locks.txt Wed May 14 07:41:00 1997 +++ new/linux/Documentation/locks.txt Tue Apr 28 23:22:04 1998 @@ -67,7 +67,7 @@ Until an updated version of mount(8) becomes available you may have to apply this patch to the mount sources (based on the version distributed with Rick -Faiths util-linux-2.5 package): +Faith's util-linux-2.5 package): *** mount.c.orig Sat Jun 8 09:14:31 1996 --- mount.c Sat Jun 8 09:13:02 1996 diff -ur --new-file old/linux/Documentation/m68k/framebuffer.txt new/linux/Documentation/m68k/framebuffer.txt --- old/linux/Documentation/m68k/framebuffer.txt Fri Feb 13 01:30:11 1998 +++ new/linux/Documentation/m68k/framebuffer.txt Wed Jun 3 21:39:40 1998 @@ -86,14 +86,15 @@ - You can request and change variable information about the hardware, like visible and virtual geometry, depth, color map format, timing, and so on. - If you try to change that informations, the driver maybe will round up some + If you try to change that information, the driver maybe will round up some values to meet the hardware's capabilities (or return EINVAL if that isn't possible). - You can get and set parts of the color map. Communication is done with 16 - bit per color part (red, green, blue, transparency) to support all existing - hardware. The driver does all the computations needed to bring it into the - hardware (round it down to less bits, maybe throw away transparency). + bits per color part (red, green, blue, transparency) to support all + existing hardware. The driver does all the computations needed to apply + it to the hardware (round it down to less bits, maybe throw away + transparency). All this hardware abstraction makes the implementation of application programs easier and more portable. E.g. the X server works completely on /dev/fb* and @@ -113,8 +114,8 @@ 3. Frame Buffer Resolution Maintenance -------------------------------------- -Frame buffer resolutions are maintained using the utility `fbset'. It allows to -change the video mode properties of the current resolution. It's main usage is +Frame buffer resolutions are maintained using the utility `fbset'. It can +change the video mode properties of the current resolution. Its main usage is to change the current video mode, e.g. during boot up in one of your /etc/rc.* or /etc/init.d/* files. @@ -314,7 +315,7 @@ All necessary files can be found at - ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/680x0/ + ftp://ftp.uni-erlangen.de/pub/Linux/680x0/ and on its mirrors. diff -ur --new-file old/linux/Documentation/m68k/kernel-options.txt new/linux/Documentation/m68k/kernel-options.txt --- old/linux/Documentation/m68k/kernel-options.txt Wed Feb 25 07:08:01 1998 +++ new/linux/Documentation/m68k/kernel-options.txt Tue Apr 28 23:22:04 1998 @@ -87,7 +87,7 @@ /dev/adc: -> 0x1c20 (third ACSI device) /dev/add: -> 0x1c30 (forth ACSI device) -The last for names are available only if the kernel has been compiled +The last four names are available only if the kernel has been compiled with Atari and ACSI support. The name must be followed by a decimal number, that stands for the @@ -114,8 +114,8 @@ to /dev/fd0D720 as an abbreviation for floppy driver #0 in DD format, you cannot use this name for specifying the root device, because the kernel cannot see this symlink before mounting the root FS and it -isn't in the table above. If you would use it, the root device weren't -set at all, without error message. Another example: You cannot use a +isn't in the table above. If you use it, the root device will not be +set at all, without an error message. Another example: You cannot use a partition on e.g. the sixth SCSI disk as the root filesystem, if you want to specify it by name. This is, because only the devices up to /dev/sde are in the table above, but not /dev/sdf. Although, you can @@ -561,7 +561,7 @@ Syntax: ataflop=[,[,[,]]] The drive type may be 0, 1, or 2, for DD, HD, and ED, resp. This - setting affects how much buffers are reserved and which formats are + setting affects how many buffers are reserved and which formats are probed (see also below). The default is 1 (HD). Only one drive type can be selected. If you have two disk drives, select the "better" type. @@ -586,12 +586,12 @@ Below, defaults are noted as n/m, where the first value refers to TT-SCSI and the latter to Falcon-SCSI. If an illegal value is given for one parameter, an error message is printed and that one setting is -ignored (other aren't affected). +ignored (others aren't affected). : - This is the maximum number of SCSI commands queued internal to the + This is the maximum number of SCSI commands queued internally to the Atari SCSI driver. A value of 1 effectively turns off the driver - internal multitasking (if it makes problems). Legal values are >= + internal multitasking (if it causes problems). Legal values are >= 1. can be as high as you like, but values greater than times the number of SCSI targets (LUNs) you have don't make sense. Default: 16/8. @@ -632,7 +632,7 @@ 0 means turn off tagged queuing support, all other values > 0 mean use tagged queuing for targets that support it. Default: currently off, but this may change when tagged queuing handling has been - proofed to be reliable. + proved to be reliable. Tagged queuing means that more than one command can be issued to one LUN, and the SCSI device itself orders the requests so they @@ -689,7 +689,7 @@ ST-RAM, even if it's small enough compared to the rest of memory. If ST-RAM swapping is enabled, the kernel usually uses all free -ST-RAM as swap "device". (If the kernel resides in ST-RAM, the region +ST-RAM as swap "device". If the kernel resides in ST-RAM, the region allocated by it is obviously never used for swapping :-) You can also limit this amount by specifying the second parameter, , if you want to use parts of ST-RAM as normal system memory. is @@ -852,8 +852,8 @@ x = clock input in MHz for WD33c93 chip. Normal values would be from 8 through 20. The default value depends on your hostadapter(s), -default for the A3000 internal controller is 14, for the A2091 its 8 -and for the GVP hostadapters its either 8 or 14, depending on the +default for the A3000 internal controller is 14, for the A2091 it's 8 +and for the GVP hostadapters it's either 8 or 14, depending on the hostadapter and the SCSI-clock jumper present on some GVP hostadapters. diff -ur --new-file old/linux/Documentation/mandatory.txt new/linux/Documentation/mandatory.txt --- old/linux/Documentation/mandatory.txt Sun Sep 22 08:41:32 1996 +++ new/linux/Documentation/mandatory.txt Tue Apr 28 23:22:04 1998 @@ -19,7 +19,7 @@ transfer agent must guard against updating the mailbox at the same time, and prevent reading the mailbox while it is being updated. -In a perfect world all process would use and honour a cooperative, or +In a perfect world all processes would use and honour a cooperative, or "advisory" locking scheme. However, the world isn't perfect, and there's a lot of poorly written code out there. @@ -47,8 +47,8 @@ 2. Marking a file for mandatory locking --------------------------------------- -A file is marked as a candidate for mandatory by setting the group-id bit in -its file mode but removing the group-execute bit. This is an otherwise +A file is marked as a candidate for mandatory locking by setting the group-id +bit in its file mode but removing the group-execute bit. This is an otherwise meaningless combination, and was chosen by the System V implementors so as not to break existing user programs. @@ -103,7 +103,7 @@ 2. If a process has locked a region of a file with a mandatory read lock, then other processes are permitted to read from that region. If any of these processes attempts to write to the region it will block until the lock is - released, unless the process has opened the file opened with the O_NONBLOCK + released, unless the process has opened the file with the O_NONBLOCK flag in which case the system call will return immediately with the error status EAGAIN. @@ -145,7 +145,7 @@ 6. Warning! ----------- -Not even root can override a mandatory lock, so runaway process can wreak +Not even root can override a mandatory lock, so runaway processes can wreak havoc if they lock crucial files. The way around it is to change the file permissions (remove the setgid bit) before trying to read or write to it. Of course, that might be a bit tricky if the system is hung :-( diff -ur --new-file old/linux/Documentation/mca.txt new/linux/Documentation/mca.txt --- old/linux/Documentation/mca.txt Thu Dec 12 15:51:07 1996 +++ new/linux/Documentation/mca.txt Tue Apr 28 23:22:04 1998 @@ -57,7 +57,7 @@ and mca_write_pos() are also available for (safer) direct POS access, but their use is _highly_ discouraged. mca_write_pos() is particularly dangerous, as it is possible for adapters to be put in inconsistent -states (i.e. sharing IO address, etc) and may result in crashes, toasted +states (e.g. sharing IO address, etc) and may result in crashes, toasted hardware, and operator injury. User level drivers (such as the AGX X server) can use /proc/mca to find @@ -124,7 +124,7 @@ } Some of the standard MCA information will already be printed, so don't -bother repeating it. Don't try putting in more that 3K of information. +bother repeating it. Don't try putting in more than 3K of information. Enable this function with: mca_set_adapter_procfn( slot, dev_getinfo, dev ); @@ -132,8 +132,8 @@ Disable it with: mca_set_adapter_procfn( slot, NULL, NULL ); -It is also recommended that, even if you don't write a proc function, to -set the name of the adapter (i.e. "PS/2 ESDI Controller") via +It is also recommended, even if you don't write a proc function, to +set the name of the adapter (e.g. "PS/2 ESDI Controller") via mca_set_adapter_name( int slot, char* name ). Up to 30 characters are used. diff -ur --new-file old/linux/Documentation/mtrr.txt new/linux/Documentation/mtrr.txt --- old/linux/Documentation/mtrr.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/mtrr.txt Sun May 3 02:42:08 1998 @@ -0,0 +1,252 @@ +MTRR (Memory Type Range Register) control +2 May 1998 +Richard Gooch + + + On Intel Pentium Pro/Pentium II systems the Memory Type Range + Registers (MTRRs) may be used to control processor access to memory + ranges. This is most useful when you have a video (VGA) card on a + PCI or AGP bus. Enabling write-combining allows bus write transfers + to be combined into a larger transfer before bursting over the + PCI/AGP bus. This can increase performance of image write operations + 2.5 times or more. + + The CONFIG_MTRR option creates a /proc/mtrr file which may be used + to manipulate your MTRRs. Typically the X server should use + this. This should have a reasonably generic interface so that + similar control registers on other processors can be easily + supported. + + +There are two interfaces to /proc/mtrr: one is an ASCII interface +which allows you to read and write. The other is an ioctl() +interface. The ASCII interface is meant for administration. The +ioctl() interface is meant for C programmes (i.e. the X server). The +interfaces are described below, with sample commands and C code. + +=============================================================================== +Reading MTRRs from the shell: + +% cat /proc/mtrr +reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1 +reg01: base=0x08000000 ( 128MB), size= 64MB: write-back, count=1 +=============================================================================== +Creating MTRRs from the shell: +# echo "base=0xf8000000 size=0x400000 type=write-combining" >! /proc/mtrr + +And the result thereof: +% cat /proc/mtrr +reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1 +reg01: base=0x08000000 ( 128MB), size= 64MB: write-back, count=1 +reg02: base=0xf8000000 (3968MB), size= 4MB: write-combining, count=1 + +This is for videoram at base address 0xf8000000 and size 4 MBytes. To +find out your base address, you need to look at the output of your X +server, which tells you where the linear framebuffer address is. A +typical line that you may get is: + +(--) S3: PCI: 968 rev 0, Linear FB @ 0xf8000000 + +Note that you should only use the value from the X server, as it may +move the framebuffer base address, so the only value you can trust is +that reported by the X server. + +To find out the size of your framebuffer (what, you don't actually +know?), the following line will tell you: + +(--) S3: videoram: 4096k + +That's 4 MBytes, which is 0x400000 bytes (in hexadecimal). +A patch is being written for XFree86 which will make this automatic: +in other words the X server will manipulate /proc/mtrr using the +ioctl() interface, so users won't have to do anything. If you use a +commercial X server, lobby your vendor to add support for MTRRs. +=============================================================================== +Removing MTRRs from the shell: +% echo "disable=2" >! /proc/mtrr +=============================================================================== +Reading MTRRs from a C programme using ioctl()'s: + +/* mtrr-show.c + + Source file for mtrr-show (example programme to show MTRRs using ioctl()'s) + + Copyright (C) 1997-1998 Richard Gooch + + 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. + + 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. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. + + Richard Gooch may be reached by email at rgooch@atnf.csiro.au + The postal address is: + Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. +*/ + +/* + This programme will use an ioctl() on /proc/mtrr to show the current MTRR + settings. This is an alternative to reading /proc/mtrr. + + + Written by Richard Gooch 17-DEC-1997 + + Last updated by Richard Gooch 2-MAY-1998 + + +*/ +#include +#include +#include +#include +#include +#include +#include +#define MTRR_NEED_STRINGS +#include + +#define TRUE 1 +#define FALSE 0 +#define ERRSTRING strerror (errno) + + +int main () +{ + int fd; + struct mtrr_gentry gentry; + + if ( ( fd = open ("/proc/mtrr", O_RDONLY, 0) ) == -1 ) + { + if (errno == ENOENT) + { + fputs ("/proc/mtrr not found: not supported or you don't have a PPro?\n", + stderr); + exit (1); + } + fprintf (stderr, "Error opening /proc/mtrr\t%s\n", ERRSTRING); + exit (2); + } + for (gentry.regnum = 0; ioctl (fd, MTRRIOC_GET_ENTRY, &gentry) == 0; + ++gentry.regnum) + { + if (gentry.size < 1) + { + fprintf (stderr, "Register: %u disabled\n", gentry.regnum); + continue; + } + fprintf (stderr, "Register: %u base: 0x%lx size: 0x%lx type: %s\n", + gentry.regnum, gentry.base, gentry.size, + mtrr_strings[gentry.type]); + } + if (errno == EINVAL) exit (0); + fprintf (stderr, "Error doing ioctl(2) on /dev/mtrr\t%s\n", ERRSTRING); + exit (3); +} /* End Function main */ +=============================================================================== +Creating MTRRs from a C programme using ioctl()'s: + +/* mtrr-add.c + + Source file for mtrr-add (example programme to add an MTRRs using ioctl()) + + Copyright (C) 1997-1998 Richard Gooch + + 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. + + 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. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. + + Richard Gooch may be reached by email at rgooch@atnf.csiro.au + The postal address is: + Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. +*/ + +/* + This programme will use an ioctl() on /proc/mtrr to add an entry. The first + available mtrr is used. This is an alternative to writing /proc/mtrr. + + + Written by Richard Gooch 17-DEC-1997 + + Last updated by Richard Gooch 2-MAY-1998 + + +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define MTRR_NEED_STRINGS +#include + +#define TRUE 1 +#define FALSE 0 +#define ERRSTRING strerror (errno) + + +int main (int argc, char **argv) +{ + int fd; + struct mtrr_sentry sentry; + + if (argc != 4) + { + fprintf (stderr, "Usage:\tmtrr-add base size type\n"); + exit (1); + } + sentry.base = strtoul (argv[1], NULL, 0); + sentry.size = strtoul (argv[2], NULL, 0); + for (sentry.type = 0; sentry.type < MTRR_NUM_TYPES; ++sentry.type) + { + if (strcmp (argv[3], mtrr_strings[sentry.type]) == 0) break; + } + if (sentry.type >= MTRR_NUM_TYPES) + { + fprintf (stderr, "Illegal type: \"%s\"\n", argv[3]); + exit (2); + } + if ( ( fd = open ("/proc/mtrr", O_WRONLY, 0) ) == -1 ) + { + if (errno == ENOENT) + { + fputs ("/proc/mtrr not found: not supported or you don't have a PPro?\n", + stderr); + exit (3); + } + fprintf (stderr, "Error opening /proc/mtrr\t%s\n", ERRSTRING); + exit (4); + } + if (ioctl (fd, MTRRIOC_ADD_ENTRY, &sentry) == -1) + { + fprintf (stderr, "Error doing ioctl(2) on /dev/mtrr\t%s\n", ERRSTRING); + exit (5); + } + fprintf (stderr, "Sleeping for 5 seconds so you can see the new entry\n"); + sleep (5); + close (fd); + fputs ("I've just closed /proc/mtrr so now the new entry should be gone\n", + stderr); +} /* End Function main */ +=============================================================================== diff -ur --new-file old/linux/Documentation/networking/00-INDEX new/linux/Documentation/networking/00-INDEX --- old/linux/Documentation/networking/00-INDEX Sun Feb 2 14:18:29 1997 +++ new/linux/Documentation/networking/00-INDEX Thu May 21 03:54:34 1998 @@ -2,8 +2,14 @@ - this file 3c505.txt - information on the 3Com EtherLink Plus (3c505) driver. +6pack.txt + - info on the 6pack protocol, an alternative to KISS for AX.25 Configurable - info on some of the configurable network parameters +DLINK.txt + - info on the D-Link DE-600/DE-620 parallel port pocket adapters +PLIP.txt + - PLIP: The Parallel Line Internet Protocol device driver alias.txt - info on using alias network devices arcnet-hardware.txt @@ -12,30 +18,73 @@ - info on the using the arcnet driver itself. ax25.txt - info on using AX.25 and NET/ROM code for Linux +baycom.txt + - info on the driver for Baycom style amateur radio modems +cops.txt + - info on the COPS LocalTalk Linux driver +cs89x0.txt + - the Crystal LAN (CS8900/20-based) Ethernet ISA adapter driver +de4x5.txt + - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver +depca.txt + - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver +dgrs.txt + - the Digi International RightSwitch SE-X Ethernet driver +eql.txt + - serial IP load balancing +ethertap.txt + - the Ethertap user space packet reception and transmission driver +ewrk3.txt + - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver +filter.txt + - Linux Socket Filtering framerelay.txt - info on using Frame Relay/Data Link Connection Identifier (DLCI). +ip-sysctl.txt + - /proc/sys/net/ipv4/* variables +ip_dynaddr.txt + - IP dynamic address hack e.g. for auto-dialup links +ipddp.txt + - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation lapb-module.txt - - programming information on the LAPB module. + - programming information of the LAPB module. +ltpc.txt + - the Apple or Farallon LocalTalk PC card driver +multicast.txt + - Behaviour of cards under Multicast ncsa-telnet - notes on how NCSA telnet (DOS) breaks with MTU discovery enabled. net-modules.txt - info and "insmod" parameters for all network driver modules. +policy-routing.txt + - IP policy-based routing ppp.txt - info on what software you should use to run PPP. +pt.txt + - the Gracilis Packetwin AX.25 device driver +routing.txt + - the new routing mechanism shaper.txt - info on the module that can shape/limit transmitted traffic. +smc9.txt + - the driver for SMC's 9000 series of Ethernet cards +soundmodem.txt + - Linux driver for soundcards as AX.25 modems tcp.txt - short blurb on how TCP output takes place. tulip.txt - - info on using DEC 21040/21041/21140 based PCI ethernet cards. + - info on using DEC 21040/21041/21140 based PCI Ethernet cards. vortex.txt - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) e'net cards. wan-router.txt - Wan router documentation +wanpipe.txt + - WANPIPE(tm) Multiprotocol WAN Driver for Linux WAN Router +wavelan.txt + - AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver x25.txt - general info on X.25 development. x25-iface.txt - description of the X.25 Packet Layer to LAPB device interface. z8530drv.txt - info about Linux driver for Z8530 based HDLC cards for AX.25 - diff -ur --new-file old/linux/Documentation/networking/6pack.txt new/linux/Documentation/networking/6pack.txt --- old/linux/Documentation/networking/6pack.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/6pack.txt Tue Apr 28 23:22:04 1998 @@ -0,0 +1,175 @@ +This is the 6pack-mini-HOWTO, written by + +Andreas Könsgen DG3KQ +Internet: ajk@iehk.rwth-aachen.de +AMPR-net: dg3kq@db0pra.ampr.org +AX.25: dg3kq@db0ach.#nrw.deu.eu + +Last update: April 7, 1998 + +1. What is 6pack, and what are the advantages to KISS? + +6pack is a transmission protocol for data exchange between the PC and +the TNC over a serial line. It can be used as an alternative to KISS. + +6pack has two major advantages: +- The PC is given full control over the radio + channel. Special control data is exchanged between the PC and the TNC so + that the PC knows at any time if the TNC is receiving data, if a TNC + buffer underrun or overrun has occured, if the PTT is + set and so on. This control data is processed at a higher priority than + normal data, so a data stream can be interrupted at any time to issue an + important event. This helps to improve the channel access and timing + algorithms as everything is computed in the PC. It would even be possible + to experiment with something completely different from the known CSMA and + DAMA channel access methods. + This kind of real-time control is especially important to supply several + TNCs that are connected between each other and the PC by a daisy chain + (however, this feature is not supported yet by the Linux 6pack driver). + +- Each packet transferred over the serial line is supplied with a checksum, + so it is easy to detect errors due to problems on the serial line. + Received packets that are corrupt are not passed on to the AX.25 layer. + Damaged packets that the TNC has received from the PC are not transmitted. + +More details about 6pack are described in the file 6pack.ps that is located +in the doc directory of the AX.25 utilities package. + +2. Who has developed the 6pack protocol? + +The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech +DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and +Matthias Welwarsky DG2FEF, comes along with the PC version of FlexNet. +They have also written a firmware for TNCs to perform the 6pack +protocol (see section 4 below). + +3. Where can I get the latest version of 6pack for LinuX? + +At the moment, the 6pack stuff can obtained via anonymous ftp from +db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq, +there is a file named 6pack.tgz. + +4. Preparing the TNC for 6pack operation + +To be able to use 6pack, a special firmware for the TNC is needed. The EPROM +of a newly bought TNC does not contain 6pack, so you will have to +program an EPROM yourself. The image file for 6pack EPROMs should be +available on any packet radio box where PC/FlexNet can be found. The name of +the file is 6pack.bin. This file is copyrighted and maintained by the FlexNet +team. It can be used under the terms of the license that comes along +with PC/FlexNet. Please do not ask me about the internals of this file as I +don't know anything about it. I used a textual description of the 6pack +protocol to program the Linux driver. + +TNCs contain a 64kByte EPROM, the lower half of which is used for +the firmware/KISS. The upper half is either empty or is sometimes +programmed with software called TAPR. In the latter case, the TNC +is supplied with a DIP switch so you can easily change between the +two systems. When programming a new EPROM, one of the systems is replaced +by 6pack. It is useful to replace TAPR, as this software is rarely used +nowadays. If your TNC is not equipped with the switch mentioned above, you +can build in one yourself that switches over the highest address pin +of the EPROM between HIGH and LOW level. After having inserted the new EPROM +and switched to 6pack, apply power to the TNC for a first test. The connect +and the status LED are lit for about a second if the firmware initialises +the TNC correctly. + +5. Building and installing the 6pack driver + +The driver has been tested with kernel version 2.1.90. Use with older +kernels may lead to a compilation error because the interface to a kernel +function has been changed in the 2.1.8x kernels. + +How to turn on 6pack support: + +- In the linux kernel configuration program, select the code maturity level + options menu and turn on the prompting for development drivers. + +- Select the amateur radio support menu and turn on the serial port 6pack + driver. + +- Compile and install the kernel and the modules. + +To use the driver, the kissattach program delivered with the AX.25 utilities +has to be modified. + +- Do a cd to the directory that holds the kissattach sources. Edit the + kissattach.c file. At the top, insert the following lines: + + #ifndef N_6PACK + #define N_6PACK (N_AX25+1) + #endif + + Then find the line + + int disc = N_AX25; + + and replace N_AX25 by N_6PACK. + +- Recompile kissattach. Rename it to spattach to avoid confusions. + +Installing the driver: + +- Do an insmod 6pack. Look at your /var/log/messages file to check if the + module has printed its initialization message. + +- Do a spattach as you would launch kissattach when starting a KISS port. + Check if the kernel prints the message '6pack: TNC found'. + +- From here, everything should work as if you were setting up a KISS port. + The only difference is that the network device that represents + the 6pack port is called sp instead of sl or ax. So, sp0 would be the + first 6pack port. + +Although the driver has been tested on various platforms, I still declare it +ALPHA. BE CAREFUL! Sync your disks before insmoding the 6pack module +and spattaching. Watch out if your computer behaves strangely. Read section +6 of this file about known problems. + +Note that the connect and status LEDs of the TNC are controlled in a +different way than they are when the TNC is used with PC/FlexNet. When using +FlexNet, the connect LED is on if there is a connection; the status LED is +on if there is data in the buffer of the PC's AX.25 engine that has to be +transmitted. Under Linux, the 6pack layer is beyond the AX.25 layer, +so the 6pack driver doesn't know anything about connects or data that +has not yet been transmitted. Therefore the LEDs are controlled +as they are in KISS mode: The connect LED is turned on if data is transferred +from the PC to the TNC over the serial line, the status LED if data is +sent to the PC. + +6. Known problems + +When testing the driver with 2.0.3x kernels and +operating with data rates on the radio channel of 9600 Baud or higher, +the driver may, on certain systems, sometimes print the message '6pack: +bad checksum', which is due to data loss if the other station sends two +or more subsequent packets. I have been told that this is due to a problem +with the serial driver of 2.0.3x kernels. I don't know yet if the problem +still exists with 2.1.x kernels, as I have heard that the serial driver +code has been changed with 2.1.x. + +When shutting down the sp interface with ifconfig, the kernel crashes if +there is still an AX.25 connection left over which an IP connection was +running, even if that IP connection is already closed. The problem does not +occur when there is a bare AX.25 connection still running. I don't know if +this is a problem of the 6pack driver or something else in the kernel. + +The driver has been tested as a module, not yet as a kernel-builtin driver. + +The 6pack protocol supports daisy-chaining of TNCs in a token ring, which is +connected to one serial port of the PC. This feature is not implemented +and at least at the moment I won't be able to do it because I do not have +the opportunity to build a TNC daisy-chain and test it. + +Some of the comments in the source code are inaccurate. They are left from +the SLIP/KISS driver, from which the 6pack driver has been derived. +I haven't modified or removed them yet -- sorry! The code itself needs +some cleaning and optimizing. This will be done in a later release. + +If you encounter a bug or if you have a question or suggestion concerning the +driver, feel free to mail me, using the adresses given at the beginning of +this file. + +Have fun! + +Andreas diff -ur --new-file old/linux/Documentation/networking/DLINK.txt new/linux/Documentation/networking/DLINK.txt --- old/linux/Documentation/networking/DLINK.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/DLINK.txt Thu May 21 03:54:34 1998 @@ -52,7 +52,7 @@ 3. FILES IN THIS RELEASE. README.DLINK This file. - de600.c The Source (,may it be with You :-) for the DE-600 + de600.c The Source (may it be with You :-) for the DE-600 de620.c ditto for the DE-620 de620.h Macros for de620.c @@ -72,13 +72,13 @@ o Get the latest net binaries, according to current net.wisdom. - o Read the NET-2 and Ethernet HOWTO's and modify your setup. + o Read the NET-2 and Ethernet HOWTOs and modify your setup. o If your parallel port has a strange address or irq, modify "linux/drivers/net/CONFIG" accordingly, or adjust the parameters in the "tuning" section in the sources. - If you are going to use the drivers a loadable modules, do _not_ + If you are going to use the drivers as loadable modules, do _not_ enable them while doing "make config", but instead make sure that the drivers are included in "linux/drivers/net/MODULES". diff -ur --new-file old/linux/Documentation/networking/PLIP.txt new/linux/Documentation/networking/PLIP.txt --- old/linux/Documentation/networking/PLIP.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/PLIP.txt Thu May 21 03:54:34 1998 @@ -29,11 +29,11 @@ It's cheap, it's available everywhere, and it's easy. The PLIP cable is all that's needed to connect two Linux boxes, and it -can be build for very few bucks. +can be built for very few bucks. -Connecting two Linux boxes takes only a seconds decision and a few -minutes work, no need to search for a [supported] netcard. This might -even be especially important in the case of notebooks, where netcard +Connecting two Linux boxes takes only a second's decision and a few +minutes' work, no need to search for a [supported] netcard. This might +even be especially important in the case of notebooks, where netcards are not easily available. Not requiring a netcard also means that apart from connecting the @@ -45,13 +45,13 @@ Doesn't work over a modem, like SLIP and PPP. Limited range, 15 m. Can only be used to connect three (?) Linux boxes. Doesn't connect to -an exiting ethernet. Isn't standard (not even de facto standard, like +an existing Ethernet. Isn't standard (not even de facto standard, like SLIP). Performance ========== -PLIP easily outperforms ethernet cards....(ups, I was dreaming, but +PLIP easily outperforms Ethernet cards....(ups, I was dreaming, but it *is* getting late. EOB) PLIP hardware interconnection @@ -150,7 +150,8 @@ To start a transfer the transmitting machine outputs a nibble 0x08. The raises the ACK line, triggering an interrupt in the receiving -machine. The receiving machine disables +machine. The receiving machine disables interrupts and raises its own ACK +line. Restated: diff -ur --new-file old/linux/Documentation/networking/alias.txt new/linux/Documentation/networking/alias.txt --- old/linux/Documentation/networking/alias.txt Sun Mar 1 23:40:39 1998 +++ new/linux/Documentation/networking/alias.txt Tue Apr 28 23:22:04 1998 @@ -11,7 +11,7 @@ 200.1.1.1 alias for eth0 ... # ifconfig eth0:0 200.1.1.1 etc,etc.... - ~~ -> request alias #0 creation (if it not exists) for eth0 + ~~ -> request alias #0 creation (if not yet exists) for eth0 and routing stuff also ... # route add -host 200.1.1.1 dev eth0:0 (if same IP network as main device) @@ -28,7 +28,7 @@ Alias (re-)configuring - Aliases are no real devices, but should be able to configure and + Aliases are not real devices, but programs` should be able to configure and refer to them as usual (ifconfig, route, etc). Relationship with main device diff -ur --new-file old/linux/Documentation/networking/arcnet-hardware.txt new/linux/Documentation/networking/arcnet-hardware.txt --- old/linux/Documentation/networking/arcnet-hardware.txt Thu Sep 4 22:25:28 1997 +++ new/linux/Documentation/networking/arcnet-hardware.txt Thu May 21 03:54:34 1998 @@ -17,11 +17,11 @@ INTRODUCTION TO ARCNET ---------------------- -ARCnet is a network type which works in a way similar to popular "ethernet" +ARCnet is a network type which works in a way similar to popular Ethernet networks but which is also different in some very important ways. First of all, you can get ARCnet cards in at least two speeds: 2.5Mbps -(slower than ethernet) and 100Mbps (faster than normal ethernet). In fact, +(slower than Ethernet) and 100Mbps (faster than normal Ethernet). In fact, there are others as well, but these are less common. The different hardware types, as far as I'm aware, are not compatible and so you cannot wire a 100Mbps card to a 2.5Mbps card, and so on. From what I hear, my driver does @@ -29,7 +29,7 @@ since I only have the 2.5Mbps variety. It is probably not going to saturate your 100Mbps card. Stop complaining :) -You also cannot connect an ARCnet card to any kind of ethernet card and +You also cannot connect an ARCnet card to any kind of Ethernet card and expect it to work. There are two "types" of ARCnet - STAR topology and BUS topology. This @@ -41,7 +41,7 @@ Once you get past these little stumbling blocks, ARCnet is actually quite a well-designed standard. It uses something called "modified token passing" which makes it completely incompatible with so-called "Token Ring" cards, -but which makes transfers much more reliable than ethernet does. In fact, +but which makes transfers much more reliable than Ethernet does. In fact, ARCnet will guarantee that a packet arrives safely at the destination, and even if it can't possibly be delivered properly (ie. because of a cable break, or because the destination computer does not exist) it will at least @@ -53,9 +53,9 @@ In addition, all known ARCnet cards have an (almost) identical programming interface. This means that with one "arcnet" driver you can support any -card; whereas, with ethernet, each manufacturer uses what is sometimes a +card; whereas, with Ethernet, each manufacturer uses what is sometimes a completely different programming interface, leading to a lot of different, -sometimes very similar, ethernet drivers. Of course, always using the same +sometimes very similar, Ethernet drivers. Of course, always using the same programming interface also means that when high-performance hardware facilities like PCI busmastering DMA appear, it's hard to take advantage of them. Let's not go into that. @@ -63,10 +63,10 @@ One thing that makes ARCnet cards difficult to program for, however, is the limit on their packet sizes; standard ARCnet can only send packets that are up to 508 bytes in length. This is smaller than the internet "bare minimum" -of 576 bytes, let alone the ethernet MTU of 1500. To compensate, an extra +of 576 bytes, let alone the Ethernet MTU of 1500. To compensate, an extra level of encapsulation is defined by RFC1201, which I call "packet splitting," that allows "virtual packets" to grow as large as 64K each, -although they are generally kept down to the ethernet-style 1500 bytes. +although they are generally kept down to the Ethernet-style 1500 bytes. For more information on the advantages and disadvantages (mostly the advantages) of ARCnet networks, you might try the "ARCnet Trade Association" @@ -319,7 +319,7 @@ - Avery's favourite: 0xD0000 - the station address: Every ARCnet card has its own "unique" network - address from 0 to 255. Unlike ethernet, you can set this address + address from 0 to 255. Unlike Ethernet, you can set this address yourself with a jumper or switch (or on some cards, with special software). Since it's only 8 bits, you can only have 254 ARCnet cards on a network. DON'T use 0 or 255, since these are reserved (although @@ -1169,7 +1169,7 @@ DIP Switches: - The dipswitches accessible on the accessible end of the card while + The DIP switches accessible on the accessible end of the card while it is installed, is used to set the arcnet address. There are 8 switches. Use an address from 1 to 254. @@ -1184,7 +1184,7 @@ 11111110 1 11111111 0 (Don't use this!) - There is another dipswitch array of 8 switches at the top of the + There is another array of eight DIP switches at the top of the card. There are five labelled MS0-MS4 which seem to control the memory address, and another three labelled IO0-IO2 which seem to control the base I/O address of the card. diff -ur --new-file old/linux/Documentation/networking/arcnet.txt new/linux/Documentation/networking/arcnet.txt --- old/linux/Documentation/networking/arcnet.txt Thu Sep 4 22:25:28 1997 +++ new/linux/Documentation/networking/arcnet.txt Thu May 21 03:54:34 1998 @@ -216,10 +216,10 @@ Go read the NET-2-HOWTO and ETHERNET-HOWTO for Linux; they should be available where you picked up this driver. Think of your ARCnet as a -souped-up (or down, as the case may be) ethernet card. +souped-up (or down, as the case may be) Ethernet card. By the way, be sure to change all references from "eth0" to "arc0" in the -HOWTOs. Remember that ARCnet isn't a "true" ethernet, and the device name +HOWTOs. Remember that ARCnet isn't a "true" Ethernet, and the device name is DIFFERENT. @@ -245,7 +245,7 @@ How do I get it to work with...? -------------------------------- -NFS: Should be fine linux->linux, just pretend you're using ethernet cards. +NFS: Should be fine linux->linux, just pretend you're using Ethernet cards. oak.oakland.edu:/simtel/msdos/nfs has some nice DOS clients. There is also a DOS-based NFS server called SOSS. It doesn't multitask quite the way Linux does (actually, it doesn't multitask AT ALL) but @@ -271,7 +271,7 @@ LAN Manager and Windows for Workgroups: These programs use protocols that are incompatible with the internet standard. They try to pretend - the cards are ethernet, and confuse everyone else on the network. + the cards are Ethernet, and confuse everyone else on the network. However, v2.00 and higher of the Linux ARCnet driver supports this protocol via the 'arc0e' device. See the section on "Multiprotocol diff -ur --new-file old/linux/Documentation/networking/baycom.txt new/linux/Documentation/networking/baycom.txt --- old/linux/Documentation/networking/baycom.txt Tue Aug 5 18:49:50 1997 +++ new/linux/Documentation/networking/baycom.txt Tue Apr 28 23:22:04 1998 @@ -43,7 +43,7 @@ simple. Once installed, four interfaces named bc[0-3] are available. sethdlc from the ax25 utilities may be used to set driver states etc. Users of userland AX.25 stacks may use the net2kiss utility (also available -in the ax25 utilities package) to converts packets of a network interface +in the ax25 utilities package) to convert packets of a network interface to a KISS stream on a pseudo tty. There's also a patch available from me for WAMPES which allows attaching a kernel network interface directly. @@ -72,7 +72,7 @@ the software DCD algorithm (see below). The channel access parameters can be set with sethdlc -a or kissparms. -Note that both utilities interpret the values slightly different. +Note that both utilities interpret the values slightly differently. Hardware DCD versus Software DCD @@ -93,7 +93,7 @@ feeds the DCD input of the PAR96 modem, the use of the hardware DCD circuitry is recommended. -picpar: the picpar modem features a builtin DCD hardware, which is highly +picpar: the picpar modem features builtin DCD hardware, which is highly recommended. diff -ur --new-file old/linux/Documentation/networking/cops.txt new/linux/Documentation/networking/cops.txt --- old/linux/Documentation/networking/cops.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/cops.txt Tue Apr 28 23:22:04 1998 @@ -1,12 +1,12 @@ Text File for the COPS LocalTalk Linux driver (cops.c). By Jay Schulist -This driver has teo modes and they are: Dayna mode and Tangent mode. +This driver has two modes and they are: Dayna mode and Tangent mode. Each mode corresponds with the type of card. It has been found that there are 2 main types of cards and all other cards are the same and just have different names or only have minor differences such as more IO ports. As this driver is tested it will -become more clear on exactly what cards are supported. +become more clear exactly what cards are supported. Right now these cards are known to work with the COPS driver. The LT-200 cards work in a somewhat more limited capacity than the @@ -20,8 +20,8 @@ Other cards possibly supported mode unkown though: Dayna DL2000 (Full length) -The COPS driver defaults to using Dayna mode. To change the drivers -mode if you build a driver with a dual support use board_type=1 or +The COPS driver defaults to using Dayna mode. To change the driver's +mode if you built a driver with dual support use board_type=1 or board_type=2 for Dayna or Tangent with insmod. ** Operation/loading of the driver. @@ -52,12 +52,12 @@ dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033" lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033" -* For multiple cards, Ethernet and Localtalk. +* For multiple cards, Ethernet and LocalTalk. eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033" lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033" * For multiple LocalTalk cards, and an Ethernet card. -* Order seems to matters here, Ethernet last. +* Order seems to matter here, Ethernet last. lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1" lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2" eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk" diff -ur --new-file old/linux/Documentation/networking/cs89x0.txt new/linux/Documentation/networking/cs89x0.txt --- old/linux/Documentation/networking/cs89x0.txt Sun Feb 2 14:18:29 1997 +++ new/linux/Documentation/networking/cs89x0.txt Thu May 21 03:54:34 1998 @@ -40,22 +40,6 @@ 6.3.2 Crystal's Bulletin Board Service -8.3 OBTAINING THE LATEST DRIVER VERSION - -You can obtain the latest CS89XX drivers and support software from Crystal's -BBS or Web site. - - -8.3.1 CRYSTAL'S WEB SITE - -Crystal Semiconductor maintains a web page at http://www.crystal.com with the -the latest drivers and technical publications. - - -8.3.2 CRYSTAL'S BULLETIN BOARD SERVICE - - - 1.0 CRYSTAL LAN CS8900/CS8920 ETHERNET ADAPTERS =============================================================================== @@ -88,7 +72,7 @@ 1.2.2 Files in the Driver Archive: readme.txt - this file - release.txt - known defects and modifcation log + release.txt - known defects and modification log cs89x0.c - driver C code cs89x0.h - driver header file cs89x0.o - pre-compiled module (for v2.0 kernel) @@ -172,7 +156,7 @@ 10BASE-T (10BASE-T only adapter) You should only change the default configuration settings if conflicts with -another adapter exists. To change the adapter's configuration, run the +another adapter exist. To change the adapter's configuration, run the CS8900/20 Setup Utility. @@ -212,7 +196,7 @@ insmod cs89x0.o io=0x200 irq=0xA media=aui -This exmaple loads the module and configures the adapter to use an IO port base +This example loads the module and configures the adapter to use an IO port base address of 200h, interrupt 10, and use the AUI media connection. The following configuration options are available on the command line: @@ -251,7 +235,7 @@ * irq * media type (no autodetect) -The following addtional parameters are CS89XX defaults (values used with no +The following additional parameters are CS89XX defaults (values used with no EEPROM or command-line argument). * DMA Burst = enabled @@ -388,7 +372,7 @@ 5.1 KNOWN DEFECTS and LIMITATIONS Refer to the RELEASE.TXT file distributed as part of this archive for a list of -know defects, driver limitations, and work arounds. +known defects, driver limitations, and work arounds. 5.2 TESTING THE ADAPTER @@ -561,8 +545,8 @@ 12 Mouse (PS/2) Memory Address Device 13 Math Coprocessor -------------- --------------------- 14 Hard Disk controller -A000-BFFF EGA Graphics Adpater -A000-C7FF VGA Graphics Adpater +A000-BFFF EGA Graphics Adapter +A000-C7FF VGA Graphics Adapter B000-BFFF Mono Graphics Adapter B800-BFFF Color Graphics Adapter E000-FFFF AT BIOS diff -ur --new-file old/linux/Documentation/networking/de4x5.txt new/linux/Documentation/networking/de4x5.txt --- old/linux/Documentation/networking/de4x5.txt Mon Dec 22 07:37:32 1997 +++ new/linux/Documentation/networking/de4x5.txt Thu May 21 03:54:34 1998 @@ -1,5 +1,5 @@ Originally, this driver was written for the Digital Equipment - Corporation series of EtherWORKS ethernet cards: + Corporation series of EtherWORKS Ethernet cards: DE425 TP/COAX EISA DE434 TP PCI @@ -82,7 +82,7 @@ To unload a module, turn off the associated interface(s) 'ifconfig eth?? down' then 'rmmod de4x5'. - Automedia detection is included so that in principal you can disconnect + Automedia detection is included so that in principle you can disconnect from, e.g. TP, reconnect to BNC and things will still work (after a pause whilst the driver figures out where its media went). My tests using ping showed that it appears to work.... @@ -118,7 +118,7 @@ debt to for the testing and feedback that helped get this feature working. So far we have tested KINGSTON, SMC8432, SMC9332 (with the latest SROM complying with the SROM spec V3: their first was - broken), ZNYX342 and LinkSys. ZYNX314 (dual 21041 MAC) and ZNYX 315 + broken), ZNYX342 and LinkSys. ZNYX314 (dual 21041 MAC) and ZNYX 315 (quad 21041 MAC) cards also appear to work despite their incorrectly wired IRQs. diff -ur --new-file old/linux/Documentation/networking/dgrs.txt new/linux/Documentation/networking/dgrs.txt --- old/linux/Documentation/networking/dgrs.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/dgrs.txt Thu May 21 03:54:34 1998 @@ -1,7 +1,7 @@ The Digi Intl. RightSwitch SE-X (dgrs) Device Driver This is a Linux driver for the Digi International RightSwitch SE-X -EISA and PCI boards. These are 4 (EISA) or 6 (PCI) port ethernet +EISA and PCI boards. These are 4 (EISA) or 6 (PCI) port Ethernet switches and a NIC combined into a single board. This driver can be compiled into the kernel statically or as a loadable module. diff -ur --new-file old/linux/Documentation/networking/eql.txt new/linux/Documentation/networking/eql.txt --- old/linux/Documentation/networking/eql.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/eql.txt Thu May 21 03:54:34 1998 @@ -15,7 +15,7 @@ 1. Introduction Which is worse? A huge fee for a 56K leased line or two phone lines? - Its probably the former. If you find yourself craving more bandwidth, + It's probably the former. If you find yourself craving more bandwidth, and have a ISP that is flexible, it is now possible to bind modems together to work as one point-to-point link to increase your bandwidth. All without having to have a special black box on either @@ -33,7 +33,7 @@ TCP implementation is pretty fast though.--) - I suggest to ISP's out there that it would probably be fair to charge + I suggest to ISPs out there that it would probably be fair to charge a load-balancing client 75% of the cost of the second line and 50% of the cost of the third line etc... @@ -64,7 +64,7 @@ -rw-r--r-- guru/ncm 2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c ______________________________________________________________________ - Unpack a recent kernel (something after 1.1.92) Someplace convenient + Unpack a recent kernel (something after 1.1.92) someplace convenient like say /usr/src/linux-1.1.92.eql. Use symbolic links to point /usr/src/linux to this development directory. @@ -250,13 +250,13 @@ One version of the scheduler was able to push 5.3 K/s through the 28800 and 14400 connections, but when the priorities on the links were - very wide apart (57600 vs. 14400) The "faster" modem received all + very wide apart (57600 vs. 14400) the "faster" modem received all traffic and the "slower" modem starved. - 5. Tester's Reports + 5. Testers' Reports - Some people have experimented with the eql device with newer kernels + Some people have experimented with the eql device with newer kernels (than 1.1.75). I have since updated the driver to patch cleanly in newer kernels because of the removal of the old "slave- balancing" driver config option. @@ -469,7 +469,7 @@ I've installed your patch and it works great. I have trialed it over twin SL/IP lines, just over null modems, but I was able to data at over 48Kb/s [ISDN link -Simon]. I managed a - transfer of upto 7.5 Kbyte/s on one go, but averaged around + transfer of up to 7.5 Kbyte/s on one go, but averaged around 6.4 Kbyte/s, which I think is pretty cool. :) diff -ur --new-file old/linux/Documentation/networking/ethertap.txt new/linux/Documentation/networking/ethertap.txt --- old/linux/Documentation/networking/ethertap.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/ethertap.txt Thu May 21 03:54:34 1998 @@ -7,15 +7,15 @@ ============ Ethertap provides packet reception and transmission for user -space programs. It can be viewed as a simple ethernet device, -which instead of recieving packets from a network wire, it recieves +space programs. It can be viewed as a simple Ethernet device, +which instead of receiving packets from a network wire, it receives them from user space. -Ethertap can be used for anything from Appletalk to IPX to even +Ethertap can be used for anything from AppleTalk to IPX to even building bridging tunnels. It also has many other general purpose uses. -Ethertap also can do ARP for you. Although this is not enabled per +Ethertap also can do ARP for you, although this is not enabled by default. SetUp @@ -36,7 +36,7 @@ If you want your Ethertap device to ARP for you would ifconfig the interface like this: ifconfig tap* 192.168.1.1 arp -Remember that the you need to have a corresponding /dev/tap* file +Remember that you need to have a corresponding /dev/tap* file for each tap* device you need to ifconfig. Now Ethertap should be ready to use. @@ -65,7 +65,7 @@ C code for a Simple program using an EtherTap device ==================================================== -This code is just excepts from a real program, so some parts are missing +This code is just excerpts from a real program, so some parts are missing but the important stuff is below. void main (void) diff -ur --new-file old/linux/Documentation/networking/ewrk3.txt new/linux/Documentation/networking/ewrk3.txt --- old/linux/Documentation/networking/ewrk3.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/ewrk3.txt Thu May 21 03:54:34 1998 @@ -35,9 +35,9 @@ 'ifconfig eth?? down' then 'rmmod ewrk3'. The performance we've achieved so far has been measured through the 'ttcp' -tool at 975kB/s. This measures the total tcp stack performance which +tool at 975kB/s. This measures the total TCP stack performance which includes the card, so don't expect to get much nearer the 1.25MB/s -theoretical ethernet rate. +theoretical Ethernet rate. Enjoy! diff -ur --new-file old/linux/Documentation/networking/filter.txt new/linux/Documentation/networking/filter.txt --- old/linux/Documentation/networking/filter.txt Mon Dec 29 19:22:43 1997 +++ new/linux/Documentation/networking/filter.txt Fri Jun 5 07:53:50 1998 @@ -15,19 +15,19 @@ (BPF), so refering to the BSD bpf.4 manpage is very helpful in creating filters. -LSF is much simpler that BPF. One does not have to worry about +LSF is much simpler than BPF. One does not have to worry about devices or anything like that. You simply create your filter code, send it to the kernel via the SO_ATTACH_FILTER ioctl and -if you filter code passes the kernel check on it, you then +if your filter code passes the kernel check on it, you then immediately begin filtering data on that socket. You can also detach filters from your socket via the SO_DETACH_FILTER ioctl. This will probably not be used much since when you close a socket that has a filter on it the -filter is automagicly removed. The other less common case -may be adding a differnt filter on the same socket you had another -filter that is still running, the kernel takes care of removing -the old one and placing your new one in its place, assumming your +filter is automagically removed. The other less common case +may be adding a different filter on the same socket where you had another +filter that is still running: the kernel takes care of removing +the old one and placing your new one in its place, assuming your filter has passed the checks, otherwise if it fails the old filter will remain on that socket. diff -ur --new-file old/linux/Documentation/networking/ip-sysctl.txt new/linux/Documentation/networking/ip-sysctl.txt --- old/linux/Documentation/networking/ip-sysctl.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/ip-sysctl.txt Thu May 14 19:26:22 1998 @@ -1,8 +1,10 @@ -/proc/sys/net/ipv4/* variables: +/proc/sys/net/ipv4/* Variables: -ip_forwarding - "SNMP" BOOLEAN - 2 - disabled (default) - 1 - enabled +ip_forward - BOOLEAN + 0 - disabled (default) + not 0 - enabled + + Forward Packets between interfaces. This variable is special, its change resets all configuration parameters to their default state (RFC1122 for hosts, RFC1812 @@ -11,32 +13,11 @@ ip_default_ttl - INTEGER default 64 -ip_log_martians - BOOLEAN - log packets with strange or impossible addresses. - default TRUE (router) - FALSE (host) - -ip_accept_redirects - BOOLEAN - Accept ICMP redirect messages. - default TRUE (host) - FALSE (router) - -ip_secure_redirects - BOOLEAN - Accept ICMP redirect messages only for gateways, - listed in default gateway list. - default TRUE - ip_addrmask_agent - BOOLEAN Reply to ICMP ADDRESS MASK requests. default TRUE (router) FALSE (host) -ip_rfc1620_redirects - BOOLEAN - Send(router) or accept(host) RFC1620 shared media redirects. - Overrides ip_secure_redirects. - default TRUE (should be FALSE for distributed version, - but I use it...) - ip_bootp_agent - BOOLEAN Accept packets with source address of sort 0.b.c.d and destined to this host, broadcast or multicast. @@ -44,46 +25,10 @@ default FALSE -ip_bootp_relay - BOOLEAN - Accept packets with source address 0.b.c.d destined - not to this host as local ones. It is supposed, that - BOOTP relay deamon will catch and forward such packets. - - default FASLE - Not Implemented Yet. - - -ip_source_route - BOOLEAN - Accept packets with SRR option. - default TRUE (router) - FALSE (host) - - ip_no_pmtu_disc - BOOLEAN Disable Path MTU Discovery. default FALSE -ip_rfc1812_filter - INTEGER - 2 - do source validation by reversed path, as specified in RFC1812 - Recommended option for single homed hosts and stub network - routers. Could cause troubles for complicated (not loop free) - networks running a slow unreliable protocol (sort of RIP), - or using static routes. - - 1 - (DEFAULT) Weaker form of RP filtering: drop all the packets - that look as sourced at a directly connected interface, but - were input from another interface. - - 0 - No source validation. - - NOTE: do not disable this option! All BSD derived routing software - (sort of gated, routed etc. etc.) is confused by such packets, - even if they are valid. - - NOTE: this option is turned on per default only when ip_forwarding - is on. For non-forwarding hosts it doesn't make much sense and - makes some legal multihoming configurations impossible. - ip_fib_model - INTEGER 0 - (DEFAULT) Standard model. All routes are in class MAIN. 1 - default routes go to class DEFAULT. This mode should @@ -110,7 +55,7 @@ tcp_syn_retries - INTEGER Number of times initial SYNs for an TCP connection attempt will - be retransmitted. Should not be higher that 255. + be retransmitted. Should not be higher than 255. tcp_keepalive_time - INTEGER How often TCP sends out keepalive messages when keepalive is enabled. @@ -125,6 +70,7 @@ tcp_max_delay_acks - INTEGER tcp_fin_timeout - INTEGER tcp_max_ka_probes - INTEGER +tcp_hoe_retransmits - INTEGER Undocumented for now. tcp_syncookies - BOOLEAN @@ -143,6 +89,20 @@ tcp_max_syn_backlog - INTEGER Undocumented (work in progress) +tcp_window_scaling - BOOLEAN + Enable window scaling as defined in RFC1323. + +tcp_timestamps - BOOLEAN + Enable timestamps as defined in RFC1323. + +tcp_sack - BOOLEAN + Enable select acknowledgements. + +tcp_retrans_collapse - BOOLEAN + Bug-to-bug compatibility with some broken printers. + On retransmit try to send bigger packets to work around bugs in + certain TCP stacks. + ip_local_port_range - 2 INTEGERS Defines the local port range that is used by TCP and UDP to choose the local port. The first number is the first, the @@ -155,10 +115,94 @@ ICMP ECHO requests sent to it or just those to broadcast/multicast addresses, respectively. +icmp_destunreach_rate - INTEGER +icmp_paramprob_rate - INTEGER +icmp_timeexceed_rate - INTEGER +icmp_echoreply_rate - INTEGER (not enabled per default) + Limit the maximal rates for sending ICMP packets to specifc targets. + 0 to disable any limiting, otherwise the maximal rate in jiffies(1) + See the source for more information. + + +(1) Jiffie: internal timeunit for the kernel. On the i386 1/100s, on the +Alpha 1/1024s. See the HZ define in /usr/include/asm/param.h for the exact +value on your system. + +conf/interface/*: +conf/all/* is special and changes the settings for all interfaces. + Change special settings per interface. + +log_martians - BOOLEAN + Log packets with impossible addresses to kernel log. + +accept_redirects - BOOLEAN + Accept ICMP redirect messages. + default TRUE (host) + FALSE (router) + +forwarding - BOOLEAN + Enable IP forwarding on this interface. + +mc_forwarding - BOOLEAN + Do multicast routing. The kernel needs to be compiled with CONFIG_MROUTE + and a multicast routing daemon is required. + +proxy_arp - BOOLEAN + Do proxy arp. + +shared_media - BOOLEAN + undocumented. + +secure_redirects - BOOLEAN + Accept ICMP redirect messages only for gateways, + listed in default gateway list. + default TRUE + +redirects - BOOLEAN + Send(router) or accept(host) RFC1620 shared media redirects. + Overrides ip_secure_redirects. + default TRUE (should be FALSE for distributed version, + but I use it...) + +bootp_relay - BOOLEAN + Accept packets with source address 0.b.c.d destined + not to this host as local ones. It is supposed, that + BOOTP relay deamon will catch and forward such packets. + + default FALSE + Not Implemented Yet. + +accept_source_route - BOOLEAN + Accept packets with SRR option. + default TRUE (router) + FALSE (host) + +rp_filter - INTEGER + 2 - do source validation by reversed path, as specified in RFC1812 + Recommended option for single homed hosts and stub network + routers. Could cause troubles for complicated (not loop free) + networks running a slow unreliable protocol (sort of RIP), + or using static routes. + + 1 - (DEFAULT) Weaker form of RP filtering: drop all the packets + that look as sourced at a directly connected interface, but + were input from another interface. + + 0 - No source validation. + + NOTE: do not disable this option! All BSD derived routing software + (sort of gated, routed etc. etc.) is confused by such packets, + even if they are valid. When enabled it also prevents ip spoofing + in some limited fashion. + + NOTE: this option is turned on per default only when ip_forwarding + is on. For non-forwarding hosts it doesn't make much sense and + makes some legal multihoming configurations impossible. + Alexey Kuznetsov. kuznet@ms2.inr.ac.ru Updated by: Andi Kleen ak@muc.de -$Id: ip-sysctl.txt,v 1.5 1997/10/17 03:58:23 tdyas Exp $ +$Id: ip-sysctl.txt,v 1.7 1998/05/02 12:05:00 davem Exp $ diff -ur --new-file old/linux/Documentation/networking/ip_dynaddr.txt new/linux/Documentation/networking/ip_dynaddr.txt --- old/linux/Documentation/networking/ip_dynaddr.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/ip_dynaddr.txt Sat Apr 4 03:48:11 1998 @@ -0,0 +1,29 @@ +IP dynamic address hack-port v0.03 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This stuff allows diald ONESHOT connections to get established by +dynamically changing packet source address (and socket's if local procs). +It is implemented for TCP diald-box connections(1) and IP_MASQuerading(2). + +If enabled[*] and forwarding interface has changed: + 1) Socket (and packet) source address is rewritten ON RETRANSMISSIONS + while in SYN_SENT state (diald-box processes). + 2) Out-bounded MASQueraded source address changes ON OUTPUT (when + internal host does retransmission) until a packet from outside is + received by the tunnel. + +This is specially helpful for auto dialup links (diald), where the +``actual'' outgoing address is unknown at the moment the link is +going up. So, the *same* (local AND masqueraded) connections requests that +bring the link up will be able to get established. + +[*] At boot, by default no address rewriting is attempted. + To enable: + # echo 1 > /proc/sys/net/ipv4/ip_dynaddr + To enable verbose mode: + # echo 2 > /proc/sys/net/ipv4/ip_dynaddr + To disable (default) + # echo 0 > /proc/sys/net/ipv4/ip_dynaddr + +Enjoy! + +-- Juanjo diff -ur --new-file old/linux/Documentation/networking/ipddp.txt new/linux/Documentation/networking/ipddp.txt --- old/linux/Documentation/networking/ipddp.txt Mon Dec 22 02:41:24 1997 +++ new/linux/Documentation/networking/ipddp.txt Tue Apr 28 23:22:04 1998 @@ -1,42 +1,42 @@ Text file for ipddp.c: - Appletalk-IP Decapsulation and Appletalk-IP Encapsulation + AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation This text file writen by Jay Schulist Introduction ------------ -Appletalk-IP (IPDDP) is the method computers connected to Appletalk -networks can communicate via IP. Appletalk-IP is simply IP datagrams -inside Appletalk packets. +AppleTalk-IP (IPDDP) is the method computers connected to AppleTalk +networks can use to communicate via IP. AppleTalk-IP is simply IP datagrams +inside AppleTalk packets. Through this driver you can either allow your Linux box to communicate -IP over an Appletalk network or you can provide IP gatewaying functions -for you Appletalk users. +IP over an AppleTalk network or you can provide IP gatewaying functions +for your AppleTalk users. -You can currently Encapsulate or Decapsulate Appletalk-IP on LocalTalk, +You can currently Encapsulate or Decapsulate AppleTalk-IP on LocalTalk, EtherTalk and PPPTalk. The only limit on the protocol is that of what -the kernel Appletalk layer and drivers are available. +kernel AppleTalk layer and drivers are available. Each mode requires its own user space software. -Compiling Appletalk-IP Decapsulation/Encapsulation +Compiling AppleTalk-IP Decapsulation/Encapsulation ================================================= -Appletalk-IP Decapsulation needs to be compiled into your kernel. You +AppleTalk-IP Decapsulation needs to be compiled into your kernel. You will need to turn on Appletalk-IP driver support. Then you will need to -select ONE of the two options; IP to Appletalk-IP Encapsulation support or -Appletalk-IP to IP Decapsulation support. If you compile the driver -staticly you will only be able to use the driver for the function you have +select ONE of the two options; IP to AppleTalk-IP Encapsulation support or +AppleTalk-IP to IP Decapsulation support. If you compile the driver +statically you will only be able to use the driver for the function you have enabled in the kernel. If you compile the driver as a module you can select what mode you want it to run in via a module loading param. -ipddp_mode=1 for Appletalk-IP Encapsulation and ipddp_mode=2 for -Appletalk-IP to IP Decapsulation. +ipddp_mode=1 for AppleTalk-IP Encapsulation and ipddp_mode=2 for +AppleTalk-IP to IP Decapsulation. Basic instructions for user space tools ======================================= -To enable Appletalk-IP Decapsulation/Encapsulation you will need the +To enable AppleTalk-IP Decapsulation/Encapsulation you will need the proper tools. You can get the tools for Decapsulation from http://spacs1.spacs.k12.wi.us/~jschlst/MacGate and for Encapsulation from http://www.maths.unm.edu/~bradford/ltpc.html @@ -46,7 +46,7 @@ Decapsulation - You will need to download a software package called MacGate. In this distribution there will be a tool called MacRoute -which enabled you to add routes to the kernel for your Macs by hand. +which enables you to add routes to the kernel for your Macs by hand. Also the tool MacRegGateWay is included to register the proper IP Gateway and IP addresses for your machine. Included in this distribution is a patch to netatalk-1.4b2+asun2.0a17.2 (available from @@ -55,13 +55,13 @@ for locations with large Mac installations) Encapsulation - You will need to download a software daemon called ipddpd. -This software expects there to be and Appletalk-IP gateway on the network. +This software expects there to be an AppleTalk-IP gateway on the network. You will also need to add the proper routes to route your Linux box's IP traffic out the ipddp interface. Common Uses of ipddp.c ---------------------- -Of course Appletalk-IP Decapsulation and Encapsulation, but specificly +Of course AppleTalk-IP Decapsulation and Encapsulation, but specificly Decapsulation is being used most for connecting LocalTalk networks to IP networks. Although it has been used on EtherTalk networks to allow Macs that are only able to tunnel IP over EtherTalk. @@ -70,9 +70,9 @@ network to use IP. It should work equally well if you are stuck on an EtherTalk only network. -Further Assisatance +Further Assistance ------------------- You can contact me (Jay Schulist ) with any questions reguarding Decapsulation or Encapsulation. Bradford W. Johnson originally wrote the ipddp.c driver for IP -encapsulation in Appletalk. +encapsulation in AppleTalk. diff -ur --new-file old/linux/Documentation/networking/lapb-module.txt new/linux/Documentation/networking/lapb-module.txt --- old/linux/Documentation/networking/lapb-module.txt Thu Jan 2 14:13:24 1997 +++ new/linux/Documentation/networking/lapb-module.txt Thu May 21 03:54:34 1998 @@ -2,11 +2,11 @@ Jonathan Naylor 29.12.96 -The LAPB module will be a seperately compiled module for use by any parts of +The LAPB module will be a separately compiled module for use by any parts of the Linux operating system that require a LAPB service. This document defines the interfaces to, and the services provided by this module. The term module in this context does not imply that the LAPB module is a -seperately loadable module, although it may be. The term module is used in +separately loadable module, although it may be. The term module is used in its more standard meaning. The interface to the LAPB module consists of functions to the module, @@ -73,7 +73,7 @@ and 7 for a standard LAPB link, and between 1 and 127 for an extended LAPB link. -The mode variable is a bit field is used for setting (at present) three values. +The mode variable is a bit field used for setting (at present) three values. The bit fields have the following meanings: Bit Meaning diff -ur --new-file old/linux/Documentation/networking/ltpc.txt new/linux/Documentation/networking/ltpc.txt --- old/linux/Documentation/networking/ltpc.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/ltpc.txt Tue Apr 28 23:22:04 1998 @@ -1,8 +1,8 @@ This is the ALPHA version of the ltpc driver. In order to use it, you will need at least version 1.3.3 of the -netatalk package, and the Apple or Farallon Localtalk PC card. -There are a number of different Localtalk cards for the PC; this +netatalk package, and the Apple or Farallon LocalTalk PC card. +There are a number of different LocalTalk cards for the PC; this driver applies only to the one with the 65c02 processor chip on it. To include it in the kernel, select the CONFIG_LTPC switch in the @@ -20,7 +20,7 @@ at bootup. The appropriate netatalk configuration depends on whether you are -attached to a network that includes appletalk routers or not. If, +attached to a network that includes AppleTalk routers or not. If, like me, you are simply connecting to your home Macintoshes and printers, you need to set up netatalk to "seed". The way I do this is to have the lines @@ -29,14 +29,14 @@ ltalk0 -seed -phase 1 -net 1033 -addr 1033.27 -zone "1033" in my atalkd.conf. What is going on here is that I need to fool -netatalk into thinking that there are two appletalk interfaces +netatalk into thinking that there are two AppleTalk interfaces present -- otherwise it refuses to seed. This is a hack, and a more permanent solution would be to alter the netatalk code. Note that the dummy driver needs to accept multicasts also -- earlier versions of dummy.c may need to be patched. -If you are attached to an extended appletalk network, with routers on +If you are attached to an extended AppleTalk network, with routers on it, then you don't need to fool around with this -- the appropriate line in atalkd.conf is @@ -75,7 +75,7 @@ IP: Many people are interested in this driver in order to use IP -when Localtalk, but no Ethernet, is available. While the code to do +when LocalTalk, but no Ethernet, is available. While the code to do this is not strictly speaking part of this driver, an experimental version is available which seems to work under kernel 2.0.xx. It is not yet functional in the 2.1.xx kernels. diff -ur --new-file old/linux/Documentation/networking/multicast.txt new/linux/Documentation/networking/multicast.txt --- old/linux/Documentation/networking/multicast.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/multicast.txt Fri Jun 5 07:53:50 1998 @@ -1,6 +1,5 @@ Behaviour of cards under Multicast. This is how they currently -behave not what the hardware can do. In particular all the 8390 based -cards don't use the onboard hash filter, and the lance driver doesn't +behave not what the hardware can do - i.e. the lance driver doesn't use its filter, even though the code for loading it is in the DEC lance based driver. @@ -52,6 +51,6 @@ znet YES YES YES Software -PROMISC = This multicasts mode is in fact promiscuous mode. Avoid using +PROMISC = This multicast mode is in fact promiscuous mode. Avoid using cards who go PROMISC on any multicast in a multicast kernel. (#) = Hardware multicast support is not used yet. diff -ur --new-file old/linux/Documentation/networking/net-modules.txt new/linux/Documentation/networking/net-modules.txt --- old/linux/Documentation/networking/net-modules.txt Thu Jun 26 21:33:36 1997 +++ new/linux/Documentation/networking/net-modules.txt Tue Apr 28 23:22:04 1998 @@ -2,31 +2,31 @@ Linux network driver modules - Do not mistake this to "README.modules" at the top-level + Do not mistake this for "README.modules" at the top-level directory! That document tells about modules in general, while this one tells only about network device driver modules. This is a potpourri of INSMOD-time(*) configuration options (if such exists) and their default values of various modules - on Linux network drivers collection. + in the Linux network drivers collection. Some modules have also hidden (= non-documented) tunable values. - Choice of not documenting them is based on general belief, that - the less user needs to know, the better. (There are things that - driver developer can use, others should not confuse themselves.) + The choice of not documenting them is based on general belief, that + the less the user needs to know, the better. (There are things that + driver developers can use, others should not confuse themselves.) In many cases it is highly preferred that insmod:ing is done ONLY with defining an explicit address for the card, AND BY NOT USING AUTO-PROBING! - Now most cards have some explicitly defined base address, they + Now most cards have some explicitly defined base address that they are compiled with (to avoid auto-probing, among other things). If that compiled value does not match your actual configuration, - do use "io=0xXXX" -parameter for the insmod, and give there + do use the "io=0xXXX" -parameter for the insmod, and give there a value matching your environment. If you are adventurous, you can ask the driver to autoprobe - by using "io=0" parameter, however it is potentially dangerous + by using the "io=0" parameter, however it is a potentially dangerous thing to do in a live system. (If you don't know where the card is located, you can try autoprobing, and after possible crash recovery, insmod with proper IO-address..) diff -ur --new-file old/linux/Documentation/networking/policy-routing.txt new/linux/Documentation/networking/policy-routing.txt --- old/linux/Documentation/networking/policy-routing.txt Wed Dec 18 10:45:43 1996 +++ new/linux/Documentation/networking/policy-routing.txt Thu May 14 19:26:22 1998 @@ -1,7 +1,7 @@ Classes ------- - "Class" is complete routing table in common sence. + "Class" is a complete routing table in common sense. I.e. it is tree of nodes (destination prefix, tos, metric) with attached information: gateway, device etc. This tree is looked up as specified in RFC1812 5.2.4.3 @@ -16,7 +16,7 @@ THROW - abort route lookup in this class. - Currently number of classes is limited by 255 + Currently the number of classes is limited to 255 (0 is reserved for "not specified class") Three classes are builtin: @@ -34,7 +34,7 @@ Rules ----- - Rule is record of (src prefix, src interface, tos, dst prefix) + Rule is a record of (src prefix, src interface, tos, dst prefix) with attached information. Rule types: @@ -65,15 +65,15 @@ ---------------- We scan rules list, and if a rule is matched, apply it. - If route is found, return it. - If it is not found or THROW node was matched, continue + If a route is found, return it. + If it is not found or a THROW node was matched, continue to scan rules. Applications ------------ -1. Just ignore classes. All the routes are put to MAIN class - (and/or to DEFAULT class). +1. Just ignore classes. All the routes are put into MAIN class + (and/or into DEFAULT class). HOWTO: iproute add PREFIX [ tos TOS ] [ gw GW ] [ dev DEV ] [ metric METRIC ] [ reject ] ... (look at iproute utility) @@ -89,13 +89,13 @@ [ dev INPUTDEV] [ pref PREFERENCE ] route [ gw GATEWAY ] [ dev OUTDEV ] ..... - Warning: just now size of routing table in this approach is - limited by 256. If someone will like this model, I'll + Warning: As of now the size of the routing table in this + approach is limited to 256. If someone likes this model, I'll relax this limitation. 3. OSPF classes (see RFC1583, RFC1812 E.3.3) Very clean, stable and robust algorithm for OSPF routing - domains. Unfortunately, it is not used widely in the Internet. + domains. Unfortunately, it is not widely used in the Internet. Proposed setup: 255 local addresses @@ -124,10 +124,10 @@ 4. The Variant Router Requirements Algorithm (RFC1812 E.3.2) Create 16 classes for different TOS values. - It is funny, but pretty useless algorithm. - I listed it just to show power of new routing code. + It is a funny, but pretty useless algorithm. + I listed it just to show the power of new routing code. -5. All the variaty of combinations...... +5. All the variety of combinations...... GATED @@ -139,10 +139,10 @@ IMPORTANT NOTE -------------- - route.c has compilation time switch CONFIG_IP_LOCAL_RT_POLICY. + route.c has a compilation time switch CONFIG_IP_LOCAL_RT_POLICY. If it is set, locally originated packets are routed - using all the policy list. It is not very convenient and - pretty ambiguous, when used with NAT and masquerading. + using all the policy list. This is not very convenient and + pretty ambiguous when used with NAT and masquerading. I set it to FALSE by default. diff -ur --new-file old/linux/Documentation/networking/ppp.txt new/linux/Documentation/networking/ppp.txt --- old/linux/Documentation/networking/ppp.txt Sun Nov 30 21:23:16 1997 +++ new/linux/Documentation/networking/ppp.txt Sat Apr 4 03:48:11 1998 @@ -1,11 +1,7 @@ *NEWSFLASH* This kernel release needs a minor bug fix for pppd to run properly with the new routing code. When your pppd doesn't work apply the following -patch to pppd-2.2.0f or install updated RPMs. - -Updated RPMs for libc5 machines (build on RedHat 4.0): -ftp://ftp.firstfloor.org/pub/ak/ppp-2.2.0f-4.src.rpm -ftp://ftp.firstfloor.org/pub/ak/ppp-2.2.0f-4.i386.rpm +patch to pppd-2.2.0f or update to the newest pppd version. Patch: diff -ur --new-file old/linux/Documentation/networking/pt.txt new/linux/Documentation/networking/pt.txt --- old/linux/Documentation/networking/pt.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/pt.txt Tue Apr 28 23:22:04 1998 @@ -49,7 +49,7 @@ /sbin/route add -host 44.136.8.95 dev pt0b /sbin/route add -host 44.255.255.255 dev pt0b -This version of the driver comes under the GNU GPL. If you have one on my +This version of the driver comes under the GNU GPL. If you have one of my previous (non-GPL) versions of the driver, please update to this one. I hope that this all works well for you. I would be pleased to hear how diff -ur --new-file old/linux/Documentation/networking/routing.txt new/linux/Documentation/networking/routing.txt --- old/linux/Documentation/networking/routing.txt Thu Dec 19 09:31:52 1996 +++ new/linux/Documentation/networking/routing.txt Thu May 14 19:26:22 1998 @@ -18,27 +18,27 @@ NEWS for user. -- Policy based routing. Routing decisions are made on the base +- Policy based routing. Routing decisions are made on the basis not only of destination address, but also source address, TOS and incoming interface. - Complete set of IP level control messages. - Now Linux is the only in the world OS comlying to RFC requirements. + Now Linux is the only OS in the world complying to RFC requirements. Great win 8) - New interface addressing paradigm. Assignment of address ranges to interface, multiple prefixes etc. etc. - Do not bother, it is compatible with old one. Moreover: -- You more need not make "route add aaa.bbb.ccc... eth0", - it is made automatically. + Do not bother, it is compatible with the old one. Moreover: +- You don't need to do "route add aaa.bbb.ccc... eth0" anymore, + it is done automatically. - "Abstract" UNIX sockets and security enhancements. - It is necessary to use TIRPC and TLI emulation library. + This is necessary to use TIRPC and TLI emulation library. NEWS for hacker. -- New destination cache. Flexible, robust and just beatiful. +- New destination cache. Flexible, robust and just beautiful. - Network stack is reordered, simplified, optimized, a lot of bugs fixed. - (well, and new bugs are intoduced, but I've yet not seen them 8)) - It is difficult to descibe all the changes, look into source. + (well, and new bugs were introduced, but I haven't seen them yet 8)) + It is difficult to describe all the changes, look into source. If you see this file, then this patch works 8) diff -ur --new-file old/linux/Documentation/networking/shaper.txt new/linux/Documentation/networking/shaper.txt --- old/linux/Documentation/networking/shaper.txt Thu Dec 12 15:51:07 1996 +++ new/linux/Documentation/networking/shaper.txt Tue Apr 28 23:22:04 1998 @@ -29,8 +29,8 @@ Gotchas: - The shaper shapes transmitted traffic. Its rather impossible to -shape received traffic except at the end (or a router) transmiting it. + The shaper shapes transmitted traffic. It's rather impossible to +shape received traffic except at the end (or a router) transmitting it. Gated/routed/rwhod/mrouted all see the shaper as an additional device and will treat it as such unless patched. Note that for mrouted you can run diff -ur --new-file old/linux/Documentation/networking/soundmodem.txt new/linux/Documentation/networking/soundmodem.txt --- old/linux/Documentation/networking/soundmodem.txt Thu Sep 4 22:25:28 1997 +++ new/linux/Documentation/networking/soundmodem.txt Thu May 21 03:54:34 1998 @@ -2,13 +2,13 @@ Thomas M. Sailer, HB9JNX/AE4WA, -This driver allows either SoundBlaster (sbc) or WindowsSoundSystem (wss) +This driver allows either SoundBlaster (sbc) or Windows Sound System (wss) compatible soundcards to be used as either 1200 baud AFSK or 9600 baud FSK AX.25 packet radio modems. Only half duplex operation is supported; an attempt to include full duplex support failed because the hardware did not support it (it appeared that the card only provides one DMA channel, -although the Codec chip would support two channels). The driver needs -some processing power! A 486DX/2 66MHz is a minimum requirement, otherwise +although the codec chip would support two channels). The driver needs +some processing power! A 66 MHz 486 DX2 is a minimum requirement. Otherwise interactive performance of the computer may become sluggish. This driver does *not* support telephone modem standards, it is intended for radio use only. @@ -16,10 +16,10 @@ The Interface of the driver -The driver provides a kernel network drivers named sm[0-3]. sethdlc +The driver provides kernel network drivers named sm[0-3]. sethdlc from the ax25 utilities may be used to set driver states etc. Users of userland AX.25 stacks may use the net2kiss utility (also available -in the ax25 utilities package) to converts packets of a network interface +in the ax25 utilities package) to convert packets of a network interface to a KISS stream on a pseudo tty. There's also a patch available from me for WAMPES which allows attaching a kernel network interface directly. diff -ur --new-file old/linux/Documentation/networking/tulip.txt new/linux/Documentation/networking/tulip.txt --- old/linux/Documentation/networking/tulip.txt Mon Apr 22 10:27:41 1996 +++ new/linux/Documentation/networking/tulip.txt Thu May 21 03:54:34 1998 @@ -1,7 +1,7 @@ - Tulip ethernet card driver + Tulip Ethernet Card Driver The Tulip driver is developed by Donald Becker and changed by -Takashi Manabe. This driver is designed to work with PCI ethernet +Takashi Manabe. This driver is designed to work with PCI Ethernet cards which use the DECchip DC21x4x family. This driver hopefully works with all of 1.2.x and 1.3.x kernels, but I tested only with 1.2.13, 1.3.39, 1.3.49, 1.3.52, 1.3.57 and later. diff -ur --new-file old/linux/Documentation/networking/wan-router.txt new/linux/Documentation/networking/wan-router.txt --- old/linux/Documentation/networking/wan-router.txt Mon Jan 12 23:46:16 1998 +++ new/linux/Documentation/networking/wan-router.txt Thu May 21 03:54:34 1998 @@ -30,8 +30,8 @@ then the price of a typical PC box. Alternatively, considering robustness and multitasking capabilities of Linux, -an internal router can be build (most routers use some sort of stripped down -Unix-like operating system anyway). With number of relatively inexpensive WAN +an internal router can be built (most routers use some sort of stripped down +Unix-like operating system anyway). With a number of relatively inexpensive WAN interface cards available on the market, a perfectly usable router can be built for less than half a price of an external router. Yet a Linux box acting as a router can still be used for other purposes, such as firewalling, @@ -39,52 +39,52 @@ This kernel module introduces the notion of a WAN Link Driver (WLD) to Linux operating system and provides generic hardware-independent services for such -drivers. Why existing Linux network device interface can not be used for -this purpose? Well, it can. However, there are few key differences between -typical network interface (i.e. ethernet) and WAN link. +drivers. Why can existing Linux network device interface not be used for +this purpose? Well, it can. However, there are a few key differences between +a typical network interface (e.g. Ethernet) and a WAN link. Many WAN protocols, such as X.25 and frame relay, allow for multiple logical connections (known as `virtual circuits' in X.25 terminology) over a single physical link. Each such virtual circuit may (and almost always does) lead -to diffrent geographical location and, therefore, different network. As a +to a different geographical location and, therefore, different network. As a result, it is the virtual circuit, not the physical link, that represents a route and, therefore, a network interface in Linux terms. -To further complicate things, virtual cuircits are usually volatile in nature +To further complicate things, virtual circuits are usually volatile in nature (excluding so called `permanent' virtual circuits or PVCs). With almost no -time required to set up and tear down virtual circuit, it is highly desirable +time required to set up and tear down a virtual circuit, it is highly desirable to implement on-demand connections in order to minimize network charges. So -unlike typical network driver, the WAN driver must be able to handle multiple -network interfaces and cope with multiple virtual circuits come into existance +unlike a typical network driver, the WAN driver must be able to handle multiple +network interfaces and cope as multiple virtual circuits come into existence and go away dynamically. Last, but not least, WAN configuration is much more complex than that of say -ethernet and may well amount to several dozens of parameters. Some of them +Ethernet and may well amount to several dozens of parameters. Some of them are "link-wide" while others are virtual circuit-specific. The same holds true for WAN statistics which is by far more extensive and extremely useful -when troubleshooting WAN connections. Extending ifconfig utility to suite +when troubleshooting WAN connections. Extending the ifconfig utility to suit these needs may be possible, but does not seem quite reasonable. Therefore, a WAN configuration utility and corresponding application programmer's interface is needed for this purpose. -Most of these problems are taken care of by this module. It's goal is to -provide user with more-or-less standard look and feel for all WAN devices and -assist WAN device driver writer by providing common services, such as: +Most of these problems are taken care of by this module. Its goal is to +provide a user with more-or-less standard look and feel for all WAN devices and +assist a WAN device driver writer by providing common services, such as: - o User-level interface via /proc filesystem + o User-level interface via /proc file system o Centralized configuration - o Device managenent (setup, shutdown, etc.) + o Device management (setup, shutdown, etc.) o Network interface management (dynamic creation/destruction) o Protocol encapsulation/decapsulation -To ba able to use Linux WAN Router you will also need a WAN Tools package +To ba able to use the Linux WAN Router you will also need a WAN Tools package available from ftp.sangoma.com/pub/linux/vX.Y.Z/wantools-X.Y.Z.tgz or ftp.sangoma.com/pub/linux/vX.Y.Z/wanpipe-X.Y.Z.tgz -where vX.Y.Z represent the linux kernel version number. +where vX.Y.Z represent the Linux kernel version number. For technical questions and/or comments regarding this product please e-mail to jaspreet@sangoma.com or dm@sangoma.com. @@ -107,17 +107,17 @@ -ACKNOLEGEMENTS +ACKNOWLEDGMENTS This product is based on the WANPIPE(tm) Multiprotocol WAN Router developed by Sangoma Technologies Inc. for Linux 1.2.x. Release of Linux 2.0 in summer 1996 commanded adequate changes to the WANPIPE code to take full advantage of -new Linux features. Instead of continuing developing proprietory interface +new Linux features. Instead of continuing developing proprietary interface specific to Sangoma WAN cards, we decided to put all hardware-independent code into a separate module and define two levels of interfaces - one for user- level applications and another for kernel-level WAN drivers. -Many usefull ideas concerning hardware-independent interface implementation +Many useful ideas concerning hardware-independent interface implementation were given by Mike McLagan and his implementation of the Frame Relay router and drivers for Sangoma cards (dlci/sdla). @@ -173,7 +173,7 @@ 1.0.1 January 30, 1997 - Implemented user-readable status and statistics - via /proc filesystem + via /proc file system 1.0.0 December 31, 1996 diff -ur --new-file old/linux/Documentation/networking/wanpipe.txt new/linux/Documentation/networking/wanpipe.txt --- old/linux/Documentation/networking/wanpipe.txt Mon Jan 12 23:46:16 1998 +++ new/linux/Documentation/networking/wanpipe.txt Tue Apr 28 23:22:04 1998 @@ -9,25 +9,26 @@ INTRODUCTION -WANPIPE(tm) is a family of intelligent muliprotocol WAN communication adapters +WANPIPE(tm) is a family of intelligent multiprotocol WAN communication adapters for personal computers (ISA bus) designed to provide PC connectivity to various communication links, such as leased lines and public data networks, at -speeds up to T1/E1 using variety of synchronous communications protocols, +speeds up to T1/E1 using a variety of synchronous communications protocols, including frame relay, PPP, X.25, SDLC, etc. -WANPIPE driver together with Linux WAN Router module allows you to build -relatively inexpensive, yet high-prformance multiprotocol WAN router. For -more information about Linux WAN Router please read file -Documentation/networking/wan-router.txt. You must also obtain WAN Tools -package to be able to use Linux WAN Router and WANPIPE driver. The package +WANPIPE driver together with Linux WAN Router module allows you to build a +relatively inexpensive, yet high-performance multiprotocol WAN router. For +more information about the Linux WAN Router please read the file +Documentation/networking/wan-router.txt. You must also obtain the WAN Tools +package to be able to use the Linux WAN Router and WANPIPE driver. The package is available via the Internet from Sangoma Technologies' anonymous FTP server: ftp.sangoma.com/pub/linux/wantools-X.Y.Z.tgz or ftp.sangoma.com/pub/linux/wanpipe-X.Y.Z.tgz -The name of the package differ only due to naming convention. The functionalityof wantools and wanpipe packages are the same. The latest version of WAN -Drivers is wanpipe-2.0.0. +The names of the packages differ only due to naming convention. The +functionality of wantools and wanpipe packages are the same. The latest +version of the WAN Drivers is wanpipe-2.0.0. For technical questions and/or comments please e-mail to jaspreet@sangoma.com. For general inquiries please contact Sangoma Technologies Inc. by @@ -74,7 +75,7 @@ sdladrv.c SDLA support module source code sdla_fr.c SDLA Frame Relay source code sdla_ppp.c SDLA PPP source code - sdla_x25.c SDLA X25 source code + sdla_x25.c SDLA X.25 source code sdlamain.c SDLA support source code include/linux: @@ -137,7 +138,7 @@ o Added support for synchronous PPP o Added support for S503 adapter o Added API for executing adapter commands - o Fixed a re-entrancy problem in frame relaty driver + o Fixed a re-entrancy problem in frame relay driver o Changed interface between SDLA driver and protocol support modules o Updated frame relay firmware diff -ur --new-file old/linux/Documentation/networking/wavelan.txt new/linux/Documentation/networking/wavelan.txt --- old/linux/Documentation/networking/wavelan.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/networking/wavelan.txt Tue Apr 28 23:22:04 1998 @@ -1,18 +1,19 @@ Sun Jul 2 01:38:33 EST 1995 -1. At present the driver autoprobes for a WaveLAN card only at I/O address 0x390. - The version of the card that I use (NCR) supports four I/O addresses (selectable - via a pair of DIP switches). If you want the driver to autoprobe a different - subset of the four valid addresses then you will need to edit - .../drivers/net/wavelan.c (near line 714) and change the initialisation of the - `iobase[]' array. Normally, I use a LILO configuration file directive to - obviate the need for autoprobing entirely, a course of action I heartily - recommend. +1. At present the driver autoprobes for a WaveLAN card only at I/O address + 0x390. The version of the card that I use (NCR) supports four I/O addresses + (selectable via a pair of DIP switches). If you want the driver to + autoprobe a different subset of the four valid addresses then you will need + to edit .../drivers/net/wavelan.c (near line 714) and change the + initialisation of the `iobase[]' array. Normally, I use a LILO + configuration file directive to obviate the need for autoprobing entirely, + a course of action I heartily recommend. -2. By default, the driver uses the Network ID (NWID) stored in the card's Parameter - Storage Area (PSA). However, the PSA NWID can be overridden by a value passed - explicitly as the third numeric argument to LILO's "ether=" directive, either - at the LILO prompt at boot time or within LILO's configuration file. +2. By default, the driver uses the Network ID (NWID) stored in the card's + Parameter Storage Area (PSA). However, the PSA NWID can be overridden by a + value passed explicitly as the third numeric argument to LILO's "ether=" + directive, either at the LILO prompt at boot time or within LILO's + configuration file. For example, the following line from such a LILO configuration file would auto-configure the IRQ value, set the I/O base to 0x390 and set the NWID to 0x4321, all on a WaveLAN card labelled "eth0": diff -ur --new-file old/linux/Documentation/networking/x25-iface.txt new/linux/Documentation/networking/x25-iface.txt --- old/linux/Documentation/networking/x25-iface.txt Thu Jan 2 14:13:24 1997 +++ new/linux/Documentation/networking/x25-iface.txt Tue Apr 28 23:22:04 1998 @@ -7,8 +7,8 @@ setting of the LAPB mode from within the Packet Layer. The X.25 device driver will be coded normally as per the Linux device driver -standards, most X.25 device drivers will be moderately similar to the -already existing Eethernet device drivers. However unlike those drivers, the +standards. Most X.25 device drivers will be moderately similar to the +already existing Ethernet device drivers. However unlike those drivers, the X.25 device driver has a state associated with it, and this information needs to be passed to and from the Packet Layer for proper operation. diff -ur --new-file old/linux/Documentation/networking/x25.txt new/linux/Documentation/networking/x25.txt --- old/linux/Documentation/networking/x25.txt Mon Jul 7 17:19:59 1997 +++ new/linux/Documentation/networking/x25.txt Tue Apr 28 23:22:04 1998 @@ -19,7 +19,7 @@ written which will allow X.25 to be run over an Ethernet (or Token Ring) and conform with the JNT "Pink Book", this will have a different interface to the Packet Layer but there will be no confusion since the class of device -being served by the LLC will be completely seperate from LAPB. The LLC +being served by the LLC will be completely separate from LAPB. The LLC implementation is being done as part of another protocol project (SNA) and by a different author. diff -ur --new-file old/linux/Documentation/networking/z8530drv.txt new/linux/Documentation/networking/z8530drv.txt --- old/linux/Documentation/networking/z8530drv.txt Tue Feb 3 00:18:15 1998 +++ new/linux/Documentation/networking/z8530drv.txt Thu May 21 03:54:34 1998 @@ -232,7 +232,7 @@ gencfg 2 0x300 2 4 5 -4 0 7 4915200 0x10 -does the same for the BAYCOM USCC card. I my opinion it is much easier +does the same for the BAYCOM USCC card. In my opinion it is much easier to edit scc_config.h... @@ -254,7 +254,7 @@ clock dpll # clock source: # dpll = normal halfduplex operation # external = MODEM provides own Rx/Tx clock - # divider = use fullduplex divider if + # divider = use full duplex divider if # installed (1) mode nrzi # HDLC encoding mode # nrzi = 1k2 MODEM, G3RUH 9k6 MODEM @@ -318,9 +318,9 @@ ======================= Since the TTY driver (aka KISS TNC emulation) is gone you need -to emulate the old behaviour. The cost using these programs is -that you probably need to compile the kernel AX.25, regardless -if you actually use it or not. First setup your /etc/ax25/axports, +to emulate the old behaviour. The cost of using these programs is +that you probably need to compile the kernel AX.25, regardless of whether +you actually use it or not. First setup your /etc/ax25/axports, for example: 9k6 dl0tha-9 9600 255 4 9600 baud port (scc3) @@ -406,7 +406,7 @@ An overrun is abnormal. If lots of these occur, the product of baudrate and number of interfaces is too high for the processing -power of you computer. NoSpace errors are unlikely caused by the +power of your computer. NoSpace errors are unlikely to be caused by the driver or the kernel AX.25. @@ -450,7 +450,7 @@ Example: sccparam /dev/scc3 speed 9600 txdelay: - The delay (in units of 10ms) after keying of the + The delay (in units of 10 ms) after keying of the transmitter, until the first byte is sent. This is usually called "TXDELAY" in a TNC. When 0 is specified, the driver will just wait until the CTS signal is asserted. This @@ -472,7 +472,7 @@ slottime: This is the time between samples of the channel. It is - expressed in units of 10ms. About 200-300 ms (value 20-30) + expressed in units of 10 ms. About 200-300 ms (value 20-30) seems to be a good value. Example: sccparam /dev/scc0 slot 20 @@ -484,7 +484,7 @@ SCC before the transmitter is keyed down. The value depends on the baudrate selected. A few character times should be sufficient, e.g. 40ms at 1200 baud. (value 4) - The value of this parameter is in 10ms units. + The value of this parameter is in 10 ms units. Example: sccparam /dev/scc2 4 @@ -507,9 +507,9 @@ wait: The initial waittime before any transmit attempt, after the frame has been queue for transmit. This is the length of - the first slot in CSMA mode. In fullduplex modes it is + the first slot in CSMA mode. In full duplex modes it is set to 0 for maximum performance. - The value of this parameter is in 10ms units. + The value of this parameter is in 10 ms units. Example: sccparam /dev/scc1 wait 4 @@ -534,7 +534,7 @@ Example: sccparam /dev/scc3 min 10 idle - This parameter specifies the maximum idle time in fullduplex + This parameter specifies the maximum idle time in full duplex 2 mode, in seconds. When no frames have been sent for this time, the transmitter will be keyed down. A value of 0 is has same result as the fullduplex mode 1. This parameter @@ -559,7 +559,7 @@ group: It is possible to build special radio equipment to use more than - one frequency on the same bad, e.g. using several receivers and + one frequency on the same band, e.g. using several receivers and only one transmitter that can be switched between frequencies. Also, you can connect several radios that are active on the same band. In these cases, it is not possible, or not a good idea, to @@ -617,7 +617,7 @@ (i.e. Amstrad) Those systems have a bogus AT bus timing which will lead to delayed answers on interrupts. You can recognize these problems by looking at the output of Sccstat for the suspected -port. See if it shows under- and overruns you own such a system. +port. If it shows under- and overruns you own such a system. Delayed processing of received data: This depends on @@ -634,7 +634,7 @@ - using information from rxecho or kissbridge. -Kernel panics: please read to /linux/README and find out if it +Kernel panics: please read /linux/README and find out if it really occurred within the scc driver. If you cannot solve a problem, send me diff -ur --new-file old/linux/Documentation/nfsroot.txt new/linux/Documentation/nfsroot.txt --- old/linux/Documentation/nfsroot.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/nfsroot.txt Thu May 21 03:54:34 1998 @@ -81,7 +81,7 @@ This parameter tells the kernel how to configure IP addresses of devices and also how to set up the IP routing table. It was originally called `nfsaddrs', - but now the boot-time IP configuration works independently on NFS, so it + but now the boot-time IP configuration works independently of NFS, so it was renamed to `ip' and the old name remained as an alias for compatibility reasons. @@ -106,17 +106,17 @@ the address of the server is used which answered the RARP or BOOTP request. - IP address of a gateway if the server in on a different + IP address of a gateway if the server is on a different subnet. If this entry is empty no gateway is used and the server is assumed to be on the local network, unless a value has been received by BOOTP. Netmask for local network interface. If this is empty, the netmask is derived from the client IP address assuming - classful addressing, unless overriden in BOOTP reply. + classful addressing, unless overridden in BOOTP reply. Name of the client. If empty, the client IP address is - used in ASCII-notation, or the value received by BOOTP. + used in ASCII notation, or the value received by BOOTP. Name of network device to use. If this is empty, all devices are used for RARP and BOOTP requests, and the diff -ur --new-file old/linux/Documentation/oops-tracing.txt new/linux/Documentation/oops-tracing.txt --- old/linux/Documentation/oops-tracing.txt Fri Sep 6 18:19:04 1996 +++ new/linux/Documentation/oops-tracing.txt Tue Apr 28 23:22:04 1998 @@ -41,7 +41,7 @@ disassembly. Now, the trick is just then to combine all the data you have: the C -sources (and general knowledge of what it _should_ do, the assembly +sources (and general knowledge of what it _should_ do), the assembly listing and the code disassembly (and additionally the register dump you also get from the "oops" message - that can be useful to see _what_ the corrupted pointers were, and when you have the assembler listing you can diff -ur --new-file old/linux/Documentation/paride.txt new/linux/Documentation/paride.txt --- old/linux/Documentation/paride.txt Sun Jan 25 18:59:59 1998 +++ new/linux/Documentation/paride.txt Thu May 21 03:54:34 1998 @@ -1,7 +1,7 @@ Linux and parallel port IDE devices -PARIDE v1.0 (c) 1997 Grant Guenther +PARIDE v1.02 (c) 1997-8 Grant Guenther 1. Introduction @@ -12,7 +12,7 @@ to pass commands and data through the parallel port interface, most external devices are actually identical to an internal model, but with a parallel-port adapter chip added in. Some of the original parallel port -adapters were little more than mechanisms for mulitplexing a SCSI bus. +adapters were little more than mechanisms for multiplexing a SCSI bus. (The Iomega PPA-3 adapter used in the ZIP drives is an example of this approach). Most current designs, however, take a different approach. The adapter chip reproduces a small ISA or IDE bus in the external device @@ -38,6 +38,7 @@ MicroSolutions backpack CD-ROM MicroSolutions backpack PD/CD MicroSolutions backpack hard-drives + MicroSolutions backpack 8000t tape drive SyQuest EZ-135, EZ-230 & SparQ drives Avatar Shark Imation Superdisk LS-120 @@ -57,8 +58,7 @@ pf ATAPI disk pt ATAPI tape -(Support for ATAPI CD-R and CD-RW drives is not yet in development, -but this may change.) +(Support for ATAPI CD-R and CD-RW drives is in the design phase.) The high-level drivers function according to the relevant standards. The third component of PARIDE is a set of low-level protocol drivers @@ -72,14 +72,13 @@ dstr DataStor EP-2000 (TW) epat Shuttle EPAT (UK) epia Shuttle EPIA (UK) + fit2 FIT TD-2000 frpw Freecom Power (DE) kbic KingByte KBIC-951A and KBIC-971A (TW) + ktti KT Technology PHd adapter (SG) on20 OnSpec 90c20 (US) on26 OnSpec 90c26 (US) -(A driver for some modes of the Noveca RAP// protocol is also under -development). - 2. Using the PARIDE subsystem @@ -106,6 +105,7 @@ MicroSolutions CD-ROM pcd bpck MicroSolutions PD drive pf bpck MicroSolutions hard-drive pd bpck + MicroSolutions 8000t tape pt bpck SyQuest EZ, SparQ pd epat Imation Superdisk pf epat Avatar Shark pd epat @@ -146,10 +146,10 @@ If you happen to be using a MicroSolutions backpack device, you will also need to know the unit ID number for each drive. This is usually -the last two digits of the drive's serial number (but read MicroSolution's +the last two digits of the drive's serial number (but read MicroSolutions' documentation about this). -As an example, lets assume that you have a MicroSolutions PD/CD drive +As an example, let's assume that you have a MicroSolutions PD/CD drive with unit ID number 36 connected to the parallel port at 0x378, a SyQuest EZ-135 connected to the chained port on the PD/CD drive and also an Imation Superdisk connected to port 0x278. You could give the following diff -ur --new-file old/linux/Documentation/parport.txt new/linux/Documentation/parport.txt --- old/linux/Documentation/parport.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/parport.txt Sun Apr 12 20:39:20 1998 @@ -5,11 +5,15 @@ You can pass parameters to the parport code to override its automatic detection of your hardware. This is particularly useful if you want to use IRQs, since in general these can't be autoprobed successfully. +By default IRQs are not used even if they _can_ be probed. This is +because there are a lot of people using the same IRQ for their +parallel port and a sound card or network card. The parport code is split into two parts: generic (which deals with port-sharing) and architecture-dependent (which deals with actually using the port). + Parport as modules ================== @@ -20,31 +24,33 @@ to load the generic parport code. You then must load the architecture-dependent code with (for example): - # insmod parport_pc.o io=0x378,0x278 irq=7,5 + # insmod parport_pc.o io=0x3bc,0x378,0x278 irq=none,7,auto + +to tell the parport code that you want three PC-style ports, one at +0x3bc with no IRQ, one at 0x378 using IRQ 7, and one at 0x278 with an +auto-detected IRQ. Currently, PC-style (parport_pc) and Sun Ultra/AX +(parport_ax) hardware is supported; more is in the works. -to tell the parport code that you want two PC-style ports, one at -0x378 using IRQ 7, and one at 0x278 using IRQ 5. Currently, PC-style -(parport_pc) and ARC onboard (parport_arc) parallel ports are -supported. -Kerneld -------- +KMod +---- -If you use kerneld, you will find it useful to edit /etc/conf.modules. +If you use kmod, you will find it useful to edit /etc/conf.modules. Here is an example of the lines that need to be added: alias parport_lowlevel parport_pc - options parport_pc io=0x378,0x278 irq=7,5 + options parport_pc io=0x378,0x278 irq=7,auto + +KMod will then automatically load parport_pc (with the options +"io=0x378,0x278 irq=7,auto") whenever a parallel port device driver +(such as lp) is loaded. -Kerneld, in conjunction with parport, will automatically load -parport_pc whenever a parallel port device driver (such as lp) is -loaded. Parport probe [optional] ------------- Once the architecture-dependent part of the parport code is loaded -into the kernel, you insert the parport_probe module with: +into the kernel, you can insert the parport_probe module with: # insmod parport_probe.o @@ -53,22 +59,25 @@ parport0: Printer, BJC-210 (Canon) -(If you are using kerneld and have configured parport_probe as a -module, this will just happen.) +(If you are using kmod and have configured parport_probe as a module, +this will just happen.) -Parport, but not as modules -=========================== +Parport linked into the kernel statically +========================================= If you compile the parport code into the kernel, then you can use kernel boot parameters to get the same effect. Add something like the following to your LILO command line: - parport=0x378,7 parport=0x278,5 + parport=0x3bc parport=0x378,7 parport=0x278,auto You can have many `parport=...' statements, one for each port you want to add. Adding `parport=0' to the kernel command-line will disable -parport support entirely. +parport support entirely. Adding `parport=auto' to the kernel +command-line will make parport use any IRQ lines or DMA channels that +it auto-detects. + Files in /proc ============== @@ -90,10 +99,10 @@ and DMA channel. /proc/parport/0/irq The IRQ that parport is using for that - port (as above). This is in a - separate file to allow you to alter it - by writing a new value in (IRQ number - or "none"). + port. This is in a separate file to + allow you to alter it by writing a new + value in (IRQ number or "none"). + Device drivers ============== @@ -121,7 +130,7 @@ Also: - * If you selected the device autoprobe at compile time, you can say + * If you selected the IEEE-1284 autoprobe at compile time, you can say `lp=auto' on the kernel command line, and lp will create devices only for those ports that seem to have printers attached. @@ -129,10 +138,7 @@ the command line, or with `insmod plip timid=1' when using modules, it will avoid any ports that seem to be in use by other devices. - * If your BIOS allows you to engage "ECP mode", you may find that - your port's IRQ can be autoprobed, without having to specify any - parameters. - + * IRQ autoprobing works only for a few port types at the moment. -- Philip.Blundell@pobox.com diff -ur --new-file old/linux/Documentation/pci.txt new/linux/Documentation/pci.txt --- old/linux/Documentation/pci.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/pci.txt Tue Apr 28 23:22:04 1998 @@ -0,0 +1,65 @@ + Few Notes About The PCI Subsystem + + or + + "What should you avoid when writing PCI drivers" + + by Martin Mares on 13-Feb-1998 + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. How to find PCI devices +~~~~~~~~~~~~~~~~~~~~~~~~~~ + In case your driver wants to search for all devices with given vendor/device +ID, it should use: + + struct pci_dev *dev = NULL; + while (dev = pci_find_device(VENDOR_ID, DEVICE_ID, dev)) + configure_device(dev); + + For class-based search, use pci_find_class(CLASS_ID, dev). + + In case you want to do some complex matching, look at pci_devices -- it's +a linked list of pci_dev structures for all PCI devices in the system. + + All these methods return a pointer to a pci_dev structure which is used as a +parameter for many other PCI functions. The rest of them accept bus and +device/function numbers which can be found in pci_dev->bus->number and +pci_dev->devfn. Feel free to use all other fields of the pci_dev structure, but +don't modify them. + + The pci_present() function can be used to test presence of PCI in the +machine. + +2. How to access PCI config space +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + You can use pci_(read|write)_config_(byte|word|dword) to access the config +space of a device represented by pci_dev. All these functions return 0 when +successful or an error code (PCIBIOS_...) which can be translated to a text +string by pcibios_strerror. Most drivers expect that accesses to valid PCI +devices don't fail. + + In case you want to address the devices by bus/device/function numbers, +use pcibios_(read_write)_config_(byte|word|dword). + + If you access fields in the standard portion of the config header, please +use symbolic names of locations and bits declared in . + +3. Addresses and interrupts +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Memory and port addresses and interrupt numbers should NOT be read from the +config space. You should use the values in the pci_dev structure as they might +have been remapped by the kernel. + +4. Obsolete functions +~~~~~~~~~~~~~~~~~~~~~ + is obsolete and should not be included in new code. + +pcibios_find_(device|class) are also obsolete and should be replaced by +pci_find_(device|class). + +5. Bus mastering +~~~~~~~~~~~~~~~~ + If you need to setup a bus-mastering card, just call pci_set_master(). It +should set PCI_COMMAND_MASTER in the command register and adjust the latency +timer if needed. diff -ur --new-file old/linux/Documentation/powerpc/00-INDEX new/linux/Documentation/powerpc/00-INDEX --- old/linux/Documentation/powerpc/00-INDEX Tue Jan 13 00:18:12 1998 +++ new/linux/Documentation/powerpc/00-INDEX Tue Apr 28 23:22:04 1998 @@ -1,5 +1,5 @@ Index of files in Documentation/powerpc. If you think something about -Linux/PPC needs an entry here, needs correction of you've written one +Linux/PPC needs an entry here, needs correction or you've written one please mail me. Cort Dougan (cort@cs.nmt.edu) diff -ur --new-file old/linux/Documentation/powerpc/ppc_htab.txt new/linux/Documentation/powerpc/ppc_htab.txt --- old/linux/Documentation/powerpc/ppc_htab.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/powerpc/ppc_htab.txt Wed Apr 15 02:33:40 1998 @@ -4,6 +4,8 @@ This document and the related code was written by me (Cort Dougan), please email me (cort@cs.nmt.edu) if you have questions, comments or corrections. +Last Change: 2.16.98 + This entry in the proc directory is readable by all users but only writable by root. diff -ur --new-file old/linux/Documentation/powerpc/smp.txt new/linux/Documentation/powerpc/smp.txt --- old/linux/Documentation/powerpc/smp.txt Tue Jan 13 00:18:12 1998 +++ new/linux/Documentation/powerpc/smp.txt Wed Apr 15 02:33:40 1998 @@ -1,8 +1,11 @@ Information about Linux/PPC SMP mode ===================================================================== -This document and the related code was written by me (Cort Dougan), please -email me (cort@cs.nmt.edu) if you have questions, comments or corrections. +This document and the related code was written by me +(Cort Dougan, cort@cs.nmt.edu) please email me if you have questions, +comments or corrections. + +Last Change: 4.1.98 SMP support for Linux/PPC is still in its early stages and likely to be buggy for a while. If you want to help by writing code or testing @@ -10,10 +13,16 @@ 1. State of Supported Hardware - UMAX s900 + PowerSurge Architecture - UMAX s900, Apple 9500/9600/8500/8600/7500/7600 The second processor on this machine boots up just fine and enters its idle loop. Hopefully a completely working SMP kernel on this machine will be done shortly. + + The code makes the assumption of only two processors. The changes + necessary to work with any number would not be overly difficult but + I don't have any machines with >2 processors so it's not high on my + list of priorities. If anyone else would like do to the work email + me and I can point out the places that need changed. BeBox BeBox support hasn't been added to the 2.1.X kernels from 2.0.X diff -ur --new-file old/linux/Documentation/powerpc/sound.txt new/linux/Documentation/powerpc/sound.txt --- old/linux/Documentation/powerpc/sound.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/powerpc/sound.txt Wed Apr 15 02:33:40 1998 @@ -4,26 +4,31 @@ Please mail me me (Cort Dougan, cort@cs.nmt.edu) if you have questions, comments or corrections. -This just covers sound on the PReP systems for now, and later will -contain information on the PowerMac's. +Last Change: 3.24.98 -Sound has been tested and is working with the PowerStack and IBM Power -Series onboard sound systems which are based on the cs4231(2) chip. -The sound options when doing the make config are a bit different from the -default, though. +This just covers sound on the PReP and CHRP systems for now and later +will contain information on the PowerMac's. + +Sound on PReP has been tested and is working with the PowerStack and IBM +Power Series onboard sound systems which are based on the cs4231(2) chip. +The sound options when doing the make config are a bit different from +the default, though. The I/O base, irq and dma lines that you enter during the make config are ignored and are set when booting according to the machine type. This is so that one binary can be used for Motorola and IBM machines -which use different values and isn't allowed by the driver, so things are -hacked together in such a way as to allow this information to be set -automatically on boot. - -1. PowerStack - - Enable support for "Crystal CS4232 based (PnP) cards". Although the - options you set are ignored and determined automatically on boot these - are included for information only: +which use different values and isn't allowed by the driver, so things +are hacked together in such a way as to allow this information to be +set automatically on boot. + +1. Motorola PowerStack PReP machines + + Enable support for "Crystal CS4232 based (PnP) cards" and for the + Microsoft Sound System. The MSS isn't used, but some of the routines + that the CS4232 driver uses are in it. + + Although the options you set are ignored and determined automatically + on boot these are included for information only: (830) CS4232 audio I/O base 530, 604, E80 or F40 (10) CS4232 audio IRQ 5, 7, 9, 11, 12 or 15 @@ -33,16 +38,31 @@ This will allow simultaneous record and playback, as 2 different dma channels are used. + The sound will be all left channel and very low volume since the + auxiliary input isn't muted by default. I had the changes necessary + for this in the kernel but the sound driver maintainer didn't want + to include them since it wasn't common in other machines. To fix this + you need to mute it using a mixer utility of some sort (if you find one + please let me know) or by patching the driver yourself and recompiling. + + There is a problem on the PowerStack 2's (PowerStack Pro's) using a + different irq/drq than the kernel expects. Unfortunately, I don't know + which irq/drq it is so if anyone knows please email me. + Midi is not supported since the cs4232 driver doesn't support midi yet. -2. IBM machines +2. IBM PowerPersonal PReP machines and IBM LongTrail CHRP I've only tested sound on the Power Personal Series of IBM workstations - so if you try it on others please let me know the result. + so if you try it on others please let me know the result. I'm especially + interested in the 43p's sound system, which I know nothing about. - Enable support for "Crystal CS4232 based (PnP) cards". Although the - options you set are ignored and determined automatically on boot these - are included for information only: + Enable support for "Crystal CS4232 based (PnP) cards" and for the + Microsoft Sound System. The MSS isn't used, but some of the routines + that the CS4232 driver uses are in it. + + Although the options you set are ignored and determined automatically + on boot these are included for information only: (530) CS4232 audio I/O base 530, 604, E80 or F40 (5) CS4232 audio IRQ 5, 7, 9, 11, 12 or 15 @@ -54,4 +74,3 @@ This setup does _NOT_ allow for recording yet. Midi is not supported since the cs4232 driver doesn't support midi yet. - diff -ur --new-file old/linux/Documentation/ramdisk.txt new/linux/Documentation/ramdisk.txt --- old/linux/Documentation/ramdisk.txt Mon May 6 11:26:01 1996 +++ new/linux/Documentation/ramdisk.txt Tue Apr 28 23:22:04 1998 @@ -31,7 +31,7 @@ Also, the new ramdisk supports up to 16 ramdisks out of the box, and can be reconfigured in rd.c to support up to 255 ramdisks. To use multiple ramdisk support with your system, run 'mknod /dev/ramX b 1 X' and chmod -(to change it's permissions) it to your liking. The default /dev/ram(disk) +(to change its permissions) it to your liking. The default /dev/ram(disk) uses minor #1, so start with ram2 and go from there. The old "ramdisk=" has been changed to "ramdisk_size=" @@ -42,7 +42,7 @@ allowing one to squeeze more programs onto an average installation or rescue floppy disk. -Notes: You may have "dev/ram" or "/dev/ramdisk" or both. They are +Notes: You may have "/dev/ram" or "/dev/ramdisk" or both. They are equivalent from the standpoint of this document. Also, the new ramdisk is a config option. When running "make config", make sure you enable ramdisk support for the kernel you intend to use the ramdisk with. @@ -113,7 +113,7 @@ indicates whether a prompt/wait sequence is to be given before trying to read the ramdisk. Since the ramdisk dynamically grows as data is being written into it, a size field is no longer required. Bits 11 -to 13 are not presently used and may as well be zero. These numbers +to 13 are not currently used and may as well be zero. These numbers are no magical secrets, as seen below: ./arch/i386/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF @@ -160,7 +160,7 @@ restriction does not apply. a) Decide on the ramdisk size that you want. Say 2MB for this example. - Create it by writing to the ramdisk device. (This step is not presently + Create it by writing to the ramdisk device. (This step is not currently required, but may be in the future.) It is wise to zero out the area (esp. for disks) so that maximal compression is achieved for the unused blocks of the image that you are about to create. diff -ur --new-file old/linux/Documentation/riscom8.txt new/linux/Documentation/riscom8.txt --- old/linux/Documentation/riscom8.txt Thu Mar 5 20:55:06 1998 +++ new/linux/Documentation/riscom8.txt Tue Apr 28 23:22:04 1998 @@ -13,20 +13,20 @@ as module use insmod options "iobase=0xXXX iobase1=0xXXX iobase2=..." 2) The driver partially supports famous 'setserial' program, you can use almost - any it option, exclude port & irq settings. + any of its options, excluding port & irq settings. 3) There are some misc. defines at the beginning of riscom8.c, please read the comments and try to change some of them in case of problems. 4) I consider the current state of the driver as BETA. - If you REALLY think you found the bug, send me e-mail, I hope I'll + If you REALLY think you found a bug, send me e-mail, I hope I'll fix it. For any other problems please ask support@sdlcomm.com. 5) SDL Communications WWW page is http://www.sdlcomm.com. 6) You can use the script at the end of this file to create RISCom/8 devices. -7) Minors number for 1-st board are 0-7, for second 8-15, etc. +7) Minor numbers for first board are 0-7, for second 8-15, etc. 22 Apr 1996. diff -ur --new-file old/linux/Documentation/rtc.txt new/linux/Documentation/rtc.txt --- old/linux/Documentation/rtc.txt Tue May 7 07:18:50 1996 +++ new/linux/Documentation/rtc.txt Fri Jun 5 07:53:50 1998 @@ -129,7 +129,7 @@ fflush(stderr); for (i=1; i<6; i++) { struct timeval tv = {5, 0}; /* 5 second timeout on select */ - struct fd_set readfds; + fd_set readfds; FD_ZERO(&readfds); FD_SET(fd, &readfds); diff -ur --new-file old/linux/Documentation/scsi.txt new/linux/Documentation/scsi.txt --- old/linux/Documentation/scsi.txt Fri Sep 22 07:04:12 1995 +++ new/linux/Documentation/scsi.txt Tue Apr 28 23:22:04 1998 @@ -5,7 +5,7 @@ The scsi-core contains the core of scsi support. Without it you can do nothing with any of the other scsi drivers. The scsi core -support can be a module (scsi_mod.o), or it can be build into the kernel. +support can be a module (scsi_mod.o), or it can be built into the kernel. If the core is a module, it must be the first scsi module loaded, and if you unload the modules, it will have to be the last one unloaded. diff -ur --new-file old/linux/Documentation/serial-console.txt new/linux/Documentation/serial-console.txt --- old/linux/Documentation/serial-console.txt Thu Dec 4 00:21:57 1997 +++ new/linux/Documentation/serial-console.txt Thu Apr 2 00:58:54 1998 @@ -19,10 +19,10 @@ 9600n8. The maximum baudrate is 115200. You can specify multiple console= options on the kernel command line. -Output will appear on all of them. The first device will be used when +Output will appear on all of them. The last device will be used when you open /dev/console. So, for example: - console=tty0 console=ttyS1,9600 + console=ttyS1,9600 console=tty0 defines that opening /dev/console will get you the current foreground virtual console, and kernel messages will appear on both the VGA @@ -91,4 +91,4 @@ for porting the patches from 2.1.4x to 2.1.6x for taking care of the integration of these patches into m68k, ppc and alpha. -Miquel van Smoorenburg , 03-Dec-1997 +Miquel van Smoorenburg , 21-Mar-1998 diff -ur --new-file old/linux/Documentation/smart-config.txt new/linux/Documentation/smart-config.txt --- old/linux/Documentation/smart-config.txt Thu Jan 22 02:51:11 1998 +++ new/linux/Documentation/smart-config.txt Fri Jun 5 07:53:50 1998 @@ -72,14 +72,12 @@ modular, 'make' will notice that the foo.o was not compiled with -DMODULE and will recompile foo.c. - Flag dependencies also work with per-source-file flags such - as those in drivers/net/CONFIG. - All .a and .o files made from C source or with 'ld' or 'ar' have flag dependencies. .S files do not have flag dependencies. Per-source-file Flags + Flag dependencies also work with per-source-file flags. You can specify compilation flags for individual source files like this: diff -ur --new-file old/linux/Documentation/smp new/linux/Documentation/smp --- old/linux/Documentation/smp Sun Feb 2 14:18:29 1997 +++ new/linux/Documentation/smp Tue Apr 28 23:22:04 1998 @@ -8,7 +8,7 @@ for another kernel image called "linux-smp" or something. The next time you compile the kernel, when running a SMP kernel, -edit linux/Makefile and change "MAKE=make" "MAKE=make -jN" +edit linux/Makefile and change "MAKE=make" to "MAKE=make -jN" (where N = number of CPU + 1, or if you have tons of memory/swap you can just use "-j" without a number). Feel free to experiment with this one. @@ -20,4 +20,4 @@ If you are using some Compaq MP compliant machines you will need to set the operating system in the BIOS settings to "Unixware" - don't ask me -why Compaq's dont work otherwise. +why Compaqs don't work otherwise. diff -ur --new-file old/linux/Documentation/smp.tex new/linux/Documentation/smp.tex --- old/linux/Documentation/smp.tex Thu Jun 6 13:57:43 1996 +++ new/linux/Documentation/smp.tex Thu May 21 03:54:34 1998 @@ -24,8 +24,8 @@ \hfill Alan Cox, 1995 -The author wishes to thank Caldera Inc ( http://www.caldera.com ) -whose donation of an ASUS dual pentium board made this project possible, +The author wishes to thank Caldera Inc. ( http://www.caldera.com ) +whose donation of an ASUS dual Pentium board made this project possible, and Thomas Radke, whose initial work on multiprocessor Linux formed the backbone of this project. @@ -35,15 +35,15 @@ specification places much of the onus for hard work on the chipset and hardware rather than the operating system. -The Intel pentium processors have a wide variety of inbuilt facilities for +The Intel Pentium processors have a wide variety of inbuilt facilities for supporting multiprocessing, including hardware cache coherency, built in interprocessor interrupt handling and a set of atomic test and set, exchange and similar operations. The cache coherency in particular makes the -operating systems job far easier. +operating system's job far easier. The specification defines a detailed configuration structure in ROM that the boot up processor can read to find the full configuration of the -processors and busses. It also defines a procedure for starting up the +processors and buses. It also defines a procedure for starting up the other processors. @@ -53,7 +53,7 @@ them at once and for example allocating the same memory block. There are two strategies for this within current Unix and Unixlike kernels. Traditional unix systems from the earliest of days use a scheme of 'Coarse -Grained Locking' where the entire kernel is protected as a small number of +Grained Locking' where the entire kernel is protected by a small number of locks only. Some modern systems use fine grained locking. Because fine grained locking has more overhead it is normally used only on multiprocessor kernels and real time kernels. In a real time kernel the @@ -64,7 +64,7 @@ kernel mode will be pre-empted by another kernel mode process unless it voluntarily sleeps. This ensures that blocks of kernel code are effectively atomic with respect to other processes and greatly simplifies -many operation. Secondly interrupts may pre-empt a kernel running process, +many operations. Secondly interrupts may pre-empt a kernel running process, but will always return to that process. A process in kernel mode may disable interrupts on the processor and guarantee such an interruption will not occur. The final guarantee is that an interrupt will not be pre-empted @@ -124,7 +124,7 @@ probably need to be modified in existing kernels to cope with this. -Each additional CPU the calls the architecture specific function +Each additional CPU then calls the architecture specific function {\tt \bf void smp\_callin(void)} @@ -142,7 +142,7 @@ \subsubsection{Scheduling} -The kernel scheduler implements a simple but very and effective task +The kernel scheduler implements a simple but very effective task scheduler. The basic structure of this scheduler is unchanged in the multiprocessor kernel. A processor field is added to each task, and this maintains the number of the processor executing a given task, or a magic @@ -176,7 +176,7 @@ The memory management core of the existing Linux system functions adequately within the multiprocessor framework providing the locking is used. Certain processor specific areas do need changing, in particular -invalidate() must invalidate the TLB's of all processors before it returns. +invalidate() must invalidate the TLBs of all processors before it returns. \subsubsection{Miscellaneous Functions} @@ -185,7 +185,7 @@ {\tt \bf int smp\_processor\_id(void) } -which returns the identity of the process the call is executed upon. This +which returns the identity of the processor the call is executed upon. This call is assumed to be valid at all times. This may mean additional tests are needed during initialisation. @@ -203,14 +203,14 @@ \subsection{Architecture Specific Code For the Intel MP Port} -The architecture specific code for the intel port splits fairly cleanly +The architecture specific code for the Intel port splits fairly cleanly into four sections. Firstly the initialisation code used to boot the system, secondly the message handling and support code, thirdly the interrupt and kernel syscall entry function handling and finally the extensions to standard kernel facilities to cope with multiple processors. \subsubsection{Initialisation} -The intel MP architecture captures all the processors except for a single +The Intel MP architecture captures all the processors except for a single processor known as the 'boot processor' in the BIOS at boot time. Thus a single processor enters the kernel bootup code. The first processor executes the bootstrap code, loads and uncompresses the kernel. Having @@ -266,8 +266,8 @@ appropriately. From then on the real APIC logical identity register is read. -Message passing is accomplished using a pair of IPI's on interrupt 13 -(unused by the 80486 FPU's in SMP mode) and interrupt 16. Two are used in +Message passing is accomplished using a pair of IPIs on interrupt 13 +(unused by the 80486 FPUs in SMP mode) and interrupt 16. Two are used in order to separate messages that cannot be processed until the receiver obtains the kernel spinlock from messages that can be processed immediately. In effect IRQ 13 is a fast IRQ handler that does not obtain @@ -286,7 +286,7 @@ causes a specific deadlock problem. The lock owner may need to send an invalidate request to the rest of the processors and wait for these to complete before continuing. A processor spinning on the lock would not be -able to do thus. Thus the loop of the spinlock tests and handles invalidate +able to do this. Thus the loop of the spinlock tests and handles invalidate requests. If the invalidate bit for the spinning CPU is set the processor invalidates its TLB and atomically clears the bit. When the spinlock is obtained that processor will take an IPI and in the IPI test the bit and @@ -341,6 +341,6 @@ The /proc filesystem support is changed so that the /proc/cpuinfo file contains a column for each processor present. This information is extracted -from the data save by smp\_store\_cpu\_info(). +from the data saved by smp\_store\_cpu\_info(). \end{document} diff -ur --new-file old/linux/Documentation/sound/AWE32 new/linux/Documentation/sound/AWE32 --- old/linux/Documentation/sound/AWE32 Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/AWE32 Tue Apr 28 23:22:04 1998 @@ -0,0 +1,63 @@ +From: Nicola Bernardelli + + In order to load SB-AWE related drivers on recent kernels (tested +with 2.1.86 and 2.1.88) with modularized sound support these lines can +be issued (of course with the suitable values for the parameters) +after PNP setup: + +insmod sound.o +insmod uart401.o +insmod sb.o io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330 +insmod awe_wave.o + + Alternatively, in order to also have automatic load on demand +(not of the awe support, which would anyway most likely also require a +call to sfxload), these lines can be added to /etc/conf.modules, of +course with the suitable values for the parameters): + +alias char-major-14 sb +post-install sb modprobe "-k" "adlib_card" +options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330 +options adlib_card io=0x388 # FM synthesiser + +and then these two commands can be issued: + +modprobe sb +insmod awe_wave + +------------------------------------------------------------------------------ + +After picking up the second approach, you may want to put these lines +on an ossfreeOn script: + + ----- +#!/bin/sh + +modprobe sb +insmod awe_wave + +# A call to 'aumix -L' (attention to what the home dir is at boot +# time, you may put a link /.aumixrc -> /home//.aumixrc) to +# restore mixer device levels and a call to 'sfxload ' may be added in a customized ossfreeSetup script: + +if [ -x /usr/local/sbin/ossfreeSetup ] ; then + /usr/local/sbin/ossfreeSetup +fi + ----- + +And these lines in an ossfreeOff script: + + ----- +#!/bin/sh + +# NOT set -e, maybe not all of them are currently loaded. + +rmmod awe_wave +rmmod adlib_card +rmmod opl3 +rmmod sb +rmmod uart401 +rmmod sound + ----- + diff -ur --new-file old/linux/Documentation/sound/CS4232 new/linux/Documentation/sound/CS4232 --- old/linux/Documentation/sound/CS4232 Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/CS4232 Sat Mar 21 19:56:26 1998 @@ -0,0 +1,23 @@ + +insmod sound +insmod ad1848 +insmod uart401 +insmod cs4232 io=* irq=* dma=* dma2=* + +This configures the crystal CS423x sound chip and activates its DSP +functions. On some cards the non PnP setup the board attempts to do fails. +If you have problems use the kernel PnP facilities. + +io is the I/O address of the WSS (normally 0x534) +irq is the IRQ of this device +dma/dma2 are the DMA channels. DMA2 may well be 0 + + +To get midi synth facilities add + +insmod opl3 io=* + +io= I/O address of the OPL3 synthesizer. This will be shown in /proc/sys/pnp +and is normally 0x388 + + diff -ur --new-file old/linux/Documentation/sound/MAD16 new/linux/Documentation/sound/MAD16 --- old/linux/Documentation/sound/MAD16 Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/MAD16 Thu Apr 9 00:34:23 1998 @@ -0,0 +1,25 @@ +From: Shaw Carruthers + +I have been using mad16 sound for some time now with no problems, current +kernel 2.1.89 + +lsmod shows: + +mad16 5176 0 +sb 22044 0 [mad16] +uart401 5576 0 [mad16 sb] +ad1848 14176 1 [mad16] +sound 61928 0 [mad16 sb uart401 ad1848] + +.config has: + +CONFIG_SOUND=m +CONFIG_ADLIB=m +CONFIG_MAD16=m +CONFIG_YM3812=m + +modules.conf has: + +alias char-major-14 mad16 +options sb mad16=1 +options mad16 io=0x530 irq=7 dma=0 dma16=1 && /usr/local/bin/aumix -w 15 -p 20 -m 0 -1 0 -2 0 -3 0 -i 0 diff -ur --new-file old/linux/Documentation/sound/OPL3 new/linux/Documentation/sound/OPL3 --- old/linux/Documentation/sound/OPL3 Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/OPL3 Sat Mar 21 19:56:26 1998 @@ -0,0 +1,6 @@ +A pure OPL3 card is nice and easy to configure. Simply do + +insmod opl3 io=0x388 + +Change the I/O address in the very unlikely case this card is differently +configured diff -ur --new-file old/linux/Documentation/sound/Opti new/linux/Documentation/sound/Opti --- old/linux/Documentation/sound/Opti Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/Opti Thu May 21 03:54:34 1998 @@ -0,0 +1,216 @@ +Support for the OPTi 82C931 chip +-------------------------------- +Note: parts of this README file apply also to other +cards that use the mad16 driver. + +Some items in this README file are based on features +added to the sound driver after Linux-2.1.91 was out. +By the time of writing this I do not know which official +kernel release will include these features. +Please do not report inconsistencies on older Linux +kernels. + +The OPTi 82C931 is supported in its non PnP mode. +Usually you do not need to set jumpers etc... The sound driver +will check the card status and if it is required it will +force the card into a mode in which it can be programmed. + +If you have another OS installed on your computer it is recommended +that Linux and the other OS use the same resources. + +Also, it is recommended that resources specified in /etc/conf.modules +and resources specified in /etc/isapnp.conf agree. + +Compiling the sound driver +-------------------------- +I highly recommend that you build a modularized sound driver. +This document does not cover a sound-driver which is built in +the kernel. + +Sound card support should be enabled as a module (chose m). +Answer 'm' for these items: + Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) + Microsoft Sound System support (CONFIG_MSS) + Support for OPTi MAD16 and/or Mozart based cards (CONFIG_MAD16) + FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) + +The configuration menu may ask for addresses, irq lines or dma +channels. If the card is used as a module the module loading +options will override these values. + +For the OPTi 931 you can answer 'n' to: + Support MIDI in older MAD16 based cards (requires SB) (CONFIG_MAD16_OLDCARD) +If you do need MIDI support in a Mozart or C928 based card you +need to answer 'm' to the above question. In that case you will +also need to answer 'm' to: + '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' (CONFIG_SB) + +Go on and compile your kernel and modules. Install the modules. Run depmod -a. + +Using isapnptools +----------------- +In most systems with a PnP BIOS you do not need to use isapnp. The +initialization provided by the BIOS is sufficient for the driver +to pick up the card and continue initialization. + +If that fails, or if you have other PnP cards, you need to use isapnp +to initialize the card. +This was tested with isapnptools-1.11 but I recommend that you use +isapnptools-1.13 (or newer). Run pnpdump to dump the information +about your PnP cards. Then edit the resulting file and select +the options of your choice. This file is normally installed as +/etc/isapnp.conf. + +The driver had one limitation WRT io port resources. +IO3 base should be 0x0E0C. Isapnp allows other io ports but this +address is hard-coded into the driver. + +Using kmod and autoloading the sound driver +------------------------------------------- +Comment: as of linux-2.1.90 kmod is replacing kerneld. +The config file '/etc/conf.modules' is used as before. + +This is the sound part of my /etc/conf.modules file. +Following that I will explain each line. + +alias mixer0 mad16 +alias audio0 mad16 +alias midi0 mad16 +alias synth0 opl3 +options sb mad16=1 +options mad16 irq=10 dma=0 dma16=1 io=0x530 joystick=1 cdtype=0 +options opl3 io=0x388 +post-install mad16 /sbin/ad1848_mixer_reroute 14 8 15 3 16 6 + +Explain: + +alias mixer0 mad16 +alias audio0 mad16 +alias midi0 mad16 +alias synth0 opl3 + +When any sound device is opened the kernel requests auto-loading +of char-major-14. There is a built-in alias that translates this +request to loading the main sound module. The main sound module +contains only common code which is needed by all the sound drivers, +and the driver for /dev/sndstat. + +The sound module in its turn will request loading of a sub-driver +for mixer, audio, midi or synthesizer device. The first 3 are +supported by the mad16 driver. The synth device is supported +by the opl3 driver. + +There is currently no way to autoload the sound device driver +if more than one card is installed. + +options sb mad16=1 + +This is left for historical reasons. If you enable the +config option 'Support MIDI in older MAD16 based cards (requires SB)' +or if you use an older mad16 driver it will force loading of the +SoundBlaster driver. This option tells the SB driver not to look +for a SB card but to wait for the mad16 driver. + +options mad16 irq=10 dma=0 dma16=1 io=0x530 joystick=1 cdtype=0 +options opl3 io=0x388 + +post-install mad16 /sbin/ad1848_mixer_reroute 14 8 15 3 16 6 + +This sets resources and options for the mad16 and opl3 drivers. +I use 2 dma channels (only one is required) to enable full duplex. +joystick=1 enables the joystick port. cdtype=0 disables the cd port. +You can also set mpu_io and mpu_irq in the mad16 options for the +uart401 driver. + +This tells modprobe to run /sbin/ad1848_mixer_reroute after +mad16 is successfully loaded and initialized. The source +for ad1848_mixer_reroute is appended to the end of this readme +file. It is impossible for the sound driver to know the actual +connections to the mixer. The 3 inputs intended for cd, synth +and line-in are mapped to the generic inputs line1, line2 and +line3. This program reroutes these mixer channels to their +right names (note the right mapping depends on the actual sound +card that you use). +The numeric parameters mean: + 14=line1 8=cd - reroute line1 to the CD input. + 15=line2 3=synth - reroute line2 to the synthesizer input. + 16=line3 6=line - reroute line3 to the line input. +For reference on other input names look at the file +/usr/include/linux/soundcard.h. + +Using a joystick +----------------- +You must enable a joystick in the mad16 options. (also +in /etc/isapnp.conf if you use it). +Tested with regular analog joysticks. + +A CDROM drive connected to the sound card +----------------------------------------- +The 82C931 chip has support only for secondary ATAPI cdrom. +(cdtype=8). Loading the mad16 driver resets the C931 chip +and if a cdrom was already mounted it may cause a complete +system hang. Do not use the sound card if you have an alternative. +If you do use the sound card it is important that you load +the mad16 driver (use "modprobe mad16" to prevent auto-unloading) +before the cdrom is accessed the first time. + +Using the sound driver built-in to the kernel may help here, but... +Most new systems have a PnP BIOS and also two IDE controllers. +The IDE controller on the sound card may be needed only on older +systems (which have only one IDE controller) but these systems +also do not have a PnP BIOS - requiring isapnptools and a modularized +driver. + +Known problems +-------------- +1. See the section on "A CDROM drive connected to the sound card". + +2. On my system the codec cannot capture companded sound samples. + (eg., recording from /dev/audio). When any companded capture is + requested I get stereo-16 bit samples instead. Playback of + companded samples works well. Apparently this problem is not common + to all C931 based cards. I do not know how to identify cards that + have this problem. + +Source for ad1848_mixer_reroute.c +--------------------------------- +#include +#include +#include + +static char *mixer_names[SOUND_MIXER_NRDEVICES] = + SOUND_DEVICE_LABELS; + +int +main(int argc, char **argv) { + int val, from, to; + int i, fd; + + fd = open("/dev/mixer", O_RDWR); + if(fd < 0) { + perror("/dev/mixer"); + return 1; + } + + for(i = 2; i < argc; i += 2) { + from = atoi(argv[i-1]); + to = atoi(argv[i]); + + if(to == SOUND_MIXER_NONE) + fprintf(stderr, "%s: turning off mixer %s\n", + argv[0], mixer_names[to]); + else + fprintf(stderr, "%s: rerouting mixer %s to %s\n", + argv[0], mixer_names[from], mixer_names[to]); + + val = from << 8 | to; + + if(ioctl(fd, SOUND_MIXER_PRIVATE2, &val)) { + perror("AD1848 mixer reroute"); + return 1; + } + } + + return 0; +} + diff -ur --new-file old/linux/Documentation/sound/Soundblaster new/linux/Documentation/sound/Soundblaster --- old/linux/Documentation/sound/Soundblaster Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/Soundblaster Thu May 21 03:54:34 1998 @@ -0,0 +1,38 @@ + +insmod sound +insmod uart401 +insmod sb ... + +This loads the driver for the soundblaster and assorted clones. Cards that +are covered by other drivers should not be using this driver. + +The soundblaster module takes the following arguments + +io I/O address of the soundblaster chip +irq IRQ of the soundblaster chip +dma 8bit DMA channel for the soundblaster +dma16 16bit DMA channel for SB16 and equivalent cards +mpu_io I/O for MPU chip if present + +mad16=1 Set when loading this as part of the MAD16 setup only +trix=1 Set when loading this as part of the Audiotrix setup only +pas2=1 Set when loading this as part of the Pas2 setup only +sm_games=1 Set if you have a Logitech soundman games +acer=1 Set this to detect cards in some ACER notebooks +mwave_bug=1 Set if you are trying to use this driver with mwave (see on) + +You may well want to load the opl3 driver for synth music on most SB and +clone SB devices + +insmod opl3 io=0x388 + +Using Mwave + +To make this driver work with Mwave you must set mwave_bug. You also need +to warm boot from DOS/Windows with the required firmware loaded under this +OS. IBM are being difficult about documenting how to load this firmware. + +Advance Logic ALS007 + +This card isn't currently supported. I have patches to merge however that +add limited support. diff -ur --new-file old/linux/Documentation/sound/mwave new/linux/Documentation/sound/mwave --- old/linux/Documentation/sound/mwave Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/mwave Thu May 21 03:54:34 1998 @@ -0,0 +1,192 @@ + How to try and survive an IBM Mwave under Linux SB drivers + + +* IBM refuses to provide documentation. If anyone can ever find out what + MWD50430.EXE actually does to load firmware then this comedy could go + away. + +* If you'd like to ask IBM why they don't release Mwave information. + phone IBM (425-556-8822) and ask them why they still haven't + released any documentation. + [http://204.200.238.31/cgi-bin/link.pl?co=i&cl=/ts/ibm/contact.html] + +---------------------------------------------------------------------------- + +OK, first thing - the IRQ problem IS a problem, whether the test is bypassed or +not. And it is NOT a linux problem - it is an MWAVE problem that is fixed with +the latest MWAVE patches. So, in other words, don't bypass the test for MWAVES! + +My config is Win 95 on HDA1, swap on HDA2, RH 5 on HDA3. + +The steps, then: + + Boot to Linux. + Mount Win95 file system (assume mount mount = /dos95) + mkdir /dos95/linux + mkdir /dos95/linux/boot + mkdir /dos95/linux/boot/parms + + Copy the kernel, any initrd image, and loadlin to /dos95/linux/boot + + Reboot to win 95 + + Edit C:/msdos.sys and add/change the following: + + Logo=0 + BootGUI=0 + + [Note msdos.sys IS a text file but it needs to be 'unhidden' and make + read-writable before it can be edited] + + Edit Config .sys to have multiple config menus. I have one for win95, and + five for linux. Like this: +------------ +[menu] +menuitem=W95, Windows 95 +menuitem=LINTP, Linux - ThinkPad +menuitem=LINTP3, Linux - ThinkPad Console +menuitem=LINDOC, Linux - Docked +menuitem=LINDOC3, Linux - Docked Console +menuitem=LIN1, Linux - Single User Mode +REM menudefault=W95,10 + +[W95] + +[LINTP] + +[LINDOC] + +[LINTP3] + +[LINDOC3] + +[LIN1] + +[COMMON] +FILES=30 +REM Please read README.TXT in C:\MWW subdirectory before changing the DOS= statement. +DOS=HIGH,UMB +DEVICE=C:\MWW\MANAGER\MWD50430.EXE +SHELL=c:\command.com /e:2048 +------------------- + +The important things are the SHELL and DEVICE statements + + Then change Autoexec.bat. Basically everything in there originally should be + done ONLY when Win95 is booted. Then you add new things specifically for + Linux. Mine is as follows + +--------------- +@ECHO OFF +if "%CONFIG%" == "W95" goto W95 + +REM +REM Linux stuff +REM +SET MWPATH=C:\MWW\DLL;C:\MWW\MWGAMES;C:\MWW\DSP +SET BLASTER=A220 I5 D1 +SET MWROOT=C:\MWW +SET LIBPATH=C:\MWW\DLL +SET PATH=C:\WINDOWS;C:\MWW\DLL; +CALL MWAVE START NOSHOW +c:\linux\boot\loadlin.exe @c:\linux\boot\parms\%CONFIG%.par + +:W95 +REM +REM Windows 95 stuff +REM +c:\toolkit\guard +SET MSINPUT=C:\MSINPUT +SET MWPATH=C:\MWW\DLL;C:\MWW\MWGAMES;C:\MWW\DSP +REM The following is used by DOS games to recognize Sound Blaster hardware. +REM If hardware settings are changed, please change this line as well. +REM See the Mwave README file for instructions. +SET BLASTER=A220 I5 D1 +SET MWROOT=C:\MWW +SET LIBPATH=C:\MWW\DLL +SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;E:\ORAWIN95\BIN;f:\msdev\bin;e:\v30\bin.dbg;v:\devt\v30\bin;c:\JavaSDK\Bin;C:\MWW\DLL; +SET INCLUDE=f:\MSDEV\INCLUDE;F:\MSDEV\MFC\INCLUDE +SET LIB=F:\MSDEV\LIB;F:\MSDEV\MFC\LIB +win + +------------------------ + +Now build a file in c:\linux\boot\parms for each linux config that you have. + +For example, my LINDOC3 config is for a docked Thinkpad at runlevel 3 with no +initrd image, and has a parm file named LINDOC3.PAR in c:\linux\boot\parms: + +----------------------- +# LOADLIN @param_file image=other_image root=/dev/other +# +# Linux Console in docking station +# +c:\linux\boot\zImage.krn # first value must be the filename of the Linux-kernel +root=/dev/hda3 # the device which gets mounted as root FS +ro # Other kernel arguments go here +apm=off +doc=yes +3 +----------------------- + +the doc=yes parm is an environment variable that my init scripts use, it is not +a kernel argument. + +However, the apm=off parm IS a kernel argument! APM, at least in my setup, +causes the kernel to crash when loaded via loadlin (but NOT when loaded via +LILO). The APM stuff COULD be forced out of the kernel via the kernel compile +options. BUT I, instead, got hold of an unofficial patch to the APM drivers that +allows them to be dynamically deactivated via kernel arguments. Whatever you +chose to document, APM, it seems, MUST be off for setups like mine. + +Now check the C:\MWW\MWCONFIG.REF looks like this: + +---------------------- +[NativeDOS] +Default=SB1.5 +SBInputSource=CD +SYNTH=FM +QSound=OFF +Reverb=OFF +Chorus=OFF +ReverbDepth=5 +ChorusDepth=5 +SBInputVolume=5 +SBMainVolume=10 +SBWaveVolume=10 +SBSynthVolume=10 +WaveTableVolume=10 +AudioPowerDriver=ON + +[FastCFG] +Show=No +HideOption=Off +----------------------------- + +OR the Default= line COULD be + +Default=SBPRO + +Reboot to Win95 and choose Linux. When booted, use sndconfig to configure the +sound modules and VOILA - ThinkPad sound with Linux. + +Now the gotchas - You can either have CD sound OR Mixers but not both. That's a +problem with the SB1.5(CD sound) or SBPRO(Mixers) settings. No-one knows why +this is! + +And, for some reason MPEG3 files, when played through mpg123, sound like they +are playing at 1/8th speed - not very useful!!!!!!!!!!!! If you have ANY insight +on why this second thing might be happening I would be grateful. + +=========================================================== + _/ _/_/_/_/ + _/_/ _/_/ _/ + _/ _/_/ _/_/_/_/ Martin John Bartlett + _/ _/ _/ _/ (martin@nitram.demon.co.uk) +_/ _/_/_/_/ + _/ +_/ _/ + _/_/ +=========================================================== + + diff -ur --new-file old/linux/Documentation/sound/ultrasound new/linux/Documentation/sound/ultrasound --- old/linux/Documentation/sound/ultrasound Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sound/ultrasound Tue Apr 28 23:22:04 1998 @@ -0,0 +1,31 @@ + +insmod sound +insmod ad1848 +insmod gus io=* irq=* dma=* ... + +This loads the driver for the Gravis Ultrasound family of soundcards. + +The gus modules takes the following arguments + +io I/O address of the ultrasound card (eg. io=0x220) +irq IRQ of the soundblaster card +dma DMA channel for the soundblaster +dma16 2nd DMA channel, only needed for full duplex operation +type 1 for PnP card +gus16 1 for using 16 bit sampling daughter board +no_wave_dma Set to disable dma usage for wavetable (see note) +db16 ??? + + +no_wave_dma option + +This option defaults to a value of 0, which allows the Ultrasound wavetable +DSP to use DMA for for playback and downloading samples. This is the same +as the old behaviour. If set to 1, no DMA is needed for downloading samples, +and allows owners of a GUS MAX to make use of simultaneous digital audio +(/dev/dsp), MIDI, and wavetable playback. + + +If you have problems in recording with GUS MAX, you could try to use +just one 8 bit DMA channel. Recording will not work with one DMA +channel if it's a 16 bit one. diff -ur --new-file old/linux/Documentation/specialix.txt new/linux/Documentation/specialix.txt --- old/linux/Documentation/specialix.txt Tue Dec 2 18:19:03 1997 +++ new/linux/Documentation/specialix.txt Tue Apr 28 23:22:04 1998 @@ -44,10 +44,10 @@ kernel sources? And the manual of one of the boards in your computer? -Adresses and interrupts -======================= +Addresses and interrupts +======================== -Addres dip switch settings: +Address dip switch settings: The dip switch sets bits 2-9 of the IO address. 9 8 7 6 5 4 3 2 @@ -111,7 +111,7 @@ fact is a divided by two mode). This is not enough to reach the rated 115k2 on all ports at the same time. With this clock rate you can only do 37% of this rate. This means that at 115k2 on all ports you are -going to loose characters (The chip cannot handle that many incoming +going to lose characters (The chip cannot handle that many incoming bits at this clock rate.) (Yes, you read that correctly: there is a limit to the number of -=bits=- per second that the chip can handle.) @@ -129,7 +129,7 @@ The three characters that have the "^^^" under them have suffered a bit error in the highest bit. In conclusion: I've tested it, and found -that it simply DOESN"T work for me. I also suspect that this is also +that it simply DOESN'T work for me. I also suspect that this is also caused by the baud rate being just a little bit out of tune. diff -ur --new-file old/linux/Documentation/spinlocks.txt new/linux/Documentation/spinlocks.txt --- old/linux/Documentation/spinlocks.txt Mon Jan 12 23:46:16 1998 +++ new/linux/Documentation/spinlocks.txt Tue Apr 28 23:22:05 1998 @@ -6,7 +6,7 @@ > SMP safe as well as UP safe during interrupts and other manipulating > routines. So far, I've added a spin_lock variable to things like my queue > structs. Now, from what I recall, there are some spin lock functions I can -> use to lock these spin locks frmo other use as oppossed to a (nasty) +> use to lock these spin locks from other use as opposed to a (nasty) > save_flags(); cli(); stuff; restore_flags(); construct. Where do I find > these routines and go about making use of them? Do they only lock on a > per-processor basis or can they also lock say an interrupt routine from @@ -25,7 +25,7 @@ ... critical section here .. spin_unlock_irqrestore(&xxx_lock, flags); -and the above is always safe. It will disable interrupt _locally_, but the +and the above is always safe. It will disable interrupts _locally_, but the spinlock itself will guarantee the global lock, so it will guarantee that there is only one thread-of-control within the region(s) protected by that lock. diff -ur --new-file old/linux/Documentation/stallion.txt new/linux/Documentation/stallion.txt --- old/linux/Documentation/stallion.txt Wed Feb 4 23:52:16 1998 +++ new/linux/Documentation/stallion.txt Tue Apr 28 23:22:05 1998 @@ -4,8 +4,8 @@ Copyright (C) 1994-1998, Stallion Technologies (support@stallion.com). -Version: 5.4.3 -Date: 04FEB98 +Version: 5.4.5 +Date: 23MAR98 @@ -31,12 +31,12 @@ have the latest version are tsx-11.mit.edu, sunsite.unc.edu and their mirrors. -ftp.stallion.com:/drivers/ata5/Linux/stallion-5.4.2.tar.gz -tsx-11.mit.edu:/pub/linux/packages/stallion/stallion-5.4.2.tar.gz -sunsite.unc.edu:/pub/Linux/kernel/patches/serial/stallion-5.4.2.tar.gz +ftp.stallion.com:/drivers/ata5/Linux/v544.tar.gz +tsx-11.mit.edu:/pub/linux/packages/stallion/stallion-5.4.4.tar.gz +sunsite.unc.edu:/pub/Linux/kernel/patches/serial/stallion-5.4.4.tar.gz As of the printing of this document the latest version of the driver -utility package is 5.4.2. If a later version is now available then you +utility package is 5.4.4. If a later version is now available then you should use the latest version. If you are using the EasyIO, EasyConnection 8/32 or EasyConnection 8/64-PCI @@ -94,7 +94,7 @@ When the new kernel is booted, or the loadable module loaded then the driver will emit some kernel trace messages about whether the configured -boards where detected or not. Depending on how your system logger is set +boards were detected or not. Depending on how your system logger is set up these may come out on the console, or just be logged to /var/adm/messages. You should check the messages to confirm that all is well. @@ -141,7 +141,7 @@ The higher than 1Mb memory addresses are fully supported by this driver. Just enter the address as you normally would for a lower than 1Mb address -(in the drivers board configuration structure). +(in the driver's board configuration structure). @@ -165,7 +165,7 @@ The intelligent boards also need to have their "firmware" code downloaded to them. This is done via a user level application supplied in the driver -utility package called "stlload". Compile this program where ever you dropped +utility package called "stlload". Compile this program wherever you dropped the package files, by typing "make". In its simplest form you can then type ./stlload -i cdk.sys in this directory and that will download board 0 (assuming board 0 is an @@ -220,7 +220,7 @@ Since this driver tries to emulate the standard serial ports as much as possible, most system utilities should work as they do for the standard -COM ports. Most importantly "stty" works as expected and "setserial" can be +COM ports. Most importantly "stty" works as expected and "setserial" can also be used (excepting the ability to auto-configure the I/O and IRQ addresses of boards). Higher baud rates are supported in the usual fashion through setserial or using the CBAUDEX extensions. Note that the EasyIO and diff -ur --new-file old/linux/Documentation/svga.txt new/linux/Documentation/svga.txt --- old/linux/Documentation/svga.txt Sat Nov 29 19:33:18 1997 +++ new/linux/Documentation/svga.txt Thu May 21 03:54:34 1998 @@ -5,8 +5,8 @@ 1. Intro ~~~~~~~~ This small document describes the "Video Mode Selection" feature which -allows to use various special video modes supported by the video BIOS. Due -to usage of the BIOS, the selection is limited to the boot time (before the +allows the use of various special video modes supported by the video BIOS. Due +to usage of the BIOS, the selection is limited to boot time (before the kernel decompression starts) and works only on 80X86 machines. The video mode to be used is selected by a kernel parameter which can be @@ -58,19 +58,19 @@ how to enable it if you really want) as it's inherently unreliable due to absolutely insane PC design. - "0 0F00 80x25" tells that the first menu item (the menu items are numbered + "0 0F00 80x25" means that the first menu item (the menu items are numbered from "0" to "9" and from "a" to "z") is a 80x25 mode with ID=0x0f00 (see the next section for a description of mode ID's). - encourages you to write the item number or mode ID + encourages you to enter the item number or mode ID you wish to set and press . If the computer complains something about -"Unknown mode ID", it tries to explain you that it isn't possible to set such +"Unknown mode ID", it is trying to tell you that it isn't possible to set such a mode. It's also possible to press only which leaves the current mode. - The mode list usually contains only few basic modes and some VESA modes. In + The mode list usually contains a few basic modes and some VESA modes. In case your chipset has been detected, some chipset-specific modes are shown as well (some of these might be missing or unusable on your machine as different -BIOSes are often shipped with the same card and the mode numbers depend purely +BIOSs are often shipped with the same card and the mode numbers depend purely on the VGA BIOS). The modes displayed on the menu are partially sorted: The list starts with @@ -139,8 +139,8 @@ If you add 0x8000 to the mode ID, the program will try to recalculate vertical display timing according to mode parameters, which can be used to -eliminate some annoying bugs of certain VGA BIOS'es (usually those used for -cards with S3 chipsets and old Cirrus Logic BIOSes) -- mainly extra lines at the +eliminate some annoying bugs of certain VGA BIOSs (usually those used for +cards with S3 chipsets and old Cirrus Logic BIOSs) -- mainly extra lines at the end of the display. 4. Options @@ -173,13 +173,13 @@ CONFIG_VIDEO_LOCAL - enables inclusion of "local modes" in the list. The local modes are added automatically to the beginning of the list not depending -by hardware configuration. The local modes are listed in the source text after +on hardware configuration. The local modes are listed in the source text after the "local_mode_table:" line. The comment before this line describes the format of the table (which also includes a video card name to be displayed on the top of the menu). CONFIG_VIDEO_400_HACK - force setting of 400 scan lines for standard VGA -modes. This option is intended to be used on certain buggy BIOS'es which draw +modes. This option is intended to be used on certain buggy BIOSs which draw some useless logo using font download and then fail to reset the correct mode. Don't use unless needed as it forces resetting the video card. @@ -201,7 +201,7 @@ In either case, please send me a bug report containing what _exactly_ happens and how do the configuration switches affect the behaviour of the bug. - If you start Linux from the M$-DOS, you might also use some DOS tools for + If you start Linux from M$-DOS, you might also use some DOS tools for video mode setting. In this case, you must specify the 0x0f04 mode ("leave current settings") to Linux, because if you don't and you use any non-standard mode, Linux will switch to 80x25 automatically. diff -ur --new-file old/linux/Documentation/sysctl/README new/linux/Documentation/sysctl/README --- old/linux/Documentation/sysctl/README Thu Feb 26 20:10:37 1998 +++ new/linux/Documentation/sysctl/README Sat Apr 18 07:06:22 1998 @@ -1,6 +1,6 @@ Documentation for /proc/sys/*/* version 0.1 - (c) 1998, Rik van Riel + (c) 1998, Rik van Riel 'Why', I hear you ask, 'would anyone even _want_ documentation for them sysctl files? If anybody really needs it, it's all in @@ -32,7 +32,7 @@ you're the last RTFMing person to screw up. In short, e-mail your suggestions, corrections and / or horror -stories to: +stories to: Rik van Riel. diff -ur --new-file old/linux/Documentation/sysctl/kernel.txt new/linux/Documentation/sysctl/kernel.txt --- old/linux/Documentation/sysctl/kernel.txt Thu Feb 26 20:09:16 1998 +++ new/linux/Documentation/sysctl/kernel.txt Tue Apr 28 23:22:05 1998 @@ -1,6 +1,6 @@ Documentation for /proc/sys/kernel/* version 0.1 - (c) 1998, Rik van Riel + (c) 1998, Rik van Riel For general info and legal blurb, please look in README. @@ -25,10 +25,13 @@ - inode-max - inode-nr - inode-state +- modprobe ==> Documentation/kmod.txt - osrelease - ostype - panic - printk +- real-root-dev ==> Documentation/initrd.txt +- reboot-cmd ==> SPARC specific - securelevel - version @@ -40,7 +43,7 @@ sent to the init(1) program to handle a graceful restart. When, however, the value is > 0, Linux's reaction to a Vulcan Nerve Pinch (tm) will be an immediate reboot, without even -syncing it's dirty buffers. +syncing its dirty buffers. Note: when a program (like dosemu) has the keyboard in 'raw' mode, the ctrl-alt-del is intercepted by the program before it @@ -65,7 +68,7 @@ Dentries are dynamically allocated and deallocated, and nr_dentry seems to be 0 all the time. Hence it's safe to assume that only nr_unused, age_limit and want_pages are -used. Nr_unused seems to be exactly what it's name says. +used. Nr_unused seems to be exactly what its name says. Age_limit is the age in seconds after which dcache entries can be reclaimed when memory is short and want_pages is nonzero when shrink_dcache_pages() has been called and the @@ -98,7 +101,7 @@ file handles, the number of used file handles and the maximum number of file handles. When the allocated filehandles come close to the maximum, but the number of actually used ones is -far behind, you've encountered a peek in your filehandle usage +far behind, you've encountered a peak in your filehandle usage and you don't need to increase the maximum. ============================================================== @@ -109,7 +112,7 @@ dynamically, but can't free them yet... The value in inode-max denotes the maximum number of inode -handlers. This value should be 3-4 times larger as the value +handlers. This value should be 3-4 times larger than the value in file-max, since stdin, stdout and network sockets also need an inode struct to handle them. When you regularly run out of inodes, you need to increase this value. @@ -123,7 +126,7 @@ Nr_inodes stands for the number of inodes the system has allocated, this can be slightly more than inode-max because -Linux allocates them one pagefull at a time. +Linux allocates them one pageful at a time. Nr_free_inodes represents the number of free inodes (?) and preshrink is nonzero when the nr_inodes > inode-max and the diff -ur --new-file old/linux/Documentation/sysctl/vm.txt new/linux/Documentation/sysctl/vm.txt --- old/linux/Documentation/sysctl/vm.txt Thu Mar 12 19:56:01 1998 +++ new/linux/Documentation/sysctl/vm.txt Sun May 3 02:45:03 1998 @@ -1,6 +1,6 @@ Documentation for /proc/sys/vm/* version 0.1 - (c) 1998, Rik van Riel + (c) 1998, Rik van Riel For general info and legal blurb, please look in README. @@ -18,7 +18,9 @@ - bdflush - buffermem - freepages +- kswapd - overcommit_memory +- pagecache - swapctl - swapout_interval @@ -61,7 +63,7 @@ to a clean buffer, which can just be forgotten about). Setting this to a high value means that Linux can delay disk writes for a long time, but it also means that it will have -to do a lot I/O at once when memory becomes short. A low +to do a lot of I/O at once when memory becomes short. A low value will spread out disk I/O more evenly. The second parameter (ndirty) gives the maximum number of @@ -93,17 +95,17 @@ The three values in this file correspond to the values in the struct buffer_mem. It controls how much memory should -be used for buffer and cache memory. Note that memorymapped -files are also counted as cache memory... +be used for buffer memory. The percentage is calculated +as a percentage of total system memory. The values are: min_percent -- this is the minumum percentage of memory - that should be spent on buffer + page cache -borrow_percent -- when Linux is short on memory, and buffer - and cache use more than this percentage of - memory, free pages are stolen from them + that should be spent on buffer memory +borrow_percent -- when Linux is short on memory, and the + buffer cache uses more memory, free pages + are stolen from it max_percent -- this is the maximum amount of memory that - can be used for buffer and cache memory + can be used for buffer memory ============================================================== freepages: @@ -111,29 +113,58 @@ This file contains the values in the struct freepages. That struct contains three members: min, low and high. -These numbers are used by the VM subsystem to keep a reasonable -number of pages on the free page list, so that programs can -allocate new pages without having to wait for the system to -free used pages first. The actual freeing of pages is done -by kswapd, a kernel daemon. - -min -- when the number of free pages reaches this - level, only the kernel can allocate memory - for _critical_ tasks only -low -- when the number of free pages drops below - this level, kswapd is woken up immediately -high -- this is kswapd's target, when more than - pages are free, kswapd will stop swapping. - -When the number of free pages is between low and high, -and kswapd hasn't run for swapout_interval jiffies, then -kswapd is woken up too. See swapout_interval for more info. - -When free memory is always low on your system, and kswapd has -trouble keeping up with allocations, you might want to -increase these values, especially high and perhaps low. -I've found that a 1:2:4 relation for these values tend to work -rather well in a heavily loaded system. +Although the goal of the Linux memory management subsystem +is to avoid fragmentation and make large chunks of free +memory (so that we can hand out DMA buffers and such), there +still are some page-based limits in the system, mainly to +make sure we don't waste too much memory trying to get large +free area's. + +The meaning of the numbers is: + +freepages.min When the number of free pages in the system + reaches this number, only the kernel can + allocate more memory. +freepages.low If memory is too fragmented, the swapout + daemon is started, except when the number + of free pages is larger than freepages.low. +freepages.high The swapping daemon exits when memory is + sufficiently defragmented, when the number + of free pages reaches freepages.high or when + it has tried the maximum number of times. + +============================================================== + +kswapd: + +Kswapd is the kernel swapout daemon. That is, kswapd is that +piece of the kernel that frees memory when it get's fragmented +or full. Since every system is different, you'll probably want +some control over this piece of the system. + +The numbers in this page correspond to the numbers in the +struct pager_daemon {tries_base, tries_min, swap_cluster +}; The tries_base and swap_cluster probably have the +largest influence on system performance. + +tries_base The maximum number of pages kswapd tries to + free in one round is calculated from this + number. Usually this number will be divided + by 4 or 8 (see mm/vmscan.c), so it isn't as + big as it looks. + When you need to increase the bandwith to/from + swap, you'll want to increase this number. +tries_min This is the minimum number of times kswapd + tries to free a page each time it is called. + Basically it's just there to make sure that + kswapd frees some pages even when it's being + called with minimum priority. +swap_cluster This is the number of pages kswapd writes in + one turn. You want this large so that kswapd + does it's I/O in large chunks and the disk + doesn't have to seek often, but you don't want + it to be too large since that would flood the + request queue. ============================================================== @@ -176,6 +207,18 @@ ============================================================== +pagecache: + +This file does exactly the same as buffermem, only this +file controls the struct page_cache, and thus controls +the amount of memory allowed for memory mapping of files. + +You don't want the minimum level to be too low, otherwise +your system might thrash when memory is tight or fragmentation +is high... + +============================================================== + swapctl: This file contains no less than 8 variables. @@ -197,23 +240,23 @@ } swap_control_v5; -------------------------------------------------------------- -The first four variables are used to keep track of Linux' +The first four variables are used to keep track of Linux's page aging. Page aging is a bookkeeping method to keep track of which pages of memory are used often, and which pages can be swapped out without consequences. When a page is swapped in, it starts at sc_page_initial_age -(default 3) and when the page is scanned by kswapd, it's age +(default 3) and when the page is scanned by kswapd, its age is adjusted according to the following scheme: -- if the page was used since the last time we scanned, it's - age is increased sc_page_advance (default 3) up to a maximum +- if the page was used since the last time we scanned, its + age is increased by sc_page_advance (default 3) up to a maximum of sc_max_page_age (default 20) -- else (it wasn't used) it's age is decreased sc_page_decline +- else (it wasn't used) its age is decreased by sc_page_decline (default 1) And when a page reaches age 0, it's ready to be swapped out. The next four variables can be used to control kswapd's -agressiveness in swapping out pages. +aggressiveness in swapping out pages. sc_age_cluster_fract is used to calculate how many pages from a process are to be scanned by kswapd. The formula used is @@ -224,10 +267,10 @@ also scan small processes. The values of sc_pageout_weight and sc_bufferout_weight are -used to control the how many tries kswapd will do in order +used to control how many tries kswapd will make in order to swapout one page / buffer. These values can be used to finetune the ratio between user pages and buffer/cache memory. -When you find that your Linux system is swapping out too much +When you find that your Linux system is swapping out too many process pages in order to satisfy buffer memory demands, you might want to either increase sc_bufferout_weight, or decrease the value of sc_pageout_weight. diff -ur --new-file old/linux/Documentation/sysrq.txt new/linux/Documentation/sysrq.txt --- old/linux/Documentation/sysrq.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/sysrq.txt Fri Jun 5 07:53:50 1998 @@ -0,0 +1,113 @@ + MAGIC SYSRQ KEY DOCUMENTATION v1.2 + ------------------------------------ + [Sat May 16 01:09:21 EDT 1998] + +* What is the magic SysRQ key? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +It is a 'magical' key combo you can hit which kernel will respond to +regardless of whatever else it is doing, unless it is completely locked up. + +* How do I enable the magic SysRQ key? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +You need to say yes to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when +configuring the kernel. This option is only available it 2.1.x or later +kernels. + +* How do I use the magic SysRQ key? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +On x86 - You press the key combo 'ALT-SysRQ-'. Note - Some + (older?) may not have a key labeled 'SysRQ'. The 'SysRQ' key is + also known as the 'Print Screen' key. + +On SPARC - You press 'ALT-STOP-', I believe. + +On other - If you know of the key combos for other architectures, please + let me know so I can add them to this section. + +* What are the 'command' keys? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +'r' - Turns off keyboard raw mode and sets it to XLATE. + +'k' - Kills all programs on the current virtual console. + +'b' - Will immediately reboot the system without syncing or unmounting + your disks. + +'o' - Will shut your system off via APM (if configured and supported). + +'s' - Will attempt to sync all mounted filesystems. + +'u' - Will attempt to remount all mounted file systems readonly. + +'p' - Will dump the current registers and flags to your console. + +'t' - Will dump a list of current tasks and their information to your + console. + +'m' - Will dump current memory info to your console. + +'0'-'9' - Sets the console log level, controlling which kernel messages + will be printed to your console. ('0', for example would make + it so that only emergency messages like PANICs or OOPSes would + make it to your console.) + +'e' - Send a SIGTERM to all processes, except for init. + +'i' - Send a SIGKILL to all processes, except for init. + +'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system + will be non-functional after this.) + +* Okay, so what can I use them for? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Well, un'R'aw is very handy when your X server or a svgalib program crashes. + +sa'K' (system attention key) is useful when you want to exit a program +that will not let you switch consoles. (For example, X or a svgalib program.) + +re'B'oot is good when you're unable to shut down. But you should also 'S'ync +and 'U'mount first. + +'S'ync is great when your system is locked up, it allows you to sync your +disks and will certainly lessen the chance of data loss and fscking. Note +that the sync hasn't taken place until you see the "OK" and "Done" appear +on the screen. (If the kernel is really in strife, you may not ever get the +OK or Done message...) + +'U'mount is basically useful in the same ways as 'S'ync. I generally 'S'ync, +'U'mount, then re'B'oot when my system locks. It's saved me many a fsck. +Again, the unmount (remount read-only) hasn't taken place until you see the +"OK" and "Done" message appear on the screen. + +The loglevel'0'-'9' is useful when your console is being flooded with +kernel messages you do not want to see. Setting '0' will prevent all but +the most urgent kernel messages from reaching your console. (They will +still be logged if syslogd/klogd are alive, though.) + +t'E'rm and k'I'll are useful if you have some sort of runaway process you +are unable to kill any other way, especially if it's spawning other +processes. + +* Sometimes SysRQ seems to get 'stuck' after using it, what can I do? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +That happens to me, also. I've found that tapping shift, alt, and control +on both sides of the keyboard, and hitting an invalid sysrq sequence again +will fix the problem. (ie, something like alt-sysrq-z). Switching to another +virtual console (ALT+Fn) and then back again should also help. + +* I hit SysRQ, but nothing seems to happen, what's wrong? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +There are some keyboards which do not support 'SysRQ', you can try running +'showkey -s' and pressing SysRQ or alt-SysRQ to see if it generates any +0x54 codes. If it doesn't, you may define the magic sysrq sequence to a +different key. Find the keycode with showkey, and change the define of +'#define SYSRQ_KEY 0x54' in [/usr/src/linux/]include/asm/keyboard.h to +the keycode of the key you wish to use, then recompile. Oh, and by the way, +you exit 'showkey' by not typing anything for ten seconds. + +* I have more questions, who can I ask? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +You may feel free to send email to myrdraal@deathsdoor.com, and I will +respond as soon as possible. If that email address does not work, use +myrdraal@jackalz.dyn.ml.org. + -Myrdraal diff -ur --new-file old/linux/Documentation/transname.txt new/linux/Documentation/transname.txt --- old/linux/Documentation/transname.txt Thu Feb 26 20:01:24 1998 +++ new/linux/Documentation/transname.txt Thu Jan 1 01:00:00 1970 @@ -1,264 +0,0 @@ -Transname version 1.9 (C) 1997 Thomas Schoebel-Theuer - -transname enables diskless clients, X-terminals etc to mount the -*root filesystem* of the server. This make administration of -large pools a lot easier. - -Wherefore is linux-2.0.21-transname.patch? - -Currently different diskless clients must have their root / on different -directories on the server, beause each client has _some_ different -configuration files. However, most files (typically about 99%) have the same -contents on the clients and on the server, but have to be replicated -(and maintained separately) just because of the 1% differences. -This duplication causes very large efforts in practise, since at least -the /etc directory has to be duplicated for every client. Even in /etc -many files are identical, for example sendmail.cf, initrc scripts and -others. Maintaining a large pool means to ensure coherence amoung the -duplicates. Classical methods like symlinks are unconvenient -for this task because they have to be valid in the view of mounted -filesystems at all clients, not at the server. - -Linux transname overcomes this problem by allowing filenames -to be context-dependent. For example, if you have a file /etc/config -that should differ on the hosts "myserver" and "myclient", you just -create two different files named /etc/config#host=myserver# and -/etc/config#host=myclient# . On host "myserver", the file -/etc/config#host=myserver# will appear as if it were hardlinked to -file /etc/config (without the #...=...# suffix). On host "myclient", -the corresponding other file will appear as /etc/config. So you -can access the right file contents under the _same_ name, depending -on which host you are working. - -A similar concept can be found in elder HP-UX versions, but with -so-called "hidden directories" which don't allow contemporary viewing -all versions by default. In contrast, transname shows all context-dependent -files in the dir listing and they can be edited using the -fully qualified name. - -Transname was developped for and is used at our Linux pool at the -University of Stuttgart with good results. Maintainance of the pool is -at a minimum, and adding new clients is a child's play. No worry with -keeping up mail configurations, newly installed tools, changed /etc/services, -/etc/shells, /etc/resolv.conf and many, many others. In contrast to a -sophisticated symlink solution, adding a new file to the /etc directory -is seen immediately by all clients. - -An example for the use of linux-2.0-transname.patch: - -For example, you can make your /etc/fstab context-dependend. If you want -to do that, you should create an /etc/fstab#ktype=default# for the -server and an /etc/fstab#ktype=diskless# for all clients. This is because -your clients may not yet know their own hostname when they attempt to mount -the root filesystem. You can compile in the kerneltypes "default" and -"diskless" into different kernels for servers and clients. Of course, -if your clients boot via bootp and know their names when mounting the root, -you can use /etc/fstab#host=myclient# instead. But at least servers -booting from disk normally dont know their hostname at root mount time, -so you can mix methods and use /etc/fstab#ktype=default# for the server, -/etc/fstab#ktype=diskless# for the majority of the clients and -/etc/fstab#host=myclient# for some specific client, because translation -of #host=...# is given precedence over #ktype=...# by default. - -This sort of name translation works with any underlying file system -and with any inode type (i.e. with directories, symlinks, devices etc), -because it is implemented in the VFS layer of the kernel. Currently, -five types of default translations are supported: - - * #host=# depends on the hostname, see "uname -n" - * #kname=# works with a hard compiled-in string - * #ktype=# works with a hard compiled-in string - * #machine=# depends on architecture, see "uname -m" - * #system=# currently only supported by Linux, see "uname -s" - -Others may be added in future. - -The current translation are displayed at boot time in the kernel messages -for easier debugging, and can be retrieved by reading -/proc/sys/kernel/nametrans which is a special file containing the currently -valid translations. - -The default translations change whenever the hostname(1) is set or changed. -Thus, the hostname is not set (or set to the name "(none)") at boot time -before init(8) sets it. So, if you want to use the hostname before that -moment, there are three ways: - - a) set the hostname before via bootp or similar. - b) use the compiled-in translations kname and ktype solely. - c) set all translations by lilo (or on the boot command line) with - kernel parameter nametrans=#host=banana#:#ktype=diskless# , - thus overriding and hiding the default (built-in) translations. - -Note that by supplying the colon-separated list of at most 16 suffixes, you -can also use other translation types that are not defined in the default -translations. However, you must ensure that the syntax #...=...# is correct. -The specified contexts will be tried in the specified order *instead* of the -default translations. - -You can override the default (or parameter-supplied) translations at runtime -by executing -echo "#host=$HOST#:#ktype=diskless#:#myconfig=something#" > /proc/sys/kernel/nametrans -However, after doing this (or setting as kernel parameter) the built-in -default translations have no effect any more, thus changing the hostname -will not be reflected in the overridden translations. You can switch -back to the default translations by executing -echo "" > /proc/sys/kernel/nametrans - -Another drawback is that administration tools currently are not aware of -context-dependend files, so you cannot switch between contexts inside -one tool session. However, you can simulate administration sessions -on the server as if they were running on some client. To do this, -you have to set an environment variable NAMETRANS which has to be the -*first* environment variable in the list. For example, you can execute -'env - NAMETRANS=#host=mango#:#ktype=diskless# "`env`" command ...' -where the command will see the same files as if it had been executed on host -"mango" with a "diskless" kernel. To switch off translations entirely, use -an empty list, e.g. 'env - NAMETRANS= "`env`" command ...'. - -Hopefully the creators of administration tools and maintainers of Linux -distributions will support changing environments in future, so that -maintaining different views will be very easy. - -Some hints: - -Archivers like tar, dump, restore should be used with translation -switched off, in order to avoid doubled space in archive files and when -extracting from them. Also, make sure that nfsd, mountd (and similar ones -like samba daemons) run without translation, in order to avoid doubled -(or even wrong) translation at the server and at the client. You can -automatically force the creation of context-dependent filenames if there -exists a template filename like /etc/mtab#host=CREATE#. As soon as a -process running on "mango" tries to create a file /etc/mtab, the version -/etc/mtab#host=mango# is created instead (which appears in turn as -hardlinked to /etc/mtab). Note that if you want to make /etc/fstab -context-dependend, you should execute "touch /etc/mtab#host=CREATE#" and -"touch /etc/mtab.tmp#host=CREATE#", because mount, umount and others -running on different hosts would otherwise try to create one shared -/etc/mtab which would result in a clash. Also one should execute -"touch /etc/nologin#host=CREATE#" to prevent global side effects from -shutdown resp. runlevel. - -Which files you have to make context-dependent will differ for different -needs and different applications. Hopefully some day a standard will -cover the most common cases and the mist common Linux distributions. -A HOWTO on this subject is in preparation. - -How to install linux-2.0.21-transname.patch? - -First of all, keep a backup of your kernel on your disk. Second, keep a -floppy with a miniroot handy, so you can boot from the floppy, mount -your harddisk root filesystem and change the names of your configuration -files back to their old names in case of emergency. - -Then, make a kernel with transname support enabled. With "make config" -or "make xconfig", just go to the section "filesystems". Take a look at -the help texts that are associated with the transname options, they tell -you further hints not mentioned in this README. Then build your kernel as -usual, install it with a *new* kernel-filename, add a *new* entry to -/etc/lilo.conf and run lilo. **DONT CHANGE** any configuration files for the -first reboot! - -Just reboot the new kernel and play a little bit around with -creating context-dependend filenames in your home directory. -Try all modes including setting NAMETRANS to different values. - -As an example for the changes necessary on our LST-1.8-based Linux pool, -here is the output of the command -find / /tmp -xdev -name "*#*#" -print | sort -u | xargs ls -ld - --r--r--r-- 1 root root 1725 Dec 21 1995 /etc/X11R6/xdm/xdm-config#host=eiche# --r--r--r-- 3 root root 9509 Feb 15 17:35 /etc/XF86Config#host=balsa# --r--r--r-- 1 root root 9401 Feb 15 17:34 /etc/XF86Config#host=eiche# --rw-r--r-- 1 root root 9820 Feb 21 17:00 /etc/XF86Config#host=fichte# --rw-r--r-- 1 root root 9822 Feb 14 15:45 /etc/XF86Config#host=laerche# --r--r--r-- 3 root root 9509 Feb 15 17:35 /etc/XF86Config#host=mahagoni# --r--r--r-- 3 root root 9509 Feb 15 17:35 /etc/XF86Config#host=palisander# --r--r--r-- 2 root root 9509 Feb 15 17:41 /etc/XF86Config#host=pcbs10# --r--r--r-- 2 root root 9509 Feb 15 17:41 /etc/XF86Config#host=pcbs11# --rw-r--r-- 1 root root 586 Jun 11 23:13 /etc/fstab#ktype=default# --rw-r--r-- 1 root root 242 May 29 17:35 /etc/fstab#ktype=diskless# --rw------- 1 root root 338 Jun 14 16:37 /etc/lilo.conf#host=eiche# --rw------- 1 root root 5236 Dec 16 1995 /etc/lst.cnf#host=balsa# --rw------- 1 root root 5254 Dec 16 1995 /etc/lst.cnf#host=eiche# --rw------- 1 root root 5236 Dec 19 1995 /etc/lst.cnf#host=fichte# --rw------- 1 root root 5236 Jan 11 13:47 /etc/lst.cnf#host=laerche# --rw------- 1 root root 5236 Feb 14 16:57 /etc/lst.cnf#host=mahagoni# --rw------- 1 root root 5236 Jan 4 1996 /etc/lst.cnf#host=palisander# --rw------- 1 root root 5236 Feb 15 13:57 /etc/lst.cnf#host=pcbs10# --rw------- 1 root root 5236 Feb 14 17:06 /etc/lst.cnf#host=pcbs11# --rw-r--r-- 1 root root 0 Dec 18 1995 /etc/mtab#host=CREATE# --rw-r--r-- 1 root root 157 Jun 23 21:16 /etc/mtab#host=balsa# --rw-r--r-- 1 root root 466 Jul 1 16:15 /etc/mtab#host=eiche# --rw-r--r-- 1 root root 239 Jul 4 11:10 /etc/mtab#host=fichte# --rw-r--r-- 1 root root 239 Jun 18 14:17 /etc/mtab#host=laerche# --rw-r--r-- 1 root root 239 May 23 10:50 /etc/mtab#host=mahagoni# --rw-r--r-- 1 root root 239 Jul 3 10:36 /etc/mtab#host=palisander# --rw-r--r-- 1 root root 47 Feb 15 14:57 /etc/mtab#host=pcbs10# --rw-r--r-- 1 root root 47 Feb 14 20:04 /etc/mtab#host=pcbs11# --rw-r--r-- 1 root root 0 Dec 18 1995 /etc/mtab.tmp#host=CREATE# --rw-r--r-- 1 root root 0 Dec 19 1995 /etc/nologin#host=CREATE# ----------- 1 root root 115 Feb 15 14:57 /etc/nologin#host=pcbs10# ----------- 1 root root 115 Feb 14 20:04 /etc/nologin#host=pcbs11# --rw-r--r-- 1 root root 4818 Dec 16 1995 /etc/system.cnf#host=balsa# -lrwxrwxrwx 1 root root 25 Dec 22 1995 /etc/system.cnf#host=eiche# -> system.cnf#ktype=default# --rw-r--r-- 1 root root 4821 Dec 19 1995 /etc/system.cnf#host=fichte# --rw-r--r-- 1 root root 4824 Jan 11 13:47 /etc/system.cnf#host=laerche# --rw-r--r-- 1 root root 4827 Feb 14 16:57 /etc/system.cnf#host=mahagoni# --rw-r--r-- 1 root root 4833 Jan 4 1996 /etc/system.cnf#host=palisander# --rw-r--r-- 1 root root 4840 Feb 15 14:10 /etc/system.cnf#host=pcbs10# --rw-r--r-- 1 root root 4846 Feb 14 18:23 /etc/system.cnf#host=pcbs11# --rw-r--r-- 1 root root 4818 Dec 13 1995 /etc/system.cnf#ktype=default# -drwxrwxrwt 16 root root 3072 Jul 4 14:29 /tmp#ktype=default# -lrwxrwxrwx 1 root root 26 Jul 4 14:22 /tmp#ktype=diskless# -> /tmp#ktype=default#/client --rw-rw-rw- 1 root root 0 Feb 15 14:57 /tmp/client#host=CREATE# -drwxrwxrwx 4 root root 1024 Jun 28 12:15 /tmp/client#host=balsa# -drwxrwxrwx 3 root root 1024 Jul 4 11:10 /tmp/client#host=fichte# -drwxrwxrwx 3 root root 1024 Jun 18 14:18 /tmp/client#host=laerche# -drwxrwxrwx 3 root root 1024 May 24 13:06 /tmp/client#host=mahagoni# -drwxrwxrwx 3 root root 1024 Jul 3 10:37 /tmp/client#host=palisander# -drwxrwxrwx 4 root root 1024 Feb 15 14:57 /tmp/client#host=pcbs10# -drwxrwxrwx 3 root root 1024 Feb 20 06:43 /tmp/client#host=pcbs11# -lrwxrwxrwx 1 root root 9 Feb 15 13:58 /usr/X11R6/bin/X#host=pcbs10# -> XF86_SVGA -lrwxrwxrwx 1 root root 9 Feb 14 17:37 /usr/X11R6/bin/X#host=pcbs11# -> XF86_SVGA -lrwxrwxrwx 1 root root 7 Feb 14 17:15 /usr/X11R6/bin/X#ktype=diskless# -> XF86_S3 -drwxr-xr-x 22 root root 1024 Dec 13 1995 /var#host=balsa# -drwxr-xr-x 23 root root 1024 Jan 12 14:22 /var#host=eiche# -drwxr-xr-x 22 root root 1024 Dec 13 1995 /var#host=fichte# -drwxr-xr-x 22 root root 1024 Dec 13 1995 /var#host=laerche# -drwxr-xr-x 22 root root 1024 Dec 13 1995 /var#host=mahagoni# -drwxr-xr-x 22 root root 1024 Dec 13 1995 /var#host=palisander# -drwxr-xr-x 22 root root 1024 Dec 13 1995 /var#host=pcbs10# -drwxr-xr-x 22 root root 1024 Dec 13 1995 /var#host=pcbs11# - -Notes: The /tmp directory has an own filesystem on server "eiche", -in order to prevent users from filling the whole filestore (we dont use -quotas). Each client needs a different /tmp because of possible name clashes. -Also, the whole /var hierarchy is kept differently to prevent any risk, but -that could be optimized perhaps. Note that nfsd and mountd have been -replaced by a script which switches off translations, in the style - --rwxr-xr-x 2 root root 70 Mar 22 12:54 /usr/sbin/rpc.mountd --rwxr-xr-x 1 root root 32772 Jun 11 1995 /usr/sbin/rpc.mountd.notrans --rwxr-xr-x 2 root root 70 Mar 22 12:54 /usr/sbin/rpc.nfsd --rwxr-xr-x 1 root root 45060 Jun 11 1995 /usr/sbin/rpc.nfsd.notrans - -where /usr/sbin/rpc.mountd has the contents - -#!/bin/sh -exec /usr/bin/env - NAMETRANS= "`/usr/bin/env`" $0.notrans $* - -Of course, that could be improved, but is a quick hack to get things work. - -Enjoy, - --- Thomas - - -The author can be contacted under - schoebel@informatik.uni-stuttgart.de -or snailmail - Thomas Schoebel-Theuer - Institut fuer Informatik - Breitwiesenstr. 20-22 - D-70565 Stuttgart - diff -ur --new-file old/linux/Documentation/unicode.txt new/linux/Documentation/unicode.txt --- old/linux/Documentation/unicode.txt Tue Nov 12 09:30:57 1996 +++ new/linux/Documentation/unicode.txt Tue Apr 28 23:22:05 1998 @@ -62,14 +62,14 @@ worth supporting. Hence I have chosen to add it to the list in the Linux Zone. -Several glyph forms for the Klingon alphabet has been proposed. +Several glyph forms for the Klingon alphabet have been proposed. However, since the set of symbols appear to be consistent throughout, with only the actual shapes being different, in keeping with standard Unicode practice these differences are considered font variants. Klingon has an alphabet of 26 characters, a positional numeric writing system with 10 digits, and is written left-to-right, top-to-bottom. -Punctuation appears to be only used in Latin transliteration; it is +Punctuation appears to be only used in Latin transliteration; it appears customary to write each sentence on its own line, and centered. Space has been reserved for punctuation should it prove necessary. diff -ur --new-file old/linux/MAINTAINERS new/linux/MAINTAINERS --- old/linux/MAINTAINERS Wed Mar 18 06:21:04 1998 +++ new/linux/MAINTAINERS Fri Jun 5 00:52:21 1998 @@ -76,9 +76,15 @@ L: linux-net@vger.rutgers.edu S: Maintained +6PACK NETWORK DRIVER FOR AX.25 +P: Andreas Koensgen +M: ajk@iehk.rwth-aachen.de +L: linux-hams@vger.rutgers.edu +S: Maintained + 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.] P: Paul Gortmaker -M gpg109@rsphy1.anu.edu.au +M: gpg109@rsphy1.anu.edu.au L: linux-net@vger.rutgers.edu S: Maintained W: http://rsphy1.anu.edu.au/~gpg109/ne2000.html @@ -101,8 +107,8 @@ S: Maintained APM DRIVER -P: Rik Faith & Stephen Rothwell -M: faith@cs.unc.edu, Stephen.Rothwell@canb.auug.org.au +P: Stephen Rothwell +M: Stephen.Rothwell@canb.auug.org.au L: linux-laptop@vger.rutgers.edu S: Maintained @@ -157,7 +163,7 @@ DAMA SLAVE for AX.25 P: Joerg Reuter M: jreuter@poboxes.com -W: http://www.rat.de/jr/ +W: http://poboxes.com/jreuter/ W: http://qsl.net/dl1bke/ L: linux-hams@vger.rutgers.edu S: Maintained @@ -298,11 +304,11 @@ L: linux-kernel@vger.rutgers.edu S: Maintained -IPX NETWORK LAYER -P: -M: -L: -S: Orphan +IPX/SPX NETWORK LAYER +P: Jay Schulist +M: Jay Schulist +L: linux-net@vger.rutgers.edu +S: Maintained ISDN SUBSYSTEM P: Fritz Elfert @@ -313,6 +319,7 @@ JOYSTICK DRIVER P: Vojtech Pavlik M: vojtech@atrey.karlin.mff.cuni.cz +L: linux-joystick@atrey.karlin.mff.cuni.cz S: Maintained KERNEL AUTOMOUNTER (AUTOFS) @@ -461,9 +468,9 @@ PNP SUPPORT P: Tom Lees M: tom@lpsg.demon.co.uk -L: pnp-list@lpsg.demon.co.uk -L: pnp-list@redhat.com (maybe) -W: http://www.lpsg.demon.co.uk/pnp-linux.html +L: pnp-users@ferret.lmh.ox.ac.uk +L: pnp-devel@ferret.lmh.ox.ac.uk +W: http://www-jcr.lmh.ox.ac.uk/~pnp/ S: Maintained PPP PROTOCOL DRIVERS AND COMPRESSORS @@ -516,7 +523,7 @@ SOUND P: Alan Cox -M: Alan Cox@linux.org +M: Alan.Cox@linux.org S: Maintained SPARC: @@ -574,6 +581,12 @@ L: linux-scsi@vger.rutgers.edu S: Maintained +UMSDOS FILESYSTEM +P: Matija Nalis +M: mnalis@jagor.srce.hr +L: linux-kernel@vger.rutgers.edu +S: Maintained + UNIFORM CDROM DRIVER P: Erik Andersen M: andersee@debian.org @@ -613,7 +626,7 @@ Z8530 DRIVER FOR AX.25 P: Joerg Reuter M: jreuter@poboxes.com -W: http://www.rat.de/jr/ +W: http://poboxes.com/jreuter/ W: http://qsl.net/dl1bke/ L: linux-hams@vger.rutgers.edu S: Maintained diff -ur --new-file old/linux/Makefile new/linux/Makefile --- old/linux/Makefile Sat Jun 6 05:50:37 1998 +++ new/linux/Makefile Sat Jun 6 05:51:22 1998 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 1 -SUBLEVEL = 90 +SUBLEVEL = 104 ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/) @@ -11,7 +11,7 @@ # # For UP operations COMMENT THIS OUT, simply setting SMP = 0 won't work # -SMP = 1 +#SMP = 1 .EXPORT_ALL_VARIABLES: @@ -87,10 +87,6 @@ CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -g -ifdef CONFIG_CPP -CFLAGS := $(CFLAGS) -x c++ -endif - ifdef SMP CFLAGS += -D__SMP__ AFLAGS += -D__SMP__ @@ -245,11 +241,10 @@ fi include/linux/compile.h: $(CONFIGURATION) include/linux/version.h newversion - @if [ -f .name ]; then \ - echo \#define UTS_VERSION \"\#`cat .version`-`cat .name` `date`\"; \ - else \ - echo \#define UTS_VERSION \"\#`cat .version` `date`\"; \ - fi >> .ver + @echo -n \#define UTS_VERSION \"\#`cat .version` > .ver + @if [ -n "$(SMP)" ] ; then echo -n " SMP" >> .ver; fi + @if [ -f .name ]; then echo -n \-`cat .name` >> .ver; fi + @echo ' '`date`'"' >> .ver @echo \#define LINUX_COMPILE_TIME \"`date +%T`\" >> .ver @echo \#define LINUX_COMPILE_BY \"`whoami`\" >> .ver @echo \#define LINUX_COMPILE_HOST \"`hostname`\" >> .ver @@ -361,7 +356,7 @@ fi rm -f submenu* -mrproper: clean +mrproper: clean archmrproper rm -f include/linux/autoconf.h include/linux/version.h rm -f drivers/net/hamradio/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h rm -f drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h diff -ur --new-file old/linux/README new/linux/README --- old/linux/README Sun Jan 19 14:47:24 1997 +++ new/linux/README Thu May 21 03:54:34 1998 @@ -1,7 +1,7 @@ Linux kernel release 2.1.xx -These are the release notes for linux version 2.1. Read them carefully, +These are the release notes for Linux version 2.1. Read them carefully, as they tell you what this is all about, explain how to install the kernel, and what to do if something goes wrong. @@ -40,12 +40,12 @@ Linux was first developed for 386/486-based PCs. These days it also runs on DEC Alphas, SUN Sparcs, M68000 machines (like Atari and Amiga), - MIPS and PowerPC. + MIPS, PowerPC, and others. DOCUMENTATION: - There is a lot of documentation available both in electronic form on - the internet and in books, both Linux-specific and pertaining to + the Internet and in books, both Linux-specific and pertaining to general UNIX questions. I'd recommend looking into the documentation subdirectories on any Linux ftp site for the LDP (Linux Documentation Project) books. This README is not meant to be documentation on the @@ -68,12 +68,17 @@ to get it all put in place. Replace "XX" with the version number of the latest kernel. - - You can also upgrade between 2.1.xx releases by patching. To install - by patching, get all the newer patch files and do + - You can also upgrade between 2.1.xx releases by patching. Patches are + distributed in the traditional gzip and the new bzip2 format. To + install by patching, get all the newer patch files and do cd /usr/src gzip -cd patchXX.gz | patch -p0 + or + cd /usr/src + bzip2 -dc patchXX.bz2 | patch -p0 + (repeat xx for all versions bigger than the version of your current source tree, _in_order_) and you should be ok. You may want to remove the backup files (xxx~ or xxx.orig), and make sure that there are no @@ -165,7 +170,7 @@ COMPILING the kernel: - Make sure you have gcc-2.7.0 or newer available. It seems older gcc - versions can have problems compiling newer versions of linux. This + versions can have problems compiling newer versions of Linux. This is mainly because the older compilers can only generate "a.out"-format executables. As of Linux 2.1.0, the kernel must be compiled as an "ELF" binary. If you upgrade your compiler, remember to get the new @@ -190,7 +195,11 @@ - Keep a backup kernel handy in case something goes wrong. This is especially true for the development releases, since each new release - contains new code which has not been debugged. + contains new code which has not been debugged. Make sure you keep a + backup of the modules corresponding to that kernel, as well. If you + are installing a new kernel with the same version number as your + working kernel, make a backup of your modules directory before you + do a "make modules_install". - In order to boot your new kernel, you'll need to copy the kernel image (found in /usr/src/linux/arch/i386/boot/zImage after compilation) @@ -206,8 +215,8 @@ If you boot Linux from the hard drive, chances are you use LILO which uses the kernel image as specified in the file /etc/lilo.conf. The kernel image file is usually /vmlinuz, or /zImage, or /etc/zImage. - To use the new kernel, copy the new image over the old one (save a - backup of the original!). Then, you MUST RERUN LILO to update the + To use the new kernel, save a copy of the old image and copy the new + image over the old one. Then, you MUST RERUN LILO to update the loading map!! If you don't, you won't be able to boot the new kernel image. diff -ur --new-file old/linux/Rules.make new/linux/Rules.make --- old/linux/Rules.make Wed Jan 21 23:32:14 1998 +++ new/linux/Rules.make Thu May 21 03:54:34 1998 @@ -176,9 +176,21 @@ MODINCL = $(TOPDIR)/include/linux/modules # The -w option (enable warnings) for genksyms will return here in 2.1 +# So where has it gone ??? +# +# Added the SMP separator to stop module accidents between uniproc/smp +# intel boxes - AC - from bits by Michael Chastain +# + +ifdef SMP + genksyms_smp_prefix := -p smp_ +else + genksyms_smp_prefix := +endif + $(MODINCL)/%.ver: %.c $(CC) $(CFLAGS) -E -D__GENKSYMS__ $<\ - | $(GENKSYMS) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp + | $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp mv $@.tmp $@ $(addprefix $(MODINCL)/,$(SYMTAB_OBJS:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h diff -ur --new-file old/linux/arch/alpha/Makefile new/linux/arch/alpha/Makefile --- old/linux/arch/alpha/Makefile Thu Feb 12 22:31:28 1998 +++ new/linux/arch/alpha/Makefile Fri May 8 09:09:20 1998 @@ -10,8 +10,38 @@ NM := nm -B +#LINKFLAGS = -static -T arch/alpha/vmlinux.lds +#CFLAGS := $(CFLAGS) -pipe -mno-fp-regs -ffixed-8 + +ifdef CONFIG_CROSSCOMPILE +# enable this for linking under OSF/1: +LINKFLAGS = -non_shared -T 0xfffffc0000310000 -N +else + elf=$(shell if $(LD) --help | grep elf64alpha >/dev/null; then echo yes; fi) + ifeq ($(elf),yes) +# LINKFLAGS = -static -Ttext 0xfffffc0000310000 -N LINKFLAGS = -static -T arch/alpha/vmlinux.lds -CFLAGS := $(CFLAGS) -pipe -mno-fp-regs -ffixed-8 + else + LINKFLAGS = -static -T arch/alpha/vmlinux.lds -N + endif +# GNU gcc/cc1/as can use pipes instead of temporary files +CFLAGS := $(CFLAGS) -pipe +endif + +CFLAGS := $(CFLAGS) -mno-fp-regs -ffixed-8 -Wno-uninitialized + +# determine if we can use the BWX instructions with GAS +$(shell rm -f ./GAS_VER) +$(shell $(AS) --version >& ./GAS_VER) +OLD_GAS := $(shell if cat ./GAS_VER | grep 'version 2.7' > /dev/null; then echo yes; else echo no; fi) +$(shell rm -f ./GAS_VER) + +ifneq ($(OLD_GAS),yes) +# if PYXIS, then enable use of BWIO space + ifeq ($(CONFIG_ALPHA_PYXIS),y) + CFLAGS := $(CFLAGS) -Wa,-m21164a -DBWX_USABLE -DBWIO_ENABLED + endif +endif HEAD := arch/alpha/kernel/head.o @@ -23,7 +53,7 @@ CORE_FILES := $(CORE_FILES) arch/alpha/math-emu/math-emu.o endif -LIBS := arch/alpha/lib/lib.a $(LIBS) arch/alpha/lib/lib.a +LIBS := $(TOPDIR)/arch/alpha/lib/lib.a $(LIBS) $(TOPDIR)/arch/alpha/lib/lib.a MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot @@ -45,6 +75,8 @@ archclean: @$(MAKEBOOT) clean + +archmrproper: archdep: @$(MAKEBOOT) dep diff -ur --new-file old/linux/arch/alpha/boot/bootp.c new/linux/arch/alpha/boot/bootp.c --- old/linux/arch/alpha/boot/bootp.c Mon Jan 12 23:51:14 1998 +++ new/linux/arch/alpha/boot/bootp.c Tue Apr 7 16:52:04 1998 @@ -16,6 +16,7 @@ #include #include #include +#include #include @@ -156,7 +157,8 @@ printk("Ok (rev %lx)\n", rev); /* remove the old virtual page-table mapping */ L1[1] = 0; - flush_tlb_all(); + + tbia(); /* do it directly in case we are SMP */ } static inline long load(unsigned long dst, @@ -189,30 +191,59 @@ void start_kernel(void) { - long i; - int nbytes; - char envval[256]; + static long i; + static int nbytes; + /* + * note that this crufty stuff with static and envval and envbuf + * is because: + * + * 1. frequently, the stack is is short, and we don't want to overrun; + * 2. frequently the stack is where we are going to copy the kernel to; + * 3. a certain SRM console required the GET_ENV output to stack. + */ + static char envval[256]; + char envbuf[256]; printk("Linux/AXP bootp loader for Linux " UTS_RELEASE "\n"); if (hwrpb.pagesize != 8192) { - printk("Expected 8kB pages, got %ldkB\n", hwrpb.pagesize >> 10); + printk("Expected 8kB pages, got %ldkB\n", + hwrpb.pagesize >> 10); return; } pal_init(); nbytes = dispatch(CCB_GET_ENV, ENV_BOOTED_OSFLAGS, - envval, sizeof(envval)); - if (nbytes < 0) { + envbuf, sizeof(envbuf)); + if (nbytes < 0 || nbytes >= sizeof(envbuf)) { nbytes = 0; } - envval[nbytes] = '\0'; - strcpy((char*)ZERO_PAGE, envval); - - printk("Loading the kernel ...\n"); + envbuf[nbytes] = '\0'; + memcpy(envval, envbuf, nbytes+1); + printk("Loading the kernel...'%s'\n", envval); /* NOTE: *no* callbacks or printouts from here on out!!! */ +#if 1 + /* + * this is a hack, as some consoles seem to get virtual 20000000 + * (ie where the SRM console puts the kernel bootp image) memory + * overlapping physical 310000 memory, which causes real problems + * when attempting to copy the former to the latter... :-( + * + * so, we first move the kernel virtual-to-physical way above where + * we physically want the kernel to end up, then copy it from there + * to its final resting place... ;-} + * + * sigh... + */ + + i = load(START_ADDR+(4*KERNEL_SIZE), KERNEL_ORIGIN, KERNEL_SIZE); + i = load(START_ADDR, START_ADDR+(4*KERNEL_SIZE), KERNEL_SIZE); +#else i = load(START_ADDR, KERNEL_ORIGIN, KERNEL_SIZE); +#endif + + strcpy((char*)ZERO_PAGE, envval); runkernel(); diff -ur --new-file old/linux/arch/alpha/config.in new/linux/arch/alpha/config.in --- old/linux/arch/alpha/config.in Tue Mar 10 23:43:13 1998 +++ new/linux/arch/alpha/config.in Sat May 9 02:54:39 1998 @@ -6,10 +6,11 @@ # clear all implied options (don't want default values for those): unset CONFIG_CROSSCOMPILE CONFIG_NATIVE -unset CONFIG_ALPHA_EV4 CONFIG_ALPHA_EV5 +unset CONFIG_ALPHA_EV4 CONFIG_ALPHA_EV5 CONFIG_ALPHA_EV6 unset CONFIG_PCI CONFIG_ALPHA_EISA unset CONFIG_ALPHA_LCA CONFIG_ALPHA_APECS CONFIG_ALPHA_CIA unset CONFIG_ALPHA_T2 CONFIG_ALPHA_PYXIS +unset CONFIG_ALPHA_TSUNAMI CONFIG_ALPHA_MCPCIA unset CONFIG_ALPHA_NEED_ROUNDING_EMULATION mainmenu_option next_comment @@ -48,13 +49,16 @@ PC164 CONFIG_ALPHA_PC164 \ LX164 CONFIG_ALPHA_LX164 \ SX164 CONFIG_ALPHA_SX164 \ + DP264 CONFIG_ALPHA_DP264 \ Jensen CONFIG_ALPHA_JENSEN \ Noname CONFIG_ALPHA_NONAME \ + Takara CONFIG_ALPHA_TAKARA \ Mikasa CONFIG_ALPHA_MIKASA \ Noritake CONFIG_ALPHA_NORITAKE \ Alcor CONFIG_ALPHA_ALCOR \ Miata CONFIG_ALPHA_MIATA \ Sable CONFIG_ALPHA_SABLE \ + Rawhide CONFIG_ALPHA_RAWHIDE \ AlphaBook1 CONFIG_ALPHA_BOOK1 \ Ruffian CONFIG_ALPHA_RUFFIAN \ Platform2000 CONFIG_ALPHA_P2K" Cabriolet @@ -78,7 +82,8 @@ define_bool CONFIG_ALPHA_APECS y fi if [ "$CONFIG_ALPHA_EB164" = "y" -o "$CONFIG_ALPHA_PC164" = "y" \ - -o "$CONFIG_ALPHA_ALCOR" = "y" -o "$CONFIG_ALPHA_XLT" = "y" ] + -o "$CONFIG_ALPHA_ALCOR" = "y" -o "$CONFIG_ALPHA_XLT" = "y" \ + -o "$CONFIG_ALPHA_TAKARA" = "y" ] then define_bool CONFIG_PCI y define_bool CONFIG_ALPHA_EV5 y @@ -86,9 +91,7 @@ fi if [ "$CONFIG_ALPHA_MIKASA" = "y" -o "$CONFIG_ALPHA_NORITAKE" = "y" ] then - choice 'CPU daughtercard' \ - "Pinnacle CONFIG_ALPHA_PINNACLE \ - Primo CONFIG_ALPHA_PRIMO" Primo + bool 'EV5 CPU daughtercard (model 5/xxx)?' CONFIG_ALPHA_PRIMO if [ "$CONFIG_ALPHA_PRIMO" = "y" ] then define_bool CONFIG_ALPHA_EV5 y @@ -102,7 +105,13 @@ if [ "$CONFIG_ALPHA_SABLE" = "y" ] then define_bool CONFIG_PCI y + bool 'EV5 CPU(s) (model 5/xxx)?' CONFIG_ALPHA_GAMMA + if [ "$CONFIG_ALPHA_GAMMA" = "y" ] + then + define_bool CONFIG_ALPHA_EV5 y + else define_bool CONFIG_ALPHA_EV4 y + fi define_bool CONFIG_ALPHA_T2 y fi if [ "$CONFIG_ALPHA_MIATA" = "y" -o "$CONFIG_ALPHA_LX164" = "y" \ @@ -112,6 +121,18 @@ define_bool CONFIG_ALPHA_EV5 y define_bool CONFIG_ALPHA_PYXIS y fi +if [ "$CONFIG_ALPHA_DP264" = "y" ] +then + define_bool CONFIG_PCI y + define_bool CONFIG_ALPHA_EV6 y + define_bool CONFIG_ALPHA_TSUNAMI y +fi +if [ "$CONFIG_ALPHA_RAWHIDE" = "y" ] +then + define_bool CONFIG_PCI y + define_bool CONFIG_ALPHA_EV5 y + define_bool CONFIG_ALPHA_MCPCIA y +fi if [ "$CONFIG_ALPHA_JENSEN" = "y" ] then define_bool CONFIG_ALPHA_EV4 y @@ -127,12 +148,19 @@ -o "$CONFIG_ALPHA_MIKASA" = "y" -o "$CONFIG_ALPHA_ALCOR" = "y" \ -o "$CONFIG_ALPHA_SABLE" = "y" -o "$CONFIG_ALPHA_MIATA" = "y" \ -o "$CONFIG_ALPHA_NORITAKE" = "y" -o "$CONFIG_ALPHA_PC164" = "y" \ - -o "$CONFIG_ALPHA_LX164" = "y" -o "$CONFIG_ALPHA_SX164" = "y" ] + -o "$CONFIG_ALPHA_LX164" = "y" -o "$CONFIG_ALPHA_SX164" = "y" \ + -o "$CONFIG_ALPHA_DP264" = "y" -o "$CONFIG_ALPHA_RAWHIDE" = "y" ] then - bool 'Using SRM as bootloader' CONFIG_ALPHA_SRM + bool 'Use SRM as bootloader' CONFIG_ALPHA_SRM + if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + if [ "$CONFIG_ALPHA_SRM" = "y" ]; then + bool ' Use SRM PCI setup' CONFIG_ALPHA_SRM_SETUP + fi + fi fi if [ "$CONFIG_ALPHA_ALCOR" = "y" -o "$CONFIG_ALPHA_MIKASA" = "y" \ - -o "$CONFIG_ALPHA_SABLE" = "y" -o "$CONFIG_ALPHA_NORITAKE" = "y" ] + -o "$CONFIG_ALPHA_SABLE" = "y" -o "$CONFIG_ALPHA_NORITAKE" = "y" \ + -o "$CONFIG_ALPHA_RAWHIDE" = "y" ] then define_bool CONFIG_ALPHA_EISA y fi @@ -141,15 +169,22 @@ define_bool CONFIG_ALPHA_AVANTI y fi +#bool 'Echo console messages on /dev/ttyS0 (COM1)' CONFIG_SERIAL_ECHO + if [ "$CONFIG_PCI" = "y" ]; then bool 'TGA Console Support' CONFIG_TGA_CONSOLE - if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then +# if [ "$CONFIG_TGA_CONSOLE" = "y" ]; then +# bool 'VGA Console Support' CONFIG_VGA_CONSOLE +# fi + bool 'PCI quirks' CONFIG_PCI_QUIRKS + if [ "$CONFIG_PCI_QUIRKS" = "y" -a "$CONFIG_EXPERIMENTAL" = "y" ]; then bool 'PCI bridge optimization (experimental)' CONFIG_PCI_OPTIMIZE fi bool 'Backward-compatible /proc/pci' CONFIG_PCI_OLD_PROC fi bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC +bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT bool 'Sysctl support' CONFIG_SYSCTL tristate 'Kernel support for a.out (ECOFF) binaries' CONFIG_BINFMT_AOUT tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF @@ -215,17 +250,6 @@ source drivers/cdrom/Config.in fi endmenu - -# Conditionally compile in the Uniform CD-ROM driver -if [ "$CONFIG_BLK_DEV_IDECD" = "y" -o "$CONFIG_BLK_DEV_SR" = "y" -o "$CONFIG_SBPCD" = "y" -o "$CONFIG_MCD" = "y" -o "$CONFIG_CM206" = "y" -o "$CONFIG_CDU31A" = "y" ]; then - define_bool CONFIG_CDROM y -else - if [ "$CONFIG_BLK_DEV_IDECD" = "m" -o "$CONFIG_BLK_DEV_SR" = "m" -o "$CONFIG_SBPCD" = "m" -o "$CONFIG_MCD" = "m" -o "$CONFIG_CM206" = "m" -o "$CONFIG_CDU31A" = "m" ]; then - define_bool CONFIG_CDROM m - else - define_bool CONFIG_CDROM n - fi -fi source fs/Config.in diff -ur --new-file old/linux/arch/alpha/defconfig new/linux/arch/alpha/defconfig --- old/linux/arch/alpha/defconfig Tue Mar 10 23:43:13 1998 +++ new/linux/arch/alpha/defconfig Mon Mar 30 10:21:39 1998 @@ -27,14 +27,20 @@ # CONFIG_ALPHA_EB64P is not set # CONFIG_ALPHA_EB164 is not set # CONFIG_ALPHA_PC164 is not set +# CONFIG_ALPHA_LX164 is not set +# CONFIG_ALPHA_SX164 is not set +# CONFIG_ALPHA_DP264 is not set # CONFIG_ALPHA_JENSEN is not set # CONFIG_ALPHA_NONAME is not set +# CONFIG_ALPHA_TAKARA is not set # CONFIG_ALPHA_MIKASA is not set # CONFIG_ALPHA_NORITAKE is not set CONFIG_ALPHA_ALCOR=y # CONFIG_ALPHA_MIATA is not set # CONFIG_ALPHA_SABLE is not set +# CONFIG_ALPHA_RAWHIDE is not set # CONFIG_ALPHA_BOOK1 is not set +# CONFIG_ALPHA_RUFFIAN is not set # CONFIG_ALPHA_P2K is not set CONFIG_PCI=y CONFIG_ALPHA_EV5=y @@ -214,7 +220,6 @@ # CD-ROM drivers (not for SCSI or IDE/ATAPI drives) # # CONFIG_CD_NO_IDESCSI is not set -CONFIG_CDROM=y # # Filesystems diff -ur --new-file old/linux/arch/alpha/kernel/Makefile new/linux/arch/alpha/kernel/Makefile --- old/linux/arch/alpha/kernel/Makefile Mon Feb 23 19:25:10 1998 +++ new/linux/arch/alpha/kernel/Makefile Mon Mar 30 10:21:39 1998 @@ -8,9 +8,9 @@ # Note 2! The CFLAGS definitions are now in the main makefile... .S.s: - $(CPP) -D__ASSEMBLY__ -traditional $< -o $*.s + $(CPP) -D__ASSEMBLY__ $(AFLAGS) -traditional $< -o $*.s .S.o: - $(CC) -D__ASSEMBLY__ -traditional -c $< -o $*.o + $(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -c $< -o $*.o all: kernel.o head.o @@ -35,19 +35,29 @@ ifdef CONFIG_ALPHA_T2 O_OBJS += t2.o endif +ifdef CONFIG_ALPHA_TSUNAMI +O_OBJS += tsunami.o +endif +ifdef CONFIG_ALPHA_MCPCIA +O_OBJS += mcpcia.o +endif + ifneq ($(CONFIG_ALPHA_PC164)$(CONFIG_ALPHA_LX164),nn) O_OBJS += smc37c93x.o endif -ifdef CONFIG_ALPHA_SX164 +ifneq ($(CONFIG_ALPHA_SX164)$(CONFIG_ALPHA_MIATA)$(CONFIG_ALPHA_DP264),nnn) O_OBJS += smc37c669.o endif +ifdef SMP +O_OBJS += smp.o +endif all: kernel.o head.o head.o: head.s head.s: head.S $(TOPDIR)/include/asm-alpha/system.h - $(CPP) -traditional -o $*.s $< + $(CPP) -traditional $(AFLAGS) -o $*.s $< include $(TOPDIR)/Rules.make diff -ur --new-file old/linux/arch/alpha/kernel/alpha_ksyms.c new/linux/arch/alpha/kernel/alpha_ksyms.c --- old/linux/arch/alpha/kernel/alpha_ksyms.c Wed Mar 18 06:15:40 1998 +++ new/linux/arch/alpha/kernel/alpha_ksyms.c Fri May 8 09:23:41 1998 @@ -23,11 +23,11 @@ #include #include #include +#include #define __KERNEL_SYSCALLS__ #include -extern void bcopy (const char *src, char *dst, int len); extern struct hwrpb_struct *hwrpb; extern void dump_thread(struct pt_regs *, struct user *); extern int dump_fpu(struct pt_regs *, elf_fpregset_t *); @@ -44,6 +44,8 @@ EXPORT_SYMBOL(local_bh_count); EXPORT_SYMBOL(local_irq_count); +EXPORT_SYMBOL(enable_irq); +EXPORT_SYMBOL(disable_irq); /* platform dependent support */ EXPORT_SYMBOL(_inb); @@ -134,7 +136,6 @@ * interface isn't gonna change any time soon now, so it's OK * to leave it out of version control. */ -# undef bcopy # undef memcpy # undef memset EXPORT_SYMBOL_NOVERS(__divl); @@ -147,7 +148,3 @@ EXPORT_SYMBOL_NOVERS(__remqu); EXPORT_SYMBOL_NOVERS(memcpy); EXPORT_SYMBOL_NOVERS(memset); - -#if CONFIG_PCI -EXPORT_SYMBOL(pci_devices); -#endif diff -ur --new-file old/linux/arch/alpha/kernel/apecs.c new/linux/arch/alpha/kernel/apecs.c --- old/linux/arch/alpha/kernel/apecs.c Sun Jan 25 19:35:16 1998 +++ new/linux/arch/alpha/kernel/apecs.c Thu Apr 9 22:16:18 1998 @@ -10,7 +10,6 @@ #include #include #include -#include #include #include @@ -18,13 +17,14 @@ #include #include -/* NOTE: Herein are back-to-back mb insns. They are magic. - A plausible explanation is that the i/o controler does not properly - handle the system transaction. Another involves timing. Ho hum. */ +/* + * NOTE: Herein lie back-to-back mb instructions. They are magic. + * One plausible explanation is that the i/o controller does not properly + * handle the system transaction. Another involves timing. Ho hum. + */ extern struct hwrpb_struct *hwrpb; extern asmlinkage void wrmces(unsigned long mces); -extern int alpha_sys_type; /* * BIOS32-style PCI interface: @@ -36,13 +36,16 @@ # define DBG(args) #endif -#define vulp volatile unsigned long * #define vuip volatile unsigned int * static volatile unsigned int apecs_mcheck_expected = 0; static volatile unsigned int apecs_mcheck_taken = 0; -static unsigned long apecs_jd, apecs_jd1, apecs_jd2; +static unsigned int apecs_jd, apecs_jd1, apecs_jd2; +#ifdef CONFIG_ALPHA_SRM_SETUP +unsigned int APECS_DMA_WIN_BASE = APECS_DMA_WIN_BASE_DEFAULT; +unsigned int APECS_DMA_WIN_SIZE = APECS_DMA_WIN_SIZE_DEFAULT; +#endif /* SRM_SETUP */ /* * Given a bus, device, and function number, compute resulting @@ -194,7 +197,7 @@ } /* reset error status: */ - *(vulp)APECS_IOC_DCSR = stat0; + *(vuip)APECS_IOC_DCSR = stat0; mb(); wrmces(0x7); /* reset machine check */ value = 0xffffffff; @@ -269,7 +272,7 @@ } /* reset error status: */ - *(vulp)APECS_IOC_DCSR = stat0; + *(vuip)APECS_IOC_DCSR = stat0; mb(); wrmces(0x7); /* reset machine check */ } @@ -424,6 +427,38 @@ *(vuip)APECS_IOC_TB2R = 0; #else /* CONFIG_ALPHA_XL */ +#ifdef CONFIG_ALPHA_SRM_SETUP + /* check window 1 for enabled and mapped to 0 */ + if ((*(vuip)APECS_IOC_PB1R & (1U<<19)) && (*(vuip)APECS_IOC_TB1R == 0)) + { + APECS_DMA_WIN_BASE = *(vuip)APECS_IOC_PB1R & 0xfff00000U; + APECS_DMA_WIN_SIZE = *(vuip)APECS_IOC_PM1R & 0xfff00000U; + APECS_DMA_WIN_SIZE += 0x00100000U; +#if 0 + printk("apecs_init: using Window 1 settings\n"); + printk("apecs_init: PB1R 0x%x PM1R 0x%x TB1R 0x%x\n", + *(vuip)APECS_IOC_PB1R, + *(vuip)APECS_IOC_PM1R, + *(vuip)APECS_IOC_TB1R); +#endif + } + else /* check window 2 for enabled and mapped to 0 */ + if ((*(vuip)APECS_IOC_PB2R & (1U<<19)) && (*(vuip)APECS_IOC_TB2R == 0)) + { + APECS_DMA_WIN_BASE = *(vuip)APECS_IOC_PB2R & 0xfff00000U; + APECS_DMA_WIN_SIZE = *(vuip)APECS_IOC_PM2R & 0xfff00000U; + APECS_DMA_WIN_SIZE += 0x00100000U; +#if 0 + printk("apecs_init: using Window 2 settings\n"); + printk("apecs_init: PB2R 0x%x PM2R 0x%x TB2R 0x%x\n", + *(vuip)APECS_IOC_PB2R, + *(vuip)APECS_IOC_PM2R, + *(vuip)APECS_IOC_TB2R); +#endif + } + else /* we must use our defaults... */ +#endif /* SRM_SETUP */ + { /* * Set up the PCI->physical memory translation windows. * For now, window 2 is disabled. In the future, we may @@ -435,9 +470,11 @@ *(vuip)APECS_IOC_PB1R = 1U<<19 | (APECS_DMA_WIN_BASE & 0xfff00000U); *(vuip)APECS_IOC_PM1R = (APECS_DMA_WIN_SIZE - 1) & 0xfff00000U; *(vuip)APECS_IOC_TB1R = 0; + } #endif /* CONFIG_ALPHA_XL */ #ifdef CONFIG_ALPHA_CABRIOLET +#ifdef NO_LONGER_NEEDED_I_HOPE /* * JAE: HACK!!! for now, hardwire if configured... * davidm: Older miniloader versions don't set the clock frequency @@ -461,6 +498,7 @@ sum += *l; hwrpb->chksum = sum; } +#endif /* NO_LONGER_NEEDED_I_HOPE */ #endif /* CONFIG_ALPHA_CABRIOLET */ /* @@ -483,15 +521,15 @@ int apecs_pci_clr_err(void) { - apecs_jd = *(vulp)APECS_IOC_DCSR; + apecs_jd = *(vuip)APECS_IOC_DCSR; if (apecs_jd & 0xffe0L) { - apecs_jd1 = *(vulp)APECS_IOC_SEAR; - *(vulp)APECS_IOC_DCSR = apecs_jd | 0xffe1L; - apecs_jd = *(vulp)APECS_IOC_DCSR; + apecs_jd1 = *(vuip)APECS_IOC_SEAR; + *(vuip)APECS_IOC_DCSR = apecs_jd | 0xffe1L; + apecs_jd = *(vuip)APECS_IOC_DCSR; mb(); } - *(vulp)APECS_IOC_TBIA = APECS_IOC_TBIA; - apecs_jd2 = *(vulp)APECS_IOC_TBIA; + *(vuip)APECS_IOC_TBIA = (unsigned int)APECS_IOC_TBIA; + apecs_jd2 = *(vuip)APECS_IOC_TBIA; mb(); return 0; } diff -ur --new-file old/linux/arch/alpha/kernel/bios32.c new/linux/arch/alpha/kernel/bios32.c --- old/linux/arch/alpha/kernel/bios32.c Mon Feb 23 19:25:10 1998 +++ new/linux/arch/alpha/kernel/bios32.c Thu May 21 03:54:34 1998 @@ -25,6 +25,7 @@ */ #include #include +#include #include #include #include @@ -55,7 +56,6 @@ #else /* CONFIG_PCI */ -#include #include #include #include @@ -63,6 +63,8 @@ #include #include #include +#include +#include #define KB 1024 @@ -70,7 +72,9 @@ #define GB (1024*MB) #define MAJOR_REV 0 -#define MINOR_REV 3 + +/* minor revision 4, add multi-PCI handling */ +#define MINOR_REV 4 /* * Align VAL to ALIGN, which must be a power of two. @@ -78,7 +82,20 @@ #define ALIGN(val,align) (((val) + ((align) - 1)) & ~((align) - 1)) +#if defined(CONFIG_ALPHA_MCPCIA) || defined(CONFIG_ALPHA_TSUNAMI) +/* multiple PCI bus machines */ +/* make handle from bus number */ +extern struct linux_hose_info *bus2hose[256]; +#define HANDLE(b) (((unsigned long)(bus2hose[(b)]->pci_hose_index)&3)<<32) +#define DEV_IS_ON_PRIMARY(dev) \ + (bus2hose[(dev)->bus->number]->pci_first_busno == (dev)->bus->number) +#else /* MCPCIA || TSUNAMI */ +#define HANDLE(b) (0) +#define DEV_IS_ON_PRIMARY(dev) ((dev)->bus->number == 0) +#endif /* MCPCIA || TSUNAMI */ /* + * PCI_MODIFY + * * Temporary internal macro. If this 0, then do not write to any of * the PCI registers, merely read them (i.e., use configuration as * determined by SRM). The SRM seem do be doing a less than perfect @@ -95,7 +112,18 @@ * the graphics card---there have been some rumor that the #9 BIOS * incorrectly resets that address to 0...). */ +#ifdef CONFIG_ALPHA_SRM_SETUP +#define PCI_MODIFY 0 +static struct pci_dev *irq_dev_to_reset[16]; +static unsigned char irq_to_reset[16]; +static int irq_reset_count = 0; +static struct pci_dev *io_dev_to_reset[16]; +static unsigned char io_reg_to_reset[16]; +static unsigned int io_to_reset[16]; +static int io_reset_count = 0; +#else /* SRM_SETUP */ #define PCI_MODIFY 1 +#endif /* SRM_SETUP */ extern struct hwrpb_struct *hwrpb; @@ -103,9 +131,7 @@ #if defined(CONFIG_ALPHA_PC164) || defined(CONFIG_ALPHA_LX164) extern int SMC93x_Init(void); #endif -#ifdef CONFIG_ALPHA_SX164 extern int SMC669_Init(void); -#endif #ifdef CONFIG_ALPHA_MIATA static int es1888_init(void); #endif @@ -115,7 +141,7 @@ /* * NOTE: we can't just blindly use 64K for machines with EISA busses; they * may also have PCI-PCI bridges present, and then we'd configure the bridge - * incorrectly + * incorrectly. * * Also, we start at 0x8000 or 0x9000, in hopes to get all devices' * IO space areas allocated *before* 0xC000; this is because certain @@ -123,12 +149,17 @@ * accesses to probe the bus. If a device's registers appear at 0xC000, * it may see an INx/OUTx at that address during BIOS emulation of the * VGA BIOS, and some cards, notably Adaptec 2940UW, take mortal offense. + * + * Note that we may need this stuff for SRM_SETUP also, since certain + * SRM consoles screw up and allocate I/O space addresses > 64K behind + * PCI-to_PCI bridges, which can't pass I/O addresses larger than 64K, AFAIK. */ #if defined(CONFIG_ALPHA_EISA) -static unsigned int io_base = 0x9000; /* start above 8th slot */ +#define DEFAULT_IO_BASE 0x9000 /* start above 8th slot */ #else -static unsigned int io_base = 0x8000; +#define DEFAULT_IO_BASE 0x8000 /* start at 8th slot */ #endif +static unsigned int io_base; #if defined(CONFIG_ALPHA_XL) /* @@ -142,7 +173,7 @@ * We accept the risk that a broken Myrinet card will be put into a true XL * and thus can more easily run into the problem described below. */ -static unsigned int mem_base = 16*MB + 2*MB; /* 16M to 64M-1 is avail */ +#define DEFAULT_MEM_BASE (16*MB + 2*MB) /* 16M to 64M-1 is avail */ #elif defined(CONFIG_ALPHA_LCA) || defined(CONFIG_ALPHA_APECS) /* @@ -154,7 +185,7 @@ * However, APECS and LCA have only 34 bits for physical addresses, thus * limiting PCI bus memory addresses for SPARSE access to be less than 128Mb. */ -static unsigned int mem_base = 64*MB + 2*MB; +#define DEFAULT_MEM_BASE (64*MB + 2*MB) #else /* @@ -166,9 +197,10 @@ * Because CIA and PYXIS and T2 have more bits for physical addresses, * they support an expanded range of SPARSE memory addresses. */ -static unsigned int mem_base = 128*MB + 16*MB; +#define DEFAULT_MEM_BASE (128*MB + 16*MB) #endif +static unsigned int mem_base; /* * Disable PCI device DEV so that it does not respond to I/O or memory @@ -179,7 +211,6 @@ struct pci_bus *bus; unsigned short cmd; -#ifdef CONFIG_ALPHA_EISA /* * HACK: the PCI-to-EISA bridge does not seem to identify * itself as a bridge... :-( @@ -189,15 +220,17 @@ DBG_DEVS(("disable_dev: ignoring PCEB...\n")); return; } -#endif -#ifdef CONFIG_ALPHA_SX164 + + /* + * we don't have code that will init the CYPRESS bridge correctly + * so we do the next best thing, and depend on the previous + * console code to do the right thing, and ignore it here... :-\ + */ if (dev->vendor == PCI_VENDOR_ID_CONTAQ && - /* FIXME: We want a symbolic device name here. */ - dev->device == 0xc693) { + dev->device == PCI_DEVICE_ID_CONTAQ_82C693) { DBG_DEVS(("disable_dev: ignoring CYPRESS bridge...\n")); return; } -#endif bus = dev->bus; pcibios_read_config_word(bus->number, dev->devfn, PCI_COMMAND, &cmd); @@ -211,16 +244,16 @@ /* * Layout memory and I/O for a device: */ -#define MAX(val1, val2) ((val1) > (val2) ? val1 : val2) +#define MAX(val1, val2) ((val1) > (val2) ? (val1) : (val2)) static void layout_dev(struct pci_dev *dev) { struct pci_bus *bus; unsigned short cmd; - unsigned int base, mask, size, reg; + unsigned int base, mask, size, off, idx; unsigned int alignto; + unsigned long handle; -#ifdef CONFIG_ALPHA_EISA /* * HACK: the PCI-to-EISA bridge does not seem to identify * itself as a bridge... :-( @@ -230,32 +263,40 @@ DBG_DEVS(("layout_dev: ignoring PCEB...\n")); return; } -#endif -#ifdef CONFIG_ALPHA_SX164 + + /* + * we don't have code that will init the CYPRESS bridge correctly + * so we do the next best thing, and depend on the previous + * console code to do the right thing, and ignore it here... :-\ + */ if (dev->vendor == PCI_VENDOR_ID_CONTAQ && - dev->device == 0xc693) { + dev->device == PCI_DEVICE_ID_CONTAQ_82C693) { DBG_DEVS(("layout_dev: ignoring CYPRESS bridge...\n")); return; } -#endif bus = dev->bus; pcibios_read_config_word(bus->number, dev->devfn, PCI_COMMAND, &cmd); - for (reg = PCI_BASE_ADDRESS_0; reg <= PCI_BASE_ADDRESS_5; reg += 4) { + for (idx = 0; idx <= 5; idx++) { + off = PCI_BASE_ADDRESS_0 + 4*idx; /* * Figure out how much space and of what type this * device wants. */ - pcibios_write_config_dword(bus->number, dev->devfn, reg, + pcibios_write_config_dword(bus->number, dev->devfn, off, 0xffffffff); - pcibios_read_config_dword(bus->number, dev->devfn, reg, &base); + pcibios_read_config_dword(bus->number, dev->devfn, off, &base); if (!base) { /* this base-address register is unused */ - dev->base_address[(reg - PCI_BASE_ADDRESS_0)>>2] = 0; + dev->base_address[idx] = 0; continue; } + DBG_DEVS(("layout_dev: slot %d fn %d off 0x%x base 0x%x\n", + PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), + off, base)); + /* * We've read the base address register back after * writing all ones and so now we must decode it. @@ -281,11 +322,13 @@ base = ALIGN(io_base, alignto); io_base = base + size; pcibios_write_config_dword(bus->number, dev->devfn, - reg, base | 0x1); - dev->base_address[(reg - PCI_BASE_ADDRESS_0)>>2] - = base | 0x1; - DBG_DEVS(("layout_dev: dev 0x%x IO @ 0x%x (0x%x)\n", - dev->device, base, size)); + off, base | 0x1); + + handle = HANDLE(bus->number) | base | 1; + dev->base_address[idx] = handle; + + DBG_DEVS(("layout_dev: dev 0x%x IO @ 0x%lx (0x%x)\n", + dev->device, handle, size)); } else { unsigned int type; /* @@ -306,7 +349,7 @@ "slot %d, function %d: \n", PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); - reg += 4; /* skip extra 4 bytes */ + idx++; /* skip extra 4 bytes */ continue; case PCI_BASE_ADDRESS_MEM_TYPE_1M: @@ -332,7 +375,7 @@ * * In sparse memory address space, the first * octant (16MB) of every 128MB segment is - * aliased to the the very first 16MB of the + * aliased to the very first 16 MB of the * address space (i.e., it aliases the ISA * memory address space). Thus, we try to * avoid allocating PCI devices in that range. @@ -365,10 +408,11 @@ } mem_base = base + size; pcibios_write_config_dword(bus->number, dev->devfn, - reg, base); - dev->base_address[(reg-PCI_BASE_ADDRESS_0)>>2] = base; - DBG_DEVS(("layout_dev: dev 0x%x MEM @ 0x%x (0x%x)\n", - dev->device, base, size)); + off, base); + handle = HANDLE(bus->number) | base; + dev->base_address[idx] = handle; + DBG_DEVS(("layout_dev: dev 0x%x MEM @ 0x%lx (0x%x)\n", + dev->device, handle, size)); } } @@ -397,16 +441,17 @@ } -static void layout_bus(struct pci_bus *bus) +static int layout_bus(struct pci_bus *bus) { unsigned int l, tio, bio, tmem, bmem; struct pci_bus *child; struct pci_dev *dev; + int found_vga = 0; DBG_DEVS(("layout_bus: starting bus %d\n", bus->number)); if (!bus->devices && !bus->children) - return; + return 0; /* * Align the current bases on appropriate boundaries (4K for @@ -424,6 +469,8 @@ * devices. They'll be re-enabled only once all address * decoders are programmed consistently. */ + DBG_DEVS(("layout_bus: disable_dev for bus %d\n", bus->number)); + for (dev = bus->devices; dev; dev = dev->sibling) { if ((dev->class >> 16 != PCI_BASE_CLASS_BRIDGE) || (dev->class >> 8 == PCI_CLASS_BRIDGE_PCMCIA)) { @@ -441,6 +488,8 @@ (dev->class >> 8 == PCI_CLASS_BRIDGE_PCMCIA)) { layout_dev(dev); } + if ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA) + found_vga = 1; } /* * Recursively allocate space for all of the sub-buses: @@ -448,7 +497,7 @@ DBG_DEVS(("layout_bus: starting bus %d children\n", bus->number)); for (child = bus->children; child; child = child->next) { - layout_bus(child); + found_vga += layout_bus(child); } /* * Align the current bases on 4K and 1MB boundaries: @@ -458,6 +507,8 @@ if (bus->self) { struct pci_dev *bridge = bus->self; + + DBG_DEVS(("layout_bus: config bus %d bridge\n", bus->number)); /* * Set up the top and bottom of the PCI I/O segment * for this bus. @@ -481,10 +532,13 @@ pcibios_write_config_dword(bridge->bus->number, bridge->devfn, 0x24, 0x0000ffff); /* - * Tell bridge that there is an ISA bus in the system: + * Tell bridge that there is an ISA bus in the system, + * and (possibly) a VGA as well. */ + l = 0x00040000; /* ISA present */ + if (found_vga) l |= 0x00080000; /* VGA present */ pcibios_write_config_dword(bridge->bus->number, bridge->devfn, - 0x3c, 0x00040000); + 0x3c, l); /* * Clear status bits, enable I/O (for downstream I/O), * turn on master enable (for upstream I/O), turn on @@ -494,75 +548,26 @@ pcibios_write_config_dword(bridge->bus->number, bridge->devfn, 0x4, 0xffff0007); } + DBG_DEVS(("layout_bus: bus %d finished\n", bus->number)); + return found_vga; } #endif /* !PCI_MODIFY */ -/* - * Given the vendor and device ids, find the n'th instance of that device - * in the system. - */ -int pcibios_find_device (unsigned short vendor, unsigned short device_id, - unsigned short index, unsigned char *bus, - unsigned char *devfn) -{ - unsigned int curr = 0; - struct pci_dev *dev; - - for (dev = pci_devices; dev; dev = dev->next) { - if (dev->vendor == vendor && dev->device == device_id) { - if (curr == index) { - *devfn = dev->devfn; - *bus = dev->bus->number; - return PCIBIOS_SUCCESSFUL; - } - ++curr; - } - } - return PCIBIOS_DEVICE_NOT_FOUND; -} - - -/* - * Given the class, find the n'th instance of that device - * in the system. - */ -int pcibios_find_class (unsigned int class_code, unsigned short index, - unsigned char *bus, unsigned char *devfn) -{ - unsigned int curr = 0; - struct pci_dev *dev; - - for (dev = pci_devices; dev; dev = dev->next) { - if (dev->class == class_code) { - if (curr == index) { - *devfn = dev->devfn; - *bus = dev->bus->number; - return PCIBIOS_SUCCESSFUL; - } - ++curr; - } - } - return PCIBIOS_DEVICE_NOT_FOUND; -} - - int pcibios_present(void) { return 1; } -unsigned long pcibios_init(unsigned long mem_start, - unsigned long mem_end) +void __init +pcibios_init(void) { printk("Alpha PCI BIOS32 revision %x.%02x\n", MAJOR_REV, MINOR_REV); - #if !PCI_MODIFY printk("...NOT modifying existing (SRM) PCI configuration\n"); #endif - return mem_start; } /* @@ -633,6 +638,76 @@ return (((pin-1) + slot) % 4) + 1; } +#ifdef CONFIG_ALPHA_SRM_SETUP +/* look for mis-configured devices' I/O space addresses behind bridges */ +static void check_behind_io(struct pci_dev *dev) +{ + struct pci_bus *bus = dev->bus; + unsigned int reg, orig_base, new_base, found_one = 0; + + for (reg = PCI_BASE_ADDRESS_0; reg <= PCI_BASE_ADDRESS_5; reg += 4) { + /* read the current setting, check for I/O space and >= 64K */ + pcibios_read_config_dword(bus->number, dev->devfn, reg, &orig_base); + if (!orig_base || !(orig_base & PCI_BASE_ADDRESS_SPACE_IO)) + continue; /* unused or non-IO */ + if (orig_base < 64*1024) { +#if 1 +printk("check_behind_io: ALREADY OK! bus %d slot %d base 0x%x\n", + bus->number, PCI_SLOT(dev->devfn), orig_base); +#endif + if (orig_base & ~1) + continue; /* OK! */ + orig_base = 0x12001; /* HACK! FIXME!! */ + } + + /* HACK ALERT! for now, just subtract 32K from the + original address, which should give us addresses + in the range 0x8000 and up */ + new_base = orig_base - 0x8000; +#if 1 +printk("check_behind_io: ALERT! bus %d slot %d old 0x%x new 0x%x\n", + bus->number, PCI_SLOT(dev->devfn), orig_base, new_base); +#endif + pcibios_write_config_dword(bus->number, dev->devfn, + reg, new_base); + + io_dev_to_reset[io_reset_count] = dev; + io_reg_to_reset[io_reset_count] = reg; + io_to_reset[io_reset_count] = orig_base; + io_reset_count++; + found_one++; + } /* end for-loop */ + + /* if any were modified, gotta hack the bridge IO limits too... */ + if (found_one) { + if (bus->self) { + struct pci_dev *bridge = bus->self; + unsigned int l; + /* + * Set up the top and bottom of the PCI I/O segment + * for this bus. + */ + pcibios_read_config_dword(bridge->bus->number, + bridge->devfn, 0x1c, &l); +#if 1 +printk("check_behind_io: ALERT! bus %d slot %d oldLIM 0x%x\n", + bus->number, PCI_SLOT(bridge->devfn), l); +#endif + l = (l & 0xffff0000U) | 0xf080U; /* give it ALL */ + pcibios_write_config_dword(bridge->bus->number, + bridge->devfn, 0x1c, l); + pcibios_write_config_dword(bridge->bus->number, + bridge->devfn, + 0x3c, 0x00040000); + pcibios_write_config_dword(bridge->bus->number, + bridge->devfn, + 0x4, 0xffff0007); + } else + printk("check_behind_io: WARNING! bus->self NULL\n"); + } +} +#endif /* CONFIG_ALPHA_SRM_SETUP */ + /* * Most evaluation boards share most of the fixup code, which is isolated * here. This function is declared "inline" as only one platform will ever @@ -644,7 +719,7 @@ char irq_tab[max_idsel - min_idsel + 1][irqs_per_slot], long ide_base) { - struct pci_dev *dev; + struct pci_dev *dev, *curr; unsigned char pin; unsigned char slot; @@ -652,12 +727,18 @@ * Go through all devices, fixing up irqs as we see fit: */ for (dev = pci_devices; dev; dev = dev->next) { - if ((dev->class >> 16 != PCI_BASE_CLASS_BRIDGE - /* PCEB (PCI to EISA bridge) does not identify - itself as a bridge... :-P */ - && !(dev->vendor == PCI_VENDOR_ID_INTEL && - dev->device == PCI_DEVICE_ID_INTEL_82375)) - || dev->class >> 8 == PCI_CLASS_BRIDGE_PCMCIA) { + if (dev->class >> 16 != PCI_BASE_CLASS_BRIDGE || + dev->class >> 8 == PCI_CLASS_BRIDGE_PCMCIA) { + /* + * HACK: the PCI-to-EISA bridge appears not to identify + * itself as a bridge... :-( + */ + if (dev->vendor == PCI_VENDOR_ID_INTEL && + dev->device == PCI_DEVICE_ID_INTEL_82375) { + DBG_DEVS(("common_fixup: ignoring PCEB...\n")); + continue; + } + /* * This device is not on the primary bus, we need * to figure out which interrupt pin it will come @@ -668,45 +749,100 @@ * the inline static routine above). */ dev->irq = 0; - if (dev->bus->number != 0) { - struct pci_dev *curr = dev; + if (!DEV_IS_ON_PRIMARY(dev)) { /* read the pin and do the PCI-PCI bridge interrupt pin swizzle */ pcibios_read_config_byte(dev->bus->number, dev->devfn, PCI_INTERRUPT_PIN, &pin); - /* cope with 0 */ - if (pin == 0) + /* cope with 0 and illegal */ + if (pin == 0 || pin > 4) pin = 1; /* follow the chain of bridges, swizzling as we go */ + curr = dev; #if defined(CONFIG_ALPHA_MIATA) + /* check first for the built-in bridge */ + if ((PCI_SLOT(dev->bus->self->devfn) == 8) || + (PCI_SLOT(dev->bus->self->devfn) == 20)) { slot = PCI_SLOT(dev->devfn) + 5; DBG_DEVS(("MIATA: bus 1 slot %d pin %d" " irq %d min_idsel %d\n", PCI_SLOT(dev->devfn), pin, irq_tab[slot - min_idsel][pin], min_idsel)); + } + else /* must be a card-based bridge */ + { + do { + if ((PCI_SLOT(curr->bus->self->devfn) == 8) || + (PCI_SLOT(curr->bus->self->devfn) == 20)) + { + slot = PCI_SLOT(curr->devfn) + 5; + break; + } + /* swizzle */ + pin = bridge_swizzle( + pin, PCI_SLOT(curr->devfn)) ; + /* move up the chain of bridges */ + curr = curr->bus->self ; + /* slot of the next bridge. */ + slot = PCI_SLOT(curr->devfn); + } while (curr->bus->self) ; + } #elif defined(CONFIG_ALPHA_NORITAKE) - /* WAG Alert! */ - slot = PCI_SLOT(dev->devfn) + 14; + /* check first for the built-in bridge */ + if (PCI_SLOT(dev->bus->self->devfn) == 8) { + slot = PCI_SLOT(dev->devfn) + 15; /* WAG! */ DBG_DEVS(("NORITAKE: bus 1 slot %d pin %d" - " irq %d min_idsel %d\n", + "irq %d min_idsel %ld\n", PCI_SLOT(dev->devfn), pin, irq_tab[slot - min_idsel][pin], min_idsel)); -#else + } + else /* must be a card-based bridge */ + { do { + if (PCI_SLOT(curr->bus->self->devfn) == 8) { + slot = PCI_SLOT(curr->devfn) + 15; + break; + } /* swizzle */ - pin = bridge_swizzle(pin, PCI_SLOT(curr->devfn)); + pin = bridge_swizzle( + pin, PCI_SLOT(curr->devfn)) ; + /* move up the chain of bridges */ + curr = curr->bus->self ; + /* slot of the next bridge. */ + slot = PCI_SLOT(curr->devfn); + } while (curr->bus->self) ; + } +#else /* everyone but MIATA and NORITAKE */ + DBG_DEVS(("common_fixup: bus %d slot %d pin %d " + "irq %d min_idsel %ld\n", + curr->bus->number, + PCI_SLOT(dev->devfn), pin, + irq_tab[slot - min_idsel][pin], + min_idsel)); + do { + /* swizzle */ + pin = + bridge_swizzle(pin, PCI_SLOT(curr->devfn)); /* move up the chain of bridges */ curr = curr->bus->self; } while (curr->bus->self); /* The slot is the slot of the last bridge. */ slot = PCI_SLOT(curr->devfn); -#endif /* MIATA */ - } else { +#endif +#ifdef CONFIG_ALPHA_SRM_SETUP + /* + * must make sure that SRM didn't screw up + * and allocate an address > 64K for I/O + * space behind a PCI-PCI bridge + */ + check_behind_io(dev); +#endif /* CONFIG_ALPHA_SRM_SETUP */ + } else { /* just a device on a primary bus */ /* work out the slot */ slot = PCI_SLOT(dev->devfn); /* read the pin */ @@ -714,16 +850,48 @@ dev->devfn, PCI_INTERRUPT_PIN, &pin); + DBG_DEVS(("common_fixup: bus %d slot %d" + " pin %d irq %d min_idsel %ld\n", + dev->bus->number, slot, pin, + irq_tab[slot - min_idsel][pin], + min_idsel)); + /* cope with 0 and illegal */ + if (pin == 0 || pin > 4) + pin = 1; } if (irq_tab[slot - min_idsel][pin] != -1) dev->irq = irq_tab[slot - min_idsel][pin]; -#if PCI_MODIFY - /* tell the device: */ - pcibios_write_config_byte(dev->bus->number, +#ifdef CONFIG_ALPHA_RAWHIDE + dev->irq += + 24 * bus2hose[dev->bus->number]->pci_hose_index; +#endif /* RAWHIDE */ +#ifdef CONFIG_ALPHA_SRM + { + unsigned char irq_orig; + /* read the original SRM-set IRQ and tell */ + pcibios_read_config_byte(dev->bus->number, dev->devfn, PCI_INTERRUPT_LINE, - dev->irq); -#endif + &irq_orig); + if (irq_orig != dev->irq) { + DBG_DEVS(("common_fixup: bus %d slot 0x%x " + "SRM IRQ 0x%x changed to 0x%x\n", + dev->bus->number,PCI_SLOT(dev->devfn), + irq_orig, dev->irq)); +#ifdef CONFIG_ALPHA_SRM_SETUP + irq_dev_to_reset[irq_reset_count] = dev; + irq_to_reset[irq_reset_count] = irq_orig; + irq_reset_count++; +#endif /* CONFIG_ALPHA_SRM_SETUP */ + } + } +#endif /* SRM */ + + /* always tell the device, so the driver knows what is + * the real IRQ to use; the device does not use it. + */ + pcibios_write_config_byte(dev->bus->number, dev->devfn, + PCI_INTERRUPT_LINE, dev->irq); DBG_DEVS(("common_fixup: bus %d slot 0x%x" " VID 0x%x DID 0x%x\n" @@ -737,11 +905,24 @@ * if it's a VGA, enable its BIOS ROM at C0000 */ if ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA) { - pcibios_write_config_dword(dev->bus->number, + /* but if its a Cirrus 543x/544x DISABLE it, */ + /* since enabling ROM disables the memory... */ + if ((dev->vendor == PCI_VENDOR_ID_CIRRUS) && + (dev->device >= 0x00a0) && + (dev->device <= 0x00ac)) { + pcibios_write_config_dword( + dev->bus->number, + dev->devfn, + PCI_ROM_ADDRESS, + 0x00000000); + } else { + pcibios_write_config_dword( + dev->bus->number, dev->devfn, PCI_ROM_ADDRESS, 0x000c0000 | PCI_ROM_ADDRESS_ENABLE); } + } /* * if it's a SCSI, disable its BIOS ROM */ @@ -752,46 +933,6 @@ 0x0000000); } } -#ifdef CONFIG_ALPHA_SX164 - /* If it the CYPRESS PCI-ISA bridge, disable IDE - interrupt routing through PCI (ie do through PIC). */ - else if (dev->vendor == PCI_VENDOR_ID_CONTAQ && - dev->device == 0xc693 && - PCI_FUNC(dev->devfn) == 0) { - pcibios_write_config_word(dev->bus->number, - dev->devfn, 0x04, 0x0007); - - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x40, 0x80); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x41, 0x80); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x42, 0x80); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x43, 0x80); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x44, 0x27); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x45, 0xe0); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x48, 0xf0); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x49, 0x40); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x4a, 0x00); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x4b, 0x80); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x4c, 0x80); - pcibios_write_config_byte(dev->bus->number, - dev->devfn, 0x4d, 0x70); - - outb(0, DMA1_RESET_REG); - outb(0, DMA2_RESET_REG); - outb(DMA_MODE_CASCADE, DMA2_MODE_REG); - outb(0, DMA2_MASK_REG); - } -#endif /* SX164 */ } if (ide_base) { enable_ide(ide_base); @@ -813,7 +954,8 @@ */ static inline void eb66p_fixup(void) { - static char irq_tab[5][5] __initdata = { + static char irq_tab[5][5] __initlocaldata = { + /*INT INTA INTB INTC INTD */ {16+0, 16+0, 16+5, 16+9, 16+13}, /* IdSel 6, slot 0, J25 */ {16+1, 16+1, 16+6, 16+10, 16+14}, /* IdSel 7, slot 1, J26 */ { -1, -1, -1, -1, -1}, /* IdSel 8, SIO */ @@ -825,8 +967,8 @@ /* - * The PC164/LX164 has 19 PCI interrupts, four from each of the four PCI - * slots, the SIO, PCI/IDE, and USB. + * The PC164 and LX164 have 19 PCI interrupts, four from each of the four + * PCI slots, the SIO, PCI/IDE, and USB. * * Each of the interrupts can be individually masked. This is * accomplished by setting the appropriate bit in the mask register. @@ -869,7 +1011,7 @@ #if defined(CONFIG_ALPHA_PC164) || defined(CONFIG_ALPHA_LX164) static inline void alphapc164_fixup(void) { - static char irq_tab[7][5] __initdata = { + static char irq_tab[7][5] __initlocaldata = { /*INT INTA INTB INTC INTD */ { 16+2, 16+2, 16+9, 16+13, 16+17}, /* IdSel 5, slot 2, J20 */ { 16+0, 16+0, 16+7, 16+11, 16+15}, /* IdSel 6, slot 0, J29 */ @@ -900,7 +1042,8 @@ */ static inline void cabriolet_fixup(void) { - static char irq_tab[5][5] __initdata = { + static char irq_tab[5][5] __initlocaldata = { + /*INT INTA INTB INTC INTD */ { 16+2, 16+2, 16+7, 16+11, 16+15}, /* IdSel 5, slot 2, J21 */ { 16+0, 16+0, 16+5, 16+9, 16+13}, /* IdSel 6, slot 0, J19 */ { 16+1, 16+1, 16+6, 16+10, 16+14}, /* IdSel 7, slot 1, J20 */ @@ -956,7 +1099,8 @@ */ static inline void eb66_and_eb64p_fixup(void) { - static char irq_tab[5][5] __initdata = { + static char irq_tab[5][5] __initlocaldata = { + /*INT INTA INTB INTC INTD */ {16+7, 16+7, 16+7, 16+7, 16+7}, /* IdSel 5, slot ?, ?? */ {16+0, 16+0, 16+2, 16+4, 16+9}, /* IdSel 6, slot ?, ?? */ {16+1, 16+1, 16+3, 16+8, 16+10}, /* IdSel 7, slot ?, ?? */ @@ -968,7 +1112,7 @@ /* - * Fixup configuration for MIKASA (NORITAKE is different) + * Fixup configuration for MIKASA (AlphaServer 1000) * * Summary @ 0x536: * Bit Meaning @@ -1005,7 +1149,7 @@ */ static inline void mikasa_fixup(void) { - static char irq_tab[8][5] __initdata = { + static char irq_tab[8][5] __initlocaldata = { /*INT INTA INTB INTC INTD */ {16+12, 16+12, 16+12, 16+12, 16+12}, /* IdSel 17, SCSI */ { -1, -1, -1, -1, -1}, /* IdSel 18, PCEB */ @@ -1020,7 +1164,10 @@ } /* - * Fixup configuration for NORITAKE (MIKASA is different) + * Fixup configuration for NORITAKE (AlphaServer 1000A) + * + * This is also used for CORELLE (AlphaServer 800) + * and ALCOR Primo (AlphaStation 600A). * * Summary @ 0x542, summary register #1: * Bit Meaning @@ -1076,8 +1223,11 @@ */ static inline void noritake_fixup(void) { - static char irq_tab[13][5] __initdata = { + static char irq_tab[15][5] __initlocaldata = { /*INT INTA INTB INTC INTD */ + /* note: IDSELs 16, 17, and 25 are CORELLE only */ + { 16+1, 16+1, 16+1, 16+1, 16+1}, /* IdSel 16, QLOGIC */ + { -1, -1, -1, -1, -1}, /* IdSel 17, S3 Trio64 */ { -1, -1, -1, -1, -1}, /* IdSel 18, PCEB */ { -1, -1, -1, -1, -1}, /* IdSel 19, PPB */ { -1, -1, -1, -1, -1}, /* IdSel 20, ???? */ @@ -1085,18 +1235,20 @@ { 16+2, 16+2, 16+3, 32+2, 32+3}, /* IdSel 22, slot 0 */ { 16+4, 16+4, 16+5, 32+4, 32+5}, /* IdSel 23, slot 1 */ { 16+6, 16+6, 16+7, 32+6, 32+7}, /* IdSel 24, slot 2 */ - /* The following are actually on bus 1, across the bridge */ + { 16+8, 16+8, 16+9, 32+8, 32+9}, /* IdSel 25, slot 3 */ + /* the following 5 are actually on PCI bus 1, which is */ + /* across the built-in bridge of the NORITAKE only */ { 16+1, 16+1, 16+1, 16+1, 16+1}, /* IdSel 16, QLOGIC */ { 16+8, 16+8, 16+9, 32+8, 32+9}, /* IdSel 17, slot 3 */ {16+10, 16+10, 16+11, 32+10, 32+11}, /* IdSel 18, slot 4 */ {16+12, 16+12, 16+13, 32+12, 32+13}, /* IdSel 19, slot 5 */ {16+14, 16+14, 16+15, 32+14, 32+15}, /* IdSel 20, slot 6 */ }; - common_fixup(7, 18, 5, irq_tab, 0); + common_fixup(5, 19, 5, irq_tab, 0); } /* - * Fixup configuration for ALCOR + * Fixup configuration for ALCOR and XLT (XL-300/366/433) * * Summary @ GRU_INT_REQ: * Bit Meaning @@ -1126,6 +1278,7 @@ * The device to slot mapping looks like: * * Slot Device + * 6 built-in TULIP (XLT only) * 7 PCI on board slot 0 * 8 PCI on board slot 3 * 9 PCI on board slot 4 @@ -1140,8 +1293,10 @@ */ static inline void alcor_fixup(void) { - static char irq_tab[6][5] __initdata = { + static char irq_tab[7][5] __initlocaldata = { /*INT INTA INTB INTC INTD */ + /* note: IDSEL 17 is XLT only */ + {16+13, 16+13, 16+13, 16+13, 16+13}, /* IdSel 17, TULIP */ { 16+8, 16+8, 16+9, 16+10, 16+11}, /* IdSel 18, slot 0 */ {16+16, 16+16, 16+17, 16+18, 16+19}, /* IdSel 19, slot 3 */ {16+12, 16+12, 16+13, 16+14, 16+15}, /* IdSel 20, slot 4 */ @@ -1149,62 +1304,6 @@ { 16+0, 16+0, 16+1, 16+2, 16+3}, /* IdSel 22, slot 2 */ { 16+4, 16+4, 16+5, 16+6, 16+7}, /* IdSel 23, slot 1 */ }; - common_fixup(7, 12, 5, irq_tab, 0); -} - -/* - * Fixup configuration for ALPHA XLT (EV5/EV56) - * - * Summary @ GRU_INT_REQ: - * Bit Meaning - * 0 Interrupt Line A from slot 2 - * 1 Interrupt Line B from slot 2 - * 2 Interrupt Line C from slot 2 - * 3 Interrupt Line D from slot 2 - * 4 Interrupt Line A from slot 1 - * 5 Interrupt line B from slot 1 - * 6 Interrupt Line C from slot 1 - * 7 Interrupt Line D from slot 1 - * 8 Interrupt Line A from slot 0 - * 9 Interrupt Line B from slot 0 - *10 Interrupt Line C from slot 0 - *11 Interrupt Line D from slot 0 - *12 NCR810 SCSI in slot 9 - *13 DC-21040 (TULIP) in slot 6 - *14-19 Reserved - *20-23 Jumpers (interrupt) - *24-27 Module revision - *28-30 Reserved - *31 EISA interrupt - * - * The device to slot mapping looks like: - * - * Slot Device - * 6 TULIP - * 7 PCI on board slot 0 - * 8 none - * 9 SCSI - * 10 PCI-ISA bridge - * 11 PCI on board slot 2 - * 12 PCI on board slot 1 - * - * - * This two layered interrupt approach means that we allocate IRQ 16 and - * above for PCI interrupts. The IRQ relates to which bit the interrupt - * comes in on. This makes interrupt processing much easier. - */ -static inline void xlt_fixup(void) -{ - static char irq_tab[7][5] __initdata = { - /*INT INTA INTB INTC INTD */ - {16+13, 16+13, 16+13, 16+13, 16+13}, /* IdSel 17, TULIP */ - { 16+8, 16+8, 16+9, 16+10, 16+11}, /* IdSel 18, slot 0 */ - { -1, -1, -1, -1, -1}, /* IdSel 19, none */ - {16+12, 16+12, 16+12, 16+12, 16+12}, /* IdSel 20, SCSI */ - { -1, -1, -1, -1, -1}, /* IdSel 21, SIO */ - { 16+0, 16+0, 16+1, 16+2, 16+3}, /* IdSel 22, slot 2 */ - { 16+4, 16+4, 16+5, 16+6, 16+7}, /* IdSel 23, slot 1 */ - }; common_fixup(6, 12, 5, irq_tab, 0); } @@ -1262,11 +1361,9 @@ * with the values in the sable_irq_to_mask[] and sable_mask_to_irq[] tables * in irq.c */ - -#ifdef CONFIG_ALPHA_SABLE static inline void sable_fixup(void) { - static char irq_tab[9][5] __initdata = { + static char irq_tab[9][5] __initlocaldata = { /*INT INTA INTB INTC INTD */ { 32+0, 32+0, 32+0, 32+0, 32+0}, /* IdSel 0, TULIP */ { 32+1, 32+1, 32+1, 32+1, 32+1}, /* IdSel 1, SCSI */ @@ -1280,7 +1377,6 @@ }; common_fixup(0, 8, 5, irq_tab, 0); } -#endif /* * Fixup configuration for MIATA (EV56+PYXIS) @@ -1349,7 +1445,7 @@ #ifdef CONFIG_ALPHA_MIATA static inline void miata_fixup(void) { - static char irq_tab[18][5] __initdata = { + static char irq_tab[18][5] __initlocaldata = { /*INT INTA INTB INTC INTD */ {16+ 8, 16+ 8, 16+ 8, 16+ 8, 16+ 8}, /* IdSel 14, DC21142 */ { -1, -1, -1, -1, -1}, /* IdSel 15, EIDE */ @@ -1362,7 +1458,8 @@ { -1, -1, -1, -1, -1}, /* IdSel 21, none */ {16+12, 16+12, 16+13, 16+14, 16+15}, /* IdSel 22, slot 4 */ {16+16, 16+16, 16+17, 16+18, 16+19}, /* IdSel 23, slot 5 */ - /* The following are actually on bus 1, across the bridge */ + /* The following are actually on bus 1, which is */ + /* across the builtin PCI-PCI bridge */ {16+20, 16+20, 16+21, 16+22, 16+23}, /* IdSel 24, slot 1 */ {16+24, 16+24, 16+25, 16+26, 16+27}, /* IdSel 25, slot 2 */ {16+28, 16+28, 16+29, 16+30, 16+31}, /* IdSel 26, slot 3 */ @@ -1373,6 +1470,7 @@ { -1, -1, -1, -1, -1}, /* IdSel 31, PCI-PCI */ }; common_fixup(3, 20, 5, irq_tab, 0); + SMC669_Init(); /* it might be a GL (fails harmlessly if not) */ es1888_init(); } #endif @@ -1399,7 +1497,6 @@ *14 Interrupt Line B from slot 1 *15 Interrupt line B from slot 0 *16 Interrupt Line C from slot 3 - *17 Interrupt Line C from slot 2 *18 Interrupt Line C from slot 1 *19 Interrupt Line C from slot 0 @@ -1417,10 +1514,9 @@ * */ -#ifdef CONFIG_ALPHA_SX164 static inline void sx164_fixup(void) { - static char irq_tab[5][5] __initdata = { + static char irq_tab[5][5] __initlocaldata = { /*INT INTA INTB INTC INTD */ { 16+ 9, 16+ 9, 16+13, 16+17, 16+21}, /* IdSel 5 slot 2 J17 */ { 16+11, 16+11, 16+15, 16+19, 16+23}, /* IdSel 6 slot 0 J19 */ @@ -1428,12 +1524,154 @@ { -1, -1, -1, -1, -1}, /* IdSel 8 SIO */ { 16+ 8, 16+ 8, 16+12, 16+16, 16+20} /* IdSel 9 slot 3 J15 */ }; - common_fixup(5, 9, 5, irq_tab, 0); + SMC669_Init(); +} + +/* + * Fixup configuration for DP264 (EV6+TSUNAMI) + * + * Summary @ TSUNAMI_CSR_DIM0: + * Bit Meaning + * 0-17 Unused + *18 Interrupt SCSI B (Adaptec 7895 builtin) + *19 Interrupt SCSI A (Adaptec 7895 builtin) + *20 Interrupt Line D from slot 2 PCI0 + *21 Interrupt Line C from slot 2 PCI0 + *22 Interrupt Line B from slot 2 PCI0 + *23 Interrupt Line A from slot 2 PCI0 + *24 Interrupt Line D from slot 1 PCI0 + *25 Interrupt Line C from slot 1 PCI0 + *26 Interrupt Line B from slot 1 PCI0 + *27 Interrupt Line A from slot 1 PCI0 + *28 Interrupt Line D from slot 0 PCI0 + *29 Interrupt Line C from slot 0 PCI0 + *30 Interrupt Line B from slot 0 PCI0 + *31 Interrupt Line A from slot 0 PCI0 + * + *32 Interrupt Line D from slot 3 PCI1 + *33 Interrupt Line C from slot 3 PCI1 + *34 Interrupt Line B from slot 3 PCI1 + *35 Interrupt Line A from slot 3 PCI1 + *36 Interrupt Line D from slot 2 PCI1 + *37 Interrupt Line C from slot 2 PCI1 + *38 Interrupt Line B from slot 2 PCI1 + *39 Interrupt Line A from slot 2 PCI1 + *40 Interrupt Line D from slot 1 PCI1 + *41 Interrupt Line C from slot 1 PCI1 + *42 Interrupt Line B from slot 1 PCI1 + *43 Interrupt Line A from slot 1 PCI1 + *44 Interrupt Line D from slot 0 PCI1 + *45 Interrupt Line C from slot 0 PCI1 + *46 Interrupt Line B from slot 0 PCI1 + *47 Interrupt Line A from slot 0 PCI1 + *48-52 Unused + *53 PCI0 NMI (from Cypress) + *54 PCI0 SMI INT (from Cypress) + *55 PCI0 ISA Interrupt (from Cypress) + *56-60 Unused + *61 PCI1 Bus Error + *62 PCI0 Bus Error + *63 Reserved + * + * IdSel + * 5 Cypress Bridge I/O + * 6 SCSI Adaptec builtin + * 7 64 bit PCI option slot 0 + * 8 64 bit PCI option slot 1 + * 9 64 bit PCI option slot 2 + * + */ +static inline void dp264_fixup(void) +{ + static char irq_tab[5][5] __initlocaldata = { + /*INT INTA INTB INTC INTD */ + { -1, -1, -1, -1, -1}, /* IdSel 5 ISA Bridge */ + { 16+ 2, 16+ 2, 16+ 2, 16+ 2, 16+ 2}, /* IdSel 6 SCSI builtin */ + { 16+15, 16+15, 16+14, 16+13, 16+12}, /* IdSel 7 slot 0 */ + { 16+11, 16+11, 16+10, 16+ 9, 16+ 8}, /* IdSel 8 slot 1 */ + { 16+ 7, 16+ 7, 16+ 6, 16+ 5, 16+ 4} /* IdSel 9 slot 2 */ + }; + common_fixup(5, 9, 5, irq_tab, 0); SMC669_Init(); } -#endif + +/* + * Fixup configuration for RAWHIDE + * + * Summary @ MCPCIA_PCI0_INT_REQ: + * Bit Meaning + *0 Interrupt Line A from slot 2 PCI0 + *1 Interrupt Line B from slot 2 PCI0 + *2 Interrupt Line C from slot 2 PCI0 + *3 Interrupt Line D from slot 2 PCI0 + *4 Interrupt Line A from slot 3 PCI0 + *5 Interrupt Line B from slot 3 PCI0 + *6 Interrupt Line C from slot 3 PCI0 + *7 Interrupt Line D from slot 3 PCI0 + *8 Interrupt Line A from slot 4 PCI0 + *9 Interrupt Line B from slot 4 PCI0 + *10 Interrupt Line C from slot 4 PCI0 + *11 Interrupt Line D from slot 4 PCI0 + *12 Interrupt Line A from slot 5 PCI0 + *13 Interrupt Line B from slot 5 PCI0 + *14 Interrupt Line C from slot 5 PCI0 + *15 Interrupt Line D from slot 5 PCI0 + *16 EISA interrupt (PCI 0) or SCSI interrupt (PCI 1) + *17-23 NA + * + * IdSel + * 1 EISA bridge (PCI bus 0 only) + * 2 PCI option slot 2 + * 3 PCI option slot 3 + * 4 PCI option slot 4 + * 5 PCI option slot 5 + * + */ + +static inline void rawhide_fixup(void) +{ + static char irq_tab[5][5] __initlocaldata = { + /*INT INTA INTB INTC INTD */ + { 16+16, 16+16, 16+16, 16+16, 16+16}, /* IdSel 1 SCSI PCI 1 only */ + { 16+ 0, 16+ 0, 16+ 1, 16+ 2, 16+ 3}, /* IdSel 2 slot 2 */ + { 16+ 4, 16+ 4, 16+ 5, 16+ 6, 16+ 7}, /* IdSel 3 slot 3 */ + { 16+ 8, 16+ 8, 16+ 9, 16+10, 16+11}, /* IdSel 4 slot 4 */ + { 16+12, 16+12, 16+13, 16+14, 16+15} /* IdSel 5 slot 5 */ + }; + common_fixup(1, 5, 5, irq_tab, 0); +} + +/* + * The Takara has PCI devices 1, 2, and 3 configured to slots 20, + * 19, and 18 respectively, in the default configuration. They can + * also be jumpered to slots 8, 7, and 6 respectively, which is fun + * because the SIO ISA bridge can also be slot 7. However, the SIO + * doesn't explicitly generate PCI-type interrupts, so we can + * assign it whatever the hell IRQ we like and it doesn't matter. + */ +static inline void takara_fixup(void) +{ + static char irq_tab[15][5] __initlocaldata = { + { 16+3, 16+3, 16+3, 16+3, 16+3}, /* slot 6 == device 3 */ + { 16+2, 16+2, 16+2, 16+2, 16+2}, /* slot 7 == device 2 */ + { 16+1, 16+1, 16+1, 16+1, 16+1}, /* slot 8 == device 1 */ + { -1, -1, -1, -1, -1}, /* slot 9 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 10 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 11 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 12 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 13 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 14 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 15 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 16 == nothing */ + { -1, -1, -1, -1, -1}, /* slot 17 == nothing */ + { 16+3, 16+3, 16+3, 16+3, 16+3}, /* slot 18 == device 3 */ + { 16+2, 16+2, 16+2, 16+2, 16+2}, /* slot 19 == device 2 */ + { 16+1, 16+1, 16+1, 16+1, 16+1}, /* slot 20 == device 1 */ + }; + common_fixup(6, 20, 5, irq_tab, 0x26e); +} /* * Fixup configuration for all boards that route the PCI interrupts @@ -1461,7 +1699,8 @@ * that they use the default INTA line, if they are interrupt * driven at all). */ - static const char pirq_tab[][5] __initdata = { + static const char pirq_tab[][5] __initlocaldata = { + /*INT A B C D */ #ifdef CONFIG_ALPHA_P2K { 0, 0, -1, -1, -1}, /* idsel 6 (53c810) */ {-1, -1, -1, -1, -1}, /* idsel 7 (SIO: PCI/ISA bridge) */ @@ -1497,7 +1736,7 @@ #if defined(CONFIG_ALPHA_BOOK1) /* for the AlphaBook1, NCR810 SCSI is 14, PCMCIA controller is 15 */ - const unsigned int route_tab = 0x0e0f0a0a; + const unsigned int new_route_tab = 0x0e0f0a0a; #elif defined(CONFIG_ALPHA_NONAME) /* @@ -1510,16 +1749,24 @@ * they are co-indicated when the platform type "Noname" is * selected... :-( */ - const unsigned int route_tab = 0x0b0a0f09; + const unsigned int new_route_tab = 0x0b0a0f09; #else - const unsigned int route_tab = 0x0b0a090f; + const unsigned int new_route_tab = 0x0b0a090f; #endif - - unsigned int level_bits; + unsigned int route_tab, old_route_tab; + unsigned int level_bits, old_level_bits; unsigned char pin, slot; int pirq; + pcibios_read_config_dword(0, PCI_DEVFN(7, 0), 0x60, &old_route_tab); + DBG_DEVS(("sio_fixup: old pirq route table: 0x%08x\n", + old_route_tab)); +#if PCI_MODIFY + route_tab = new_route_tab; pcibios_write_config_dword(0, PCI_DEVFN(7, 0), 0x60, route_tab); +#else + route_tab = old_route_tab; +#endif /* * Go through all devices, fixing up irqs as we see fit: @@ -1576,20 +1823,33 @@ * if it's a VGA, enable its BIOS ROM at C0000 */ if ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA) { - pcibios_write_config_dword(dev->bus->number, + /* but if its a Cirrus 543x/544x DISABLE it, */ + /* since enabling ROM disables the memory... */ + if ((dev->vendor == PCI_VENDOR_ID_CIRRUS) && + (dev->device >= 0x00a0) && + (dev->device <= 0x00ac)) { + pcibios_write_config_dword( + dev->bus->number, + dev->devfn, + PCI_ROM_ADDRESS, + 0x00000000); + } else { + pcibios_write_config_dword( + dev->bus->number, dev->devfn, PCI_ROM_ADDRESS, 0x000c0000 | PCI_ROM_ADDRESS_ENABLE); } + } if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) { continue; /* for now, displays get no IRQ */ } if (pirq < 0) { - printk("bios32.sio_fixup: " + DBG_DEVS(("bios32.sio_fixup: " "weird, device %04x:%04x coming in on" " slot %d has no irq line!!\n", - dev->vendor, dev->device, slot); + dev->vendor, dev->device, slot)); continue; } @@ -1653,7 +1913,12 @@ * * Note: we at least preserve any level-set bits on AlphaBook1 */ - level_bits |= ((inb(0x4d0) | (inb(0x4d1) << 8)) & 0x71ff); + old_level_bits = inb(0x4d0) | (inb(0x4d1) << 8); + DBG_DEVS(("sio_fixup: old irq level bits: 0x%04x\n", + old_level_bits)); + level_bits |= (old_level_bits & 0x71ff); + DBG_DEVS(("sio_fixup: new irq level bits: 0x%04x\n", + level_bits)); outb((level_bits >> 0) & 0xff, 0x4d0); outb((level_bits >> 8) & 0xff, 0x4d1); @@ -1685,14 +1950,38 @@ extern void tga_console_init(void); #endif /* CONFIG_TGA_CONSOLE */ -unsigned long __init -pcibios_fixup(unsigned long mem_start, unsigned long mem_end) +void __init +pcibios_fixup(void) { + struct pci_bus *cur; + +#ifdef CONFIG_ALPHA_MCPCIA + /* must do massive setup for multiple PCI busses here... */ + DBG_DEVS(("pcibios_fixup: calling mcpcia_fixup()...\n")); + mcpcia_fixup(); +#endif /* MCPCIA */ + +#ifdef CONFIG_ALPHA_TSUNAMI + /* must do massive setup for multiple PCI busses here... */ + /* tsunami_fixup(); */ +#endif /* TSUNAMI */ + #if PCI_MODIFY && !defined(CONFIG_ALPHA_RUFFIAN) /* * Scan the tree, allocating PCI memory and I/O space. */ - layout_bus(&pci_root); + /* + * Sigh; check_region() will need changing to accept a HANDLE, + * if we allocate I/O space addresses on a per-bus basis. + * For now, make the I/O bases unique across all busses, so + * that check_region() will not get confused... ;-} + */ + io_base = DEFAULT_IO_BASE; + for (cur = &pci_root; cur; cur = cur->next) { + mem_base = DEFAULT_MEM_BASE; + DBG_DEVS(("pcibios_fixup: calling layout_bus()\n")); + layout_bus(cur); + } #endif /* @@ -1713,10 +2002,8 @@ eb66_and_eb64p_fixup(); #elif defined(CONFIG_ALPHA_MIKASA) mikasa_fixup(); -#elif defined(CONFIG_ALPHA_ALCOR) +#elif defined(CONFIG_ALPHA_ALCOR) || defined(CONFIG_ALPHA_XLT) alcor_fixup(); -#elif defined(CONFIG_ALPHA_XLT) - xlt_fixup(); #elif defined(CONFIG_ALPHA_SABLE) sable_fixup(); #elif defined(CONFIG_ALPHA_MIATA) @@ -1725,6 +2012,12 @@ noritake_fixup(); #elif defined(CONFIG_ALPHA_SX164) sx164_fixup(); +#elif defined(CONFIG_ALPHA_DP264) + dp264_fixup(); +#elif defined(CONFIG_ALPHA_RAWHIDE) + rawhide_fixup(); +#elif defined(CONFIG_ALPHA_TAKARA) + takara_fixup(); #elif defined(CONFIG_ALPHA_RUFFIAN) /* no fixup needed */ #else @@ -1736,8 +2029,6 @@ tga_console_init(); #endif #endif - - return mem_start; } @@ -1750,7 +2041,7 @@ unsigned int uint; long err = 0; - if (!suser()) + if (!capable(CAP_SYS_ADMIN)) return -EPERM; lock_kernel(); @@ -1791,7 +2082,7 @@ unsigned int uint; long err = 0; - if (!suser()) + if (!capable(CAP_SYS_ADMIN)) return -EPERM; lock_kernel(); @@ -1831,6 +2122,33 @@ return err; } +#if (defined(CONFIG_ALPHA_PC164) || \ + defined(CONFIG_ALPHA_LX164) || \ + defined(CONFIG_ALPHA_SX164) || \ + defined(CONFIG_ALPHA_EB164) || \ + defined(CONFIG_ALPHA_EB66P) || \ + defined(CONFIG_ALPHA_CABRIOLET)) && defined(CONFIG_ALPHA_SRM) + +/* + on the above machines, under SRM console, we must use the CSERVE PALcode + routine to manage the interrupt mask for us, otherwise, the kernel/HW get + out of sync with what the PALcode thinks it needs to deliver/ignore + */ +void +cserve_update_hw(unsigned long irq, unsigned long mask) +{ + extern void cserve_ena(unsigned long); + extern void cserve_dis(unsigned long); + + if (mask & (1UL << irq)) + /* disable */ + cserve_dis(irq - 16); + else + /* enable */ + cserve_ena(irq - 16); + return; +} +#endif /* (PC164 || LX164 || SX164 || EB164 || CABRIO) && SRM */ #ifdef CONFIG_ALPHA_MIATA /* @@ -1876,5 +2194,50 @@ return 0; } #endif /* CONFIG_ALPHA_MIATA */ + +__initfunc(char *pcibios_setup(char *str)) +{ + return str; +} + +#ifdef CONFIG_ALPHA_SRM_SETUP +void reset_for_srm(void) +{ + extern void scrreset(void); + struct pci_dev *dev; + int i; + + /* reset any IRQs that we changed */ + for (i = 0; i < irq_reset_count; i++) { + dev = irq_dev_to_reset[i]; + + pcibios_write_config_byte(dev->bus->number, dev->devfn, + PCI_INTERRUPT_LINE, irq_to_reset[i]); +#if 1 + printk("reset_for_srm: bus %d slot 0x%x " + "SRM IRQ 0x%x changed back from 0x%x\n", + dev->bus->number, PCI_SLOT(dev->devfn), + irq_to_reset[i], dev->irq); +#endif + } + + /* reset any IO addresses that we changed */ + for (i = 0; i < io_reset_count; i++) { + dev = io_dev_to_reset[i]; + + pcibios_write_config_byte(dev->bus->number, dev->devfn, + io_reg_to_reset[i], io_to_reset[i]); +#if 1 + printk("reset_for_srm: bus %d slot 0x%x " + "SRM IO restored to 0x%x\n", + dev->bus->number, PCI_SLOT(dev->devfn), + io_to_reset[i]); +#endif +} + + /* reset the visible screen to the top of display memory */ + scrreset(); +} +#endif /* CONFIG_ALPHA_SRM_SETUP */ #endif /* CONFIG_PCI */ diff -ur --new-file old/linux/arch/alpha/kernel/cia.c new/linux/arch/alpha/kernel/cia.c --- old/linux/arch/alpha/kernel/cia.c Sun Jan 25 19:35:16 1998 +++ new/linux/arch/alpha/kernel/cia.c Thu May 21 03:54:34 1998 @@ -6,8 +6,8 @@ * */ #include +#include #include -#include #include #include @@ -17,13 +17,14 @@ #include #include -/* NOTE: Herein are back-to-back mb insns. They are magic. - A plausible explanation is that the i/o controler does not properly - handle the system transaction. Another involves timing. Ho hum. */ +/* + * NOTE: Herein lie back-to-back mb instructions. They are magic. + * One plausible explanation is that the i/o controller does not properly + * handle the system transaction. Another involves timing. Ho hum. + */ extern struct hwrpb_struct *hwrpb; extern asmlinkage void wrmces(unsigned long mces); -extern int alpha_sys_type; /* * Machine check reasons. Defined according to PALcode sources @@ -56,13 +57,17 @@ # define DBGC(args) #endif -#define vulp volatile unsigned long * #define vuip volatile unsigned int * static volatile unsigned int CIA_mcheck_expected = 0; static volatile unsigned int CIA_mcheck_taken = 0; static unsigned int CIA_jd; +#ifdef CONFIG_ALPHA_SRM_SETUP +unsigned int CIA_DMA_WIN_BASE = CIA_DMA_WIN_BASE_DEFAULT; +unsigned int CIA_DMA_WIN_SIZE = CIA_DMA_WIN_SIZE_DEFAULT; +unsigned long cia_sm_base_r1, cia_sm_base_r2, cia_sm_base_r3; +#endif /* SRM_SETUP */ /* * Given a bus, device, and function number, compute resulting @@ -271,7 +276,7 @@ } /* reset error status: */ - *(vulp)CIA_IOC_CIA_ERR = stat0; + *(vuip)CIA_IOC_CIA_ERR = stat0; mb(); wrmces(0x7); /* reset machine check */ value = 0xffffffff; @@ -442,6 +447,18 @@ printk("CIA_init: CIA_STAT was 0x%x\n", temp); temp = *(vuip)CIA_IOC_MCR; mb(); printk("CIA_init: CIA_MCR was 0x%x\n", temp); + temp = *(vuip)CIA_IOC_CIA_CTRL; mb(); + printk("CIA_init: CIA_CTRL was 0x%x\n", temp); + temp = *(vuip)CIA_IOC_ERR_MASK; mb(); + printk("CIA_init: CIA_ERR_MASK was 0x%x\n", temp); + temp = *((vuip)CIA_IOC_PCI_W0_BASE); mb(); + printk("CIA_init: W0_BASE was 0x%x\n", temp); + temp = *((vuip)CIA_IOC_PCI_W1_BASE); mb(); + printk("CIA_init: W1_BASE was 0x%x\n", temp); + temp = *((vuip)CIA_IOC_PCI_W2_BASE); mb(); + printk("CIA_init: W2_BASE was 0x%x\n", temp); + temp = *((vuip)CIA_IOC_PCI_W3_BASE); mb(); + printk("CIA_init: W3_BASE was 0x%x\n", temp); } #endif /* DEBUG_DUMP_REGS */ @@ -458,6 +475,70 @@ *(vuip)CIA_IOC_CIA_CTRL = cia_tmp; mb(); +#ifdef CONFIG_ALPHA_SRM_SETUP + /* check window 0 for enabled and mapped to 0 */ + if (((*(vuip)CIA_IOC_PCI_W0_BASE & 3) == 1) && + (*(vuip)CIA_IOC_PCI_T0_BASE == 0)) + { + CIA_DMA_WIN_BASE = *(vuip)CIA_IOC_PCI_W0_BASE & 0xfff00000U; + CIA_DMA_WIN_SIZE = *(vuip)CIA_IOC_PCI_W0_MASK & 0xfff00000U; + CIA_DMA_WIN_SIZE += 0x00100000U; +#if 1 + printk("cia_init: using Window 0 settings\n"); + printk("cia_init: BASE 0x%x MASK 0x%x TRANS 0x%x\n", + *(vuip)CIA_IOC_PCI_W0_BASE, + *(vuip)CIA_IOC_PCI_W0_MASK, + *(vuip)CIA_IOC_PCI_T0_BASE); +#endif + } + else /* check window 1 for enabled and mapped to 0 */ + if (((*(vuip)CIA_IOC_PCI_W1_BASE & 3) == 1) && + (*(vuip)CIA_IOC_PCI_T1_BASE == 0)) + { + CIA_DMA_WIN_BASE = *(vuip)CIA_IOC_PCI_W1_BASE & 0xfff00000U; + CIA_DMA_WIN_SIZE = *(vuip)CIA_IOC_PCI_W1_MASK & 0xfff00000U; + CIA_DMA_WIN_SIZE += 0x00100000U; +#if 1 + printk("cia_init: using Window 1 settings\n"); + printk("cia_init: BASE 0x%x MASK 0x%x TRANS 0x%x\n", + *(vuip)CIA_IOC_PCI_W1_BASE, + *(vuip)CIA_IOC_PCI_W1_MASK, + *(vuip)CIA_IOC_PCI_T1_BASE); +#endif + } + else /* check window 2 for enabled and mapped to 0 */ + if (((*(vuip)CIA_IOC_PCI_W2_BASE & 3) == 1) && + (*(vuip)CIA_IOC_PCI_T2_BASE == 0)) + { + CIA_DMA_WIN_BASE = *(vuip)CIA_IOC_PCI_W2_BASE & 0xfff00000U; + CIA_DMA_WIN_SIZE = *(vuip)CIA_IOC_PCI_W2_MASK & 0xfff00000U; + CIA_DMA_WIN_SIZE += 0x00100000U; +#if 1 + printk("cia_init: using Window 2 settings\n"); + printk("cia_init: BASE 0x%x MASK 0x%x TRANS 0x%x\n", + *(vuip)CIA_IOC_PCI_W2_BASE, + *(vuip)CIA_IOC_PCI_W2_MASK, + *(vuip)CIA_IOC_PCI_T2_BASE); +#endif + } + else /* check window 3 for enabled and mapped to 0 */ + if (((*(vuip)CIA_IOC_PCI_W3_BASE & 3) == 1) && + (*(vuip)CIA_IOC_PCI_T3_BASE == 0)) + { + CIA_DMA_WIN_BASE = *(vuip)CIA_IOC_PCI_W3_BASE & 0xfff00000U; + CIA_DMA_WIN_SIZE = *(vuip)CIA_IOC_PCI_W3_MASK & 0xfff00000U; + CIA_DMA_WIN_SIZE += 0x00100000U; +#if 1 + printk("cia_init: using Window 3 settings\n"); + printk("cia_init: BASE 0x%x MASK 0x%x TRANS 0x%x\n", + *(vuip)CIA_IOC_PCI_W3_BASE, + *(vuip)CIA_IOC_PCI_W3_MASK, + *(vuip)CIA_IOC_PCI_T3_BASE); +#endif + } + else /* we must use our defaults which were pre-initialized... */ +#endif /* SRM_SETUP */ + { /* * Set up the PCI->physical memory translation windows. * For now, windows 1,2 and 3 are disabled. In the future, we may @@ -472,6 +553,7 @@ *(vuip)CIA_IOC_PCI_W1_BASE = 0x0; *(vuip)CIA_IOC_PCI_W2_BASE = 0x0; *(vuip)CIA_IOC_PCI_W3_BASE = 0x0; + } /* * check ASN in HWRPB for validity, report if bad @@ -483,28 +565,54 @@ } /* - * Finally, clear the CIA_CFG register, which gets used + * Next, clear the CIA_CFG register, which gets used * for PCI Config Space accesses. That is the way * we want to use it, and we do not want to depend on * what ARC or SRM might have left behind... */ { -#if 0 - unsigned int cia_cfg = *(vuip)CIA_IOC_CFG; mb(); - if (cia_cfg) printk("CIA_init: CFG was 0x%x\n", cia_cfg); -#endif - *(vuip)CIA_IOC_CFG = 0; mb(); + unsigned int cia_cfg = *((vuip)CIA_IOC_CFG); mb(); + if (cia_cfg) { + printk("CIA_init: CFG was 0x%x\n", cia_cfg); + *((vuip)CIA_IOC_CFG) = 0; mb(); + } } -#if 0 { - unsigned int temp; - temp = *(vuip)CIA_IOC_CIA_CTRL; mb(); - printk("CIA_init: CIA_CTRL was 0x%x\n", temp); - temp = *(vuip)CIA_IOC_ERR_MASK; mb(); - printk("CIA_init: CIA_ERR_MASK was 0x%x\n", temp); - } + unsigned int cia_hae_mem = *((vuip)CIA_IOC_HAE_MEM); + unsigned int cia_hae_io = *((vuip)CIA_IOC_HAE_IO); +#if 0 + printk("CIA_init: HAE_MEM was 0x%x\n", cia_hae_mem); + printk("CIA_init: HAE_IO was 0x%x\n", cia_hae_io); #endif +#ifdef CONFIG_ALPHA_SRM_SETUP + /* + sigh... For the SRM setup, unless we know apriori what the HAE + contents will be, we need to setup the arbitrary region bases + so we can test against the range of addresses and tailor the + region chosen for the SPARSE memory access. + + see include/asm-alpha/cia.h for the SPARSE mem read/write + */ + cia_sm_base_r1 = (cia_hae_mem ) & 0xe0000000UL; /* region 1 */ + cia_sm_base_r2 = (cia_hae_mem << 16) & 0xf8000000UL; /* region 2 */ + cia_sm_base_r3 = (cia_hae_mem << 24) & 0xfc000000UL; /* region 3 */ + + /* + Set the HAE cache, so that setup_arch() code + will use the SRM setting always. Our readb/writeb + code in cia.h expects never to have to change + the contents of the HAE. + */ + hae.cache = cia_hae_mem; +#else /* SRM_SETUP */ + *((vuip)CIA_IOC_HAE_MEM) = 0; mb(); + cia_hae_mem = *((vuip)CIA_IOC_HAE_MEM); + *((vuip)CIA_IOC_HAE_IO) = 0; mb(); + cia_hae_io = *((vuip)CIA_IOC_HAE_IO); +#endif /* SRM_SETUP */ + } + return mem_start; } @@ -512,7 +620,7 @@ { CIA_jd = *(vuip)CIA_IOC_CIA_ERR; DBGM(("CIA_pci_clr_err: CIA ERR after read 0x%x\n", CIA_jd)); - *(vulp)CIA_IOC_CIA_ERR = 0x0180; + *(vuip)CIA_IOC_CIA_ERR = 0x0180; mb(); return 0; } @@ -617,7 +725,7 @@ printk(KERN_CRIT " vector=0x%lx la_ptr=0x%lx pc=0x%lx\n", vector, la_ptr, regs->pc); - /* dump the the logout area to give all info: */ + /* dump the logout area to give all info: */ ptr = (unsigned long *)la_ptr; for (i = 0; i < mchk_header->size / sizeof(long); i += 2) { diff -ur --new-file old/linux/arch/alpha/kernel/entry.S new/linux/arch/alpha/kernel/entry.S --- old/linux/arch/alpha/kernel/entry.S Sun Mar 1 19:23:16 1998 +++ new/linux/arch/alpha/kernel/entry.S Thu May 21 22:48:06 1998 @@ -4,6 +4,7 @@ * kernel entry-points */ +#include #include #define halt .long PAL_halt @@ -48,6 +49,8 @@ * JRP - Save regs 16-18 in a special area of the stack, so that * the palcode-provided values are available to the signal handler. */ +#if defined(CONFIG_ALPHA_TSUNAMI) +/* TSUNAMI has no HAE register to save/restore */ #define SAVE_ALL \ subq $30,184,$30; \ stq $0,0($30); \ @@ -55,6 +58,55 @@ stq $2,16($30); \ stq $3,24($30); \ stq $4,32($30); \ + stq $5,40($30); \ + stq $6,48($30); \ + stq $7,56($30); \ + stq $8,64($30); \ + stq $19,72($30); \ + stq $20,80($30); \ + stq $21,88($30); \ + stq $22,96($30); \ + stq $23,104($30); \ + stq $24,112($30); \ + stq $25,120($30); \ + stq $26,128($30); \ + stq $27,136($30); \ + stq $28,144($30); \ + stq $16,160($30); \ + stq $17,168($30); \ + stq $18,176($30) + +#define RESTORE_ALL \ + ldq $0,0($30); \ + ldq $1,8($30); \ + ldq $2,16($30); \ + ldq $3,24($30); \ + ldq $4,32($30); \ + ldq $5,40($30); \ + ldq $6,48($30); \ + ldq $7,56($30); \ + ldq $8,64($30); \ + ldq $19,72($30); \ + ldq $20,80($30); \ + ldq $21,88($30); \ + ldq $22,96($30); \ + ldq $23,104($30); \ + ldq $24,112($30); \ + ldq $25,120($30); \ + ldq $26,128($30); \ + ldq $27,136($30); \ + ldq $28,144($30); \ + addq $30,184,$30 + +#else /* TSUNAMI */ +#define SAVE_ALL \ + subq $30,184,$30; \ + stq $0,0($30); \ + stq $1,8($30); \ + stq $2,16($30); \ + stq $3,24($30); \ + stq $4,32($30); \ + stq $28,144($30); \ lda $2,hae; \ stq $5,40($30); \ stq $6,48($30); \ @@ -70,7 +122,6 @@ stq $25,120($30); \ stq $26,128($30); \ stq $27,136($30); \ - stq $28,144($30); \ stq $2,152($30); \ stq $16,160($30); \ stq $17,168($30); \ @@ -113,6 +164,8 @@ ldq $28,144($30); \ addq $30,184,$30 +#endif /* TSUNAMI */ + .text .set noat #if defined(__linux__) && !defined(__ELF__) @@ -211,7 +264,7 @@ stq $18,40($30) bis $31,2,$0 /* Register v0: syscall nr for fork() */ SAVE_ALL - jsr $26,sys_clone + bsr $26,sys_clone stq $0,0($30) br $31,ret_from_sys_call .end kernel_clone @@ -506,8 +559,11 @@ .globl alpha_switch_to .ent alpha_switch_to alpha_switch_to: + .prologue 0 bsr $1,do_switch_stack call_pal PAL_swpctx + lda $16,-2($31) + call_pal PAL_tbi bsr $1,undo_switch_stack ret $31,($26),1 .end alpha_switch_to @@ -681,6 +737,19 @@ br $31,restore_all .end entSys +#ifdef __SMP__ + .globl ret_from_smpfork +.align 3 +.ent ret_from_smpfork +ret_from_smpfork: + .set at + stq $31,scheduler_lock + mb /* ?????????????????? */ + br ret_from_sys_call + .set noat +.end ret_from_smpfork +#endif /* __SMP__ */ + .align 3 .ent reschedule reschedule: @@ -1111,6 +1180,6 @@ .quad sys_getrusage .quad sys_wait4 /* 365 */ .quad sys_adjtimex - .quad sys_ni_syscall + .quad sys_getcwd .quad sys_ni_syscall .quad sys_ni_syscall /* 369 */ diff -ur --new-file old/linux/arch/alpha/kernel/head.S new/linux/arch/alpha/kernel/head.S --- old/linux/arch/alpha/kernel/head.S Thu Feb 12 22:31:28 1998 +++ new/linux/arch/alpha/kernel/head.S Thu May 21 22:48:06 1998 @@ -21,6 +21,7 @@ .ent __start _stext: __start: + .prologue 0 br $27,1f 1: ldgp $29,0($27) /* We need to get current loaded up with our first task... */ @@ -32,10 +33,33 @@ halt .end __start +#ifdef __SMP__ + .align 3 + .globl __start_cpu + .ent __start_cpu + /* on entry here from SRM console, the HWPCB of this processor */ + /* has been loaded, and $27 contains the task pointer */ +__start_cpu: + .prologue 0 + /* first order of business, load the GP */ + br $26,1f +1: ldgp $29,0($26) + /* We need to get current loaded up with our first task... */ + lda $8,0($27) + /* set FEN */ + lda $16,1($31) + call_pal PAL_wrfen + /* ... and then we can start the processor. */ + jsr $26,start_secondary + halt + .end __start_cpu +#endif /* __SMP__ */ + .align 3 .globl wrent .ent wrent wrent: + .prologue 0 call_pal PAL_wrent ret ($26) .end wrent @@ -44,6 +68,7 @@ .globl wrkgp .ent wrkgp wrkgp: + .prologue 0 call_pal PAL_wrkgp ret ($26) .end wrkgp @@ -52,6 +77,7 @@ .globl wrusp .ent wrusp wrusp: + .prologue 0 call_pal PAL_wrusp ret ($26) .end wrusp @@ -60,6 +86,7 @@ .globl rdusp .ent rdusp rdusp: + .prologue 0 call_pal PAL_rdusp ret ($26) .end rdusp @@ -68,6 +95,7 @@ .globl rdmces .ent rdmces rdmces: + .prologue 0 call_pal PAL_rdmces ret ($26) .end rdmces @@ -76,6 +104,7 @@ .globl wrmces .ent wrmces wrmces: + .prologue 0 call_pal PAL_wrmces ret ($26) .end wrmces @@ -84,6 +113,7 @@ .globl whami .ent whami whami: + .prologue 0 call_pal PAL_whami ret ($26) .end whami @@ -106,6 +136,7 @@ .globl cserve_ena .ent cserve_ena cserve_ena: + .prologue 0 bis $16,$16,$17 lda $16,52($31) call_pal PAL_cserve @@ -116,6 +147,7 @@ .globl cserve_dis .ent cserve_dis cserve_dis: + .prologue 0 bis $16,$16,$17 lda $16,53($31) call_pal PAL_cserve diff -ur --new-file old/linux/arch/alpha/kernel/irq.c new/linux/arch/alpha/kernel/irq.c --- old/linux/arch/alpha/kernel/irq.c Thu Feb 26 20:05:49 1998 +++ new/linux/arch/alpha/kernel/irq.c Mon Mar 30 10:21:39 1998 @@ -30,6 +30,10 @@ #define vulp volatile unsigned long * #define vuip volatile unsigned int * +extern void timer_interrupt(struct pt_regs * regs); +extern void cserve_update_hw(unsigned long, unsigned long); +extern void handle_ipi(struct pt_regs *); + #define RTC_IRQ 8 #ifdef CONFIG_RTC #define TIMER_IRQ 0 /* timer is the pit */ @@ -45,12 +49,15 @@ #if defined(CONFIG_ALPHA_P2K) /* always mask out unused timer irq 0 and RTC irq 8 */ # define PROBE_MASK (((1UL << NR_IRQS) - 1) & ~0x101UL) -#elif defined(CONFIG_ALPHA_ALCOR) +#elif defined(CONFIG_ALPHA_ALCOR) || defined(CONFIG_ALPHA_XLT) /* always mask out unused timer irq 0, "irqs" 20-30, and the EISA cascade: */ # define PROBE_MASK (((1UL << NR_IRQS) - 1) & ~0xfff000000001UL) #elif defined(CONFIG_ALPHA_RUFFIAN) /* must leave timer irq 0 in the mask */ # define PROBE_MASK ((1UL << NR_IRQS) - 1) +#elif NR_IRQS == 64 + /* always mask out unused timer irq 0: */ +# define PROBE_MASK (~1UL) #else /* always mask out unused timer irq 0: */ # define PROBE_MASK (((1UL << NR_IRQS) - 1) & ~1UL) @@ -119,7 +126,7 @@ { /* The "irq" argument is really the mask bit number */ switch (irq) { - default: /* 16 ... 23 */ + case 16 ... 23: outb(mask >> 16, 0x53d); break; case 8 ... 15: @@ -135,7 +142,7 @@ noritake_update_hw(unsigned long irq, unsigned long mask) { switch (irq) { - default: /* 32 ... 47 */ + case 32 ... 47: outw(~(mask >> 32), 0x54c); break; case 16 ... 31: @@ -155,7 +162,7 @@ miata_update_hw(unsigned long irq, unsigned long mask) { switch (irq) { - default: /* 16 ... 47 */ + case 16 ... 47: /* Make CERTAIN none of the bogus ints get enabled... */ *(vulp)PYXIS_INT_MASK = ~((long)mask >> 16) & ~0x4000000000000e3bUL; @@ -178,7 +185,7 @@ alcor_and_xlt_update_hw(unsigned long irq, unsigned long mask) { switch (irq) { - default: /* 16 ... 47 */ + case 16 ... 47: /* On Alcor, at least, lines 20..30 are not connected and can generate spurrious interrupts if we turn them on while IRQ probing. So explicitly mask them out. */ @@ -202,7 +209,7 @@ mikasa_update_hw(unsigned long irq, unsigned long mask) { switch (irq) { - default: /* 16 ... 31 */ + case 16 ... 31: outw(~(mask >> 16), 0x536); /* note invert */ break; case 8 ... 15: /* ISA PIC2 */ @@ -214,7 +221,7 @@ } } -#ifdef CONFIG_ALPHA_RUFFIAN +#if defined(CONFIG_ALPHA_RUFFIAN) static inline void ruffian_update_hw(unsigned long irq, unsigned long mask) { @@ -223,8 +230,7 @@ /* Note inverted sense of mask bits: */ /* Make CERTAIN none of the bogus ints get enabled... */ *(vulp)PYXIS_INT_MASK = - ~((long)mask >> 16) & 0x00000000ffffffbfUL; - mb(); + ~((long)mask >> 16) & 0x00000000ffffffbfUL; mb(); /* ... and read it back to make sure it got written. */ *(vulp)PYXIS_INT_MASK; break; @@ -236,20 +242,23 @@ break; } } -#endif +#endif /* RUFFIAN */ -#ifdef CONFIG_ALPHA_SX164 +#if defined(CONFIG_ALPHA_SX164) static inline void sx164_update_hw(unsigned long irq, unsigned long mask) { switch (irq) { case 16 ... 39: - /* Make CERTAIN none of the bogus ints get enabled */ +#if defined(CONFIG_ALPHA_SRM) + cserve_update_hw(irq, mask); +#else + /* make CERTAIN none of the bogus ints get enabled */ *(vulp)PYXIS_INT_MASK = - ~((long)mask >> 16) & ~0x000000000000003bUL; - mb(); + ~((long)mask >> 16) & ~0x000000000000003bUL; mb(); /* ... and read it back to make sure it got written. */ *(vulp)PYXIS_INT_MASK; +#endif /* SRM */ break; case 8 ... 15: /* ISA PIC2 */ outb(mask >> 8, 0xA1); @@ -258,20 +267,23 @@ outb(mask, 0x21); break; } -} -#endif -/* Unlabeled mechanisms based on the number of irqs. Someone should - probably document and name these. */ +} +#endif /* SX164 */ +#if defined(CONFIG_ALPHA_DP264) static inline void -update_hw_33(unsigned long irq, unsigned long mask) +dp264_update_hw(unsigned long irq, unsigned long mask) { switch (irq) { - default: /* 16 ... 32 */ - outl(mask >> 16, 0x804); + case 16 ... 63: + /* make CERTAIN none of the bogus ints get enabled */ + /* HACK ALERT! only CPU#0 is used currently */ + *(vulp)TSUNAMI_CSR_DIM0 = + ~(mask) & ~0x0000000000000000UL; mb(); + /* ... and read it back to make sure it got written. */ + *(vulp)TSUNAMI_CSR_DIM0; break; - case 8 ... 15: /* ISA PIC2 */ outb(mask >> 8, 0xA1); break; @@ -280,16 +292,24 @@ break; } } +#endif /* DP264 */ +#if defined(CONFIG_ALPHA_RAWHIDE) static inline void -update_hw_32(unsigned long irq, unsigned long mask) +rawhide_update_hw(unsigned long irq, unsigned long mask) { switch (irq) { - default: /* 24 ... 31 */ - outb(mask >> 24, 0x27); + case 16 ... 39: /* PCI bus 0 with EISA bridge */ + *(vuip)MCPCIA_INT_MASK0(0) = + (~((mask) >> 16) & 0x00ffffffU) | 0x00ff0000U; mb(); + /* ... and read it back to make sure it got written. */ + *(vuip)MCPCIA_INT_MASK0(0); break; - case 16 ... 23: - outb(mask >> 16, 0x26); + case 40 ... 63: /* PCI bus 1 with builtin NCR810 SCSI */ + *(vuip)MCPCIA_INT_MASK0(1) = + (~((mask) >> 40) & 0x00ffffffU) | 0x00fe0000U; mb(); + /* ... and read it back to make sure it got written. */ + *(vuip)MCPCIA_INT_MASK0(1); break; case 8 ... 15: /* ISA PIC2 */ outb(mask >> 8, 0xA1); @@ -299,12 +319,29 @@ break; } } +#endif /* RAWHIDE */ +/* + * HW update code for the following platforms: + * + * CABRIOLET (AlphaPC64) + * EB66P + * EB164 + * PC164 + * LX164 + */ static inline void -update_hw_16(unsigned long irq, unsigned long mask) +update_hw_35(unsigned long irq, unsigned long mask) { switch (irq) { - default: /* 8 ... 15, ISA PIC2 */ + case 16 ... 34: +#if defined(CONFIG_ALPHA_SRM) + cserve_update_hw(irq, mask); +#else /* SRM */ + outl(irq_mask >> 16, 0x804); +#endif /* SRM */ + break; + case 8 ... 15: /* ISA PIC2 */ outb(mask >> 8, 0xA1); break; case 0 ... 7: /* ISA PIC1 */ @@ -313,42 +350,38 @@ } } -#if (defined(CONFIG_ALPHA_PC164) || defined(CONFIG_ALPHA_LX164)) \ - && defined(CONFIG_ALPHA_SRM) -/* - * On the pc164, we cannot take over the IRQs from the SRM, - * so we call down to do our dirty work. Too bad the SRM - * isn't consistent across platforms otherwise we could do - * this always. - */ - -extern void cserve_ena(unsigned long); -extern void cserve_dis(unsigned long); - -static inline void mask_irq(unsigned long irq) +static inline void +update_hw_32(unsigned long irq, unsigned long mask) { - irq_mask |= (1UL << irq); - cserve_dis(irq - 16); + switch (irq) { + case 24 ... 31: + outb(mask >> 24, 0x27); + break; + case 16 ... 23: + outb(mask >> 16, 0x26); + break; + case 8 ... 15: /* ISA PIC2 */ + outb(mask >> 8, 0xA1); + break; + case 0 ... 7: /* ISA PIC1 */ + outb(mask, 0x21); + break; } - -static inline void unmask_irq(unsigned long irq) -{ - irq_mask &= ~(1UL << irq); - cserve_ena(irq - 16); } -/* Since we are calling down to PALcode, no need to diddle IPL. */ -void disable_irq(unsigned int irq_nr) +static inline void +update_hw_16(unsigned long irq, unsigned long mask) { - mask_irq(IRQ_TO_MASK(irq_nr)); + switch (irq) { + case 8 ... 15: /* ISA PIC2 */ + outb(mask >> 8, 0xA1); + break; + case 0 ... 7: /* ISA PIC1 */ + outb(mask, 0x21); + break; } - -void enable_irq(unsigned int irq_nr) -{ - unmask_irq(IRQ_TO_MASK(irq_nr)); } -#else /* * We manipulate the hardware ourselves. */ @@ -369,9 +402,18 @@ sx164_update_hw(irq, mask); #elif defined(CONFIG_ALPHA_RUFFIAN) ruffian_update_hw(irq, mask); -#elif NR_IRQS == 33 - update_hw_33(irq, mask); -#elif NR_IRQS == 32 +#elif defined(CONFIG_ALPHA_DP264) + dp264_update_hw(irq, mask); +#elif defined(CONFIG_ALPHA_RAWHIDE) + rawhide_update_hw(irq, mask); +#elif defined(CONFIG_ALPHA_CABRIOLET) || \ + defined(CONFIG_ALPHA_EB66P) || \ + defined(CONFIG_ALPHA_EB164) || \ + defined(CONFIG_ALPHA_PC164) || \ + defined(CONFIG_ALPHA_LX164) + update_hw_35(irq, mask); +#elif defined(CONFIG_ALPHA_EB66) || \ + defined(CONFIG_ALPHA_EB64P) update_hw_32(irq, mask); #elif NR_IRQS == 16 update_hw_16(irq, mask); @@ -396,8 +438,7 @@ { unsigned long flags; - save_flags(flags); - cli(); + save_and_cli(flags); mask_irq(IRQ_TO_MASK(irq_nr)); restore_flags(flags); } @@ -406,12 +447,10 @@ { unsigned long flags; - save_flags(flags); - cli(); + save_and_cli(flags); unmask_irq(IRQ_TO_MASK(irq_nr)); restore_flags(flags); } -#endif /* (PC164 || LX164) && SRM */ /* * Initial irq handlers. @@ -423,13 +462,14 @@ { int i, len = 0; struct irqaction * action; + int cpu = smp_processor_id(); for (i = 0; i < NR_IRQS; i++) { action = irq_action[i]; if (!action) continue; len += sprintf(buf+len, "%2d: %10u %c %s", - i, kstat.irqs[0][i], + i, kstat.irqs[cpu][i], (action->flags & SA_INTERRUPT) ? '+' : ' ', action->name); for (action=action->next; action; action = action->next) { @@ -463,16 +503,18 @@ #elif defined(CONFIG_ALPHA_RUFFIAN) if (irq < 16) { /* Ack PYXIS ISA interrupt. */ - *(vulp)PYXIS_INT_REQ = 1 << 7; - mb(); + *(vulp)PYXIS_INT_REQ = 1L << 7; mb(); + /* ... and read it back to make sure it got written. */ + *(vulp)PYXIS_INT_REQ; if (irq > 7) { outb(0x20, 0xa0); } outb(0x20, 0x20); } else { - /* Ack PYXIS interrupt. */ + /* Ack PYXIS PCI interrupt. */ *(vulp)PYXIS_INT_REQ = (1UL << (irq - 16)); - mb(); + /* ... and read it back to make sure it got written. */ + *(vulp)PYXIS_INT_REQ; } #else if (irq < 16) { @@ -488,7 +530,7 @@ /* on ALCOR/XLT, need to dismiss interrupt via GRU */ *(vuip)GRU_INT_CLEAR = 0x80000000; mb(); *(vuip)GRU_INT_CLEAR = 0x00000000; mb(); -#endif +#endif /* ALCOR || XLT */ } #endif } @@ -556,8 +598,7 @@ action->next = NULL; action->dev_id = dev_id; - save_flags(flags); - cli(); + save_and_cli(flags); *p = action; if (!shared) @@ -585,8 +626,7 @@ continue; /* Found it - now free it */ - save_flags(flags); - cli(); + save_and_cli(flags); *p = action->next; if (!irq[irq_action]) mask_irq(IRQ_TO_MASK(irq)); @@ -607,7 +647,277 @@ unsigned int local_bh_count[NR_CPUS]; #ifdef __SMP__ -#error "Me no hablo Alpha SMP" +/* Who has global_irq_lock. */ +unsigned char global_irq_holder = NO_PROC_ID; + +/* This protects IRQ's. */ +spinlock_t global_irq_lock = SPIN_LOCK_UNLOCKED; + +/* Global IRQ locking depth. */ +atomic_t global_irq_count = ATOMIC_INIT(0); + +/* This protects BH software state (masks, things like that). */ +atomic_t global_bh_lock = ATOMIC_INIT(0); +atomic_t global_bh_count = ATOMIC_INIT(0); + +static unsigned long previous_irqholder = NO_PROC_ID; + +#undef INIT_STUCK +#define INIT_STUCK 100000000 + +#undef STUCK +#define STUCK \ +if (!--stuck) {printk("wait_on_irq CPU#%d stuck at %08lx, waiting for %08lx (local=%d, global=%d)\n", cpu, where, previous_irqholder, local_count, atomic_read(&global_irq_count)); stuck = INIT_STUCK; } + +static inline void wait_on_irq(int cpu, unsigned long where) +{ + int stuck = INIT_STUCK; + int local_count = local_irq_count[cpu]; + + /* Are we the only one in an interrupt context? */ + while (local_count != atomic_read(&global_irq_count)) { + /* + * No such luck. Now we need to release the lock, + * _and_ release our interrupt context, because + * otherwise we'd have dead-locks and live-locks + * and other fun things. + */ + atomic_sub(local_count, &global_irq_count); + spin_unlock(&global_irq_lock); + + /* + * Wait for everybody else to go away and release + * their things before trying to get the lock again. + */ + for (;;) { + STUCK; + if (atomic_read(&global_irq_count)) + continue; + if (global_irq_lock.lock) + continue; + if (spin_trylock(&global_irq_lock)) + break; + } + atomic_add(local_count, &global_irq_count); + } +} + +#undef INIT_STUCK +#define INIT_STUCK 10000000 + +#undef STUCK +#define STUCK \ +if (!--stuck) {printk("get_irqlock stuck at %08lx, waiting for %08lx\n", where, previous_irqholder); stuck = INIT_STUCK;} + +static inline void get_irqlock(int cpu, unsigned long where) +{ + int stuck = INIT_STUCK; + + if (!spin_trylock(&global_irq_lock)) { + /* do we already hold the lock? */ + if ((unsigned char) cpu == global_irq_holder) { +#if 0 + printk("get_irqlock: already held at %08lx\n", + previous_irqholder); +#endif + return; + } + /* Uhhuh.. Somebody else got it. Wait.. */ + do { + do { + STUCK; + barrier(); + } while (global_irq_lock.lock); + } while (!spin_trylock(&global_irq_lock)); + } + /* + * Ok, we got the lock bit. + * But that's actually just the easy part.. Now + * we need to make sure that nobody else is running + * in an interrupt context. + */ + wait_on_irq(cpu, where); + + /* + * Finally. + */ + global_irq_holder = cpu; + previous_irqholder = where; +} + +void __global_cli(void) +{ + int cpu = smp_processor_id(); + unsigned long where; + + __asm__("mov $26, %0" : "=r" (where)); + __cli(); + + if (!local_irq_count[cpu]) + get_irqlock(smp_processor_id(), where); +} + +void __global_sti(void) +{ + int cpu = smp_processor_id(); + + if (!local_irq_count[cpu]) + release_irqlock(smp_processor_id()); + + __sti(); +} + +#if 0 +unsigned long __global_save_flags(void) +{ + return global_irq_holder == (unsigned char) smp_processor_id(); +} +#endif + +void __global_restore_flags(unsigned long flags) +{ + if (flags & 1) { + __global_cli(); + } else { + /* release_irqlock() */ + if (global_irq_holder == smp_processor_id()) { + global_irq_holder = NO_PROC_ID; + spin_unlock(&global_irq_lock); + } + if (!(flags & 2)) + __sti(); + } +} + +#undef INIT_STUCK +#define INIT_STUCK 200000000 + +#undef STUCK +#define STUCK \ +if (!--stuck) {printk("irq_enter stuck (irq=%d, cpu=%d, global=%d)\n",irq,cpu,global_irq_holder); stuck = INIT_STUCK;} + +#undef VERBOSE_IRQLOCK_DEBUGGING + +void irq_enter(int cpu, int irq) +{ +#ifdef VERBOSE_IRQLOCK_DEBUGGING + extern void smp_show_backtrace_all_cpus(void); +#endif + int stuck = INIT_STUCK; + + hardirq_enter(cpu); + barrier(); + while (global_irq_lock.lock) { + if ((unsigned char) cpu == global_irq_holder) { + int globl_locked = global_irq_lock.lock; + int globl_icount = atomic_read(&global_irq_count); + int local_count = local_irq_count[cpu]; + + /* It is very important that we load the state variables + * before we do the first call to printk() as printk() + * could end up changing them... + */ + +#if 0 + printk("CPU[%d]: BAD! Local IRQ's enabled," + " global disabled interrupt\n", cpu); +#endif + printk("CPU[%d]: where [%08lx] glocked[%d] gicnt[%d]" + " licnt[%d]\n", + cpu, previous_irqholder, globl_locked, + globl_icount, local_count); +#ifdef VERBOSE_IRQLOCK_DEBUGGING + printk("Performing backtrace on all cpus," + " write this down!\n"); + smp_show_backtrace_all_cpus(); +#endif + break; + } + STUCK; + barrier(); + } +} + +void irq_exit(int cpu, int irq) +{ + hardirq_exit(cpu); + release_irqlock(cpu); +} + +static void show(char * str) +{ +#if 0 + int i; + unsigned long *stack; +#endif + int cpu = smp_processor_id(); + + printk("\n%s, CPU %d:\n", str, cpu); + printk("irq: %d [%d %d]\n", + atomic_read(&global_irq_count), local_irq_count[0], + local_irq_count[1]); + printk("bh: %d [%d %d]\n", + atomic_read(&global_bh_count), local_bh_count[0], + local_bh_count[1]); +#if 0 + stack = (unsigned long *) &str; + for (i = 40; i ; i--) { + unsigned long x = *++stack; + if (x > (unsigned long) &init_task_union && + x < (unsigned long) &vsprintf) { + printk("<[%08lx]> ", x); + } + } +#endif +} + +#define MAXCOUNT 100000000 + +static inline void wait_on_bh(void) +{ + int count = MAXCOUNT; + do { + if (!--count) { + show("wait_on_bh"); + count = ~0; + } + /* nothing .