net: appletalk: remove Apple/Farallon LocalTalk PC support
Looks like all the changes to this driver had been tree-wide refactoring since git era begun. The driver is using virt_to_bus() we should make it use more modern DMA APIs but since it's unlikely to be getting any use these days delete it instead. We can always revert to bring it back. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e508af8abb
commit
03dcb90dbf
@ -9,7 +9,6 @@ Contents:
|
||||
:maxdepth: 2
|
||||
|
||||
cops
|
||||
ltpc
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
|
@ -1,144 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
===========
|
||||
LTPC Driver
|
||||
===========
|
||||
|
||||
This is the ALPHA version of the ltpc driver.
|
||||
|
||||
In order to use it, you will need at least version 1.3.3 of the
|
||||
netatalk package, and the Apple or Farallon LocalTalk PC card.
|
||||
There are a number of different LocalTalk cards for the PC; this
|
||||
driver applies only to the one with the 65c02 processor chip on it.
|
||||
|
||||
To include it in the kernel, select the CONFIG_LTPC switch in the
|
||||
configuration dialog. You can also compile it as a module.
|
||||
|
||||
While the driver will attempt to autoprobe the I/O port address, IRQ
|
||||
line, and DMA channel of the card, this does not always work. For
|
||||
this reason, you should be prepared to supply these parameters
|
||||
yourself. (see "Card Configuration" below for how to determine or
|
||||
change the settings on your card)
|
||||
|
||||
When the driver is compiled into the kernel, you can add a line such
|
||||
as the following to your /etc/lilo.conf::
|
||||
|
||||
append="ltpc=0x240,9,1"
|
||||
|
||||
where the parameters (in order) are the port address, IRQ, and DMA
|
||||
channel. The second and third values can be omitted, in which case
|
||||
the driver will try to determine them itself.
|
||||
|
||||
If you load the driver as a module, you can pass the parameters "io=",
|
||||
"irq=", and "dma=" on the command line with insmod or modprobe, or add
|
||||
them as options in a configuration file in /etc/modprobe.d/ directory::
|
||||
|
||||
alias lt0 ltpc # autoload the module when the interface is configured
|
||||
options ltpc io=0x240 irq=9 dma=1
|
||||
|
||||
Before starting up the netatalk demons (perhaps in rc.local), you
|
||||
need to add a line such as::
|
||||
|
||||
/sbin/ifconfig lt0 127.0.0.42
|
||||
|
||||
The address is unimportant - however, the card needs to be configured
|
||||
with ifconfig so that Netatalk can find it.
|
||||
|
||||
The appropriate netatalk configuration depends on whether you are
|
||||
attached to a network that includes AppleTalk routers or not. If,
|
||||
like me, you are simply connecting to your home Macintoshes and
|
||||
printers, you need to set up netatalk to "seed". The way I do this
|
||||
is to have the lines::
|
||||
|
||||
dummy -seed -phase 2 -net 2000 -addr 2000.26 -zone "1033"
|
||||
lt0 -seed -phase 1 -net 1033 -addr 1033.27 -zone "1033"
|
||||
|
||||
in my atalkd.conf. What is going on here is that I need to fool
|
||||
netatalk into thinking that there are two AppleTalk interfaces
|
||||
present; otherwise, it refuses to seed. This is a hack, and a more
|
||||
permanent solution would be to alter the netatalk code. Also, make
|
||||
sure you have the correct name for the dummy interface - If it's
|
||||
compiled as a module, you will need to refer to it as "dummy0" or some
|
||||
such.
|
||||
|
||||
If you are attached to an extended AppleTalk network, with routers on
|
||||
it, then you don't need to fool around with this -- the appropriate
|
||||
line in atalkd.conf is::
|
||||
|
||||
lt0 -phase 1
|
||||
|
||||
|
||||
Card Configuration
|
||||
==================
|
||||
|
||||
The interrupts and so forth are configured via the dipswitch on the
|
||||
board. Set the switches so as not to conflict with other hardware.
|
||||
|
||||
Interrupts -- set at most one. If none are set, the driver uses
|
||||
polled mode. Because the card was developed in the XT era, the
|
||||
original documentation refers to IRQ2. Since you'll be running
|
||||
this on an AT (or later) class machine, that really means IRQ9.
|
||||
|
||||
=== ===========================================================
|
||||
SW1 IRQ 4
|
||||
SW2 IRQ 3
|
||||
SW3 IRQ 9 (2 in original card documentation only applies to XT)
|
||||
=== ===========================================================
|
||||
|
||||
|
||||
DMA -- choose DMA 1 or 3, and set both corresponding switches.
|
||||
|
||||
=== =====
|
||||
SW4 DMA 3
|
||||
SW5 DMA 1
|
||||
SW6 DMA 3
|
||||
SW7 DMA 1
|
||||
=== =====
|
||||
|
||||
|
||||
I/O address -- choose one.
|
||||
|
||||
=== =========
|
||||
SW8 220 / 240
|
||||
=== =========
|
||||
|
||||
|
||||
IP
|
||||
==
|
||||
|
||||
Yes, it is possible to do IP over LocalTalk. However, you can't just
|
||||
treat the LocalTalk device like an ordinary Ethernet device, even if
|
||||
that's what it looks like to Netatalk.
|
||||
|
||||
Instead, you follow the same procedure as for doing IP in EtherTalk.
|
||||
See Documentation/networking/ipddp.rst for more information about the
|
||||
kernel driver and userspace tools needed.
|
||||
|
||||
|
||||
Bugs
|
||||
====
|
||||
|
||||
IRQ autoprobing often doesn't work on a cold boot. To get around
|
||||
this, either compile the driver as a module, or pass the parameters
|
||||
for the card to the kernel as described above.
|
||||
|
||||
Also, as usual, autoprobing is not recommended when you use the driver
|
||||
as a module. (though it usually works at boot time, at least)
|
||||
|
||||
Polled mode is *really* slow sometimes, but this seems to depend on
|
||||
the configuration of the network.
|
||||
|
||||
It may theoretically be possible to use two LTPC cards in the same
|
||||
machine, but this is unsupported, so if you really want to do this,
|
||||
you'll probably have to hack the initialization code a bit.
|
||||
|
||||
|
||||
Thanks
|
||||
======
|
||||
|
||||
Thanks to Alan Cox for helpful discussions early on in this
|
||||
work, and to Denis Hainsworth for doing the bleeding-edge testing.
|
||||
|
||||
Bradford Johnson <bradford@math.umn.edu>
|
||||
|
||||
Updated 11/09/1998 by David Huggins-Daines <dhd@debian.org>
|
@ -39,17 +39,6 @@ config DEV_APPLETALK
|
||||
connect to the AppleTalk network, say Y.
|
||||
|
||||
|
||||
config LTPC
|
||||
tristate "Apple/Farallon LocalTalk PC support"
|
||||
depends on DEV_APPLETALK && (ISA || EISA) && ISA_DMA_API && VIRT_TO_BUS
|
||||
help
|
||||
This allows you to use the AppleTalk PC card to connect to LocalTalk
|
||||
networks. The card is also known as the Farallon PhoneNet PC card.
|
||||
If you are in doubt, this card is the one with the 65C02 chip on it.
|
||||
You also need version 1.3.3 or later of the netatalk package.
|
||||
This driver is experimental, which means that it may not work.
|
||||
See the file <file:Documentation/networking/device_drivers/appletalk/ltpc.rst>.
|
||||
|
||||
config COPS
|
||||
tristate "COPS LocalTalk PC support"
|
||||
depends on DEV_APPLETALK && ISA
|
||||
|
@ -5,4 +5,3 @@
|
||||
|
||||
obj-$(CONFIG_IPDDP) += ipddp.o
|
||||
obj-$(CONFIG_COPS) += cops.o
|
||||
obj-$(CONFIG_LTPC) += ltpc.o
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,74 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*** ltpc.h
|
||||
*
|
||||
*
|
||||
***/
|
||||
|
||||
#define LT_GETRESULT 0x00
|
||||
#define LT_WRITEMEM 0x01
|
||||
#define LT_READMEM 0x02
|
||||
#define LT_GETFLAGS 0x04
|
||||
#define LT_SETFLAGS 0x05
|
||||
#define LT_INIT 0x10
|
||||
#define LT_SENDLAP 0x13
|
||||
#define LT_RCVLAP 0x14
|
||||
|
||||
/* the flag that we care about */
|
||||
#define LT_FLAG_ALLLAP 0x04
|
||||
|
||||
struct lt_getresult {
|
||||
unsigned char command;
|
||||
unsigned char mailbox;
|
||||
};
|
||||
|
||||
struct lt_mem {
|
||||
unsigned char command;
|
||||
unsigned char mailbox;
|
||||
unsigned short addr; /* host order */
|
||||
unsigned short length; /* host order */
|
||||
};
|
||||
|
||||
struct lt_setflags {
|
||||
unsigned char command;
|
||||
unsigned char mailbox;
|
||||
unsigned char flags;
|
||||
};
|
||||
|
||||
struct lt_getflags {
|
||||
unsigned char command;
|
||||
unsigned char mailbox;
|
||||
};
|
||||
|
||||
struct lt_init {
|
||||
unsigned char command;
|
||||
unsigned char mailbox;
|
||||
unsigned char hint;
|
||||
};
|
||||
|
||||
struct lt_sendlap {
|
||||
unsigned char command;
|
||||
unsigned char mailbox;
|
||||
unsigned char dnode;
|
||||
unsigned char laptype;
|
||||
unsigned short length; /* host order */
|
||||
};
|
||||
|
||||
struct lt_rcvlap {
|
||||
unsigned char command;
|
||||
unsigned char dnode;
|
||||
unsigned char snode;
|
||||
unsigned char laptype;
|
||||
unsigned short length; /* host order */
|
||||
};
|
||||
|
||||
union lt_command {
|
||||
struct lt_getresult getresult;
|
||||
struct lt_mem mem;
|
||||
struct lt_setflags setflags;
|
||||
struct lt_getflags getflags;
|
||||
struct lt_init init;
|
||||
struct lt_sendlap sendlap;
|
||||
struct lt_rcvlap rcvlap;
|
||||
};
|
||||
typedef union lt_command lt_command;
|
||||
|
Loading…
Reference in New Issue
Block a user