$Id: README.act2000,v 1.3 2000/08/06 09:22:51 armin Exp $

This document describes the ACT2000 driver for the
IBM Active 2000 ISDN card.

There are 3 Types of this card available. A ISA-, MCA-, and PCMCIA-Bus
Version. Currently, only the ISA-Bus version of the card is supported.
However MCA and PCMCIA will follow soon.

The ISA-Bus Version uses 8 IO-ports. The base port address has to be set
manually using the DIP switches.

Setting up the DIP switches for the IBM Active 2000 ISDN card:

	 Note: S5 and S6 always set off!

     S1  S2  S3  S4  Base-port
     on  on  on  on  0x0200 (Factory default)
     off on  on  on  0x0240 
     on  off on  on  0x0280 
     off off on  on  0x02c0 
     on  on  off on  0x0300 
     off on  off on  0x0340 
     on  off off on  0x0380 
     on  on  on  off 0xcfe0
     off on  on  off 0xcfa0 
     on  off on  off 0xcf60 
     off off on  off 0xcf20 
     on  on  off off 0xcee0 
     off on  off off 0xcea0 
     on  off off off 0xce60 
     off off off off Card disabled 

IRQ is configured by software. Possible values are:

  3, 5, 7, 10, 11, 12, 15 and none (polled mode)


The ACT2000 driver may either be built into the kernel or as a module.
Initialization depends on how the driver is built:

Driver built into the kernel:

  The ACT2000 driver can be configured using the commandline-feature while
  loading the kernel with LILO or LOADLIN. It accepts the following syntax:

  act2000=b,p,i[,idstring]

  where

    b = Bus-Type      (1=ISA, 2=MCA, 3=PCMCIA)
    p = portbase      (-1 means autoprobe)
    i = Interrupt     (-1 means use next free IRQ, 0 means polled mode)

  The idstring is an arbitrary string used for referencing the card
  by the actctrl tool later.

  Defaults used, when no parameters given at all:

    1,-1,-1,""

  which means: Autoprobe for an ISA card, use next free IRQ, let the
  ISDN linklevel fill the IdString (usually "line0" for the first card).
 
  If you like to use more than one card, you can use the program
  "actctrl" from the utility-package to configure additional cards.

  Using the "actctrl"-utility, portbase and irq can also be changed
  during runtime. The D-channel protocol is configured by the "dproto"
  option of the "actctrl"-utility after loading the firmware into the
  card's memory using the "actctrl"-utility.

Driver built as module:

  The module act2000.o can be configured during modprobe (insmod) by
  appending its parameters to the modprobe resp. insmod commandline.
  The following syntax is accepted:

    act_bus=b act_port=p act_irq=i act_id=idstring

  where b, p, i and idstring have the same meanings as the parameters
  described for the builtin version above.

  Using the "actctrl"-utility, the same features apply to the modularized
  version as to the kernel-builtin one. (i.e. loading of firmware and
  configuring the D-channel protocol)

Loading the firmware into the card:

  The firmware is supplied together with the isdn4k-utils package. It
  can be found in the subdirectory act2000/firmware/

  Assuming you have installed the utility-package correctly, the firmware
  will be downloaded into the card using the following command:

    actctrl -d idstring load /etc/isdn/bip11.btl

  where idstring is the Name of the card, given during insmod-time or
  (for kernel-builtin driver) on the kernel commandline. If only one
  ISDN card is used, the -d isdstrin may be omitted.

  For further documentation (adding more IBM Active 2000 cards), refer to
  the manpage actctrl.8 which is included in the isdn4k-utils package.

