diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-04 07:40:19 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-04 07:40:19 +0000 |
commit | 33263fc5f9ac8e8cb2b22d06af3ce5ac1dd815e4 (patch) | |
tree | 2d1b86a40bef0958a68cf1a2eafbeb0667a70543 /Documentation | |
parent | 216f5f51aa02f8b113aa620ebc14a9631a217a00 (diff) |
Merge with Linux 2.3.32.
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/00-INDEX | 29 | ||||
-rw-r--r-- | Documentation/BUG-HUNTING | 6 | ||||
-rw-r--r-- | Documentation/Changes | 30 | ||||
-rw-r--r-- | Documentation/Configure.help | 521 | ||||
-rw-r--r-- | Documentation/filesystems/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/filesystems/vfs.txt | 57 | ||||
-rw-r--r-- | Documentation/ide.txt | 2 | ||||
-rw-r--r-- | Documentation/ioctl-number.txt | 2 | ||||
-rw-r--r-- | Documentation/joystick-api.txt | 9 | ||||
-rw-r--r-- | Documentation/joystick-parport.txt | 71 | ||||
-rw-r--r-- | Documentation/joystick.txt | 494 | ||||
-rw-r--r-- | Documentation/networking/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/networking/ppp.txt | 51 | ||||
-rw-r--r-- | Documentation/networking/sis900.txt | 460 | ||||
-rw-r--r-- | Documentation/networking/sk98lin.txt | 480 | ||||
-rw-r--r-- | Documentation/networking/tlan.txt | 23 | ||||
-rw-r--r-- | Documentation/pci.txt | 8 | ||||
-rw-r--r-- | Documentation/sound/CMI8338 | 38 | ||||
-rw-r--r-- | Documentation/video4linux/zr36120.txt | 159 | ||||
-rw-r--r-- | Documentation/vm/locking | 53 | ||||
-rw-r--r-- | Documentation/vm/numa | 41 |
21 files changed, 2095 insertions, 443 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index dc29ec22b..20599cac7 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX @@ -7,8 +7,6 @@ keep the descriptions small enough to fit on one line. 00-INDEX - this file. -ARM-README - - information for using Linux on the ARM architecture. BUG-HUNTING - brute force method of doing binary search of patches to find bug. Changes @@ -21,16 +19,22 @@ IO-APIC.txt - info on using the enhanced interrupt hardware on SMP boards. IO-mapping.txt - how to access I/O mapped memory from within device drivers. -SMP.txt - - notes, and "To Fix" list for multi-processor Linux. (see smp.tex) +README.DAC960 + - info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux VGA-softcursor.txt - how to change your VGA cursor from a blinking underscore. +acpi.txt + - info on ACPI Driver Interface arm/ - directory with info about Linux on the ARM architecture. +atm.txt + - info on Linux ATM support binfmt_misc.txt - info on the kernel support for extra binary formats. cdrom/ - directory with information on the CD-ROM drivers that Linux has. +computone.txt + - info on Computone Intelliport II/Plus Multiport Serial Driver cpqarray.txt - info on using Compaq's SMART2 Intelligent Disk Array Controllers. devices.tex @@ -59,16 +63,18 @@ initrd.txt - how to use the RAM disk as an initial/temporary root filesystem. ioctl-number.txt - how to implement and register device/driver ioctl calls. +isapnp.txt + - info on Linux ISA Plug & Play support isdn/ - directory with info on the Linux ISDN support, and supported cards. java.txt - info on the in-kernel binary support for Java(tm) -joystick.txt - - info on using joystick devices (and driver) with Linux. joystick-api.txt - API specification for applications that will be using the joystick. joystick-parport.txt - info on how to hook joysticks/gamepads to the parallel port. +joystick.txt + - info on using joystick devices (and driver) with Linux. kbuild/ - directory with info about the kernel build process kernel-docs.txt @@ -107,6 +113,8 @@ networking/ - directory with info on various aspects of networking with Linux. nfsroot.txt - short guide on setting up a diskless box with NFS root filesystem +nmi_watchdog.txt + - info on NMI watchdog for SMP systems oops-tracing.txt - how to decode those nasty internal kernel error dump messages. paride.txt @@ -119,8 +127,8 @@ 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. -proc.txt - - detailed info on Linux's /proc filesystem. +proc_usb_info.txt + - info on /proc/bus/usb direcory generated for USB devices ramdisk.txt - short guide on how to set up and use the RAM disk. riscom8.txt @@ -157,15 +165,14 @@ 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 - info on the Unicode character/font mapping used in Linux. video4linux/ - directory with info regarding video/TV/radio cards and linux. +vm/ + - directory with info on the Linux vm code. watchdog.txt - how to auto-reboot Linux if it has "fallen and can't get up". ;-) xterm-linux.xpm - XPM image of penguin logo (see logo.txt) sitting on an xterm. - diff --git a/Documentation/BUG-HUNTING b/Documentation/BUG-HUNTING index fc7e0abd6..ca29242db 100644 --- a/Documentation/BUG-HUNTING +++ b/Documentation/BUG-HUNTING @@ -85,8 +85,8 @@ work to narrow it down. If you get it down to a routine, you'll probably get a fix in 24 hours. My apologies to Linus and the other kernel hackers for describing this -brute force approach, it's hardly what a kernel hack would do. However, -it does work and it lets non-hackers help bug fix. And it is cool +brute force approach, it's hardly what a kernel hacker would do. However, +it does work and it lets non-hackers help fix bugs. And it is cool because Linux snapshots will let you do this - something that you can't -do with vender supplied releases. +do with vendor supplied releases. diff --git a/Documentation/Changes b/Documentation/Changes index a883b8d5d..1fff8e7bd 100644 --- a/Documentation/Changes +++ b/Documentation/Changes @@ -43,7 +43,7 @@ Current Minimal Requirements encountered a bug! If you're unsure what version you're currently running, the suggested command should tell you. -- Kernel modutils 2.3.6 ; insmod -V +- Kernel modutils 2.3.7 ; insmod -V - Gnu C 2.7.2.3 ; gcc --version - Binutils 2.9.1.0.7 ; ld -v - Linux libc5 C Library 5.4.46 ; ls -l /lib/libc* @@ -57,7 +57,8 @@ running, the suggested command should tell you. - Loadlin 1.6a - Sh-utils 1.16 ; basename --v - Autofs 3.1.1 ; automount --version -- NFS 2.2beta40 ; showmount --version +- NFS (client) 2.2beta40 ; showmount --version +- nfs-utils (server) 0.1.4 - Bash 1.14.7 ; bash -version - Ncpfs 2.2.0 ; ncpmount -v - Pcmcia-cs 3.1.2 ; cardmgr -V @@ -385,9 +386,21 @@ PPP === Due to changes in the PPP driver and routing code, those of you -using PPP networking will need to upgrade your pppd. +using PPP networking will need to upgrade your pppd to at least +version 2.3.9. See ftp://cs.anu.edu.au/pub/software/ppp/ for newest +versions. -See ftp://cs.anu.edu.au/pub/software/ppp/ for newest versions. + You must make sure that the special device file /dev/ppp exists. +It can be made by executing this command as root: + + mknod /dev/ppp c 108 0 + + If you have built ppp support as modules, you should put the lines +below in your /etc/modules.conf file. I assume you want asynchronous +ppp; replace ppp_async by ppp_synctty if you want synchronous ppp. + + alias char-major-108 ppp_generic + alias tty-ldisc-3 ppp_async iBCS ==== @@ -564,8 +577,8 @@ ftp://metalab.unc.edu/pub/Linux/GCC/ld.so-1.9.9.tar.gz Modules utilities ================= -The 2.3.6 release: -ftp://ftp.ocs.com.au/pub/modutils/v2.3/modutils-2.3.6.tar.gz +The 2.3.7 release: +ftp://ftp.ocs.com.au/pub/modutils/v2.3/modutils-2.3.7.tar.gz Procps utilities ================ @@ -634,9 +647,8 @@ The user-land 2.2beta40 release: ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/dontuse/nfs-server-2.2beta40.tar.gz ftp://linux.nrao.edu/mirrors/fb0429.mathematik.th-darmstadt.de/pub/linux/okir/dontuse/nfs-server-2.2beta40.tar.gz -The kernel-level 12/04/98 release: -ftp://ftp.yggdrasil.com/private/hjl/knfsd-981204.tar.gz -ftp://ftp.kernel.org/pub/linux/devel/gcc/knfsd-981204.tar.gz +The kernel-level nfs-utils-0.1.4 release: +ftp://nfs.sourceforge.net/pub/nfs/nfs-utils-0.1.4.tar.gz Net-tools ========= diff --git a/Documentation/Configure.help b/Documentation/Configure.help index 4de02e1ff..239cd39f9 100644 --- a/Documentation/Configure.help +++ b/Documentation/Configure.help @@ -685,17 +685,8 @@ CONFIG_BLK_DEV_HPT366 Please read the comments at the top of drivers/block/hpt366.c -HPT366 (EXPERIMENTAL) -CONFIG_BLK_DEV_HPT366_SHARED - This requires CONFIG_BLK_DEV_HPT366. - It appears that there are different versions or releases of this hardware - by ABit. Since some cases the second channel of the onboard chipset works - and others fail, it is default disabled. This is required to be set if you - want to attempt the setup of the second channel. - - JUMBO WARNING, do not boot a kernel with this enabled if it is your only - one. You may not be able to get back into your machine without physically - detaching the attached devices. +HPT366 Fast Interrupt support (EXPERIMENTAL) +HPT366_FAST_IRQ_PREDICTION If unsure, say N. @@ -1552,10 +1543,6 @@ CONFIG_NETFILTER Chances are that you should say Y here if you compile a kernel which will run as a router and N for regular hosts. If unsure, say N. -Network packet filtering debugging -CONFIG_NETFILTER_DEBUG - Say Y to make sure packets aren't leaking. - SYN flood protection CONFIG_SYN_COOKIES Normal TCP/IP networking is open to an attack known as "SYN @@ -1571,7 +1558,7 @@ CONFIG_SYN_COOKIES 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 . + ftp://koobera.math.uic.edu/syncookies.html . If you are SYN flooded, the source address reported by the kernel is likely to have been forged by the attacker; it is only reported as @@ -1823,6 +1810,19 @@ CONFIG_PCI_GOBIOS kernel will try the direct access method and falls back to the BIOS if that doesn't work. If unsure, go with the default. +PCI device name database +CONFIG_PCI_NAMES + By default, the kernel contains a database of all known PCI device + names to make the information in /proc/pci, /proc/ioports and similar + files comprehensible to the user. This database increases size of + the kernel image by about 80KB, but it gets freed after the system + boots up, so it doesn't take up kernel memory. Anyway, if you are + building an installation floppy or kernel for an embedded system + where kernel image size really matters, you can disable this feature + and you'll get device ID numbers instead of names. + + When in doubt, say Y. + MCA support CONFIG_MCA MicroChannel Architecture is found in some IBM PS/2 machines and @@ -4175,6 +4175,16 @@ CONFIG_CHR_DEV_SG Documentation/scsi.txt. The module will be called sg.o. If unsure, say N. +Debug new queueing code for SCSI +CONFIG_SCSI_DEBUG_QUEUES + This option turns on a lot of additional consistency checking for the new + queueing code. This will adversely affect performance, but it is likely + that bugs will be caught sooner if this is turned on. This will typically + cause the kernel to panic if an error is detected, but it would have probably + crashed if the panic weren't there. Comments/questions/problems to + linux-scsi mailing list please. See http://www.andante.org/scsi_queue.html + for more uptodate information. + Probe all LUNs on each SCSI device CONFIG_SCSI_MULTI_LUN If you have a SCSI device that supports more than one LUN (Logical @@ -5616,6 +5626,83 @@ CONFIG_ARLAN On some computers the card ends up in non-valid state after some time. Use a ping-reset script to clear it. +Aironet 4500/4800 series adapters +CONFIG_AIRONET4500 + www.aironet.com (recently bought by Cisco) makes these 802.11 DS + adapters. Driver by Elmer Joandi (elmer@ylenurme.ee). + Work sponsored by www.spectrumwireless.net and www.vendomar.ee + This configuration option enables common code for all devices (PCI, ISA, + PCMCIA) + module is aironet4500_core + quickconfig parameters: + SSID=tsunami - "The Password" + adhoc=1 there are no Access Points around + master=1 Adhoc master (the one who creates network sync) + slave=1 Adhoc slave(btw, it is still forming own net + sometimes) + channel=1..? meaningful in adhoc mode + all other parameters can be set via proc interface + These parameters belong to .._card module, but alas, they are here + +Aironet 4500/4800 ISA/PCI/PNP/365 support +CONFIG_AIRONET4500_NONCS + This is module aironet4500_card, which includes _possibility_ to + support for following + PCI device + ISA device in ISA mode(does not work currently) + ISA device in PNP mode + PCMCIA device _without_ cardservices, direct 365 chip INIT, + does not work currently + PCMCIA _with_ CardServices(normal way) is at another module + radio parameters are currently configurable at ..._core module + +Aironet 4500/4800 PNP support +CONFIG_AIRONET4500_PNP + This option should be enabled for ISA cards, remember to enable + PNP jumper on board. + module aironet4500_card + +Aironet 4500/4800 PCI support +CONFIG_AIRONET4500_PCI + This option should be enabled for PCI cards + module aironet4500_card + +Aironet 4500/4800 ISA broken support (EXPERIMENTAL) +CONFIG_AIRONET4500_ISA + This option enables support for ISA cards in non-PNP mode. + Does not operate correctly by now. + module aironet4500_card + +Aironet 4500/4800 I365 broken support (EXPERIMENTAL) +CONFIG_AIRONET4500_I365 + This option enables support for PCMCIA cards on i365 controller + _without_ cardservices. Doesnt have much sense and is not working + properly. Comes from times where there was no PCMCIA support in + kernel main source tree + +Aironet 4500/4800 PCMCIA support +CONFIG_AIRONET4500_CS + This option enables support for PCMCIA cards to be used with + CardServices. + This is not for ISA and PCI adapters. + module aironet4500_cs.o + The same option is both on: + 1. PCMCIA netdevices configuring panel + 2. Wireless netdevices configuring panel + Possibility to change this option depeds on options set in 2. + +Aironet 4500/4800 PROC interface +CONFIG_AIRONET4500_PROC + This option enables /proc/sys/aironet4500 interface for + configuring the device. + NOTE: it takes lot of memory. Compile it as module and remove + after configuration + module: aironet4500_proc + + + + + LAPB over Ethernet driver CONFIG_LAPBETHER This is a driver for a pseudo device (typically called /dev/lapb0) @@ -6602,10 +6689,16 @@ CONFIG_RTL8139 SiS 900 PCI Fast Ethernet Adapter support CONFIG_SIS900 - This is a driver for the Silicon Integrated System Corporation 900 - Fast Ethernet PCI network card. If you have one of those, say Y and - read the Ethernet-HOWTO, available from - http://metalab.unc.edu/mdw/linux.html#howto . + This is a driver for the Fast Ethernet PCI network cards based on + the SiS 900 and SiS 7016 chips. The SiS 900 core is also embedded in + SiS 630 and SiS 540 chipsets. If you have one of those, say Y and + read the Ethernet-HOWTO, available via FTP (user: anonymous) in + ftp://metalab.unc.edu/pub/Linux/docs/HOWTO. Please read + Documentation/networking/sis900.txt and comments at the beginning + of drivers/net/sis900.c for more information. + + This driver also supports AMD 79C901 HomePNA such that you can use + your phone line as network cable. 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), @@ -6672,6 +6765,27 @@ CONFIG_ACENIC_OMIT_TIGON_I The safe and default value for this is N. +SysKonnect SK-98xx support +CONFIG_SK98LIN + Say Y here if you have a SysKonnect SK-98xx Gigabit Ethernet Server + Adapter. The following adapters are supported by this driver: + - SK-9841 (single link 1000Base-LX) + - SK-9842 (dual link 1000Base-LX) + - SK-9843 (single link 1000Base-SX) + - SK-9844 (dual link 1000Base-SX) + - SK-9821 (single link 1000Base-T) + - SK-9822 (dual link 1000Base-T) + The dual link adapters support a link-failover feature. + Read Documentation/networking/sk98lin.txt for information about + optional driver parameters. + Questions concerning this driver may be addresse to: + linux@syskonnect.de + + 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 sk98lin.o. + AMD LANCE and PCnet (AT1500 and NE2100) support CONFIG_LANCE If you have a network (Ethernet) card of this type, say Y and read @@ -8297,6 +8411,10 @@ CONFIG_UMSDOS_FS MSDOS floppies. You will need a program called umssync in order to make use of umsdos; read Documentation/filesystems/umsdos.txt. + To get utilities for initializing/checking UMSDOS filesystem, or + latest patches and/or information, visit UMSDOS homepage at + http://www.voyager.hr/~mnalis/umsdos/ . + This option enlarges your kernel by about 28 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 @@ -8375,33 +8493,34 @@ CONFIG_ROOT_NFS Most people say N here. -NFS server support (EXPERIMENTAL) +NFS server support CONFIG_NFSD - If you want your Linux box to act as a NFS *server*, so that other + If you want your Linux box to act as an NFS *server*, so that other 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. + should say N here, or you can say Y and use the kernel based NFS + server. The advantage of the kernel based solution is that it is + faster. In either case, you will need support software; the respective locations are given in the file Documentation/Changes in the NFS section. Please read the NFS-HOWTO, available from - http://metalab.unc.edu/mdw/linux.html#howto . + http://www.linuxdoc.org/HOWTO/NFS-HOWTO.html . + 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. -Emulate SUN NFS server -CONFIG_NFSD_SUN - If you would like for the server to allow clients to access - directories that are mount points on the local filesystem (this is - how nfsd behaves on Sun systems), say Y here. If unsure, say N. +Provide NFSv3 server support (EXPERIMENTAL) +CONFIG_NFSD_V3 + If you would like to include the NFSv3 server was well as the NFSv2 + server, say Y here. File locking, via the NLMv4 protocol, is not + supported yet. If unsure, say N. OS/2 HPFS filesystem support CONFIG_HPFS_FS @@ -10036,6 +10155,10 @@ CONFIG_DRM synchronization, security, and DMA transfers. Select the module that provides support for your graphics card. +tdfx Direct Rendering Manager (XFree86 DRI support) +CONFIG_DRM_TDFX + Choose M here if you have a 3dfx Banshee/Voodoo3 graphics card. + 3dlabs GMX 2000 Direct Rendering Driver (XFree86 DRI support) CONFIG_DRM_GAMMA Choose M here if you have a 3dlabs GMX 2000 graphics card. @@ -10428,83 +10551,117 @@ CONFIG_NVRAM Joystick support CONFIG_JOYSTICK - If you have a joystick, you can say Y here to enable generic - joystick support. You will also need to say Y or M to at least one - of the hardware specific joystick drivers. This will make the - joysticks available as /dev/jsX devices. 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. - -Classic PC analog joysticks and gamepads + If you have a joystick, 6dof controller, gamepad, steering wheel, + weapon control system or something like that you can say Y here to + enable generic support for these controllers. You will also need to + say Y or M to at least one of the hardware specific drivers. This + will make the controllers available as /dev/jsX devices. Please read + the file Documentation/joystick.txt which contains more information + and the location of the joystick package that you'll need. + +Classic PC analog CONFIG_JOY_ANALOG - Say Y here if you have an analog joystick or gamepad that connects - to the PC gameport. This supports many different types, including - joysticks with throttle control, with rudders, or with extensions - like additional hats and buttons compatible with CH Flightstick Pro, + Say Y here if you have a controller that connects to the PC + gameport. This supports many different types, including joysticks + with throttle control, with rudders, or with extensions like + additional hats and buttons compatible with CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button gamepads. For more information on how to use the driver please read Documentation/joystick.txt -FPGaming and MadCatz A3D controllers -CONFIG_JOY_ASSASIN - Say Y here if you have an FPGaming Assasin 3D, MadCatz Panther or - MadCatz Panther XL. For more information on how to use the driver - please read Documentation/joystick.txt +FPGaming and MadCatz A3D +CONFIG_JOY_ASSASSIN + Say Y here if you have an FPGaming or MadCatz controller using the + A3D protocol over the PC gameport. For more information on how to + use the driver please read Documentation/joystick.txt -Gravis GrIP joysticks and gamepads +Gravis GrIP CONFIG_JOY_GRAVIS - Say Y here if you have a Gravis GamePad Pro, Gravis Xterminator or - Gravis Blackhawk Digital. For more information on how to use the - driver please read Documentation/joystick.txt + Say Y here if you have a Gravis controller using the GrIP protocol + over the PC gameport. For more information on how to use the driver + please read Documentation/joystick.txt -PDPI Lightning 4 gamecards +Logitech ADI +CONFIG_JOY_LOGITECH + Say Y here if you have a Logitech controller using the ADI + protocol over the PC gameport. For more information on how to use + the driver please read Documentation/joystick.txt + +Microsoft SideWinder +CONFIG_JOY_SIDEWINDER + Say Y here if you have a Microsoft controller using the Digital + Overdrive protocol over PC gameport. For more information on how to + use the driver please read Documentation/joystick.txt + +ThrustMaster DirectConnect +CONFIG_JOY_THRUSTMASTER + Say Y here if you have a ThrustMaster controller using the + DirectConnect (BSP) protocol over the PC gameport. For more + information on how to use the driver please read + Documentation/joystick.txt + +Creative Labs Blaster +CONFIG_JOY_CREATIVE + Say Y here if you have a Creative Labs controller using the + Blaster protocol over the PC gameport. For more information on how + to use the driver please read Documentation/joystick.txt + +PDPI Lightning 4 card CONFIG_JOY_LIGHTNING Say Y here if you have a PDPI Lightning 4 gamecard and an analog joystick or gamepad connected to it. For more information on how to use the driver please read Documentation/joystick.txt -Logitech Digital joysticks and gamepads -CONFIG_JOY_LOGITECH - Say Y here if you have a Logitech WingMan Extreme Digital, - Logitech ThunderPad Digital or Logitech CyberMan 2. For more +Trident 4DWave and Aureal Vortex gameport +CONFIG_JOY_PCI + Say Y here if you have a Trident 4DWave DX/NX or Aureal Vortex 1/2 + card and want to use its gameport in its enhanced digital mode + with and ordinary analog joystick. For more information on how to + use the driver please read Documentation/joystick.txt + +Magellan and Space Mouse +CONFIG_JOY_MAGELLAN + Say Y here if you have a Magellan or Space Mouse 6DOF controller + connected to your computer's serial port. For more information on + how to use the driver please read Documentation/joystick.txt + +SpaceTec SpaceOrb 360 and SpaceBall Avenger +CONFIG_JOY_SPACEORB + Say Y here if you have a SpaceOrb 360 or SpaceBall Avenger 6DOF + controller connected to your computer's serial port. For more information on how to use the driver please read Documentation/joystick.txt -Microsoft SideWinder, Genius Digital joysticks and gamepads -CONFIG_JOY_SIDEWINDER - Say Y here if you have a Microsoft SideWinder 3d Pro, Microsoft - SideWinder Precision Pro, Microsoft SideWinder Force Feedback Pro, - Microsoft Sidewinder GamePad or Genius Flight2000 F-23 Digital. For - more information on how to use the driver please read +SpaceTec SpaceBall 4000 FLX +CONFIG_JOY_SPACEBALL + Say Y here if you have a SpaceTec SpaceBall 4000 FLX + controller connected to your computer's serial port. For more + information on how to use the driver please read Documentation/joystick.txt -ThrustMaster DirectConnect joysticks and gamepads -CONFIG_JOY_THRUSTMASTER - Say Y here if you have a ThrustMaster Millenium 3D Inceptor or a - ThrustMaster 3D Rage Pad. For more information on how to use the - driver please read Documentation/joystick.txt +Logitech WingMan Warrior +CONFIG_JOY_WARRIOR + Say Y here if you have a Logitech WingMan Warrior controller + connected to your computer's serial port. For more information on + how to use the driver please read Documentation/joystick.txt -NES, SNES, PSX, Multisystem joysticks and gamepads +NES, SNES, N64, PSX, Multi CONFIG_JOY_CONSOLE Say Y here if you have a Nintendo Entertainment System gamepad, - Super Nintendo Entertainment System gamepad, Sony PlayStation - gamepad or a Multisystem -- Atari, Amiga, Commodore, Amstrad CPC - joystick. For more information on how to use the driver please read + Super Nintendo Entertainment System gamepad, Nintendo 64 gamepad, + Sony PlayStation gamepad or a Multisystem -- Atari, Amiga, + Commodore, Amstrad CPC joystick connected to your parallel port. + For more information on how to use the driver please read Documentation/joystick.txt and Documentation/joystick-parport.txt -Sega, Multisystem joysticks and gamepads +Sega, Multi CONFIG_JOY_DB9 Say Y here if you have a Sega Master System gamepad, Sega Genesis gamepad, Sega Saturn gamepad, or a Multisystem -- Atari, Amiga, - Commodore, Amstrad CPC joystick. For more information on how to use - the driver please read Documentation/joystick.txt and - Documentation/joystick-parport.txt + Commodore, Amstrad CPC joystick connected to your parallel port. For + more information on how to use the driver please read + Documentation/joystick.txt and Documentation/joystick-parport.txt -TurboGraFX Multisystem joystick interface +TurboGraFX interface CONFIG_JOY_TURBOGRAFX Say Y here if you have the TurboGraFX interface by Steffen Schwenke, and want to use it with Multiststem -- Atari, Amiga, Commodore, @@ -11237,10 +11394,10 @@ CONFIG_ISDN_AUDIO is the only voice-supporting driver. See Documentation/isdn/README.audio for more information. -X.25 PLP on top of ISDN (EXPERIMENTAL) +X.25 PLP on top of ISDN CONFIG_ISDN_X25 - This experimental feature provides the X.25 protocol over ISDN - connections. See Documentation/isdn/README.x25 for more information + This feature provides the X.25 protocol over ISDN connections. + See Documentation/isdn/README.x25 for more information if you are thinking about using this. ISDN diversion services support @@ -11302,6 +11459,28 @@ CONFIG_ISDN_DRV_HISAX called hisax.o. See Documentation/isdn/README.HiSax for more information on using this driver. +HiSax Support for EURO/DSS1 +CONFIG_HISAX_EURO + Enable this if you have a EURO ISDN line. + +Support for german chargeinfo +CONFIG_DE_AOC + If you have german AOC, you can enable this to get the charginfo. + +Disable sending complete +CONFIG_HISAX_NO_SENDCOMPLETE + If you have trouble with some ugly exchanges or you live in + Australia select this option. + +Disable sending low layer compatibility +CONFIG_HISAX_NO_LLC + If you have trouble with some ugly exchanges try to select this + option. + +HiSax Support for german 1TR6 +CONFIG_HISAX_1TR6 + Enable this if you have a old german 1TR6 line. + HiSax Support for Teles 16.0/8.0 CONFIG_HISAX_16_0 This enables HiSax support for the Teles ISDN-cards S0-16.0, S0-8 @@ -11320,13 +11499,15 @@ CONFIG_HISAX_16_3 different cards, a different D-channel protocol, or 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 Teles PCI +CONFIG_HISAX_TELESPCI + This enables HiSax support for the Teles PCI. + See Documentation/isdn/README.HiSax on how to configure it. + +HiSax Support for Teles S0Box +CONFIG_HISAX_S0BOX + This enables HiSax support for the Teles/Creatix parallel port + S0BOX. See Documentation/isdn/README.HiSax on how to configure it. HiSax Support for AVM A1 (Fritz) CONFIG_HISAX_AVM_A1 @@ -11336,7 +11517,17 @@ CONFIG_HISAX_AVM_A1 different cards, a different D-channel protocol, or non-standard IRQ/port settings. -HiSax Support for Elsa ISA cards +HiSax Support for AVM PnP/PCI (Fritz!PNP/PCI) +CONFIG_HISAX_FRITZPCI + This enables HiSax support for the AVM "Fritz!PnP" and "Fritz!PCI". + See Documentation/isdn/README.HiSax on how to configure it. + +HiSax Support for AVM A1 PCMCIA (Fritz) +CONFIG_HISAX_AVM_A1_PCMCIA + This enables HiSax support for the AVM A1 "Fritz!PCMCIA"). + See Documentation/isdn/README.HiSax on how to configure it. + +HiSax Support for Elsa cards CONFIG_HISAX_ELSA This enables HiSax support for the Elsa Mircolink ISA cards, for the Elsa Quickstep series cards and Elsa PCMCIA. @@ -11379,7 +11570,16 @@ CONFIG_HISAX_TELEINT different cards, a different D-channel protocol, or non-standard IRQ/port settings. -HiSax Support for Sedlbauer speed card/win-star +HiSax Support for HFC-S based cards +CONFIG_HISAX_HFCS + This enables HiSax support for the HFC-S 2BDS0 based cards, like + teles 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 Sedlbauer cards CONFIG_HISAX_SEDLBAUER This enables HiSax support for the Sedlbauer passive ISDN cards. @@ -11416,50 +11616,58 @@ CONFIG_HISAX_NICCY 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 Siemens I-Surf card +CONFIG_HISAX_ISURF + This enables HiSax support for the Siemens I-Talk/I-Surf card with + ISAR chip. + 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 EURO/DSS1 -CONFIG_HISAX_EURO - Say Y or N according to the D-channel protocol which your local - telephone service company provides. +HiSax Support for HST Saphir card +CONFIG_HISAX_HSTSAPHIR + This enables HiSax support for the HST Saphir card. + + See Documentation/isdn/README.HiSax on how to configure it using a + different D-channel protocol, or non-standard IRQ/port settings. - 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. +HiSax Support for Telekom A4T card +CONFIG_HISAX_BKM_A4T + This enables HiSax support for the Telekom A4T card. + + See Documentation/isdn/README.HiSax on how to configure it using a + different D-channel protocol, or non-standard IRQ/port settings. -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. +HiSax Support for Scitel Quadro card +CONFIG_HISAX_SCT_QUADRO + This enables HiSax support for the Scitel Quadro card. - Please don't enable this in other countries. + 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 US/NI-1 (not released yet) -CONFIG_HISAX_NI1 - Say Y or N according to the D-channel protocol which your local - telephone service company provides. +HiSax Support for Gazel cards +CONFIG_HISAX_GAZEL + This enables HiSax support for the Gazel cards. -HiSax Support for German 1TR6 -CONFIG_HISAX_1TR6 - Say Y or N according to the D-channel protocol which your local - telephone service company provides. + See Documentation/isdn/README.HiSax on how to configure it using a + different D-channel protocol, or non-standard IRQ/port settings. - 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. +HiSax Support for HFC PCI-Bus cards +CONFIG_HISAX_HFC_PCI + This enables HiSax support for the HFC-S PCI 2BDS0 based cards. + + For more informations see under Documentation/isdn/README.hfc-pci. + +HiSax Support for Winbond W6692 based cards +CONFIG_HISAX_W6692 + This enables HiSax support for Winbond W6692 based PCI ISDN cards. + + 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. PCBIT-D support CONFIG_ISDN_DRV_PCBIT @@ -11508,27 +11716,52 @@ CONFIG_ISDN_TTY_FAX an ISDN-fax-machine. This must be supported by the lowlevel driver also. See Documentation/isdn/README.fax for more information. -AVM-B1 with CAPI2.0 support +AVM CAPI2.0 support CONFIG_ISDN_DRV_AVMB1 - This enables support for the AVM B1 ISDN networking cards. In + This enables support for the AVM B1/T1 ISDN networking cards.In addition, a CAPI (Common ISDN Application Programming Interface, a standard making it easy for programs to access ISDN hardware, see - http://www.capi.org/ ) 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. - + http://www.capi.org/; to browse the WWW, you need to have access to + a machine on the Internet that has a program like lynx or netscape) + 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. +AVM B1 ISA support +CONFIG_ISDN_DRV_AVMB1_B1ISA + Enable support for the ISA version of the AVM B1 card. + +AVM B1 PCI support +CONFIG_ISDN_DRV_AVMB1_B1PCI + Enable support for the PCI version of the AVM B1 card. + +AVM T1/T1-B ISA support +CONFIG_ISDN_DRV_AVMB1_T1ISA + Enable support for the AVM T1 T1B card. + Note: This is a PRI card and handle 30 B-channels. + +AVM B1/M1/M2 PCMCIA support +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA + Enable support for the PCMCIA version of the AVM B1 card. + +AVM T1/T1-B PCI support +CONFIG_ISDN_DRV_AVMB1_T1PCI + Enable support for the AVM T1 T1B card. + Note: This is a PRI card and handle 30 B-channels. + Verbose reason code reporting (kernel size +=7K) CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON If you say Y here, the AVM B1 driver will give verbose reasons for disconnecting. This will increase the size of the kernel by 7 KB. 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 @@ -12457,6 +12690,18 @@ CONFIG_VIDEO_BT848 whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. +ZR36120/36125 Video for Linux +CONFIG_VIDEO_ZR36120 + Support for ZR36120/ZR36125 based frame grabber/overlay boards. + This includes the Victor II, WaveWatcher, Video Wonder, Maxi-TV, + and Buster boards. Please read the material in + Documentation/video4linux/zr36120.txt for more information. + + This driver is also available as a module called zr36120.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 diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX index b4ffac022..a5312faaf 100644 --- a/Documentation/filesystems/00-INDEX +++ b/Documentation/filesystems/00-INDEX @@ -18,6 +18,8 @@ ncpfs.txt - info on Novell Netware(tm) filesystem using NCP protocol. ntfs.txt - info and mount options for the NTFS filesystem (Windows NT). +proc.txt + - info on Linux's /proc filesystem. romfs.txt - Description of the ROMFS filesystem. smbfs.txt diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index b558535aa..7256f5aaf 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt @@ -4,7 +4,7 @@ Richard Gooch <rgooch@atnf.csiro.au> - 23-APR-1999 + 5-JUL-1999 Conventions used in this document <section> @@ -41,10 +41,11 @@ mounted. Opening a File <subsection> -------------- -The VFS implements the open(2) system call. The pathname argument is -used by the VFS to search through the directory entry cache (dentry -cache or "dcache"). This provides a very fast lookup mechanism to -translate a pathname (filename) into a specific dentry. +The VFS implements the open(2), stat(2), chmod(2) and similar system +calls. The pathname argument is used by the VFS to search through the +directory entry cache (dentry cache or "dcache"). This provides a very +fast lookup mechanism to translate a pathname (filename) into a +specific dentry. An individual dentry usually has a pointer to an inode. Inodes are the things that live on disc drives, and can be regular files (you know: @@ -53,7 +54,8 @@ beasts. Dentries live in RAM and are never saved to disc: they exist only for performance. Inodes live on disc and are copied into memory when required. Later any changes are written back to disc. The inode that lives in RAM is a VFS inode, and it is this which the dentry -points to. +points to. A single inode can be pointed to by multiple dentries +(think about hardlinks). The dcache is meant to be a view into your entire filespace. Unlike Linus, most of us losers can't fit enough dentries into RAM to cover @@ -76,10 +78,10 @@ back to userspace. Opening a file requires another operation: allocation of a file structure (this is the kernel-side implementation of file descriptors). The freshly allocated file structure is initialised with -a pointer to the dentry and a set of file operation member -functions. These are taken from the inode data. The open() file method -is then called so the specific filesystem implementation can do it's -work. You can see that this is another switch performed by the VFS. +a pointer to the dentry and a set of file operation member functions. +These are taken from the inode data. The open() file method is then +called so the specific filesystem implementation can do it's work. You +can see that this is another switch performed by the VFS. The file structure is placed into the file descriptor table for the process. @@ -92,6 +94,14 @@ function to do whatever is required. For as long as the file is open, it keeps the dentry "open" (in use), which in turn means that the VFS inode is still in use. +All VFS system calls (i.e. open(2), stat(2), read(2), write(2), +chmod(2) and so on) are called from a process context. You should +assume that these calls are made without any kernel locks being +held. This means that the processes may be executing the same piece of +filesystem or driver code at the same time, on different +processors. You should ensure that access to shared resources is +protected by appropriate locks. + Registering and Mounting a Filesystem <subsection> ------------------------------------- @@ -249,8 +259,11 @@ struct inode_operations { int (*revalidate) (struct dentry *); }; +Again, all methods are called without any locks being held, unless +otherwise noted. + default_file_ops: this is a pointer to a "struct file_operations" - which describes how to manipulate open files + which describes how to open and then manipulate open files create: called by the open(2) and creat(2) system calls. Only required if you want to support regular files. The dentry you @@ -270,7 +283,7 @@ struct inode_operations { If you wish to overload the dentry methods then you should initialise the "d_dop" field in the dentry; this is a pointer to a struct "dentry_operations". - This method is called with the directory semaphore held + This method is called with the directory inode semaphore held link: called by the link(2) system call. Only required if you want to support hard links. You will probably need to call @@ -327,17 +340,20 @@ struct file_operations { int (*lock) (struct file *, int, struct file_lock *); }; +Again, all methods are called without any locks being held, unless +otherwise noted. + llseek: called when the VFS needs to move the file position index - read: called by the read(2) system call + read: called by read(2) and related system calls - write: called by the write(2) system call + write: called by write(2) and related system calls readdir: called when the VFS needs to read the directory contents poll: called by the VFS when a process wants to check if there is activity on this file and (optionally) go to sleep until there - is activity + is activity. Called by the select(2) and poll(2) system calls ioctl: called by the ioctl(2) system call @@ -380,7 +396,9 @@ struct dentry_operations <section> This describes how a filesystem can overload the standard dentry operations. Dentries and the dcache are the domain of the VFS and the individual filesystem implementations. Device drivers have no business -here. As of kernel 2.1.99, the following members are defined: +here. These methods may be set to NULL, as they are either optional or +the VFS uses a default. As of kernel 2.1.99, the following members are +defined: struct dentry_operations { int (*d_revalidate)(struct dentry *); @@ -391,7 +409,10 @@ struct dentry_operations { void (*d_iput)(struct dentry *, struct inode *); }; - d_revalidate: called when the VFS needs to revalidate a dentry + d_revalidate: called when the VFS needs to revalidate a dentry. This + is called whenever a name lookup finds a dentry in the + dcache. Most filesystems leave this as NULL, because all their + dentries in the dcache are valid d_hash: called when the VFS adds a dentry to the hash table @@ -401,7 +422,7 @@ struct dentry_operations { deleted. This means no-one is using the dentry, however it is still valid and in the dcache - d_release: called when a dentry is deallocated + d_release: called when a dentry is really deallocated d_iput: called when a dentry looses its inode (just prior to its being deallocated). The default when this is NULL is that the diff --git a/Documentation/ide.txt b/Documentation/ide.txt index df417541d..4f10e114e 100644 --- a/Documentation/ide.txt +++ b/Documentation/ide.txt @@ -276,6 +276,8 @@ Summary of ide driver parameters for kernel "command line": port. Should be used only as a last resort. "hdx=swapdata" : when the drive is a disk, byte swap all data + "hdxlun=xx" : set the drive last logical unit + "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz, where "xx" is between 20 and 66 inclusive, used when tuning chipset PIO modes. diff --git a/Documentation/ioctl-number.txt b/Documentation/ioctl-number.txt index 311f713dd..c2a1b0025 100644 --- a/Documentation/ioctl-number.txt +++ b/Documentation/ioctl-number.txt @@ -122,6 +122,8 @@ Code Seq# Include File Comments asm-sparc64/kbio.h 'l' 00-3F linux/tcfs_fs.h transparent cryptographic file system <http://mikonos.dia.unisa.it/tcfs> +'l' 40-7F linux/udf_fs_i.h in development: + <http://www.trylinux.com/projects/udf/> 'm' all linux/mtio.h conflict! 'm' all linux/soundcard.h conflict! 'm' all linux/synclink.h conflict! diff --git a/Documentation/joystick-api.txt b/Documentation/joystick-api.txt index fe3b6842c..622c67d17 100644 --- a/Documentation/joystick-api.txt +++ b/Documentation/joystick-api.txt @@ -74,10 +74,9 @@ is, you have both an axis 0 and a button 0). Generally, 2nd Axis Y 3 ...and so on -Hats vary from one joystick type to another. Some can be moved in 8 -directions, some only in 4. The driver, however, always reports a hat -as two independent axis, even if the hardware doesn't allow independent -movement. +Hats vary from one joystick type to another. Some can be moved in 8 +directions, some only in 4, The driver, however, always reports a hat as two +independent axis, even if the hardware doesn't allow independent movement. 2.3 js_event.value @@ -300,7 +299,7 @@ fixed range for reporting the values, 1 being the minimum, 128 the center, and 255 maximum value. The v0.8.0.2 driver also had an interface for 'digital joysticks', (now -called Multisystem joystick in this driver), under /dev/djsX. This driver +called Multisystem joysticks in this driver), under /dev/djsX. This driver doesn't try to be compatible with that interface. diff --git a/Documentation/joystick-parport.txt b/Documentation/joystick-parport.txt index 880150b9e..2217a0489 100644 --- a/Documentation/joystick-parport.txt +++ b/Documentation/joystick-parport.txt @@ -1,6 +1,7 @@ Linux Joystick parport drivers v1.2 BETA - (c) 1998 Vojtech Pavlik <vojtech@suse.cz> + (c) 1998-1999 Vojtech Pavlik <vojtech@suse.cz> (c) 1998 Andree Borrmann <a.borrmann@tu-bs.de> + Sponsored by SuSE ---------------------------------------------------------------------------- 0. Disclaimer @@ -44,7 +45,8 @@ you'll use for NES and SNES gamepads. The main problem with PC parallel ports is that they don't have +5V power source on any of their pins. So, if you want a reliable source of power for your pads, use either keyboard or joystick port, and make a pass-through -cable. +cable. You can also pull the power directly from the power supply (the red +wire is +5V). If you want to use the parallel port only, you can take the power is from some data pin. For most gamepad and parport implementations only one pin is @@ -298,27 +300,29 @@ work for most people. If you like adventure, you can try yourself. The PSX controller is supported by the joy-console.c. -Pinout of the PSX controller: +Pinout of the PSX controller (compatible with DirectPadPro): +---------+---------+---------+ 9 | o o o | o o o | o o o | 1 parallel \________|_________|________/ port pins | | | | | | - | | | | | +--------> Clock --- (1) - | | | | +------------> Select --- (17) - | | | +---------------> Power --- (16) + | | | | | +--------> Clock --- (4) + | | | | +------------> Select --- (3) + | | | +---------------> Power --- (5-9) | | +------------------> Ground --- (18-25) - | +-------------------------> Command --- (14) + | +-------------------------> Command --- (2) +----------------------------> Data --- (10,11,12,13,15) one only... You may have to add pull up/down resistors. Maybe your pad also won't like the 5V (PSX uses 3.7V). - Currently the driver supports only ONE psx pad and only one type of -controller: The normal PSX controller. NEGCON support is planned for the -next release. ANALOG controller may be too (I do not recommend to connect -the "force feedback"/"rumble pack" version... it (may) use too much -power...) + Currently the driver supports only one psx pad per parallel port, and these +controllers: + + * Standard PSX Pad + * NegCon PSX Pad + * Analog PSX Pad (red mode) + * Analog PSX Pad (green mode) 2.4 Sega ~~~~~~~~ @@ -437,13 +441,15 @@ Linux kernels, the number of the parport interface (eg. 0 for parport0). 4 | Multisystem 1-button joystick 5 | Multisystem 2-button joystick 6 | Sony PSX controller + 7 | N64 pad + 8 | N64 pad with direction pad as buttons (DirectPadPro style) The exact type of the PSX controller type is autoprobed, so you must have your controller plugged in before initializing. Should you want to use more than one of parallel ports at once, you can -use js_console_2 and js_db9_3 as additional command line parameters for two -more parallel ports. +use js_console_2 and js_console_3 as additional command line parameters for +two more parallel ports. Changes: v0.1 : First version (SNES only) @@ -463,6 +469,9 @@ more parallel ports. v0.10 : Fixed PSX buttons 8 and 9 v0.11V: Switched to EXCL mode Removed wakeup + v0.12V: Added N64 support + v0.13V: Updated N64 support + v0.14V: Fixed N64 axis/button counts 3.2 joy-db9.c ~~~~~~~~~~~~~ @@ -475,6 +484,10 @@ joy-db9.c driver. It uses the following kernel/module command line: is connected to (eg. 0x378), or, if you are using the parport driver of 2.1+ Linux kernels, the number of the parport interface (eg. 0 for parport0). + Caveat here: This driver only works on bidirectional parallel ports. If +your parallel port is recent enough, you should have no trouble with this. +Old parallel ports may not have this feature. + 'Type' is the type of joystick or pad attached: Type | Joystick/Pad @@ -484,9 +497,10 @@ Linux kernels, the number of the parport interface (eg. 0 for parport0). 2 | Multisystem 2-button joystick 3 | Genesis pad (3+1 buttons) 5 | Genesis pad (5+1 buttons) - 6 | Genesis pad (6+1 buttons) - 7 | Saturn pad + 6 | Genesis pad (6+2 buttons) + 7 | Saturn pad (8 buttons) 8 | Multisystem 1-button joystick (v0.8.0.2 pin-out) + 9 | Two Multiststem 1-button joysticks (v0.8.0.2 pin-out) Should you want to use more than one of these joysticks/pads at once, you can use js_db9_2 and js_db9_3 as additional command line parameters for two @@ -501,6 +515,8 @@ more joysticks/pads. v0.4V: Switched to EXCL mode Removed wakeup v0.5V: Added 0.8.0.2 HW compatibility for Multi sticks + v0.6V: Better timing for Genesis 6 + v0.7V: Added 0.8.0.2 second joystick support 3.3 joy-turbografx.c ~~~~~~~~~~~~~~~~~~~~ @@ -519,6 +535,27 @@ interface ports 1-7 have. For a standard multisystem joystick, this is 1. use js_tg_2 and js_tg_3 as additional command line parameters for two more interfaces. -3.4 End +3.4 PC parallel port pinout +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .----------------------------------------. + At the PC: \ 13 12 11 10 9 8 7 6 5 4 3 2 1 / + \ 25 24 23 22 21 20 19 18 17 16 15 14 / + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Pin | Name | Description + ~~~~~~|~~~~~~~~~|~~~~~~~~~~ + 1 | /STROBE | Strobe + 2-9 | D0-D7 | Data Bit 0-7 + 10 | /ACK | Acknowledge + 11 | BUSY | Busy + 12 | PE | Paper End + 13 | SELIN | Select In + 14 | /AUTOFD | Autofeed + 15 | /ERROR | Error + 16 | /INIT | Initialize + 17 | /SEL | Select + 18-25 | GND | Signal Ground + +3.5 End ~~~~~~~ That's all, folks! Have fun! diff --git a/Documentation/joystick.txt b/Documentation/joystick.txt index ab8a454a2..163fece8c 100644 --- a/Documentation/joystick.txt +++ b/Documentation/joystick.txt @@ -1,5 +1,6 @@ - Linux Joystick driver v1.2.13 - (c) 1996-1998 Vojtech Pavlik <vojtech@suse.cz> + Linux Joystick driver v1.2.15 + (c) 1996-1999 Vojtech Pavlik <vojtech@suse.cz> + Sponsored by SuSE ---------------------------------------------------------------------------- 0. Disclaimer @@ -38,18 +39,18 @@ gamepads. In addition to these it also supports some of the new PC joysticks that use proprietary digital protocols to communicate over the gameport, -currently by FPGaming, Genius, Gravis, Logitech, MadCatz, Microsoft and -ThrustMaster. Creative Labs protocol support is still to be done. +currently by FPGaming, Gravis, Logitech, MadCatz, Microsoft, Creative and +ThrustMaster. Saitek protocol support is still to be done. The driver also includes support for many gamepads and joysticks that were used by various non-PC computers and game consoles. These include Multi system joysticks (Atari, Amiga, Commodore, Amstrad), Sega gamepads (Master -System, Genesis, Saturn), Nintendo gamepads (NES, SNES), Sony gamepads (PSX). -Support for N64, Atari Jaguar, Atari 2600, NES FourScore, SNES MultiTap, -PSX NegCon and others might be added later. +System, Genesis, Saturn), Nintendo gamepads (NES, SNES, N64), Sony gamepads +(PSX). Support for Atari Jaguar, Atari 2600, NES FourScore, SNES MultiTap +and others might be added later. Last, but not least there is also native Amiga joystick support for the -Amiga linux port. +Amiga Linux port. 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 @@ -57,18 +58,13 @@ them. Bug reports and success stories are also welcome. The joystick package is available at the following FTP sites: + ftp://ftp.suse.cz/pub/development/joystick/ ftp://atrey.karlin.mff.cuni.cz/pub/linux/joystick/ - - The joystick driver is also included in the Linux 2.1+ kernels: - - ftp://linux.kernel.org/pub/linux/kernel/ + ftp://ftp.gts.cz/pub/linux/joystick/ And a homepage of the driver is at: http://www.suse.cz/development/joystick/ - - Mirrors of the homepage are at: - http://atrey.karlin.mff.cuni.cz/~vojtech/joystick/ http://www.trylinux.com/projects/joystick/ http://www.linuxgames.com/joystick/ @@ -92,7 +88,21 @@ above mentioned locations. The rest of this file assumes you have it. To compile the utilities in the joystick package, and the driver itself, as a standalone module, you first unpack the package, and then edit the Makefile to meet your needs (namely whether are you using versioned -modules). Then you compile it +modules). You will also need an unpacked and configured + + make config + +kernel in + + /usr/src/linux + +Furthermore, if you're using versioned modules, you'll also need + + make dep + +done on the kernel, to create some needed files. + +After that, you compile the joystick driver make @@ -163,6 +173,14 @@ joystick driver module into the kernel where 'something' is the type of your joystick. See below for more precise explanation. + Alternately you can add the lines + + alias char-major-15 joy-something + options joy-something js_xx=x,x,x,x,... + + to the /etc/conf.modules file, so that the joystick module will be loaded +automatically when the /dev/js devices are accessed. + 2.5 Verifying that it works ~~~~~~~~~~~~~~~~~~~~~~~~~~~ For testing the joystick driver functionality, there is the jstest @@ -197,14 +215,14 @@ what the driver would choose itself. calibration using the jstest command, and if you do, you then can save the correction coefficients into a file - jscal -s /dev/js0 > /etc/joystick.cal + jscal -p /dev/js0 > /etc/joystick.cal And add a line to your rc script executing that file source /etc/joystick.cal This way, after the next reboot your joystick will remain calibrated. You -can also add the jscal -s line to your shutdown script. +can also add the jscal -p line to your shutdown script. 3. HW specific driver information @@ -222,7 +240,7 @@ ThrustMaster FCS or 6 and 8 button gamepads. * 2-axis, 4-button joystick * 3-axis, 4-button joystick -* Two 2-axis, 2-button joysticks on an Y-cable +* 4-axis, 4-button joystick For other joystick types (more/less axes, hats, and buttons) support you'll need to specify the types either on the kernel command line or on the @@ -261,6 +279,8 @@ you have any additions/corrections to it, e-mail me. Joystick | 'm' value ---------------------------------------------------- + Simple 2-button 2-axis joystick | 0x0033 + Second simple joystick on Y-cable | 0x00cc Genius Flight2000 F-12 | 0x00f3 Genius Flight2000 F-21 | 0x08f7 Genius Flight2000 F-22 | 0x02ff @@ -268,9 +288,11 @@ you have any additions/corrections to it, e-mail me. Genius MaxFire G-07 | 0xf0f3 Genius PowerStation | 0xf0f3 Laing #1 PC SuperPad | 0xf0f3 + Logitech Wingman | 0x003b Microsoft SideWinder Standard | 0x003b QuickShot QS-201 SuperWarrior | 0x00fb Saitek Megapad XII | 0x30f3 + PC Powerpad Pro | 0x30f3 In case you have one of the joystick in the table below, and it doesn't work with a specific driver in digital mode for some reason, you can use @@ -280,8 +302,7 @@ operation is always better. Joystick | 'm' value ---------------------------------------------------- Gravis GamePad Pro - analog mode | 0x00f3 - Genius Flight2000 F-23 - CHF mode | 0x02ff - Genius Flight2000 F-23 - FCS mode | 0x08f7 + Genius Flight2000 F-23 | 0x02ff Microsoft SideWinder 3D Pro - CHF mode | 0x02ff Microsoft SideWinder 3D Pro - FCS mode | 0x08f7 @@ -302,70 +323,85 @@ Using this method you'd get a command line: And it would do the same as the above explained command line. Use whichever way you like best. -3.2 Microsoft SideWinder and Genius Digital joysticks -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - SideWinder and Genius Digital joysticks are supported by the +3.2 Microsoft SideWinder joysticks +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Microsoft 'Digital Overdrive' protocol is supported by the joy-sidewinder.c module. All currently supported joysticks: -* SideWinder 3d Pro -* SideWinder Precision Pro +* SideWinder 3D Pro * SideWinder Force Feedback Pro -* SideWinder Game Pad (up to four, chained together) -* Genius Flight2000 Digital F-23 +* SideWinder Force Feedback Wheel +* SideWinder FreeStyle Pro +* SideWinder GamePad (up to four, chained together) +* SideWinder Precision Pro are autodetected, and thus no module parameters are needed. + There is one caveat with the 3D Pro. There are 9 buttons reported, +although the joystick has only 8. The 9th button is the mode switch on the +rear side of the joystick. However, moving it, you'll reset the joystick, +and make it unresponsive for about a one third of a second. Furthermore, the +joystick will also re-center itself, taking the position it was in during +this time as a new center position. Use it if you want, but think first. + The SideWinder Standard is not a digital joystick, and thus is supported -by the analog driver described above. SideWinder FreeStyle Pro and -SideWinder Force Feedback Wheel are not supported yet. +by the analog driver described above. -3.3 Logitech Digital joysticks -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Logitech Digital joysticks are supported by the joy-logitech.c module. It -currently supports these devices: +3.3 Logitech ADI devices +~~~~~~~~~~~~~~~~~~~~~~~~ + Logitech ADI protocol is supported by the joy-logitech.c module. It should +support any Logitech device using this protocol. This includes, but is not +limited to: -* Logitech Wingman Extreme Digital * Logitech CyberMan 2 * Logitech ThunderPad Digital - - All three are autodetected, and thus no parameters to the module are -needed. - - Logitech Wingman is not a digital joystick and is handled by the analog -driver described above. Logitech Wingman Warrior communicates through a -serial port and is not supported yet. Logitech Wingman Force, Wingman -Formula, Wingman Formula Force, Wingman Gamepad, Wingman Interceptor are USB -joysticks, with optional serial port connection, and are not supported yet. +* Logitech WingMan Extreme Digital +* Logitech WingMan Formula +* Logitech WingMan Interceptor +* Logitech WingMan GamePad +* Logitech WingMan GamePad USB +* Logitech WingMan GamePad Extreme +* Logitech WingMan Extreme Digital 3D + + ADI devices are autodetected, and the driver supports up to two (any +combination of) devices on a single gameport, using an Y-cable or chained +together. + + Logitech WingMan Joystick, Logitech WingMan Attack, Logitech WingMan +Extreme and Logitech WingMan ThunderPad are not digital joysticks and are +handled by the analog driver described above. Logitech WingMan Warrior and +Logitech Magellan are supported by serial drivers described below. Logitech +CyberMan, Logitech WingMan Force and Logitech WingMan Formula Force are not +supported yet. 3.4 Gravis GrIP ~~~~~~~~~~~~~~~ - Gravis GrIP gamepads are supported by the joy-gravis.c module. It + Gravis GrIP protocol is supported by the joy-gravis.c module. It currently supports: * Gravis GamePad Pro * Gravis Xterminator -* Gravis Blackhawk Digital +* Gravis BlackHawk Digital - All these pads are autodetected, and you can even use any combination of -up to two of these pads either chained together or using an Y-cable on a single -gameport. + All these devices are autodetected, and you can even use any combination +of up to two of these pads either chained together or using an Y-cable on a +single gameport. -GrIP MultiPort support is in the works. Gravis Xcalibur, ArcadeXtreme, -GamePad Pro/M are joysticks/pads that probably never reached mass -production. Gravis Stinger is a serial device and hopefully will be -supported in the future. +GrIP MultiPort and Gravis Xterminator DualControl aren't supported yet. +Gravis Stinger is a serial device and hopefully will be supported in the +future. Other Gravis joysticks are supported by the joy-analog driver. 3.5 FPGaming A3D and MadCatz A3D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - The Assasin 3D protocol created by FPGaming, is used both by FPGaming + The Assassin 3D protocol created by FPGaming, is used both by FPGaming themselves and is licensed to MadCatz. A3D devices are supported by the -joy-assasin.c module. It currently supports: +joy-assassin.c module. It currently supports: -* FPGaming Assasin 3D +* FPGaming Assassin 3D * MadCatz Panther * MadCatz Panther XL - All these devices are autodetected. Because the Assasin 3D and the Panther + All these devices are autodetected. Because the Assassin 3D and the Panther allow connecting analog joysticks to them, these are supported in this driver, too. The driver uses the js_as parameter for the analog joysticks, which has the same syntax as js_an for the analog driver. @@ -376,20 +412,33 @@ but should be well usable. 3.6 ThrustMaster DirectConnect (BSP) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The TM DirectConnect (BSP) protocol is supported by the joy-thrustmaster.c -module. It currently supports: +module. This includes, but is not limited to: * ThrustMaster Millenium 3D Inceptor * ThrustMaster 3D Rage Pad +* ThrustMaster Fusion Digital Game Pad + + Devices not directly supported, but hopefully working are: - Both these drvices are autodetected, and thus no parameters to the module +* ThrustMaster FragMaster +* ThrustMaster Attack Throttle + + If you have one of these, contact me. + + BSP devices are autodetected, and thus no parameters to the module are needed. - The Millenium and Rage Pad should work fine now. TM WCS III won't work, -because important parts of code for that are missing. I'm not sure if it was -ever mass produced. +3.7 Creative Labs Blaster +~~~~~~~~~~~~~~~~~~~~~~~~~ + The Blaster protocol is supported by the joy-creative.c module. It +currently supports only the: + +* Creative Blaster GamePad Cobra -3.7 PDPI Lightning 4 gamecards -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Up to two of these can be used on a single gameport, using an Y-cable. + +3.8 PDPI Lightning 4 gamecards +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PDPI Lightning 4 gamecards are supported by the joy-lightning.c module. This driver is only for analog joysticks connected to the card - if you want to use some of the digital devices, you need to use its specific driver. The @@ -420,8 +469,49 @@ port the joystick is attached to: See the description of analog joystick driver for explanations of m0 and n0 values. -3.8 Amiga -~~~~~~~~~ +3.9 Trident 4DWave / Aureal Vortex +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Soundcards with a Trident 4DWave DX/NX or Aureal Vortex chipset provide an +"Enhanced Game Port" mode where the soundcard handles polling the joystick. +This mode is supported by the joy-pci module. + + If no module parameters are given, the joy-pci module will set all the +soundcards it finds to "enhanced" mode, and will try to autodetect the type +of attached joystick. It can only detect the same types of joysticks that +the joy-analog module can. + + This module accepts parameters in the form: + + js_pci=t0,i0,m0,n0,t1,i1,m1,n1,.... + + The "t" value specifies the type of card, as follows: + + t | Card Type + ---------------------------- + 0 | Trident 4DWave DX + 1 | Trident 4DWave NX + 2 | Aureal Vortex1 (Au8820 chipset) + 3 | Aureal Vortex2 (Au8830 chipset) + + If you have more than one card of the same type, the "i" parameter lets +you choose which card to apply the "m" and "n" values to. It counts from +"0". (The driver detects cards in the order listed in the above table.) + + The "m" and "n" values have the same meaning as for the analog module, +with the exception that the value m=0, n=0 indicates that joy-pci should +completely ignore that port. This can be useful to reserve a certain port +for purely MIDI operation. + + For example, let's say you have 3 sound cards - a 4Dwave DX, a 4DWave NX, +and a Vortex 2. You have a three-axis, four-button, one-hat CHF- compatible +joystick on the DX. You use the NX to interface to an external MIDI device. +Finally, you have two two-axis, two-button joysticks on the Vortex. Your +command line might look like: + + js_pci=0,0,0x207,0,1,1,0,0,3,0,0x33,0xcc + +3.10 Amiga +~~~~~~~~~~ Amiga joysticks, connected to an Amiga, are supported by the joy-amiga.c driver. Since they can't be autodetected, the driver has a command line. @@ -438,10 +528,75 @@ the Amiga. No more joystick types are supported now, but that should change in the future if I get an Amiga in the reach of my fingers. -3.9 Game console and 8-bit pads and joysticks -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +3.11 Game console and 8-bit pads and joysticks +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See joystick-parport.txt for more info. +3.12 SpaceTec/LabTec devices +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + SpaceTec serial devices communicate using the SpaceWare protocol. It is +supported by the joy-spaceorb and joy-spaceball drivers. The devices currently +supported by joy-spaceorb are: + +* SpaceTec SpaceBall Avenger +* SpaceTec SpaceOrb 360 + +Devices currently supported by joy-spaceball are: + +* SpaceTec SpaceBall 4000 FLX + + In addition to having the joy-spaceorb/spaceball module in the kernel, you +also need to attach a serial port to it. to do that, run the jsattach +program: + + jsattach --spaceorb /dev/ttySx & +or + jsattach --sball4 /dev/ttySx & + +where /dev/ttySx is the serial port which the device is connected to. After +doing this, the device will be reported and will start working. + + There is one caveat with the SpaceOrb. The button #6, the on the bottom +side of the orb, although reported as an ordinary button, causes internal +recentering of the spaceorb, moving the zero point to the position in which +the ball is at the moment of pressing the button. So, think first before +you bind it to some other function. + +SpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet. + +3.13 Logitech SWIFT devices +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The SWIFT serial protocol is supported by the joy-warrior module. It +currently supports only the: + +* Logitech WingMan Warrior + +but in the future, Logitech CyberMan (the original one, not CM2) could be +supported as well. To use the module, you need to run jsattach after you +insert/compile the module into your kernel: + + jsattach --warrior /dev/ttySx & + +ttySx is the serial port your Warrior is attached to. + +3.14 Magellan / Space Mouse +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space +Systems), for many other companies (Logitech, HP, ...) is supported by the +joy-magellan module. It currently supports only the: + +* Magellan 3D +* Space Mouse + +models, the additional buttons on the 'Plus' versions are not supported yet. + + To use it, you need to attach the serial port to the driver using the + + jsattach --magellan /dev/ttySx & + +command. After that the Magellan will be detected, initialized, will beep, +and the /dev/jsX device should become useable. + 4. Troubleshooting ~~~~~~~~~~~~~~~~~~ There is quite a high probability that you run into some problems. For @@ -452,9 +607,10 @@ interface, and "old" for the "0.x" interface. You run it by typing: jstest --normal /dev/js0 jstest --old /dev/js0 - If your trouble stems from the fact the drivers can't detect the attached -joystick, and/or you decide you need my help (which I will gladly provide), -please use the joydump utility first. It's created just by typing + If your trouble stems from the fact the drivers can't detect the joystick +attached to your gameport, and you decide you need my help (which I will +gladly provide), please use the joydump utility first. It's created just by +typing make joydump.o @@ -465,64 +621,73 @@ by typing in the same directory. It will return a 'device busy' or 'initialization failed' error. This is perfectly okay. It has already done it's job. The -results can be found in the system log. Please send me the results along -with your problem report. +results can be found in the system log or in the output of the + + dmesg + +command. Please send me the results along with your problem report. Oh, and read the FAQ! :) 5. FAQ ~~~~~~ - Q: The driver doesn't find any joysticks connected to my soundcard with the -message "joy-something: no joysticks found" and "joy-something.o: -init_module: Device or resource busy." or "Initialization of joy-something -failed" What could be the cause? - A: The most common cause is that the joystick port on your soundcard is -not enabled. If it is an ISA PnP card, you'll need isapnptools to configure -the gameport. Non-PnP cards usually use some option to the sound driver - -see the sound driver docs and source and enable the port. - - Q: Any access to the joystick devices gives me "Operation not supported by -device". What am I doing wrong? - A: You're running a 2.0 kernel and you forgot to insmod the hardware -specific module. You not only need the joystick.o, but also one of the other -joy-*.o files (most usually joy-analog.o), as described in this document, -section 2. If you are not using modules, then you didn't say 'Y' to any of -the hardware-specific questions. Again, see section 2. If you did select -the specific support, and you still get this message, check that you -selected the right one, and if it still doesn't work, go to the previous -FAQ. - - Q: Everything is fine, except I get "No such device" error when I try to -do anything with /dev/js0. What's the cause? - A: You're running a 2.1 kernel and you want to read the previous FAQ. - - Q: Upon 'insmod joystick.o' I get a LOT of unresolved symbols, including -printk and others. Why? - A: You either don't have your kernel compiled with module support. If -that's the cause, re-compile your kernel with module support switched on. -Or, you use versioned symbols, and don't have -DMODVERSIONS in the joystick -driver Makefile, or vice versa. Correct the situation by either removing or -adding -DMODVERSIONS to the Makefile. - - Q: Running 'jstest 1' or 'jscal 1' doesn't work, and returns with "File -not found" error. What is the problem? - A: The command line interface for these tools is different from what -version 0.8.0 used. You have to specify the whole device name, eg. 'jstest -/dev/js0'. - - Q: Running 'jstest /dev/js0' results in "File not found" error. What's the -cause? - A: The device files don't exist. Run 'make devs'. - - Q: Is it possible to connect my old Atari/Commodore/Amiga/console joystick -or pad that uses a 9-pin D-type cannon connector to the serial port of my -PC? - A: Yes, it is possible, but it'll burn your serial port or the pad. It -won't work, of course. - - Q: My joystick doesnt work with Quake / Quake 2. What's the cause? - A: Quake / Quake 2 don't support joystick. Use joy2key to simulate keypresses -for them. +Q: The driver doesn't find any joysticks connected to my soundcard with the + message "joy-something: no joysticks found" and "joy-something.o: + init_module: Device or resource busy." or "Initialization of joy-something + failed" What could be the cause? +A: The most common cause is that the joystick port on your soundcard is + not enabled. If it is an ISA PnP card, you'll need isapnptools to configure + the gameport. Non-PnP cards usually use some option to the sound driver - + see the sound driver docs and source and enable the port. Note that in case + of a PnP card you have to load the joystick driver as a module after running + the isapnp command, it will not work in the opposite order. + +Q: Any access to the joystick devices gives me "Operation not supported by + device". What am I doing wrong? +A: You're running a 2.0 kernel and you forgot to insmod the hardware + specific module. You not only need the joystick.o, but also one of the other + joy-*.o files (most usually joy-analog.o), as described in this document, + section 2. If you are not using modules, then you didn't say 'Y' to any of + the hardware-specific questions. Again, see section 2. If you did select + the specific support, and you still get this message, check that you + selected the right one, and if it still doesn't work, go to the previous + FAQ. + +Q: Everything is fine, except I get "No such device" error when I try to + do anything with /dev/js0. What's the cause? +A: You're running a 2.1 or 2.2. kernel and you want to read the previous FAQ. + +Q: Upon 'insmod joystick.o' I get a LOT of unresolved symbols, including + 'printk' and others. Why? +A: You either don't have your kernel compiled with module support. If + that's the cause, re-compile your kernel with module support switched on. + Or, you use versioned symbols, and don't have -DMODVERSIONS in the joystick + driver Makefile, or vice versa. Correct the situation by either removing or + adding -DMODVERSIONS to the Makefile. + +Q: Upon 'insmod joy-something' I get a bunch of unresolved symbols, like + 'js_register_port, js_unregister device' and others. What's wrong? +A: You need to 'insmod joystick.o' first. + +Q: Running 'jstest 1' or 'jscal 1' doesn't work, and returns with "File + not found" error. What is the problem? +A: The command line interface for these tools is different from what + version 0.8.0 used. You have to specify the whole device name, eg. 'jstest + /dev/js0'. + +Q: Running 'jstest /dev/js0' results in "File not found" error. What's the + cause? +A: The device files don't exist. Run 'make devs'. + +Q: Is it possible to connect my old Atari/Commodore/Amiga/console joystick + or pad that uses a 9-pin D-type cannon connector to the serial port of my + PC? +A: Yes, it is possible, but it'll burn your serial port or the pad. It + won't work, of course. + +Q: My joystick doesn't work with Quake / Quake 2. What's the cause? +A: Quake / Quake 2 don't support joystick. Use joy2key to simulate keypresses + for them. 6. Programming Interface ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -565,23 +730,31 @@ to the joystick driver development: Brian Gerst <bgerst@quark.vpplus.com> Andree Borrmann <a.borrmann@tu-bs.de> Martin Giguere <zefrench@hotmail.com> + David Thompson <dcthomp@mail.utexas.edu> + Justin Wake <spectre@telefragged.com> + Benoit Triquet <benoit@adsl-216-100-248-201.dsl.pacbell.net> + John Dahlstrom <jodaman@bradley.edu> + Dan Gohman <gohmandj@mrs.umn.edu> + Joe Krahn <krahn@niehs.nih.gov> + David Kuder <alphagod@penguinpowered.com> + Raymond Ingles <sorceror@tir.com> If you think you should be in this list and are not, it's possible that I forgot to include you - contact me and I'll correct the error. :) Thanks to KYE Systems Europe, who provided me with driver sources for the -Genius Flight2000 Digital F-23, which happens to be compatible with -Microsoft SideWinder 3d Pro. +Genius Flight2000 Digital F-23, which happens to be identical (in software) +to Microsoft SideWinder 3D Pro. Thanks to ThrustMaster Inc. who provided me with docs for their digital -protocol, and to Trystan A Larey-williams <axe@mail.wsu.edu>, who wrote an -attempt of a driver for them. +protocol specifications, and to Trystan A Larey-Williams <axe@mail.wsu.edu>, +who wrote an attempt of a driver for them. Thanks to Creative Labs Europe, and Ifor Powell <ipowell@cle.creaf.com>, -who provided me with docs for their first generation gamepad. +who provided me with docs for their first generation Blaster GamePad. Special thanks go to FP-Gaming, Inc. and James C Barnes <james@fpgaming.com>, -who provided me with help and detailed information about the Assasin 3D +who provided me with help and detailed information about the Assassin 3D protocol and devices, and even sent me a Panther and Panther XL for testing, along with cool T-shirts. @@ -590,10 +763,20 @@ along with cool T-shirts. code for their L4 gamecard, and sending me the card to test my driver with it. + Thanks to LogiCad3D for their support, for having the specifications +online and for the nice music on their telephone. + + Special thanks to Logitech, Jerry de Raad <Jerry_de_Raad@logitech.com>, +Thomas Burgel <Thomas_Burgel@logitech.com>, Avinash Shinde +<Avinash_Shinde@logitech.com> for providing me with a lot of documentation +for their devices, and also for a big box, containing a CyberMan2, Wingman +Extreme, Magellan, Wingman Warrior, two MouseMan mice, and a NewTouch +keyboard. + Thanks to everyone else who helped me develop this package of drivers! - No thanks to Microsoft, Logitech, and Gravis, who don't release a word -about their hardware .... :( + No thanks to Microsoft and Gravis, who don't release a word about their +hardware .... :( 8. ChangeLog ~~~~~~~~~~~~ @@ -602,50 +785,3 @@ about their hardware .... :( 9. To do ~~~~~~~~ See the TODO file for the list of things planned. - -10. Current driver status -~~~~~~~~~~~~~~~~~~~~~~~~~ - OK means tested and not touched till this driver revision, unknown means -that the driver was changed since last test, broken means doesn't work, -incomplete means can't work, because vital parts of support are missing. - -joystick.c: 2.1.x kernel interface - OK -joy-amiga.c: Multi1 stick - unknown -joy-analog.c: standard joysticks - OK - FCS hats - OK - CHF hats & buttons - OK - XY buttons - OK - UV buttons - OK -joy-assasin.c: MadCatz Panther XL - OK - MadCatz PXL rudder - OK - MadCatz Panther - OK - FPG Assasin 3D - OK -joy-console.c: NES pad - OK - SNES pad - OK - Multi1 stick - OK - Multi2 stick - OK - PSX - SW OK, HW unreliable -joy-db9.c: Multi1 stick - OK - Multi2 stick - OK - Sega Genesis pad - OK - Sega Genesis 5 pad - OK - Sega Genesis 6 pad - OK - Sega Saturn pad - unknown -joy-gravis.c Gravis GamePad Pro - OK - Gravis Xterminator - OK - Gravis Blackhawk Digital- OK -joy-lightning.c PDPI Lightning 4 - OK -joy-logitech.c WingMan Extreme Digital - OK - CyberMan 2 - OK - Thunder Pad Digital - unknown -joy-sidewinder.c SW 3D Pro - OK - Genius F-23 - OK - SW GP - OK - SW PP - OK - SW FFP - OK -joy-thrustmaster.c Millenium 3D Inceptor - OK - 3D-Rage Pad - OK -joy-turbografx.c Multi1 stick - OK - -Please help me and send me success / failure reports for the drivers, -I need to know what works, and what needs to be debugged. Thank you. diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index be39d93e4..59de4ac19 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX @@ -58,8 +58,6 @@ 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 diff --git a/Documentation/networking/ppp.txt b/Documentation/networking/ppp.txt deleted file mode 100644 index 55c036251..000000000 --- a/Documentation/networking/ppp.txt +++ /dev/null @@ -1,51 +0,0 @@ -*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 update to the newest pppd version. - -Patch: - ---- ppp-2.2.0f/pppd/sys-linux.c-o Wed Sep 17 00:23:01 1997 -+++ ppp-2.2.0f/pppd/sys-linux.c Wed Sep 17 00:23:11 1997 -@@ -927,8 +927,11 @@ - - if (ioctl(sockfd, SIOCADDRT, &rt) < 0) - { -+/* The new linux routing code doesn't like routes on down devices. */ -+#if 0 - syslog (LOG_ERR, "ioctl(SIOCADDRT) device route: %m"); - return (0); -+#endif - } - return 1; - } - - --Andi Kleen --------------------------------------------------------------------- - -The PPP support for this kernel requires the 2.2.0 version of the -pppd daemon. You will find the current version of the daemon on -sunsite.unc.edu in the /pub/Linux/system/Network/serial directory. - -Sunsite has many mirror sites. Please feel free to obtain it from -a mirror site close to you. - -If you attempt to use a version of pppd which is not compatible -then you will have some error condition. It usually is reflected -in that an ioctl operation will generate a fatal error. - -Please do not use earlier versions of the 2.2 package. If you -obtained a copy from merit.edu or bellatrix then please get an -update from the sunsite site. - -The CCP (Compression Control Protocol) which is supported by this -code is functional. You will need a compatible BSD compressor on -your peer site to use the code. - -The BSD compression code will only build as a loadable module. There -was an earlier version which would build it into the kernel but that -functionality has been removed for various reasons. - --- -Al Longyear longyear@netcom.com diff --git a/Documentation/networking/sis900.txt b/Documentation/networking/sis900.txt new file mode 100644 index 000000000..474d3c081 --- /dev/null +++ b/Documentation/networking/sis900.txt @@ -0,0 +1,460 @@ + SiS 900/7016 Fast Ethernet Device Driver + by Ollie Lho (ollie@sis.com.tw) + November 4, 1999. Document Revision: 0.1 + + This document gives some information on installation and usage of SiS + 900/7016 device driver under Linux. + ______________________________________________________________________ + + Table of Contents + + + 1. Introduction + + 2. License + + 3. Changes + + 4. Tested Environment + + 5. Files in This Rackage + + 6. Installation + + 6.1 Kernel version later than 2.2.11 and 2.3.15 + 6.1.1 Building the driver as loadable module + 6.1.2 Building the driver into kernel + 6.2 Earlier Kernel Version in 2.2.x and 2.3.x Series + + 7. Known Problems and Bugs + + 8. Revision History + + 9. Acknowledgements + + + + ______________________________________________________________________ + + 1. Introduction + + This document describes the revision 1.06 of SiS 900/7016 Fast + Ethernet device driver under Linux. The driver is developed by Silicon + Integrated System Corp. and distributed freely under the GNU General + Public License (GPL). The driver can be compiled as a loadable module + and used under Linux kernel version 2.2.x. With minimal changes, the + driver can also be used under 2.3.x kernel, please see section + ``Installation''. If you are intended to use the driver for earlier + kernels, you are on your own. + + The driver is tested with usual TCP/IP applications including FTP, + Telnet, Netscape etc. and is used constantly by the developers. + + Please send all comments/fixes/questions to Ollie Lho. + + + 2. License + + + + + + + + + + + Copyright (C) 1999 Silicon Integrated System Corp. + + 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + + + + 3. Changes + + Changes made in Revision 1.06 + + 1. Separation of sis900.c and sis900.h in order to move most constant + definition to sis900.h (many of those constants were corrected) + + 2. Clean up PCI detection, the pci-scan from Donald Becker were not + used, just simple pci_find_*. + + 3. MII detection is modified to support multiple mii transceiver. + + 4. Bugs in read_eeprom, mdio_* were removed. + + 5. Lot of sis900 irrelevant comments were removed/changed and more + comments were added to reflect the real situation. + + 6. Clean up of physical/virtual address space mess in buffer + descriptors. + + 7. Better transmit/receive error handling. + + 8. The driver now uses zero-copy single buffer management scheme to + improve performance. + + 9. Names of variables were changed to be more consistent. + + 10. Clean up of auo-negotiation and timer code. + + 11. Automatic detection and change of PHY on the fly. + + + 4. Tested Environment + + This driver is developed on the following hardware + + o Intel Celeron 336 with SiS 620 (rev 02) chipset + + o SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card + + and tested with these software environments + + o Red Hat Linux version 6.0 + + o Linux kernel version 2.2.13 + + o Netscape version 4.6 + + o NcFTP 3.0.0 beta 18 + + o Samba version 2.0.3 + + + 5. Files in This Rackage + + In the package you can find these files: + + + sis900-2.2.x.c + Driver source for kernel 2.2.x + + sis900-2.3.x.c + Driver source for kernel 2.3.x + + sis900.h + Header file for both 2.2.x and 2.3.x kernel + + sis900.sgml + Linux-Doc SGML source of the document + + + 6. Installation + + Before trying to install the driver, be sure to get the latest + revision from SiS' Home Page. If you have no prior experience in + networking under Linux, please read Ethernet HOWTO and Networking + HOWTO available from Linux Documentation Project (LDP). + + The installation procedure are different according to your kernel + versions. + + + 6.1. Kernel version later than 2.2.11 and 2.3.15 + + The driver is bundled in release later than 2.2.11 and 2.3.15 so this + is the most easy case. Be sure you have the appropriate packages for + compiling kernel source. Those packages are listed in + Document/Changes in kernel source distribution. There are two + alternative ways to install the driver + + + 6.1.1. Building the driver as loadable module + + To build the driver as a loadable kernel module you have to + reconfigure the kernel to activate network support by + + + + make config + + + + + Choose "Network Device Support" to "Y" and "Ethernet Support" to "Y". + Then you have to choose "SiS 900 Fast Ethernet Adapter Support" to + "M". + + After reconfiguring the kernel, you can make the driver module by + + + make modules + + + + + The driver should be compiled with no errors. After compiling the + driver, the driver can be installed to proper place by + + + + make modules_install + + + + + Load the driver into kernel by + + + + insmod sis900 + + + + + When loading the driver into memory, some information message can be + view by + + + + dmesg + + + + + or + + + cat /var/log/message + + + + + If the driver is loaded properly you will have messages similar to + this: + + + + sis900.c: v1.06 11/04/99 + eth0: SiS 900 PCI Fast Ethernet at 0xd000, IRQ 10, 00:00:e8:83:7f:a4. + eth0: SiS 900 Internal MII PHY transceiver found at address 1. + + + + + showing the version of the driver and the results of probing routine. + + Once the driver is loaded, network can be brought up by + + + + /sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK + + + + + + where IPADDR, BROADCAST, NETMASK are your IP address, broadcast + address and netmask respectively. For more information on how to + configure network interface, please refer to Networking HOWTO. + + The link status is also shown by kernel messages. For example, after + the network interface is activated, you may have the message: + + + + eth0: Using SiS 900 Internal MII PHY as default + eth0: Media Link On 100mbps full-duplex + + + + + If you try to unplug the twist pair (TP) cable you will get + + + + eth0: Media Link Off + + + + + indicating that the link is failed. + + + 6.1.2. Building the driver into kernel + + If you want to make the driver into kernel, choose "Y" rather than "M" + on "SiS 900 Fast Ethernet Adapter Support" when configuring the + kernel. Build the kernel image in the usual way + + + + make dep + + make clean + + make bzlilo + + + + + Next time the system reboot, you have the driver in memory. + + + 6.2. Earlier Kernel Version in 2.2.x and 2.3.x Series + + Installing the driver for earlier kernels in 2.2.x and 2.3.x series + requires a little bit more work. First you have to copy sis900-2.x.x.c + to /usr/src/linux/drivers/net/ and you have to modify some files + manually (sorry !! no patch available !!) + + in Space.c, add + + + extern int sis900_probe(struct device *dev); + + ... + + #ifdef CONFIG_SIS900 + {sis900_probe,0}, + #endif + + + in Config.in add + + + if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + ... //other adapter drivers + tristate 'SiS 900 PCI Fast Ethernet Adapter Support' CONFIG_SIS900 + ... //other adapter drivers + fi + + + + + in Makefile add + + + ifeq ($(CONFIG_SIS900),y) + L_OBJS += sis900.o + else + ifeq ($(CONFIG_SIS900),m) + M_OBJS += sis900.o + endif + endif + + + + + After modifying these files, the driver can be build as described in + the previous section. + + + 7. Known Problems and Bugs + + There are some known problems and bugs. If you find any other bugs + please mail to ollie@sis.com.tw + + 1. AM79C901 HomePNA PHY is not thoroughly tested, there may be some + bugs in the "on the fly" change of transceiver. + + 2. A bug is hidden somewhere in the receive buffer management code, + the bug causes NULL pointer reference in the kernel. This fault is + caught before bad things happen and reported with the message: + + + eth0: NULL pointer encountered in Rx ring, skipping + + + + + which can be viewed with dmesg or cat /var/log/message. + + + 8. Revision History + + + o November 4, 1999, Revision 1.06, Second release, lots of clean up + and optimization. + + o August 8, 1999, Revision 1.05, Initial Public Release + + + 9. Acknowledgements + + This driver was originally derived form Donald Becker's pci-skeleton + and rtl8139 drivers. Donald also provided various suggestion regarded + with improvements made in revision 1.06. + + The 1.05 revision was created by Jim Huang, AMD 79c901 support was + added by Chin-Shan Li. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Documentation/networking/sk98lin.txt b/Documentation/networking/sk98lin.txt new file mode 100644 index 000000000..863090170 --- /dev/null +++ b/Documentation/networking/sk98lin.txt @@ -0,0 +1,480 @@ +(C)Copyright 1999 SysKonnect. +=========================================================================== + +sk98lin.txt created 11-Nov-1999 + +Readme File for sk98lin.o v3.02 +SK-NET Gigabit Ethernet Adapter SK-98xx Driver for Linux + +This file contains +(1) OVERVIEW +(2) REQUIRED FILES +(3) INSTALLATION +(4) INCLUSION OF THE ADAPTER AT SYSTEM START +(5) DRIVER PARAMETERS +(6) LARGE FRAME SUPPORT +(7) TROUBLESHOOTING +(8) HISTORY + +=========================================================================== + + + +(1) OVERVIEW +============ + +The sk98lin driver supports the SysKonnect SK-NET Gigabit Ethernet +Adapter SK-98xx family on Linux 2.2.x. +It has been tested with Linux on Intel/x86 and ALPHA machines. +From v3.02 on, the driver is integrated in the linux kernel source. +*** + + +(2) REQUIRED FILES +================== + +The linux kernel source. +No additional files required. +*** + + +(3) INSTALLATION +================ + +The following steps describe the actions that are required to install +the driver and to start it manually. These steps should be carried +out for the initial driver setup. Once confirmed to be ok, they can +be included in the system start which is described in the next +chapter. + +NOTE 1: You must have 'root' access to the system to perform + the following tasks. +NOTE 2: IMPORTANT: In case of problems, please read the section + "Troubleshooting" below. + +1) The driver can either be integrated into the kernel or it can + be compiled as a module. + Select the appropriate option during the kernel configuration. + For use as a module, your kernel must have + 'loadable module support' enabled. + For automatic driver start, you also need 'Kernel module loader' + enabled. + Configure those options, build and install the new kernel. If you + choose to use the driver as a module, do "make modules" and + "make modules_install". + Reboot your system. + +4) Load the module manually by entering: + insmod sk98lin.o + If the SysKonnect SK-98xx adapter is installed in your + computer and you have a /proc filesystem, running the command + 'more /proc/net/dev' should produce an output containing a + line with the following format: + eth0: 0 0 ... + which means that your adapter has been found and initialized. + + NOTE 1: If you have more than one SysKonnect SK-98xx adapter, the + adapters will be listed as 'eth0', 'eth1', 'eth2', etc. + For each adapter, repeat the steps 5) and 6). + NOTE 2: If you have other Ethernet adapters installed, + your SysKonnect SK-98xx adapter can be mapped to 'eth1' or + 'eth2' ... + The module installation message (in system logfile or + on console, depending on /etc/syslog.conf) prints a line + for each adapter that is found, containing the + corresponding 'ethX'. + +5) Select an IP address and assign it to the respective adapter by + entering: + ifconfig eth0 <ip-address> + This causes the adapter to connect to the ethernet. The solitary + yellow LED at the adapter is now active, the link status LED of + the primary port is on and the link status LED of the secondary + port (on dual port adapters) is blinking (only if the laters are + connected to a switch or hub). + You will also get a status message on the console saying + "ethX: network connection up using port Y" and indicating + the selected connection parameters. + + NOTE: If you are in doubt about IP addresses, ask your network + administrator for assistance. + +6) Your adapter should now be fully operational. + Use 'ping <otherstation>' to verify the connection to other + computers on your network. + By entering 'ifconfig', you can check the number of packets sent + and received by your adapter and additional some other information + regarding the adapter configuration. + +7) The driver module can be stopped and unloaded using the following + commands: + ifconfig eth0 down + rmmod sk98lin +*** + + +(4) INCLUSION OF THE ADAPTER AT SYSTEM START +============================================ + +Since a large number of different Linux distributions are +available, we are unable to describe a general installation procedure +for the driver module. +Because the driver is now integrated in the kernel, installation should +be easy, using the standard mechanism of your distribution. +Refer to the distribution's manual for installation of ethernet adapters. +*** + + +(5) DRIVER PARAMETERS +===================== + +Parameters can be set at the command line while loading the +module with 'insmod'. The configuration tools of some distributions +can also give parameters to the driver module. +If you use the kernel module loader, you can set driver parameters +in the file /etc/conf.modules. Insert a line of the form: + +options sk98lin ... + +For "...", use the same syntax as described below for the command +line paramaters of insmod. +You either have to reboot your computer or unload and reload +the driver to activate the new parameters. +The syntax of the driver parameters is: + +insmod sk98lin parameter=value1[,value2[,value3...]] + +value1 is for the first adapter, value2 for the second one etc. +All Parameters are case sensitive, so write them exactly as +shown below. + +Sample: Suppose you have two adapters. You want to set AutoNegotiation + on Port A of the first adapter to ON and on Port A of the + second adapter to OFF. + You also want to set DuplexCapabilities on Port A of the first + adapter to FULL and on Port A of the second adapter to HALF. + You must enter: + + insmod sk98lin.o AutoNeg_A=On,Off DupCap_A=Full,Half + +NOTE: The number of adapters that can be configured this way is + limited in the driver (file skge.c, constant SK_MAX_CARD_PARAM). + The current limit is 16. If you happen to install + more adapters, adjust this and recompile. + + +5.1 Per-Port Parameters +----------------------- +Those setting are available for each port on the adapter. +In the following description, '?' stands for the port for +which you set the parameter (A or B). + +- Auto Negotiation + Parameter: AutoNeg_? + Values: On, Off, Sense + Default: Sense + + The "Sense"-mode finds out automatically whether the link + partner supports autonegotiation or not. + +- Duplex Capabilities + Parameter: DupCap_? + Values: Half, Full, Both + Default: Both + + This parameters is relevant only if autonegotiation for + this port is not "Sense". If autonegotiation is "On", all + three values are possible. If it is "Off", only "Full" and + "Half" are allowed. + It is usefull if your link partner does not support all + possible combinations. + +- Flow Control + Parameter: FlowCtrl_? + Values: Sym, SymOrRem, LocSend, None + Default: SymOrRem + + This parameter can be used to set the flow control capabilities + that the port reports during autonegotiation. + The meaning of the different modes is: +-- Sym = Symetric: both link partners are allowed to send PAUSE frames +-- SymOrRem = SymetricOrRemote: both or only remote partner are allowed + to send PAUSE frames +-- LocSend = LocalSend: only local link partner is allowed to send + PAUSE frames +-- None: no link partner is allowed to send PAUSE frames + + NOTE: This parameter is ignored if autonegotiation is set to "Off". + +- Role in Master-Slave-Negotiation (1000Base-T only). + Parameter: Role_? + Values: Auto, Master, Slave + Default: Auto + + This parameter is only valid for the SK-9821 and SK-9822 adapters. + For two 1000Base-T ports to communicate, one must take the role as + master (providing timing information), while the other must be slave. + Normally, this is negotiated between the two ports during link + establishment. If this should ever fail, you can force a port to a + specific setting with this parameter. + + +5.2 Per-Adapter Parameters +-------------------------- + +- Preferred Port + Parameter: PrefPort + Values: A, B + Default: A + + This is used to force the preferred port to A or B (on two-port NICs). + The preferred port is the one that is used if both are detected as + fully functional. + +- RLMT (Redundant Link Management Technology) Mode + Parameter: RlmtMode + Values: CheckLinkState,CheckLocalPort, CheckSeg + Default: CheckLinkState + + RLMT (the driver part that decides which port to use) knows three + ways of checking if a port is available for use: + +-- CheckLinkState = Check link state only: RLMT uses the link state + reported by the adapter hardware for each individual port to determine + whether a port can be used for all network traffic or not. + +-- CheckLocalPort - Check other port on adapter: RLMT sends test frames + from each port to each other port and checks if they are received by + the other port, respectively. Thus, the ports must be connected to the + network such that LLC test frames can be exchanged between them + (i.e. there must be no routers between the ports). + +-- CheckSeg - Check other port and segmentation: RLMT checks the other port + and in addition requests information from the Gigabit Ethernet + switch next to each port to see if the network is segmented between + the ports. Thus, this mode is only to be used if you have Gigabit + Ethernet switches installed in your network that have been configured + to use the Spanning Tree protocol. + + NOTE: The modes CheckLocalPort and CheckSeg are meant to operate in + configurations where a network path between the ports on one + adapter exists. Especially, they are not designed to work where + adapters are connected back-to-back. +*** + + +(6) LARGE FRAME SUPPORT +======================= + +Large frames (also called jumbo frames) are now supported by the +driver. This can result in a greatly improved throughput if +transfering large amounts of data. +To enable large frames, set the MTU (maximum transfer unit) +of the interface to the value you wish (up to 9000). The command +for this is: + ifconfig eth0 mtu 9000 +This will only work if you have two adapters connected back-to-back +or if you use a switch that supports large frames. When using a +switch, it should be configured to allow large frames, without +autonegotiating for them. +The setting must be done on all adapters that can be reached by +the large frames. If one adapter is not set to receive large frames, +it will simply drop them. + +NOTE: If you look at the statistics (with netstat) in large frame + mode while there is traffic on the net, you will see the + RX error counter go up. This is because the adapter hardware + counts received large frames as errors, although they are + received correctly. So ignore this counter in that case. + +You can switch back to the standard ethernet frame size with: + ifconfig eth0 mtu 1500 +*** + + +(7) TROUBLESHOOTING +=================== + +If you run into problems during installation, check those items: + +Problem: The SK-98xx adapter can not be found by the driver. +Reason: Look in /proc/pci for the following entry: + 'Ethernet controller: SysKonnect SK-98xx ...' + If this entry exists, then the SK-98xx adapter has been + found by the system and should be able to be used. + If this entry does not exist or if the file '/proc/pci' + is not there, then you may have a hardware problem or PCI + support may not be enabled in your kernel. + The adapter can be checked using the diagnostic program + which is available from the SysKonnect web site: + www.syskonnect.de + Some COMPAQ machines have a problem with PCI under + Linux. This is described in the 'PCI howto' document + (included in some distributions or available from the + www, e.g. at 'www.linux.org'). This might be fixed in the + 2.2.x kernel series (I've not tested it). + +Problem: Programs such as 'ifconfig' or 'route' can not be found or + you get an error message 'Operation not permitted'. +Reason: You are not logged in as user 'root'. Logout and + login as root or change to root via 'su'. + +Problem: Using the command 'ping <address>', you get a message + "ping: sendto: Network is unreachable". +Reason: Your route is not set up correct. + If you are using RedHat, you probably forgot + to set up the route in 'network configuration'. + Check the existing routes with the 'route' command + and check if there is an entry for 'eth0' and if + it is correct. + +Problem: The driver can be started, the adapter is connected + to the network, but you can not receive or transmit + any packet; e.g. 'ping' does not work. +Reason: You have an incorrect route in your routing table. + Check the routing table with the command 'route' and + read the manual pages about route ('man route'). +NOTE: Although the 2.2.x kernel versions generate the routing + entry automatically, you may have problems of this kind + here, too. We found a case where the driver started correct + at system boot, but after removing and reloading the driver, + the route of the adapter's network pointed to the 'dummy0' + device and had to be corrected manually. + +Problem: You want to use your computer as a router between + multiple IP subnetworks (using multiple adapters), but + you can not reach computers in other subnetworks. +Reason: Either the router's kernel is not configured for IP + forwarding or there is a problem with the routing table + and gateway configuration in at least one of the + computers. + +Problem: At the start of the driver, you get an error message: + "eth0: -- ERROR -- + Class: internal Software error + Nr: 0xcc + Msg: SkGeInitPort() cannot init running ports" +Reason: You are using a driver compiled for single processor + machines on an multiprocessor machine with SMP (Symetric + MultiProcessor) kernel. + Configure your kernel appropriate and recompile the kernel or + the modules. + +If your problem is not listed here, please contact SysKonnect's technical +support for help (linux@syskonnect.de). +When contacting our technical support, please ensure that the +following information is available: +- System Manufacturer and Model +- Boards in your system +- Distribution +- Kernel version +*** + + +(8) HISTORY +=========== + +VERSION 3.02 +Problems fixed: +- None +New Features: +- Integration in linux kernel source. +Known limitations: +- None + +VERSION 3.02 +Problems fixed: +- None +New Features: +- Full source release +Known limitations: +- None + +VERSION 3.00 +Problems fixed: +- None +New Features: +- Support for 1000Base-T adapters (SK-9821 and SK-9822) +Known limitations: +- None + +VERSION 1.07 +Problems fixed: +- RlmtMode parameter value strings were wrong (#10437) +- Driver sent too many RLMT frames (#10439) +- Driver did not recognize network segmentation (#10440) +- RLMT switched too often on segmented network (#10441) +Known limitations: +- None + +VERSION 1.06 +Problems fixed: +- System panic'ed after some time when running with + RlmtMode=CheckOtherLink or RlmtMode=CheckSeg (#10421) + Panic message: "Kernel panic: skput: over ... dev: eth0" +- Driver did not switch back to default port when connected + back-to-back (#10422). +Changes: +- RlmtMode parameter names have changed +New features: +- There is now a version for ALPHA processors +Known limitations: +- None + +VERSION 1.05 +Problems fixed: +- Driver failed to load on kernels with version information + for module symbols enabled +Known limitations: +- None + +VERSION 1.04 +Problems fixed: +- Large frame support does work now (no autonegotiation + support for large frames, just manually selectable) +New Features: +- Receive checksumming in hardware +- Performance optimizations + Some numbers (on two PII-400 machines, back-to-back): + netpipe: 300 MBit/sec, with large frames: 470 MBit/sec + ttcp: 38 MByte/sec, with large frames: 60 MByte/sec + ttcp (UDP send): 66 MByte/sec, with large frames: 106 MByte/sec +Known limitations: +- None + +VERSION 1.03 +Problems fixed: +- Unloading with "rmmod" caused segmentation fault (#10415) +- The link LED flickered from time to time, if no link was + established (#10402) +- Installation problems with RedHat 6.0 (#10409) +New Features: +- Connection state ouput at "network connection up" +Known limitations: +- None + +VERSION 1.02 +Problems fixed: +- Failed with multiple adapters +- Failed with Single Port adapters +- Startup string was only displayed if adapter found +- No link could be established on certain switches when the switches were + rebooted. (#10377) +Known limitations: +- Segmentation fault at "rmmod" with kernel 2.2.3 on some machines + +VERSION 1.01 +Problems fixed: +- Sensor status was not set back to 'ok' after 'warning/error'. (#10386) +Changes: +- improved parallelism in driver + +VERSION 1.00 +Known limitations: +- not tested with all kernel versions (I don't have that much time :-) +- only x86 version available (if you need others, ask for it) +- source code not completely available + +***End of Readme File*** + + diff --git a/Documentation/networking/tlan.txt b/Documentation/networking/tlan.txt index d3de6ccd1..4114be27a 100644 --- a/Documentation/networking/tlan.txt +++ b/Documentation/networking/tlan.txt @@ -1,16 +1,27 @@ -TLAN driver for Linux, version 1.0 -README -Well, I'm back. The TLAN driver seems pretty stable, so I'm -declaring this cycle of development finished, and calling the -driver 1.0. I will, of course continue to work on improving -the driver, and work towards a 2.0 release. +I haven't had any time to do anything for a long time, and this isn't +likely to change. So there's a driver here for anyone looking to +carry forward a project :) + +For those who are looking for help, I can't. I haven't looked at +a kernel since the early 2.0 series, so I won't know what's going on. +Your best chance at help would be joining the TLAN mailing list and +posting your question there. + +You can join by sending "subscribe tlan" in the body of an email to +majordomo@vuser.vu.union.edu. + +Thanks to those who have (and who will ;) put work in to keep the TLAN +driver working as the kernel moves on. James james@sovereign.org +TLAN driver for Linux, version 1.0 +README + I. Supported Devices. diff --git a/Documentation/pci.txt b/Documentation/pci.txt index 07572a696..7108532cb 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt @@ -4,7 +4,7 @@ "What should you avoid when writing PCI drivers" - by Martin Mares <mj@atrey.karlin.mff.cuni.cz> on 03-Nov-1999 + by Martin Mares <mj@suse.cz> on 21-Nov-1999 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -75,6 +75,12 @@ have been remapped by the kernel. See Documentation/IO-mapping.txt for how to access device memory. + You still need to call request_region() for I/O regions and request_mem_region() +for memory regions to make sure nobody else is using the same device. + + All interrupt handlers should be registered with SA_SHIRQ and use the devid +to map IRQs to devices (remember that all PCI interrupts are shared). + 5. Other interesting functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pci_find_slot() Find pci_dev corresponding to given bus and diff --git a/Documentation/sound/CMI8338 b/Documentation/sound/CMI8338 index 85dfd1c91..70423953c 100644 --- a/Documentation/sound/CMI8338 +++ b/Documentation/sound/CMI8338 @@ -1,5 +1,22 @@ Audio driver for CM8338/CM8738 chips by Chen-Li Tien + +HARDWARE SUPPORTED +================================================================================ +C-Media CMI8338 +C-Media CMI8738 +On-board C-Media chips + + +WHAT'S NEW +================================================================================ + + 1. Support modem interface for 8738. (select in kernel configuration) + 2. Enable S/PDIF-in to S/PDIF-out (S/PDIF loop). + 3. Enable 4 channels analog duplicate mode on 3 jack or 4 jack + configurateion. + + Be aware: C-Media Electronics Inc. is basically an IC design house, and whose development of software drivers is mainly for use by its OEM customers in their products. C-Media Electronics Inc. itself does not @@ -27,6 +44,23 @@ Audio driver for CM8338/CM8738 chips by Chen-Li Tien 7. To install the driver, enter 'modprobe cmpci'. -Bugs: +DRIVER PARAMETERS +================================================================================ + + Some functions for the cm8738 can be configured in Kernel Configuration + or modules parameters. Set these parameters to 1 to enable. + + spdif_loop: Enable S/PDIF loop, this route S/PDIF-in to S/PDIF-out + directly. + four_ch: Enable 4 channels mode, rear-out or line-in will output + the same as line-out. + rear_out: Enable this if you have independent rear-out jacket on + your sound card, otherwise line-in will be used as + rear-out. + modem: You will need to set this parameter if you want to use + the HSP modem. You need install the pctel.o, the modem + driver itself. -1. Real player cannot be run (the same as es1371). + (You will need to get the pctel driver (binary only) and the support for + this option from the CMI site. It is not included in the Linux kernel + proper as it is non-free). diff --git a/Documentation/video4linux/zr36120.txt b/Documentation/video4linux/zr36120.txt new file mode 100644 index 000000000..a028f2b54 --- /dev/null +++ b/Documentation/video4linux/zr36120.txt @@ -0,0 +1,159 @@ +Driver for Trust Computer Products Framegrabber, version 0.6.1 +------ --- ----- -------- -------- ------------ ------- - - - + +- ZORAN ------------------------------------------------------ + Author: Pauline Middelink <middelin@polyware.nl> + Date: 18 September 1999 +Version: 0.6.1 + +- Description ------------------------------------------------ + +Video4Linux compatible driver for an unknown brand framegrabber +(Sold in the Netherlands by TRUST Computer Products) and various +other zoran zr36120 based framegrabbers. + +The card contains a ZR36120 Multimedia PCI Interface and a Philips +SAA7110 Onechip Frontend videodecoder. There is also an DSP of +which I have forgotten the number, since i will never get that thing +to work without specs from the vendor itself. + +The SAA711x are capable of processing 6 different video inputs, +CVBS1..6 and Y1+C1, Y2+C2, Y3+C3. All in 50/60Hz, NTSC, PAL or +SECAM and delivering a YUV datastream. On my card the input +'CVBS-0' corresponds to channel CVBS2 and 'S-Video' to Y2+C2. + +I have some reports of other cards working with the mentioned +chip sets. For a list of other working cards please have a look +at the cards named in the tvcards struct in the beginning of +zr36120.c + +After some testing, I discovered that the carddesigner messed up +on the I2C interface. The Zoran chip includes 2 lines SDA and SCL +which (s)he connected reversely. So we have to clock on the SDA +and r/w data on the SCL pin. Life is fun... Each cardtype now has +a bit which signifies if you have a card with the same deficiancy. + +Oh, for the completness of this story I must mention that my +card delivers the VSYNC pulse of the SAA chip to GIRQ1, not +GIRQ0 as some other cards have. This is also incorperated in +the driver be clearing/setting the 'useirq1' bit in the tvcard +description. + +Another problems of contingious capturing data with a Zoran chip +is something nasty inside the chip. It effectively halves the +fps we ought to get... Here is the scenario: capturing frames +to memory is done in the so-called snapshot mode. In this mode +the Zoran stops after capturing a frame worth of data and wait +till the application set GRAB bit to indicate readyness for the +next frame. After detecting a set bit, the chip neetly waits +till the start of a frame, captures it and it goes back to off. +Smart ppl will notice the problem here. Its the waiting on the +_next_ frame each time we set the GRAB bit... Oh well, 12,5 fps +is still plenty fast for me. +-- update 28/7/1999 -- +Don't believe a word I just said... Proof is the output +of `streamer -t 300 -r 25 -f avi15 -o /dev/null` + ++--+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25 + +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- + syncer: done + writer: done +(note the /dev/null is prudent here, my system is not able to + grab /and/ write 25 fps to a file... gifts welcome :) ) +The technical reasoning follows: The zoran completed the last +frame, the VSYNC goes low, and GRAB is cleared. The interrupt +routine starts to work since its VSYNC driven, and again +activates the GRAB bit. A few ms later the VSYNC (re-)rises and +the zoran starts to work on a new and freshly broadcasted frame.... + +For pointers I used the specs of both chips. Below are the URLs: + http://www.zoran.com/ftp/download/devices/pci/ZR36120/36120data.pdf + http://www-us.semiconductor.philips.com/acrobat/datasheets/SAA_7110_A_1.pdf + +The documentation has very little on absolute numbers or timings +needed for the various modes/resolutions, but there are other +programs you can borrow those from. + +------ Install -------------------------------------------- +Read the file called TODO. Note its long list of limitations. + +Build a kernel with VIDEO4LINUX enabled. Activate the +BT848 driver; we need this because we have need for the +other modules (i2c and videodev) it enables. + +To install this software, extract it into a suitable directory. +Examine the makefile and change anything you don't like. Type "make". + +After making the modules check if you have the much needed +/dev/video devices. If not, execute the following 4 lines: + mknod /dev/video c 81 0 + mknod /dev/video1 c 81 1 + mknod /dev/video2 c 81 2 + mknod /dev/video3 c 81 3 + mknod /dev/video4 c 81 4 + +After makeing/checking the devices do: + modprobe i2c + modprobe videodev + modprobe saa7110 (optional) + modprobe saa7111 (optional) + modprobe tuner (optional) + insmod zoran cardtype=<n> + +<n> is the cardtype of the card you have. The cardnumber can +be found in the source of zr36120. Look for tvcards. If your +card is not there, please try if any other card gives some +response, and mail me if you got a working tvcard addition. + +PS. <TVCard editors behold!) + Dont forget to set video_input to the number of inputs + you defined in the video_mux part of the tvcard definition. + Its a common error to add a channel but not incrementing + video_input and getting angry with me/v4l/linux/linus :( + +You are now ready to test the framegrabber with your favorite +video4linux compatible tool + +------ Application ---------------------------------------- + +This device works with all Video4Linux compatible applications, +given the limitations in the TODO file. + +------ API ------------------------------------------------ + +This uses the V4L interface as of kernel release 2.1.116, and in +fact has not been tested on any lower version. There are a couple +of minor differences due to the fact that the amount of data returned +with each frame varies, and no doubt there are discrepancies due to my +misunderstanding of the API. I intend to convert this driver to the +new V4L2 API when it has stabilized more. + +------ Current state -------------------------------------- + +The driver is capable of overlaying a video image in screen, and +even capable of grabbing frames. It uses the BIGPHYSAREA patch +to allocate lots of large memory blocks when tis patch is +found in the kernel, but it doesn't need it. +The consequence is that, when loading the driver as a module, +the module may tell you it's out of memory, but 'free' says +otherwise. The reason is simple; the modules wants its memory +contingious, not fragmented, and after a long uptime there +probably isn't a fragment of memory large enough... + +The driver uses a double buffering scheme, which should realy +be an n-way buffer, depending on the size of allocated framebuffer +and the requested grab-size/format. +This current version also fixes a dead-lock situation during irq +time, which really, really froze my system... :) + +Good luck. + Pauline diff --git a/Documentation/vm/locking b/Documentation/vm/locking index 20921f6e4..54c8a6ce0 100644 --- a/Documentation/vm/locking +++ b/Documentation/vm/locking @@ -75,7 +75,11 @@ having the vmlist protection in this case. The vmlist lock nests with the inode i_shared_lock and the kmem cache c_spinlock spinlocks. This is okay, since code that holds i_shared_lock never asks for memory, and the kmem code asks for pages after dropping -c_spinlock. +c_spinlock. The vmlist lock also nests with pagecache_lock and +pagemap_lru_lock spinlocks, and no code asks for memory with these locks +held. + +The vmlist lock is grabbed while holding the kernel_lock spinning monitor. The vmlist lock can be a sleeping or spin lock. In either case, care must be taken that it is not held on entry to the driver methods, since @@ -85,3 +89,50 @@ The current implementation of the vmlist lock uses the page_table_lock, which is also the spinlock that page stealers use to protect changes to the victim process' ptes. Thus we have a reduction in the total number of locks. + +swap_list_lock/swap_device_lock +------------------------------- +The swap devices are chained in priority order from the "swap_list" header. +The "swap_list" is used for the round-robin swaphandle allocation strategy. +The #free swaphandles is maintained in "nr_swap_pages". These two together +are protected by the swap_list_lock. + +The swap_device_lock, which is per swap device, protects the reference +counts on the corresponding swaphandles, maintained in the "swap_map" +array, and the "highest_bit" and "lowest_bit" fields. + +Both of these are spinlocks, and are never acquired from intr level. The +locking heirarchy is swap_list_lock -> swap_device_lock. + +To prevent races between swap space deletion or async readahead swapins +deciding whether a swap handle is being used, ie worthy of being read in +from disk, and an unmap -> swap_free making the handle unused, the swap +delete and readahead code grabs a temp reference on the swaphandle to +prevent warning messages from swap_duplicate <- read_swap_cache_async. + +Swap cache locking +------------------ +Pages are added into the swap cache with kernel_lock held, to make sure +that multiple pages are not being added (and hence lost) by associating +all of them with the same swaphandle. + +Pages are guaranteed not to be removed from the scache if the page is +"shared": ie, other processes hold reference on the page or the associated +swap handle. The only code that does not follow this rule is shrink_mmap, +which deletes pages from the swap cache if no process has a reference on +the page (multiple processes might have references on the corresponding +swap handle though). lookup_swap_cache() races with shrink_mmap, when +establishing a reference on a scache page, so, it must check whether the +page it located is still in the swapcache, or shrink_mmap deleted it. +(This race is due to the fact that shrink_mmap looks at the page ref +count with pagecache_lock, but then drops pagecache_lock before deleting +the page from the scache). + +do_wp_page and do_swap_page have MP races in them while trying to figure +out whether a page is "shared", by looking at the page_count + swap_count. +To preserve the sum of the counts, the page lock _must_ be acquired before +calling is_page_shared (else processes might switch their swap_count refs +to the page count refs, after the page count ref has been snapshotted). + +Swap device deletion code currently breaks all the scache assumptions, +since it grabs neither mmap_sem nor page_table_lock. diff --git a/Documentation/vm/numa b/Documentation/vm/numa new file mode 100644 index 000000000..21a3442b7 --- /dev/null +++ b/Documentation/vm/numa @@ -0,0 +1,41 @@ +Started Nov 1999 by Kanoj Sarcar <kanoj@sgi.com> + +The intent of this file is to have an uptodate, running commentary +from different people about NUMA specific code in the Linux vm. + +What is NUMA? It is an architecture where the memory access times +for different regions of memory from a given processor varies +according to the "distance" of the memory region from the processor. +Each region of memory to which access times are the same from any +cpu, is called a node. On such architectures, it is beneficial if +the kernel tries to minimize inter node communications. Schemes +for this range from kernel text and read-only data replication +across nodes, and trying to house all the data structures that +key components of the kernel need on memory on that node. + +Currently, all the numa support is to provide efficient handling +of widely discontiguous physical memory, so architectures which +are not NUMA but can have huge holes in the physical address space +can use the same code. All this code is bracketed by CONFIG_DISCONTIGMEM. + +The initial port includes NUMAizing the bootmem allocator code by +encapsulating all the pieces of information into a bootmem_data_t +structure. Node specific calls have been added to the allocator. +In theory, any platform which uses the bootmem allocator should +be able to to put the bootmem and mem_map data structures anywhere +it deems best. + +Each node's page allocation data structures have also been encapsulated +into a pg_data_t. The bootmem_data_t is just one part of this. To +make the code look uniform between NUMA and regular UMA platforms, +UMA platforms have a statically allocated pg_data_t too (contig_page_data). +For the sake of uniformity, the variable "numnodes" is also defined +for all platforms. As we run benchmarks, we might decide to NUMAize +more variables like low_on_memory, nr_free_pages etc into the pg_data_t. + +The NUMA aware page allocation code currently tries to allocate pages +from different nodes in a round robin manner. This will be changed to +do concentratic circle search, starting from current node, once the +NUMA port achieves more maturity. The call alloc_pages_node has been +added, so that drivers can make the call and not worry about whether +it is running on a NUMA or UMA platform. |