Commit 3c99713c authored by Linus Torvalds's avatar Linus Torvalds

Import 2.1.88

parent bb62d5cb
......@@ -836,6 +836,12 @@ S: Erbacher Strasse 6
S: D-64283 Darmstadt
S: Germany
N: Russell King
E: rmk@arm.uk.linux.org
D: Linux/arm integrater, maintainer & hacker
S: Burgh Heath, Tadworth, Surrey.
S: England
N: Olaf Kirch
E: okir@monad.swb.de
D: Author of the Linux Network Administrators' Guide
......
......@@ -4,7 +4,7 @@
% pages to print... :-) If you're actually putting this in print, you
% may wish to change these.
%
% $Id: devices.tex,v 1.4 1997/12/05 01:34:21 hpa Exp $
% $Id: devices.tex,v 1.7 1998/02/18 04:07:45 hpa Exp $
%
\oddsidemargin=0in
\textwidth=6.5in
......@@ -50,7 +50,7 @@ foo \kill}%
%
\title{{\bf Linux Allocated Devices}}
\author{Maintained by H. Peter Anvin $<$hpa@zytor.com$>$}
\date{Last revised: December 4, 1997}
\date{Last revised: February 17, 1998}
\maketitle
%
\noindent
......@@ -199,6 +199,7 @@ Your cooperation is appreciated.
\major{47}{}{char }{Comtrol Rocketport serial card -- alternate devices}
\major{ }{}{block}{Reserved for parallel port ATAPI disk}
\major{48}{}{char }{SDL RISCom serial card}
\major{48}{--55}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\major{49}{}{char }{SDL RISCom serial card -- alternate devices}
\major{50}{}{char }{Reserved for GLINT}
\major{51}{}{char }{Baycom radio modem}
......@@ -243,8 +244,10 @@ Your cooperation is appreciated.
\major{93}{}{char }{IBM Smart Capture Card frame grabber}
\major{94}{}{char }{miroVIDEO DC10/30 capture/playback device}
\major{95}{}{char }{IP Filter}
\major{96}{}{char }{Reserved for parallel port ATAPI tape}
\major{97}{--119}{}{Unallocated}
\major{96}{}{char }{Parallel port ATAPI tape}
\major{97}{}{char }{Parallel port generic ATAPI interface}
\major{98}{}{char }{Control and Measurement Device (comedi)}
\major{99}{--119}{}{Unallocated}
\major{120}{--127}{}{Local/experimental use}
\major{128}{--239}{}{Unallocated}
\major{240}{--254}{}{Local/experimental use}
......@@ -299,6 +302,11 @@ the 1st through 16th series of 16 pseudo-ttys each, and
the position within the series.
\end{itemize}
\noindent
In the future, it is likely that the PTY master multiplex ({\file
/dev/ptmx}) device will be used to acquire a PTY on demand. If so,
the actual PTY masters will be unnamed devices.
\begin{devicelist}
\major{}{}{block}{Floppy disks}
\minor{0}{/dev/fd0}{Controller 1, drive 1 autodetect}
......@@ -325,7 +333,7 @@ the position within the series.
\minor{ 72}{/dev/fd?h1494}{5.25\tum\ 1494K in a 1200K drive}
\minor{ 92}{/dev/fd?h1600}{5.25\tum\ 1600K in a 1200K drive\1}
\minor{}{}{}
\minor{ 12}{/dev/fd?u360}{3.5\tum\ \num{4}{360}K Double Density}
\minor{ 12}{/dev/fd?u360}{3.5\tum\ \num{4}{360}K Double Density\2}
\minor{ 16}{/dev/fd?u720}{3.5\tum\ \num{4}{720}K Double Density\1}
\minor{120}{/dev/fd?u800}{3.5\tum\ \num{4}{800}K Double Density\2}
\minor{ 52}{/dev/fd?u820}{3.5\tum\ \num{4}{820}K Double Density}
......@@ -366,7 +374,13 @@ these devices.
\minor{1}{/dev/ttyp1}{Second PTY slave}
\minordots
\minor{255}{/dev/ttyef}{256th PTY slave}
\\
\end{devicelist}
\noindent
In the future, Linux may adopt the Unix98 naming scheme {\file
/dev/pts/0}, {\file /dev/pts/1}, ...
\begin{devicelist}
\major{}{}{block}{First MFM, RLL and IDE hard disk/CD-ROM interface}
\minor{0}{/dev/hda}{Master: whole disk (or CD-ROM)}
\minor{64}{/dev/hdb}{Slave: whole disk (or CD-ROM)}
......@@ -412,6 +426,7 @@ Linux. To ensure proper operation, do not mix old and new PTY devices.
\major{ 5}{}{char }{Alternate TTY devices}
\minor{0}{/dev/tty}{Current TTY device}
\minor{1}{/dev/console}{System console}
\minor{2}{/dev/ptmx}{PTY master multiplex}
\minor{64}{/dev/cua0}{Callout device corresponding to {\file ttyS0}}
\minordots
\minor{127}{/dev/cua63}{Callout device corresponding to {\file ttyS63}}
......@@ -1087,8 +1102,10 @@ networking device.
\end{devicelist}
\noindent
Partitions are handled the same way as for IDE disks (see major number
3).
This device is obsolete and will be removed in a future version of
Linux. It has been replaced with the parallel port IDE disk driver at
major number 45. Partitions are handled the same way as for IDE disks
(see major number 3).
\begin{devicelist}
\major{41}{}{char }{Yet Another Micro Monitor}
......@@ -1098,6 +1115,11 @@ Partitions are handled the same way as for IDE disks (see major number
\minor{0}{/dev/bpcd}{BackPack CD-ROM}
\end{devicelist}
\noindent
This device is obsolete and will be removed in a future version of
Linux. It has been replaced with the parallel port ATAPI CD-ROM
driver at major number 46.
\begin{devicelist}
\major{42}{}{}{Demo/sample use}
\end{devicelist}
......@@ -1163,13 +1185,30 @@ disk (same as SCSI.)
\minordots
\minor{191}{/dev/ippp63}{64th SyncPPP device}
\minor{255}{/dev/isdninfo}{ISDN monitor interface}
\\
\major{ }{}{block}{Parallel port IDE disk devices}
\minor{0}{/dev/pda}{First parallel port IDE disk}
\minor{16}{/dev/pdb}{Second parallel port IDE disk}
\minor{32}{/dev/pdc}{Third parallel port IDE disk}
\minor{48}{/dev/pdd}{Fourth parallel port IDE disk}
\end{devicelist}
\noindent
Partitions are handled in the same way as for IDE disks (see major
number 3) except that the partition limit is 15 rather than 63 per
disk.
\begin{devicelist}
\major{46}{}{char }{Comtrol Rocketport serial card}
\minor{0}{/dev/ttyR0}{First Rocketport port}
\minor{1}{/dev/ttyR1}{Second Rocketport port}
\minordots
\\
\major{ }{}{block}{Parallel port ATAPI CD-ROM devices}
\minor{0}{/dev/pcd0}{First parallel port ATAPI CD-ROM}
\minor{1}{/dev/pcd1}{Second parallel port ATAPI CD-ROM}
\minor{2}{/dev/pcd2}{Third parallel port ATAPI CD-ROM}
\minor{3}{/dev/pcd3}{Fourth parallel port ATAPI CD-ROM}
\end{devicelist}
\begin{devicelist}
......@@ -1177,13 +1216,25 @@ disk (same as SCSI.)
\minor{0}{/dev/cur0}{Callout device corresponding to {\file ttyR0}}
\minor{1}{/dev/cur1}{Callout device corresponding to {\file ttyR1}}
\minordots
\\
\major{ }{}{block}{Parallel port ATAPI disk devices}
\minor{0}{/dev/pf0}{First parallel port ATAPI disk}
\minor{1}{/dev/pf1}{Second parallel port ATAPI disk}
\minor{2}{/dev/pf2}{Third parallel port ATAPI disk}
\minor{3}{/dev/pf3}{Fourth parallel port ATAPI disk}
\end{devicelist}
\noindent
This driver is intended for floppy disks and similar devices and hence
does not support partitioning.
\begin{devicelist}
\major{48}{}{char }{SDL RISCom serial card}
\minor{0}{/dev/ttyL0}{First RISCom port}
\minor{1}{/dev/ttyL1}{Second RISCom port}
\minordots
\\
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
......@@ -1191,10 +1242,14 @@ disk (same as SCSI.)
\minor{0}{/dev/cul0}{Callout device corresponding to {\file ttyL0}}
\minor{1}{/dev/cul1}{Callout device corresponding to {\file ttyL1}}
\minordots
\\
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
\major{50}{}{char}{Reserved for GLINT}
\\
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
......@@ -1202,6 +1257,8 @@ disk (same as SCSI.)
\minor{0}{/dev/bc0}{First Baycom radio modem}
\minor{1}{/dev/bc1}{Second Baycom radio modem}
\minordots
\\
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
......@@ -1210,6 +1267,8 @@ disk (same as SCSI.)
\minor{1}{/dev/dcbri1}{Second DataComm card}
\minor{2}{/dev/dcbri2}{Third DataComm card}
\minor{3}{/dev/dcbri3}{Fourth DataComm card}
\\
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
......@@ -1229,6 +1288,10 @@ microcontrollers via Background Debug Mode by use of a Parallel Port
interface. PD is the Motorola Public Domain Interface and ICD is the
commercial interface by P\&E.
\begin{devicelist}
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
\major{54}{}{char }{Electrocardiognosis Holter serial card}
\minor{0}{/dev/holter0}{First Holter port}
......@@ -1241,9 +1304,15 @@ A custom serial card used by Electrocardiognosis SRL
$<$mseritan@ottonel.pub.ro$>$ to transfer data from Holter 24-hour
heart monitoring equipment.
\begin{devicelist}
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
\major{55}{}{char }{DSP56001 digital signal processor}
\minor{0}{/dev/dsp56k}{First DSP56001}
\\
\major{ }{}{block}{Reserved for Mylex DAC960 PCI RAID Controller}
\end{devicelist}
\begin{devicelist}
......@@ -1582,7 +1651,41 @@ on {\url http://home.pages.de/~videotext/\/}.
\end{devicelist}
\begin{devicelist}
\major{96}{--119}{}{Unallocated}
\major{96}{}{char }{Parallel port ATAPI tape devices}
\minor{0}{/dev/pt0}{First parallel port ATAPI tape}
\minor{1}{/dev/pt1}{Second parallel port ATAPI tape}
\minor{2}{/dev/pt2}{Third parallel port ATAPI tape}
\minor{3}{/dev/pt3}{Fourth parallel port ATAPI tape}
\minor{128}{/dev/npt0}{First parallel port ATAPI tape, no rewind}
\minor{129}{/dev/npt1}{Second parallel port ATAPI tape, no rewind}
\minor{130}{/dev/npt2}{Third parallel port ATAPI tape, no rewind}
\minor{131}{/dev/npt3}{Fourth parallel port ATAPI tape, no rewind}
\end{devicelist}
\begin{devicelist}
\major{97}{}{char }{Parallel port generic ATAPI interface}
\minor{0}{/dev/pg0}{First parallel port ATAPI device}
\minor{1}{/dev/pg1}{Second parallel port ATAPI device}
\minor{2}{/dev/pg2}{Third parallel port ATAPI device}
\minor{3}{/dev/pg3}{Fourth parallel port ATAPI device}
\end{devicelist}
\noindent
These devices support the same API as the generic SCSI devices.
\begin{devicelist}
\major{98}{}{char }{Control and Mesurement Device (comedi)}
\minor{0}{/dev/comedi0}{First comedi device}
\minor{1}{/dev/comedi1}{Second comedi device}
\minordots
\end{devicelist}
\noindent
See {\url http://stm.lbl.gov/comedi/} or {\url
http://www.llp.fu-berlin.de/}.
\begin{devicelist}
\major{99}{--119}{}{Unallocated}
\end{devicelist}
\begin{devicelist}
......
LINUX ALLOCATED DEVICES
Maintained by H. Peter Anvin <hpa@zytor.com>
Last revised: December 4, 1997
Last revised: February 17, 1998
This list is the Linux Device List, the official registry of allocated
device numbers and /dev directory nodes for the Linux operating
......@@ -91,16 +91,17 @@ Your cooperation is appreciated.
the 1st through 16th series of 16 pseudo-ttys each, and
* the fifth letter is one of 0123456789abcdef indicating
the position within the series.
In the future, it is likely that the PTY master
multiplex (/dev/ptmx) device will be used to acquire a
PTY on demand. If so, the actual PTY masters will be
unnamed devices.
block Floppy disks
0 = /dev/fd0 Controller 1, drive 1 autodetect
1 = /dev/fd1 Controller 1, drive 2 autodetect
2 = /dev/fd2 Controller 1, drive 3 autodetect
3 = /dev/fd3 Controller 1, drive 4 autodetect
128 = /dev/fd4 Controller 2, drive 1 autodetect
129 = /dev/fd5 Controller 2, drive 2 autodetect
130 = /dev/fd6 Controller 2, drive 3 autodetect
131 = /dev/fd7 Controller 2, drive 4 autodetect
0 = /dev/fd0 First floppy disk autodetect
1 = /dev/fd1 Second floppy disk autodetect
2 = /dev/fd2 Third floppy disk autodetect
3 = /dev/fd3 Fourth floppy disk autodetect
To specify format, add to the autodetect device number:
0 = /dev/fd? Autodetect format
......@@ -116,9 +117,10 @@ Your cooperation is appreciated.
72 = /dev/fd?h1494 5.25" 1494K in a 1200K drive
92 = /dev/fd?h1600 5.25" 1600K in a 1200K drive(1)
12 = /dev/fd?u360 3.5" 360K Double Density
120 = /dev/fd?u800 3.5" 800K Double Density(1)
52 = /dev/fd?u820 3.5" 820K Double Density(2)
12 = /dev/fd?u360 3.5" 360K Double Density(2)
16 = /dev/fd?u720 3.5" 720K Double Density(1)
120 = /dev/fd?u800 3.5" 800K Double Density(2)
52 = /dev/fd?u820 3.5" 820K Double Density
68 = /dev/fd?u830 3.5" 830K Double Density
84 = /dev/fd?u1040 3.5" 1040K Double Density(1)
88 = /dev/fd?u1120 3.5" 1120K Double Density(1)
......@@ -152,12 +154,15 @@ Your cooperation is appreciated.
0 = /dev/ttyp0 First PTY slave
1 = /dev/ttyp1 Second PTY slave
...
256 = /dev/ttyef 256th PTY slave
255 = /dev/ttyef 256th PTY slave
In the future, Linux may adopt the Unix98 naming
scheme (/dev/pts/0, /dev/pts/1, ...)
block First MFM, RLL and IDE hard disk/CD-ROM interface
0 = /dev/hda Master: whole disk (or CD-ROM)
64 = /dev/hdb Slave: whole disk (or CD-ROM)
For partitions, add to the whole disk device number:
0 = /dev/hd? Whole disk
1 = /dev/hd?1 First partition
......@@ -169,7 +174,7 @@ Your cooperation is appreciated.
partitions, and 5 and above are logical partitions.
Other versions of Linux use partitioning schemes
appropriate to their respective architectures.
4 char TTY devices
0 = /dev/tty0 Current virtual console
......@@ -196,6 +201,7 @@ Your cooperation is appreciated.
5 char Alternate TTY devices
0 = /dev/tty Current TTY device
1 = /dev/console System console
2 = /dev/ptmx PTY master multiplex
64 = /dev/cua0 Callout device corresponding to ttyS0
...
127 = /dev/cua63 Callout device corresponding to ttyS63
......@@ -742,6 +748,9 @@ Your cooperation is appreciated.
block Syquest EZ135 parallel port removable drive
0 = /dev/eza Parallel EZ135 drive, whole disk
This device is obsolete and will be removed in a
future version of Linux. It has been replaced with
the parallel port IDE disk driver at major number 45.
Partitions are handled in the same way as IDE disks
(see major number 3).
......@@ -750,6 +759,10 @@ Your cooperation is appreciated.
block MicroSolutions BackPack parallel port CD-ROM
0 = /dev/bpcd BackPack CD-ROM
This device is obsolete and will be removed in a
future version of Linux. It has been replaced with
the parallel port ATAPI CD-ROM driver at major number 46.
42 Demo/sample use
This number is intended for use in sample code, as
......@@ -807,39 +820,66 @@ Your cooperation is appreciated.
191 = /dev/ippp63 64th SyncPPP device
255 = /dev/isdninfo ISDN monitor interface
block Parallel port IDE disk devices
0 = /dev/pda First parallel port IDE disk
16 = /dev/pdb Second parallel port IDE disk
32 = /dev/pdc Third parallel port IDE disk
48 = /dev/pdd Fourth parallel port IDE disk
Partitions are handled in the same way as for IDE
disks (see major number 3) except that the partition
limit is 15 rather than 63 per disk.
46 char Comtrol Rocketport serial card
0 = /dev/ttyR0 First Rocketport port
1 = /dev/ttyR1 Second Rocketport port
...
block Parallel port ATAPI CD-ROM devices
0 = /dev/pcd0 First parallel port ATAPI CD-ROM
1 = /dev/pcd1 Second parallel port ATAPI CD-ROM
2 = /dev/pcd2 Third parallel port ATAPI CD-ROM
3 = /dev/pcd3 Fourth parallel port ATAPI CD-ROM
47 char Comtrol Rocketport serial card - alternate devices
0 = /dev/cur0 Callout device corresponding to ttyR0
1 = /dev/cur1 Callout device corresponding to ttyR1
...
block Parallel port ATAPI disk devices
0 = /dev/pf0 First parallel port ATAPI disk
1 = /dev/pf1 Second parallel port ATAPI disk
2 = /dev/pf2 Third parallel port ATAPI disk
3 = /dev/pf3 Fourth parallel port ATAPI disk
This driver is intended for floppy disks and similar
devices and hence does not support partitioning.
48 char SDL RISCom serial card
0 = /dev/ttyL0 First RISCom port
1 = /dev/ttyL1 Second RISCom port
...
block Reserved for Mylex DAC960 PCI RAID controller
49 char SDL RISCom serial card - alternate devices
0 = /dev/cul0 Callout device corresponding to ttyL0
1 = /dev/cul1 Callout device corresponding to ttyL1
...
block Reserved for Mylex DAC960 PCI RAID controller
50 char Reserved for GLINT
block Reserved for Mylex DAC960 PCI RAID controller
51 char Baycom radio modem
0 = /dev/bc0 First Baycom radio modem
1 = /dev/bc1 Second Baycom radio modem
...
block Reserved for Mylex DAC960 PCI RAID controller
52 char Spellcaster DataComm/BRI ISDN card
0 = /dev/dcbri0 First DataComm card
1 = /dev/dcbri1 Second DataComm card
2 = /dev/dcbri2 Third DataComm card
3 = /dev/dcbri3 Fourth DataComm card
block Reserved for Mylex DAC960 PCI RAID controller
53 char BDM interface for remote debugging MC683xx microcontrollers
0 = /dev/pd_bdm0 PD BDM interface on lp0
......@@ -855,6 +895,8 @@ Your cooperation is appreciated.
Domain Interface and ICD is the commercial interface
by P&E.
block Reserved for Mylex DAC960 PCI RAID controller
54 char Electrocardiognosis Holter serial card
0 = /dev/holter0 First Holter port
1 = /dev/holter1 Second Holter port
......@@ -864,8 +906,11 @@ Your cooperation is appreciated.
<mseritan@ottonel.pub.ro> to transfer data from Holter
24-hour heart monitoring equipment.
block Reserved for Mylex DAC960 PCI RAID controller
55 char DSP56001 digital signal processor
0 = /dev/dsp56k First DSP56001
block Reserved for Mylex DAC960 PCI RAID controller
56 char Apple Desktop Bus
0 = /dev/adb ADB bus control
......@@ -1120,7 +1165,33 @@ Your cooperation is appreciated.
2 = /dev/ipstate State information log file
3 = /dev/ipauth Authentication control device/log file
96-119 UNALLOCATED
96 char Parallel port ATAPI tape devices
0 = /dev/pt0 First parallel port ATAPI tape
1 = /dev/pt1 Second parallel port ATAPI tape
2 = /dev/pt2 Third parallel port ATAPI tape
3 = /dev/pt3 Fourth parallel port ATAPI tape
128 = /dev/npt0 First p.p. ATAPI tape, no rewind
129 = /dev/npt1 Second p.p. ATAPI tape, no rewind
130 = /dev/npt2 Third p.p. ATAPI tape, no rewind
131 = /dev/npt3 Fourth p.p. ATAPI tape, no rewind
97 char Parallel port generic ATAPI interface
0 = /dev/pg0 First parallel port ATAPI device
1 = /dev/pg1 Second parallel port ATAPI device
2 = /dev/pg2 Third parallel port ATAPI device
3 = /dev/pg3 Fourth parallel port ATAPI device
These devices support the same API as the generic SCSI
devices.
98 char Control and Measurement Device (comedi)
0 = /dev/comedi0 First comedi device
1 = /dev/comedi1 Second comedi device
...
See http://stm.lbl.gov/comedi or http://www.llp.fu-berlin.de/.
99-119 UNALLOCATED
120-127 LOCAL/EXPERIMENTAL USE
......
Ioctl Numbers
28 Jan 1998
18 Feb 1998
Michael Chastain
<mec@shout.net>
......@@ -99,6 +99,8 @@ Code Seq# Include File Comments
'n' all linux/ncp_fs.h
'p' 00-3F linux/mc146818rtc.h
'p' 40-7F linux/nvram.h
'p' 80-9F user-space parport in development:
<tim@cyberelk.demon.co.uk>
'r' all linux/msdos_fs.h
's' all linux/cdk.h
't' 00-7F linux/if_ppp.h
......
VERSION = 2
PATCHLEVEL = 1
SUBLEVEL = 87
SUBLEVEL = 88
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/)
......@@ -402,7 +402,7 @@ endif
depend dep: dep-files $(MODVERFILE)
checkconfig:
perl -w scripts/checkconfig.pl `find $(FINDHPATH) $(SUBDIRS) -name '*.[hcS]' -print | sort`
perl -w scripts/checkconfig.pl `find * -name '*.[hcS]' -print | sort`
ifdef CONFIGURATION
..$(CONFIGURATION):
......
......@@ -423,6 +423,16 @@ static inline void ack_irq(int irq)
#endif /* CONFIG_ALPHA_SABLE */
}
int check_irq(unsigned int irq)
{
struct irqaction **p;
p = irq_action + irq;
if (*p == NULL)
return 0;
return -EBUSY;
}
int request_irq(unsigned int irq,
void (*handler)(int, void *, struct pt_regs *),
unsigned long irqflags,
......
......@@ -8,7 +8,6 @@
*
*/
#include <linux/kernel.h>
#include <linux/config.h>
#include <linux/types.h>
#include <linux/bios32.h>
#include <linux/pci.h>
......
......@@ -9,6 +9,7 @@
* Note: there is a StrongARM bug in the STMIA rn, {regs}^ instruction that causes
* it to save wrong values... Be aware!
*/
#include <linux/config.h> /* for CONFIG_ARCH_EBSA110 /*
#include <linux/autoconf.h>
#include <linux/linkage.h>
......
......@@ -5,7 +5,6 @@
*
* 26-bit kernel startup code
*/
#include <linux/config.h>
#include <linux/linkage.h>
.text
......
......@@ -15,6 +15,7 @@
* IRQ's are in fact implemented a bit like signal handlers for the kernel.
* Naturally it's not a 1:1 relation, but there are similarities.
*/
#include <linux/config.h> /* for CONFIG_DEBUG_ERRORS */
#include <linux/ptrace.h>
#include <linux/errno.h>
#include <linux/kernel_stat.h>
......
......@@ -4,6 +4,7 @@
* Copyright (C) 1995, 1996 Russell King
*/
#include <linux/config.h> /* for CONFIG_CPU_ARM6 and CONFIG_CPU_SA110 */
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/smp.h>
......
......@@ -3,6 +3,7 @@
*
* Copyright (C) 1995, 1996 Russell King
*/
#include <linux/config.h> /* for CONFIG_CPU_ARM2 and CONFIG_CPU_ARM3 */
#include <linux/autoconf.h>
#include <linux/linkage.h>
#include <asm/assembler.h>
......
......@@ -6,7 +6,6 @@
* 07/06/96: Now support tasks running in SVC mode.
*/
#include <linux/linkage.h>
#include <linux/config.h>
#include <asm/assembler.h>
.text
......
......@@ -22,6 +22,7 @@
! read errors will result in a unbreakable loop. Reboot by hand. It
! loads pretty fast by getting whole tracks at a time whenever possible.
#include <linux/config.h> /* for CONFIG_ROOT_RDONLY */
#include <asm/boot.h>
.text
......
......@@ -28,7 +28,6 @@
.text
#define __ASSEMBLY__
#include <linux/config.h>
#include <linux/linkage.h>
#include <asm/segment.h>
......
......@@ -410,8 +410,8 @@ no_psmouse:
mov [68],ebx ! BIOS entry point offset
mov [72],cx ! BIOS 16 bit code segment
mov [74],dx ! BIOS data segment
mov [78],si ! BIOS code segment length
mov [80],di ! BIOS data segment length
mov [78],esi ! BIOS code segment length
mov [82],di ! BIOS data segment length
jmp done_apm_bios
no_32_apm_bios:
......
......@@ -33,7 +33,6 @@
#include <sys/sysmacros.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/config.h>
#include <asm/boot.h>
typedef unsigned char byte;
......
......@@ -5,6 +5,8 @@
! Based on the original setup.S code (C) Linus Torvalds and Mats Anderson
!
#include <linux/config.h> /* for CONFIG_VIDEO_* */
! Enable autodetection of SVGA adapters and modes. If you really need this
! feature, drop me a mail as I think of removing it some day...
#undef CONFIG_VIDEO_SVGA
......
......@@ -15,7 +15,6 @@
* Naturally it's not a 1:1 relation, but there are similarities.
*/
#include <linux/config.h>
#include <linux/ptrace.h>
#include <linux/errno.h>
#include <linux/kernel_stat.h>
......
......@@ -2,6 +2,7 @@
/* By Ross Biro 1/23/92 */
/* edited by Linus Torvalds */
#include <linux/config.h> /* for CONFIG_MATH_EMULATION */
#include <linux/head.h>
#include <linux/kernel.h>
#include <linux/sched.h>
......
......@@ -878,8 +878,14 @@ __initfunc(static void do_boot_cpu(int i))
else
printk("Not responding.\n");
}
}
SMP_PRINTK(("CPU has booted.\n"));
}
else
{
__cpu_logical_map[cpucount] = -1;
cpu_number_map[i] = -1;
cpucount--;
}
swapper_pg_dir[0]=maincfg;
local_flush_tlb();
......@@ -1031,9 +1037,11 @@ __initfunc(void smp_boot_cpus(void))
* Make sure we unmap all failed CPUs
*/
if (cpu_number_map[i] == -1)
if (cpu_number_map[i] == -1 && (cpu_present_map & (1 << i))) {
printk("CPU #%d not responding. Removing from cpu_present_map.\n",i);
cpu_present_map &= ~(1 << i);
}
}
}
/*
* Cleanup possible dangling ends...
......
......@@ -15,7 +15,6 @@
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/ptrace.h>
#include <linux/config.h>
#include <linux/timer.h>
#include <linux/mm.h>
#include <linux/smp.h>
......
#include <linux/config.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/zorro.h>
......
#include <linux/config.h>
#include <linux/module.h>
#include <asm/ptrace.h>
#include <asm/traps.h>
......
......@@ -10,7 +10,6 @@
* for more details.
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/mc146818rtc.h>
#include <linux/kd.h>
......
#include <linux/config.h>
#include <linux/module.h>
#include <linux/linkage.h>
#include <linux/sched.h>
......
......@@ -7,6 +7,7 @@
* Most of the stuff is located in the machine specific files.
*/
#include <linux/config.h> /* CONFIG_HEARTBEAT */
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
......
......@@ -10,7 +10,6 @@
* misc. keyboard stuff (everything not in adb-bus.c or keyb_m68k.c)
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/kd.h>
......
......@@ -6,7 +6,6 @@
* via them as are assorted bits and bobs - eg rtc, adb.
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/mm.h>
......
......@@ -11,7 +11,6 @@
*
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/errno.h>
......
......@@ -23,7 +23,6 @@
#include <linux/unistd.h>
#include <linux/ptrace.h>
#include <linux/malloc.h>
#include <linux/config.h>
#include <asm/pgtable.h>
#include <asm/uaccess.h>
......
......@@ -7,7 +7,6 @@
* The motherboard routes/maps will disappear shortly. -- Cort
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/bios32.h>
#include <linux/pci.h>
......
......@@ -30,7 +30,6 @@
#include <linux/malloc.h>
#include <linux/user.h>
#include <linux/elf.h>
#include <linux/config.h>
#include <linux/elf.h>
#include <asm/pgtable.h>
......
......@@ -7,7 +7,6 @@
* Improved _greatly_ and rewritten by Gabriel Paubert (paubert@iram.es)
*/
#if 0
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
......
......@@ -6,7 +6,6 @@
* Paul Mackerras' version and mine for PReP and Pmac.
*/
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
......
......@@ -4,7 +4,6 @@
* from linux/arch/i386/mm/extable.c
*/
#include <linux/config.h>
#include <linux/module.h>
#include <asm/uaccess.h>
......
......@@ -11,7 +11,6 @@
* based on srmmu.c
*/
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/malloc.h>
......
......@@ -8,7 +8,6 @@
/* routines to control the AP1000 bif interface. This is the interface
used to talk to the front end processor */
#include <linux/config.h>
#include <linux/sched.h>
#include <asm/ap1000/apservice.h>
#include <asm/ap1000/apreg.h>
......
......@@ -10,7 +10,6 @@
* and Memory Controller (MC+).
*
*/
#include <linux/config.h>
#define _APLIB_
#include <asm/ap1000/apreg.h>
#include <linux/mm.h>
......
......@@ -7,6 +7,7 @@
*/
/* routines to control the AP1000 timer chip */
#include <linux/config.h> /* for CONFIG_PROFILE */
#include <linux/time.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
......
......@@ -3,6 +3,7 @@
* Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
*/
#include <linux/config.h> /* for CONFIG_PROFILE */
#include <asm/head.h>
#include <linux/kernel.h>
......
Drivers for the ACORN "podule" ARM specific bus.
#
# Block device driver configuration
#
mainmenu_option next_comment
comment 'Acorn-Specific floppy, IDE, and other block devices'
tristate 'Normal floppy disk support' CONFIG_BLK_DEV_FD
bool ' Support expansion card IDE interfaces' CONFIG_BLK_DEV_IDE_CARDS
if [ "$CONFIG_BLK_DEV_IDE_CARDS" = "y" ]; then
dep_tristate ' ICS IDE interface support' CONFIG_BLK_DEV_IDE_ICSIDE $CONFIG_BLK_DEV_IDE
dep_tristate ' RapIDE interface support' CONFIG_BLK_DEV_IDE_RAPIDE $CONFIG_BLK_DEV_IDE
fi
tristate 'MFM harddisk support' CONFIG_BLK_DEV_MFM
if [ "$CONFIG_BLK_DEV_MFM" != "n" ]; then
bool ' Autodetect hard drive geometry' CONFIG_BLK_DEV_MFM_AUTODETECT
fi
bool 'ADFS partition support' CONFIG_BLK_DEV_PART
endmenu
#
# Makefile for the Acorn block device drivers.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now inherited from the
# parent makefile.
#
L_TARGET := acorn-block.a
L_OBJS :=
M_OBJS :=
MOD_LIST_NAME := ACORN_BLOCK_MODULES
ifeq ($(CONFIG_ARCH_ARC),y)
ifeq ($(CONFIG_BLK_DEV_FD),y)
L_OBJS += fd1772.o fd1772dma.o
else
ifeq ($(CONFIG_BLK_DEV_FD),m)
M_OBJS += fd1772_mod.o
endif
endif
endif
ifeq ($(CONFIG_BLK_DEV_IDE_ICSIDE),y)
L_OBJS += ide-ics.o
else
ifeq ($(CONFIG_BLK_DEV_IDE_ICSIDE),m)
M_OBJS += ide-ics.o
endif
endif
ifeq ($(CONFIG_BLK_DEV_IDE_RAPIDE),y)
L_OBJS += ide-rapide.o
else
ifeq ($(CONFIG_BLK_DEV_IDE_RAPIDE),m)
M_OBJS += ide-rapide.o
endif
endif
ifeq ($(CONFIG_BLK_DEV_MFM),y)
L_OBJS += mfmhd.o mfm.o
else
ifeq ($(CONFIG_BLK_DEV_MFM),m)
M_OBJS += mfmhd_mod.o
endif
endif
include $(TOPDIR)/Rules.make
fd1772_mod.o: $(FLOPPY)
$(LD) -r -o $@ $(FLOPPY)
mfmhd_mod.o: mfmhd.o mfm.o
$(LD) -r -o $@ mfmhd.o mfm.o
%.o: %.S
ifndef $(CONFIG_BINUTILS_NEW)
$(CC) $(CFLAGS) -D__ASSEMBLY__ -E $< | tr ';$$' '\n#' > ..tmp.s
$(CC) $(CFLAGS) -c -o $@ ..tmp.s
$(RM) ..tmp.s
else
$(CC) $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $<
endif
This diff is collapsed.
/*
* linux/arch/arm/drivers/block/ide-ics.c
*
* Copyright (c) 1996,1997 Russell King.
*
* Changelog:
* 08-06-1996 RMK Created
* 12-09-1997 RMK Added interrupt enable/disable
*/
#include <linux/module.h>
#include <linux/ioport.h>
#include <linux/malloc.h>
#include <linux/blkdev.h>
#include <linux/errno.h>
#include <linux/hdreg.h>
#include <asm/ecard.h>
#include <asm/io.h>
#include "../../block/ide.h"
/*
* Maximum number of interfaces per card
*/
#define MAX_IFS 2
#define ICS_IDENT_OFFSET 0x8a0
#define ICS_ARCIN_V5_INTROFFSET 0x001
#define ICS_ARCIN_V5_IDEOFFSET 0xa00
#define ICS_ARCIN_V5_IDEALTOFFSET 0xae0
#define ICS_ARCIN_V5_IDESTEPPING 4
#define ICS_ARCIN_V6_IDEOFFSET_1 0x800
#define ICS_ARCIN_V6_INTROFFSET_1 0x880
#define ICS_ARCIN_V6_IDEALTOFFSET_1 0x8e0
#define ICS_ARCIN_V6_IDEOFFSET_2 0xc00
#define ICS_ARCIN_V6_INTROFFSET_2 0xc80
#define ICS_ARCIN_V6_IDEALTOFFSET_2 0xce0
#define ICS_ARCIN_V6_IDESTEPPING 4
static const card_ids icside_cids[] = {
{ MANU_ICS, PROD_ICS_IDE },
{ 0xffff, 0xffff }
};
typedef enum {
ics_if_unknown,
ics_if_arcin_v5,
ics_if_arcin_v6
} iftype_t;
static struct expansion_card *ec[MAX_ECARDS];
static int result[MAX_ECARDS][MAX_IFS];
/* ---------------- Version 5 PCB Support Functions --------------------- */
/* Prototype: icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
* Purpose : enable interrupts from card
*/
static void icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
{
unsigned int memc_port = (unsigned int)ec->irq_data;
outb (0, memc_port + ICS_ARCIN_V5_INTROFFSET);
}
/* Prototype: icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
* Purpose : disable interrupts from card
*/
static void icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
{
unsigned int memc_port = (unsigned int)ec->irq_data;
inb (memc_port + ICS_ARCIN_V5_INTROFFSET);
}
static const expansioncard_ops_t icside_ops_arcin_v5 = {
icside_irqenable_arcin_v5,
icside_irqdisable_arcin_v5,
NULL,
NULL
};
/* ---------------- Version 6 PCB Support Functions --------------------- */
/* Prototype: icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
* Purpose : enable interrupts from card
*/
static void icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
{
unsigned int ide_base_port = (unsigned int)ec->irq_data;
outb (0, ide_base_port + ICS_ARCIN_V6_INTROFFSET_1);
outb (0, ide_base_port + ICS_ARCIN_V6_INTROFFSET_2);
}
/* Prototype: icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
* Purpose : disable interrupts from card
*/
static void icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
{
unsigned int ide_base_port = (unsigned int)ec->irq_data;
inb (ide_base_port + ICS_ARCIN_V6_INTROFFSET_1);
inb (ide_base_port + ICS_ARCIN_V6_INTROFFSET_2);
}
static const expansioncard_ops_t icside_ops_arcin_v6 = {
icside_irqenable_arcin_v6,
icside_irqdisable_arcin_v6,
NULL,
NULL
};
/* Prototype: icside_identifyif (struct expansion_card *ec)
* Purpose : identify IDE interface type
* Notes : checks the description string
*/
static iftype_t icside_identifyif (struct expansion_card *ec)
{
unsigned int addr;
iftype_t iftype;
int id = 0;
iftype = ics_if_unknown;
addr = ecard_address (ec, ECARD_IOC, ECARD_FAST) + ICS_IDENT_OFFSET;
id = inb (addr) & 1;
id |= (inb (addr + 1) & 1) << 1;
id |= (inb (addr + 2) & 1) << 2;
id |= (inb (addr + 3) & 1) << 3;
switch (id) {
case 0: /* A3IN */
printk ("icside: A3IN unsupported\n");
break;
case 1: /* A3USER */
printk ("icside: A3USER unsupported\n");
break;
case 3: /* ARCIN V6 */
printk ("icside: detected ARCIN V6 in slot %d\n", ec->slot_no);
iftype = ics_if_arcin_v6;
break;
case 15:/* ARCIN V5 (no id) */
printk ("icside: detected ARCIN V5 in slot %d\n", ec->slot_no);
iftype = ics_if_arcin_v5;
break;
default:/* we don't know - complain very loudly */
printk ("icside: ***********************************\n");
printk ("icside: *** UNKNOWN ICS INTERFACE id=%d ***\n", id);
printk ("icside: ***********************************\n");
printk ("icside: please report this to: linux@arm.uk.linux.org\n");
printk ("icside: defaulting to ARCIN V5\n");
iftype = ics_if_arcin_v5;
break;
}
return iftype;
}
/* Prototype: icside_register (struct expansion_card *ec)
* Purpose : register an ICS IDE card with the IDE driver
* Notes : we make sure that interrupts are disabled from the card
*/
static inline void icside_register (struct expansion_card *ec, int index)
{
unsigned long port;
result[index][0] = -1;
result[index][1] = -1;
switch (icside_identifyif (ec)) {
case ics_if_unknown:
default:
printk ("** Warning: ICS IDE Interface unrecognised! **\n");
break;
case ics_if_arcin_v5:
port = ecard_address (ec, ECARD_MEMC, 0);
ec->irq_data = (void *)port;
ec->ops = (expansioncard_ops_t *)&icside_ops_arcin_v5;
/*
* Be on the safe side - disable interrupts
*/
inb (port + ICS_ARCIN_V5_INTROFFSET);
result[index][0] =
ide_register_port (port + ICS_ARCIN_V5_IDEOFFSET,
port + ICS_ARCIN_V5_IDEALTOFFSET,
ICS_ARCIN_V5_IDESTEPPING,
ec->irq);
break;
case ics_if_arcin_v6:
port = ecard_address (ec, ECARD_IOC, ECARD_FAST);
ec->irq_data = (void *)port;
ec->ops = (expansioncard_ops_t *)&icside_ops_arcin_v6;
/*
* Be on the safe side - disable interrupts
*/
inb (port + ICS_ARCIN_V6_INTROFFSET_1);
inb (port + ICS_ARCIN_V6_INTROFFSET_2);
result[index][0] =
ide_register_port (port + ICS_ARCIN_V6_IDEOFFSET_1,
port + ICS_ARCIN_V6_IDEALTOFFSET_1,
ICS_ARCIN_V6_IDESTEPPING,
ec->irq);
result[index][1] =
ide_register_port (port + ICS_ARCIN_V6_IDEOFFSET_2,
port + ICS_ARCIN_V6_IDEALTOFFSET_2,
ICS_ARCIN_V6_IDESTEPPING,
ec->irq);
break;
}
}
int icside_init (void)
{
int i;
for (i = 0; i < MAX_ECARDS; i++)
ec[i] = NULL;
ecard_startfind ();
for (i = 0; ; i++) {
if ((ec[i] = ecard_find (0, icside_cids)) == NULL)
break;
ecard_claim (ec[i]);
icside_register (ec[i], i);
}
for (i = 0; i < MAX_ECARDS; i++)
if (ec[i] && result[i][0] < 0 && result[i][1] < 0) {
ecard_release (ec[i]);
ec[i] = NULL;
}
return 0;
}
#ifdef MODULE
int init_module (void)
{
return icside_init();
}
void cleanup_module (void)
{
int i;
for (i = 0; i < MAX_ECARDS; i++)
if (ec[i]) {
if (result[i][0] >= 0)
ide_unregister (result[i][0]);
if (result[i][1] >= 0)
ide_unregister (result[i][1]);
ecard_release (ec[i]);
ec[i] = NULL;
}
}
#endif
/*
* linux/arch/arm/drivers/block/ide-ics.c
*
* Copyright (c) 1996 Russell King.
*
* Changelog:
* 08-06-1996 RMK Created
*/
#include <linux/module.h>
#include <linux/malloc.h>
#include <linux/blkdev.h>
#include <linux/errno.h>
#include <asm/ecard.h>
#include "../../block/ide.h"
static const card_ids rapide_cids[] = {
{ 0xffff, 0xffff }
};
static struct expansion_card *ec[MAX_ECARDS];
static int result[MAX_ECARDS];
static inline int rapide_register (struct expansion_card *ec)
{
unsigned long port = ecard_address (ec, ECARD_MEMC, 0);
return ide_register_port (port, port + 0x206, 4, ec->irq);
}
int rapide_init (void)
{
int i;
for (i = 0; i < MAX_ECARDS; i++)
ec[i] = NULL;
ecard_startfind ();
for (i = 0; ; i++) {
if ((ec[i] = ecard_find (0, rapide_cids)) == NULL)
break;
ecard_claim (ec[i]);
result[i] = rapide_register (ec[i]);
}
for (i = 0; i < MAX_ECARDS; i++)
if (ec[i] && result[i] < 0) {
ecard_release (ec[i]);
ec[i] = NULL;
}
return 0;
}
#ifdef MODULE
int init_module (void)
{
return rapide_init();
}
void cleanup_module (void)
{
int i;
for (i = 0; i < MAX_ECARDS; i++)
if (ec[i]) {
unsigned long port;
port = ecard_address (ec[i], ECARD_MEMC, 0);
ide_unregister_port (port, ec[i]->irq, 16);
ecard_release (ec[i]);
ec[i] = NULL;
}
}
#endif
This diff is collapsed.
#
# Acorn Network device configuration
# These are for Acorn's Expansion card network interfaces
#
tristate 'Acorn Ether1 (82586) support' CONFIG_ARM_ETHER1
tristate 'Acorn/ANT Ether3 (NQ8005) support' CONFIG_ARM_ETHER3
tristate 'I-cubed EtherH (NS8390) support' CONFIG_ARM_ETHERH
# File: drivers/acorn/net/Makefile
#
# Makefile for the Acorn ethercard network device drivers
#
L_TARGET := acorn-net.a
L_OBJS := net-probe.o
M_OBJS :=
MOD_LIST_NAME := ACORN_NET_MODULES
ifeq ($(CONFIG_ARM_ETHER1),y)
L_OBJS += ether1.o
else
ifeq ($(CONFIG_ARM_ETHER1),m)
M_OBJS += ether1.o
endif
endif
ifeq ($(CONFIG_ARM_ETHER3),y)
L_OBJS += ether3.o
else
ifeq ($(CONFIG_ARM_ETHER3),m)
M_OBJS += ether3.o
endif
endif
ifeq ($(CONFIG_ARM_ETHERH),y)
L_OBJS += etherh.o
else
ifeq ($(CONFIG_ARM_ETHERH),m)
M_OBJS += etherh.o
endif
endif
include $(TOPDIR)/Rules.make
This diff is collapsed.
/*
* linux/arch/arm/drivers/net/ether1.h
*
* network driver for Acorn Ether1 cards.
*
* (c) 1996 Russell King
*/
#ifndef _LINUX_ether1_H
#define _LINUX_ether1_H
#ifdef __ETHER1_C
/* use 0 for production, 1 for verification, >2 for debug */
#ifndef NET_DEBUG
#define NET_DEBUG 0
#endif
/* Page register */
#define REG_PAGE (dev->base_addr + 0x00)
/* Control register */
#define REG_CONTROL (dev->base_addr + 0x01)
#define CTRL_RST 0x01
#define CTRL_LOOPBACK 0x02
#define CTRL_CA 0x04
#define CTRL_ACK 0x08
#define ETHER1_RAM (dev->base_addr + 0x800)
/* HW address */
#define IDPROM_ADDRESS (dev->base_addr + 0x09)
struct ether1_priv {
struct enet_statistics stats;
unsigned int tx_link;
unsigned int tx_head;
volatile unsigned int tx_tail;
volatile unsigned int rx_head;
volatile unsigned int rx_tail;
unsigned char bus_type;
unsigned char resetting;
unsigned char initialising : 1;
unsigned char restart : 1;
};
static int ether1_open (struct device *dev);
static int ether1_sendpacket (struct sk_buff *skb, struct device *dev);
static void ether1_interrupt (int irq, void *dev_id, struct pt_regs *regs);
static int ether1_close (struct device *dev);
static struct enet_statistics *ether1_getstats (struct device *dev);
static void ether1_setmulticastlist (struct device *dev);
#define I82586_NULL (-1)
typedef struct { /* tdr */
unsigned short tdr_status;
unsigned short tdr_command;
unsigned short tdr_link;
unsigned short tdr_result;
#define TDR_TIME (0x7ff)
#define TDR_SHORT (1 << 12)
#define TDR_OPEN (1 << 13)
#define TDR_XCVRPROB (1 << 14)
#define TDR_LNKOK (1 << 15)
} tdr_t;
typedef struct { /* transmit */
unsigned short tx_status;
unsigned short tx_command;
unsigned short tx_link;
unsigned short tx_tbdoffset;
} tx_t;
typedef struct { /* tbd */
unsigned short tbd_opts;
#define TBD_CNT (0x3fff)
#define TBD_EOL (1 << 15)
unsigned short tbd_link;
unsigned short tbd_bufl;
unsigned short tbd_bufh;
} tbd_t;
typedef struct { /* rfd */
unsigned short rfd_status;
#define RFD_NOEOF (1 << 6)
#define RFD_FRAMESHORT (1 << 7)
#define RFD_DMAOVRN (1 << 8)
#define RFD_NORESOURCES (1 << 9)
#define RFD_ALIGNERROR (1 << 10)
#define RFD_CRCERROR (1 << 11)
#define RFD_OK (1 << 13)
#define RFD_FDCONSUMED (1 << 14)
#define RFD_COMPLETE (1 << 15)
unsigned short rfd_command;
#define RFD_CMDSUSPEND (1 << 14)
#define RFD_CMDEL (1 << 15)
unsigned short rfd_link;
unsigned short rfd_rbdoffset;
unsigned char rfd_dest[6];
unsigned char rfd_src[6];
unsigned short rfd_len;
} rfd_t;
typedef struct { /* rbd */
unsigned short rbd_status;
#define RBD_ACNT (0x3fff)
#define RBD_ACNTVALID (1 << 14)
#define RBD_EOF (1 << 15)
unsigned short rbd_link;
unsigned short rbd_bufl;
unsigned short rbd_bufh;
unsigned short rbd_len;
} rbd_t;
typedef struct { /* nop */
unsigned short nop_status;
unsigned short nop_command;
unsigned short nop_link;
} nop_t;
typedef struct { /* set multicast */
unsigned short mc_status;
unsigned short mc_command;
unsigned short mc_link;
unsigned short mc_cnt;
unsigned char mc_addrs[1][6];
} mc_t;
typedef struct { /* set address */
unsigned short sa_status;
unsigned short sa_command;
unsigned short sa_link;
unsigned char sa_addr[6];
} sa_t;
typedef struct { /* config command */
unsigned short cfg_status;
unsigned short cfg_command;
unsigned short cfg_link;
unsigned char cfg_bytecnt; /* size foll data: 4 - 12 */
unsigned char cfg_fifolim; /* FIFO threshold */
unsigned char cfg_byte8;
#define CFG8_SRDY (1 << 6)
#define CFG8_SAVEBADF (1 << 7)
unsigned char cfg_byte9;
#define CFG9_ADDRLEN(x) (x)
#define CFG9_ADDRLENBUF (1 << 3)
#define CFG9_PREAMB2 (0 << 4)
#define CFG9_PREAMB4 (1 << 4)
#define CFG9_PREAMB8 (2 << 4)
#define CFG9_PREAMB16 (3 << 4)
#define CFG9_ILOOPBACK (1 << 6)
#define CFG9_ELOOPBACK (1 << 7)
unsigned char cfg_byte10;
#define CFG10_LINPRI(x) (x)
#define CFG10_ACR(x) (x << 4)
#define CFG10_BOFMET (1 << 7)
unsigned char cfg_ifs;
unsigned char cfg_slotl;
unsigned char cfg_byte13;
#define CFG13_SLOTH(x) (x)
#define CFG13_RETRY(x) (x << 4)
unsigned char cfg_byte14;
#define CFG14_PROMISC (1 << 0)
#define CFG14_DISBRD (1 << 1)
#define CFG14_MANCH (1 << 2)
#define CFG14_TNCRS (1 << 3)
#define CFG14_NOCRC (1 << 4)
#define CFG14_CRC16 (1 << 5)
#define CFG14_BTSTF (1 << 6)
#define CFG14_FLGPAD (1 << 7)
unsigned char cfg_byte15;
#define CFG15_CSTF(x) (x)
#define CFG15_ICSS (1 << 3)
#define CFG15_CDTF(x) (x << 4)
#define CFG15_ICDS (1 << 7)
unsigned short cfg_minfrmlen;
} cfg_t;
typedef struct { /* scb */
unsigned short scb_status; /* status of 82586 */
#define SCB_STRXMASK (7 << 4) /* Receive unit status */
#define SCB_STRXIDLE (0 << 4) /* Idle */
#define SCB_STRXSUSP (1 << 4) /* Suspended */
#define SCB_STRXNRES (2 << 4) /* No resources */
#define SCB_STRXRDY (4 << 4) /* Ready */
#define SCB_STCUMASK (7 << 8) /* Command unit status */
#define SCB_STCUIDLE (0 << 8) /* Idle */
#define SCB_STCUSUSP (1 << 8) /* Suspended */
#define SCB_STCUACTV (2 << 8) /* Active */
#define SCB_STRNR (1 << 12) /* Receive unit not ready */
#define SCB_STCNA (1 << 13) /* Command unit not ready */
#define SCB_STFR (1 << 14) /* Frame received */
#define SCB_STCX (1 << 15) /* Command completed */
unsigned short scb_command; /* Next command */
#define SCB_CMDRXSTART (1 << 4) /* Start (at rfa_offset) */
#define SCB_CMDRXRESUME (2 << 4) /* Resume reception */
#define SCB_CMDRXSUSPEND (3 << 4) /* Suspend reception */
#define SCB_CMDRXABORT (4 << 4) /* Abort reception */
#define SCB_CMDCUCSTART (1 << 8) /* Start (at cbl_offset) */
#define SCB_CMDCUCRESUME (2 << 8) /* Resume execution */
#define SCB_CMDCUCSUSPEND (3 << 8) /* Suspend execution */
#define SCB_CMDCUCABORT (4 << 8) /* Abort execution */
#define SCB_CMDACKRNR (1 << 12) /* Ack RU not ready */
#define SCB_CMDACKCNA (1 << 13) /* Ack CU not ready */
#define SCB_CMDACKFR (1 << 14) /* Ack Frame received */
#define SCB_CMDACKCX (1 << 15) /* Ack Command complete */
unsigned short scb_cbl_offset; /* Offset of first command unit */
unsigned short scb_rfa_offset; /* Offset of first receive frame area */
unsigned short scb_crc_errors; /* Properly aligned frame with CRC error*/
unsigned short scb_aln_errors; /* Misaligned frames */
unsigned short scb_rsc_errors; /* Frames lost due to no space */
unsigned short scb_ovn_errors; /* Frames lost due to slow bus */
} scb_t;
typedef struct { /* iscp */
unsigned short iscp_busy; /* set by CPU before CA */
unsigned short iscp_offset; /* offset of SCB */
unsigned short iscp_basel; /* base of SCB */
unsigned short iscp_baseh;
} iscp_t;
/* this address must be 0xfff6 */
typedef struct { /* scp */
unsigned short scp_sysbus; /* bus size */
#define SCP_SY_16BBUS 0x00
#define SCP_SY_8BBUS 0x01
unsigned short scp_junk[2]; /* junk */
unsigned short scp_iscpl; /* lower 16 bits of iscp */
unsigned short scp_iscph; /* upper 16 bits of iscp */
} scp_t;
/* commands */
#define CMD_NOP 0
#define CMD_SETADDRESS 1
#define CMD_CONFIG 2
#define CMD_SETMULTICAST 3
#define CMD_TX 4
#define CMD_TDR 5
#define CMD_DUMP 6
#define CMD_DIAGNOSE 7
#define CMD_MASK 7
#define CMD_INTR (1 << 13)
#define CMD_SUSP (1 << 14)
#define CMD_EOL (1 << 15)
#define STAT_COLLISIONS (15)
#define STAT_COLLEXCESSIVE (1 << 5)
#define STAT_COLLAFTERTX (1 << 6)
#define STAT_TXDEFERRED (1 << 7)
#define STAT_TXSLOWDMA (1 << 8)
#define STAT_TXLOSTCTS (1 << 9)
#define STAT_NOCARRIER (1 << 10)
#define STAT_FAIL (1 << 11)
#define STAT_ABORTED (1 << 12)
#define STAT_OK (1 << 13)
#define STAT_BUSY (1 << 14)
#define STAT_COMPLETE (1 << 15)
#endif
#endif
/*
* Ether1 card definitions:
*
* FAST accesses:
* +0 Page register
* 16 pages
* +4 Control
* '1' = reset
* '2' = loopback
* '4' = CA
* '8' = int ack
*
* RAM at address + 0x2000
* Pod. Prod id = 3
* Words after ID block [base + 8 words]
* +0 pcb issue (0x0c and 0xf3 invalid)
* +1 - +6 eth hw address
*/
This diff is collapsed.
/*
* linux/drivers/net/ether3.h
*
* network driver for Acorn/ANT Ether3 cards
*/
#ifndef _LINUX_ether3_H
#define _LINUX_ether3_H
/* use 0 for production, 1 for verification, >2 for debug. debug flags: */
#define DEBUG_TX 2
#define DEBUG_RX 4
#define DEBUG_INT 8
#define DEBUG_IC 16
#ifndef NET_DEBUG
#define NET_DEBUG 0
#endif
/* Command register definitions & bits */
#define REG_COMMAND (dev->base_addr + 0x00)
#define CMD_ENINTDMA 0x0001
#define CMD_ENINTRX 0x0002
#define CMD_ENINTTX 0x0004
#define CMD_ENINTBUFWIN 0x0008
#define CMD_ACKINTDMA 0x0010
#define CMD_ACKINTRX 0x0020
#define CMD_ACKINTTX 0x0040
#define CMD_ACKINTBUFWIN 0x0080
#define CMD_DMAON 0x0100
#define CMD_RXON 0x0200
#define CMD_TXON 0x0400
#define CMD_DMAOFF 0x0800
#define CMD_RXOFF 0x1000
#define CMD_TXOFF 0x2000
#define CMD_FIFOREAD 0x4000
#define CMD_FIFOWRITE 0x8000
/* status register */
#define REG_STATUS (dev->base_addr + 0x00)
#define STAT_ENINTSTAT 0x0001
#define STAT_ENINTRX 0x0002
#define STAT_ENINTTX 0x0004
#define STAT_ENINTBUFWIN 0x0008
#define STAT_INTDMA 0x0010
#define STAT_INTRX 0x0020
#define STAT_INTTX 0x0040
#define STAT_INTBUFWIN 0x0080
#define STAT_DMAON 0x0100
#define STAT_RXON 0x0200
#define STAT_TXON 0x0400
#define STAT_FIFOFULL 0x2000
#define STAT_FIFOEMPTY 0x4000
#define STAT_FIFODIR 0x8000
/* configuration register 1 */
#define REG_CONFIG1 (dev->base_addr + 0x10)
#define CFG1_BUFSELSTAT0 0x0000
#define CFG1_BUFSELSTAT1 0x0001
#define CFG1_BUFSELSTAT2 0x0002
#define CFG1_BUFSELSTAT3 0x0003
#define CFG1_BUFSELSTAT4 0x0004
#define CFG1_BUFSELSTAT5 0x0005
#define CFG1_ADDRPROM 0x0006
#define CFG1_TRANSEND 0x0007
#define CFG1_LOCBUFMEM 0x0008
#define CFG1_INTVECTOR 0x0009
#define CFG1_DMABURSTCONT 0x0000
#define CFG1_DMABURST800NS 0x0010
#define CFG1_DMABURST1600NS 0x0020
#define CFG1_DMABURST3200NS 0x0030
#define CFG1_DMABURST1 0x0000
#define CFG1_DMABURST4 0x0040
#define CFG1_DMABURST8 0x0080
#define CFG1_DMABURST16 0x00C0
#define CFG1_RECVCOMPSTAT0 0x0100
#define CFG1_RECVCOMPSTAT1 0x0200
#define CFG1_RECVCOMPSTAT2 0x0400
#define CFG1_RECVCOMPSTAT3 0x0800
#define CFG1_RECVCOMPSTAT4 0x1000
#define CFG1_RECVCOMPSTAT5 0x2000
#define CFG1_RECVSPECONLY 0x0000
#define CFG1_RECVSPECBROAD 0x4000
#define CFG1_RECVSPECBRMULTI 0x8000
#define CFG1_RECVPROMISC 0xC000
/* configuration register 2 */
#define REG_CONFIG2 (dev->base_addr + 0x20)
#define CFG2_BYTESWAP 0x0001
#define CFG2_ERRENCRC 0x0008
#define CFG2_ERRENDRIBBLE 0x0010
#define CFG2_ERRSHORTFRAME 0x0020
#define CFG2_SLOTSELECT 0x0040
#define CFG2_PREAMSELECT 0x0080
#define CFG2_ADDRLENGTH 0x0100
#define CFG2_RECVCRC 0x0200
#define CFG2_XMITNOCRC 0x0400
#define CFG2_LOOPBACK 0x0800
#define CFG2_CTRLO 0x1000
#define CFG2_RESET 0x8000
#define REG_RECVEND (dev->base_addr + 0x30)
#define REG_BUFWIN (dev->base_addr + 0x40)
#define REG_RECVPTR (dev->base_addr + 0x50)
#define REG_TRANSMITPTR (dev->base_addr + 0x60)
#define REG_DMAADDR (dev->base_addr + 0x70)
/*
* Cards transmit/receive headers
*/
#define TX_NEXT (0xffff)
#define TXHDR_ENBABBLEINT (1 << 16)
#define TXHDR_ENCOLLISIONINT (1 << 17)
#define TXHDR_EN16COLLISION (1 << 18)
#define TXHDR_ENSUCCESS (1 << 19)
#define TXHDR_DATAFOLLOWS (1 << 21)
#define TXHDR_CHAINCONTINUE (1 << 22)
#define TXHDR_TRANSMIT (1 << 23)
#define TXSTAT_BABBLED (1 << 24)
#define TXSTAT_COLLISION (1 << 25)
#define TXSTAT_16COLLISIONS (1 << 26)
#define TXSTAT_DONE (1 << 31)
#define RX_NEXT (0xffff)
#define RXHDR_CHAINCONTINUE (1 << 6)
#define RXHDR_RECEIVE (1 << 7)
#define RXSTAT_OVERSIZE (1 << 8)
#define RXSTAT_CRCERROR (1 << 9)
#define RXSTAT_DRIBBLEERROR (1 << 10)
#define RXSTAT_SHORTPACKET (1 << 11)
#define RXSTAT_DONE (1 << 15)
#define TX_END 0x6000
#define RX_START 0x6000
#define RX_LEN 0xA000
#define RX_END 0x10000
/* must be a power of 2 and greater than MAX_TX_BUFFERED */
#define MAX_TXED 16
#define MAX_TX_BUFFERED 10
struct dev_priv {
struct {
unsigned int command;
unsigned int config1;
unsigned int config2;
} regs;
unsigned int tx_head; /* address to insert next packet */
unsigned int tx_tail; /* address of transmitting packet */
unsigned int tx_used; /* number of 'slots' used */
unsigned int rx_head; /* address to fetch next packet from */
struct enet_statistics stats;
struct timer_list timer;
int broken; /* 0 = ok, 1 = something went wrong */
};
extern int ether3_probe (struct device *dev);
static int ether3_probe1 (struct device *dev);
static int ether3_open (struct device *dev);
static int ether3_sendpacket (struct sk_buff *skb, struct device *dev);
static void ether3_interrupt (int irq, void *dev_id, struct pt_regs *regs);
static int ether3_close (struct device *dev);
static struct enet_statistics *ether3_getstats (struct device *dev);
static void ether3_setmulticastlist (struct device *dev);
#endif
This diff is collapsed.
/*
* Acorn specific net device driver probe routine
*
* Copyright (C) 1998 Russell King
*/
#include <linux/config.h>
#include <linux/netdevice.h>
#include <linux/errno.h>
#include <linux/init.h>
extern int ether1_probe (struct device *dev);
extern int ether3_probe (struct device *dev);
extern int etherh_probe (struct device *dev);
__initfunc(int acorn_ethif_probe(struct device *dev))
{
if (1
#ifdef CONFIG_ARM_ETHERH
&& etherh_probe (dev)
#endif
#ifdef CONFIG_ARM_ETHER3
&& ether3_probe (dev)
#endif
#ifdef CONFIG_ARM_ETHER1
&& ether1_probe (dev)
#endif
&& 1) {
return 1;
}
return 0;
}
#
# SCSI driver configuration for Acorn
#
dep_tristate 'Acorn SCSI card (aka30) support' CONFIG_SCSI_ACORNSCSI_3 $CONFIG_SCSI
if [ "$CONFIG_SCSI_ACORNSCSI_3" != "n" ]; then
bool ' Support SCSI 2 Tagged queueing' CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
bool ' Support SCSI 2 Synchronous Transfers' CONFIG_SCSI_ACORNSCSI_SYNC
fi
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
dep_tristate 'CumanaSCSI II support (Experimental)' CONFIG_SCSI_CUMANA_2 $CONFIG_SCSI
dep_tristate 'PowerTec support (Experimental)' CONFIG_SCSI_POWERTECSCSI $CONFIG_SCSI
comment 'The following drives are not fully supported'
dep_tristate 'CumanaSCSI I support' CONFIG_SCSI_CUMANA_1 $CONFIG_SCSI
if [ "$CONFIG_ARCH_ARC" = "y" -o "$CONFIG_ARCH_A5K" = "y" ]; then
dep_tristate 'EcoScsi support' CONFIG_SCSI_ECOSCSI $CONFIG_SCSI
fi
dep_tristate 'Oak SCSI support' CONFIG_SCSI_OAK1 $CONFIG_SCSI
fi
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -14,7 +14,6 @@
*/
#include <linux/errno.h>
#include <linux/config.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/ext2_fs.h>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -194,7 +194,6 @@
#define IDECD_VERSION "4.10"
#include <linux/config.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment