| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | This is the ALPHA version of the ltpc driver. | 
|  | 2 |  | 
|  | 3 | In order to use it, you will need at least version 1.3.3 of the | 
|  | 4 | netatalk package, and the Apple or Farallon LocalTalk PC card. | 
|  | 5 | There are a number of different LocalTalk cards for the PC; this | 
|  | 6 | driver applies only to the one with the 65c02 processor chip on it. | 
|  | 7 |  | 
|  | 8 | To include it in the kernel, select the CONFIG_LTPC switch in the | 
|  | 9 | configuration dialog.  You can also compile it as a module. | 
|  | 10 |  | 
|  | 11 | While the driver will attempt to autoprobe the I/O port address, IRQ | 
|  | 12 | line, and DMA channel of the card, this does not always work.  For | 
|  | 13 | this reason, you should be prepared to supply these parameters | 
|  | 14 | yourself.  (see "Card Configuration" below for how to determine or | 
|  | 15 | change the settings on your card) | 
|  | 16 |  | 
|  | 17 | When the driver is compiled into the kernel, you can add a line such | 
|  | 18 | as the following to your /etc/lilo.conf: | 
|  | 19 |  | 
|  | 20 | append="ltpc=0x240,9,1" | 
|  | 21 |  | 
|  | 22 | where the parameters (in order) are the port address, IRQ, and DMA | 
|  | 23 | channel.  The second and third values can be omitted, in which case | 
|  | 24 | the driver will try to determine them itself. | 
|  | 25 |  | 
|  | 26 | If you load the driver as a module, you can pass the parameters "io=", | 
|  | 27 | "irq=", and "dma=" on the command line with insmod or modprobe, or add | 
|  | 28 | them as options in /etc/modprobe.conf: | 
|  | 29 |  | 
|  | 30 | alias lt0 ltpc # autoload the module when the interface is configured | 
|  | 31 | options ltpc io=0x240 irq=9 dma=1 | 
|  | 32 |  | 
|  | 33 | Before starting up the netatalk demons (perhaps in rc.local), you | 
|  | 34 | need to add a line such as: | 
|  | 35 |  | 
|  | 36 | /sbin/ifconfig lt0 127.0.0.42 | 
|  | 37 |  | 
|  | 38 | The address is unimportant - however, the card needs to be configured | 
|  | 39 | with ifconfig so that Netatalk can find it. | 
|  | 40 |  | 
|  | 41 | The appropriate netatalk configuration depends on whether you are | 
|  | 42 | attached to a network that includes AppleTalk routers or not.  If, | 
|  | 43 | like me, you are simply connecting to your home Macintoshes and | 
|  | 44 | printers, you need to set up netatalk to "seed".  The way I do this | 
|  | 45 | is to have the lines | 
|  | 46 |  | 
|  | 47 | dummy -seed -phase 2 -net 2000 -addr 2000.26 -zone "1033" | 
|  | 48 | lt0 -seed -phase 1 -net 1033 -addr 1033.27 -zone "1033" | 
|  | 49 |  | 
|  | 50 | in my atalkd.conf.  What is going on here is that I need to fool | 
|  | 51 | netatalk into thinking that there are two AppleTalk interfaces | 
|  | 52 | present; otherwise, it refuses to seed.  This is a hack, and a more | 
|  | 53 | permanent solution would be to alter the netatalk code.  Also, make | 
|  | 54 | sure you have the correct name for the dummy interface - If it's | 
|  | 55 | compiled as a module, you will need to refer to it as "dummy0" or some | 
|  | 56 | such. | 
|  | 57 |  | 
|  | 58 | If you are attached to an extended AppleTalk network, with routers on | 
|  | 59 | it, then you don't need to fool around with this -- the appropriate | 
|  | 60 | line in atalkd.conf is | 
|  | 61 |  | 
|  | 62 | lt0 -phase 1 | 
|  | 63 |  | 
|  | 64 | -------------------------------------- | 
|  | 65 |  | 
|  | 66 | Card Configuration: | 
|  | 67 |  | 
|  | 68 | The interrupts and so forth are configured via the dipswitch on the | 
|  | 69 | board.  Set the switches so as not to conflict with other hardware. | 
|  | 70 |  | 
|  | 71 | Interrupts -- set at most one.  If none are set, the driver uses | 
|  | 72 | polled mode.  Because the card was developed in the XT era, the | 
|  | 73 | original documentation refers to IRQ2.  Since you'll be running | 
|  | 74 | this on an AT (or later) class machine, that really means IRQ9. | 
|  | 75 |  | 
|  | 76 | SW1     IRQ 4 | 
|  | 77 | SW2     IRQ 3 | 
|  | 78 | SW3     IRQ 9 (2 in original card documentation only applies to XT) | 
|  | 79 |  | 
|  | 80 |  | 
|  | 81 | DMA -- choose DMA 1 or 3, and set both corresponding switches. | 
|  | 82 |  | 
|  | 83 | SW4     DMA 3 | 
|  | 84 | SW5     DMA 1 | 
|  | 85 | SW6     DMA 3 | 
|  | 86 | SW7     DMA 1 | 
|  | 87 |  | 
|  | 88 |  | 
|  | 89 | I/O address -- choose one. | 
|  | 90 |  | 
|  | 91 | SW8     220 / 240 | 
|  | 92 |  | 
|  | 93 | -------------------------------------- | 
|  | 94 |  | 
|  | 95 | IP: | 
|  | 96 |  | 
|  | 97 | Yes, it is possible to do IP over LocalTalk.  However, you can't just | 
|  | 98 | treat the LocalTalk device like an ordinary Ethernet device, even if | 
|  | 99 | that's what it looks like to Netatalk. | 
|  | 100 |  | 
|  | 101 | Instead, you follow the same procedure as for doing IP in EtherTalk. | 
|  | 102 | See Documentation/networking/ipddp.txt for more information about the | 
|  | 103 | kernel driver and userspace tools needed. | 
|  | 104 |  | 
|  | 105 | -------------------------------------- | 
|  | 106 |  | 
|  | 107 | BUGS: | 
|  | 108 |  | 
|  | 109 | IRQ autoprobing often doesn't work on a cold boot.  To get around | 
|  | 110 | this, either compile the driver as a module, or pass the parameters | 
|  | 111 | for the card to the kernel as described above. | 
|  | 112 |  | 
|  | 113 | Also, as usual, autoprobing is not recommended when you use the driver | 
|  | 114 | as a module. (though it usually works at boot time, at least) | 
|  | 115 |  | 
|  | 116 | Polled mode is *really* slow sometimes, but this seems to depend on | 
|  | 117 | the configuration of the network. | 
|  | 118 |  | 
|  | 119 | It may theoretically be possible to use two LTPC cards in the same | 
|  | 120 | machine, but this is unsupported, so if you really want to do this, | 
|  | 121 | you'll probably have to hack the initialization code a bit. | 
|  | 122 |  | 
|  | 123 | ______________________________________ | 
|  | 124 |  | 
|  | 125 | THANKS: | 
|  | 126 | Thanks to Alan Cox for helpful discussions early on in this | 
|  | 127 | work, and to Denis Hainsworth for doing the bleeding-edge testing. | 
|  | 128 |  | 
|  | 129 | -- Bradford Johnson <bradford@math.umn.edu> | 
|  | 130 |  | 
|  | 131 | -- Updated 11/09/1998 by David Huggins-Daines <dhd@debian.org> |