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> |