diff -ur --new-file old/linux/Documentation/Configure.help new/linux/Documentation/Configure.help --- old/linux/Documentation/Configure.help Tue May 18 01:47:32 1999 +++ new/linux/Documentation/Configure.help Tue May 18 01:48:10 1999 @@ -3633,6 +3633,44 @@ 25 and for 155 Mbps, including IDT cards and the Fore ForeRunnerLE series. +Madge Ambassador (Collage PCI 155 Server) +CONFIG_ATM_AMBASSADOR + This is a driver for ATMizer based ATM card produced by Madge + Networks Ltd. Say Y (or M to compile as a module named ambassador.o) + here if you have one of these cards. + +Enable debugging messages +CONFIG_ATM_AMBASSADOR_DEBUG + Somewhat useful debugging messages are available. The choice of + messages is controlled by a bitmap. This may be specified as a + module argument (kernel command line argument as well?), changed + dynamically using an ioctl (not yet) or changed by sending the + string "Dxxxx" to VCI 1023 (where x is a hex digit). See the file + drivers/atm/ambassador.h for the meanings of the bits in the mask. + + When active, these messages can have a significant impact on the + speed of the driver, and the size of your syslog files! When + inactive, they will have only a modest impact on performance. + +Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client) +CONFIG_ATM_HORIZON + This is a driver for the Horizon chipset ATM adapter cards once + produced by Madge Networks Ltd. Say Y (or M to compile as a module + named horizon.o) here if you have one of these cards. + +Enable debugging messages +CONFIG_ATM_HORIZON_DEBUG + Somewhat useful debugging messages are available. The choice of + messages is controlled by a bitmap. This may be specified as a + module argument (kernel command line argument as well?), changed + dynamically using an ioctl (not yet) or changed by sending the + string "Dxxxx" to VCI 1023 (where x is a hex digit). See the file + drivers/atm/horizon.h for the meanings of the bits in the mask. + + When active, these messages can have a significant impact on the + speed of the driver, and the size of your syslog files! When + inactive, they will have only a modest impact on performance. + SCSI support? CONFIG_SCSI If you want to use a SCSI hard disk, SCSI tape drive, SCSI CDROM or diff -ur --new-file old/linux/Documentation/atm.txt new/linux/Documentation/atm.txt --- old/linux/Documentation/atm.txt Tue May 18 01:47:32 1999 +++ new/linux/Documentation/atm.txt Tue May 18 01:48:10 1999 @@ -1,4 +1,4 @@ In order to use anything but the most primitive functions of ATM, several user-mode programs are required to assist the kernel. These programs and related material can be found via the ATM on Linux Web -page at http://lrcwww.epfl.ch/linux-atm/ +page at http://icawww1.epfl.ch/linux-atm/ diff -ur --new-file old/linux/drivers/atm/Config.in new/linux/drivers/atm/Config.in --- old/linux/drivers/atm/Config.in Tue May 18 01:47:32 1999 +++ new/linux/drivers/atm/Config.in Tue May 18 01:48:10 1999 @@ -30,5 +30,13 @@ # if [ "$CONFIG_ATM_TNETA1570" = "y" ]; then # bool ' Enable extended debugging' CONFIG_ATM_TNETA1570_DEBUG n # fi - tristate 'IDT 77201 (NICStAR)' CONFIG_ATM_NICSTAR y + tristate 'IDT 77201 (NICStAR)' CONFIG_ATM_NICSTAR + tristate 'Madge Ambassador (Collage PCI 155 Server)' CONFIG_ATM_AMBASSADOR + if [ "$CONFIG_ATM_AMBASSADOR" != "n" ]; then + bool ' Enable debugging messages' CONFIG_ATM_AMBASSADOR_DEBUG + fi + tristate 'Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client)' CONFIG_ATM_HORIZON y + if [ "$CONFIG_ATM_HORIZON" != "n" ]; then + bool ' Enable debugging messages' CONFIG_ATM_HORIZON_DEBUG + fi fi diff -ur --new-file old/linux/drivers/atm/Makefile new/linux/drivers/atm/Makefile --- old/linux/drivers/atm/Makefile Tue May 18 01:47:32 1999 +++ new/linux/drivers/atm/Makefile Tue May 18 01:48:10 1999 @@ -44,6 +44,22 @@ endif endif +ifeq ($(CONFIG_ATM_HORIZON),y) +L_OBJS += horizon.o +else + ifeq ($(CONFIG_ATM_HORIZON),m) + M_OBJS += horizon.o + endif +endif + +ifeq ($(CONFIG_ATM_AMBASSADOR),y) +L_OBJS += ambassador.o +else + ifeq ($(CONFIG_ATM_AMBASSADOR),m) + M_OBJS += ambassador.o + endif +endif + ifeq ($(CONFIG_ATM_TCP),y) L_OBJS += atmtcp.o else diff -ur --new-file old/linux/drivers/atm/ambassador.c new/linux/drivers/atm/ambassador.c --- old/linux/drivers/atm/ambassador.c Thu Jan 1 01:00:00 1970 +++ new/linux/drivers/atm/ambassador.c Tue May 18 01:48:10 1999 @@ -0,0 +1,2650 @@ +/* + Madge Ambassador ATM Adapter driver. + Copyright (C) 1995-1999 Madge Networks Ltd. + + 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 + + The GNU GPL is contained in /usr/doc/copyright/GPL on a Debian + system and in the file COPYING in the Linux kernel source. +*/ + +/* + IMPORTANT NOTE: Madge Networks does not license the microcode for + this driver under the GPL. See the .data file for the licence. +*/ + +/* * dedicated to the memory of Graham Gordon 1971-1998 * */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "ambassador.h" + +#define maintainer_string "Giuliano Procida at Madge Networks " +#define description_string "Madge ATM Ambassador driver" +#define version_string "1.1" + +static inline void __init show_version (void) { + printk ("%s version %s\n", description_string, version_string); +} + +/* + + Theory of Operation + + I Hardware, detection, initialisation and shutdown. + + 1. Supported Hardware + + This driver is for the PCI ATMizer-based Ambassador card (except + very early versions). It is not suitable for the similar EISA "TR7" + card. Commercially, both cards are known as Collage Server ATM + adapters. + + The loader supports image transfer to the card, image start and few + other miscellaneous commands. + + Only AAL5 is supported with vpi = 0 and vci in the range 0 to 1023. + + The cards are big-endian. + + 2. Detection + + Standard PCI stuff, the early cards are detected and rejected. + + 3. Initialisation + + The cards are reset and the self-test results are checked. The + microcode image is then transferred and started. This waits for a + pointer to a descriptor containing details of the host-based queues + and buffers and various parameters etc. Once they are processed + normal operations may begin. The BIA is read using a microcode + command. + + 4. Shutdown + + This may be accomplished either by a card reset or via the microcode + shutdown command. Further investigation required. + + 5. Persistent state + + The card reset does not affect PCI configuration (good) or the + contents of several other "shared run-time registers" (bad) which + include doorbell and interrupt control as well as EEPROM and PCI + control. The driver must be careful when modifying these registers + not to touch bits it does not use and to undo any changes at exit. + + II Driver software + + 0. Generalities + + The adapter is quite intelligent (fast) and has a simple interface + (few features). VPI is always zero, 1024 VCIs are supported. There + is limited cell rate support. UBR channels can be kept and ABR + (explicit rate, bu not EFCI) is supported. There is no CBR or VBR + support. + + 1. Driver <-> Adapter Communication + + A .