CARD.CONF(5)

NAME
card.conf - cardd(8) configuration file

DESCRIPTION
The card.conf file is the configuration file for the cardd(8) PC-CARD slot management daemon. It provides information to allow card identification, and the matching of drivers (along with driver resources) to the PC-CARD cards.

There are four basic elements within the configuration file; An optional resource pool preceding the other sections, and one or more card identifiers, and device instances. The latter two may appear in any order, and may be interspersed as desired.

Each PC-CARD card contains configuration tuples that provide the manufacturer and card version; these are used to identify the card specification in the configuration file, and from this find a driver that can be used to interface to the particular card. There is a many-to-one mapping between cards to drivers i.e a single driver may interface to multiple types of cards. To aid this, card parameters may be specified separately from the driver to initialise the card or extract (in the case of a network card) an ethernet address.

Once a driver is allocated to a card, it stays allocated to that particular card. However, multiple instances of the same type of driver can be configured, so that if two cards are plugged in that map to a similar type of driver, other driver instances of the same name can be configured.

The insert and remove commands allow a shell command line to be executed. The command to be executed is the rest of the line after the keyword. The line can be continued using a backslash. A simple macro substitution allows the current kernel device name ($device) and network card ethernet address ($ether) to be inserted into the command line. Pcmciad(8) uses the system(3) subroutine to execute the command line.

Numeric values may be expressed as octal, hex or decimal. If a decimal number has k or K appended to it, the value is multiplied by 1024. Names may be quoted using double quotes if spaces are required. A hash character comments out the rest of the line.

  Resource pool
The (optional) section specifies a pool of system resources such as ISA bus memory address space, Input/Output ports and interrupt request numbers. This resource pool is used to allocate address space and interrupt numbers dynamically according to the requirements specified in each driver description.

The syntax of the resources is as follows:

    io start - end ...
    memory address size ...
    irq irq-number ...

Each of the statements define I/O, memory or IRQ blocks that can be used to allocate to drivers when they are initialised.

Multiple lines of any of the above statements may be present to allow separate blocks of each resource to be defined.

  Card Identifiers
The syntax for card identifiers is:

    card manufacturer version class
    config index driver interrupt [flags]
    ether offset
    insert command
    remove command

The first line is mandatory; the latter statements are optional and can appear in any order. There may be multiple config lines. The card parameters are the Manufacturer name and card version that is used to match the values from the card's CIS memory. The class identifies the card as one of the device classes listed below. The config parameters select the particular card's configuration index from the range available in the card's CIS, the driver that is to be associated with this configuration, and the interrupt level (if any) to be assigned. An optional set of flags may be assigned.

The optional ether keyword is used when network cards have their physical Ethernet address located within the attribute memory of the card. The parameter of this statement indicates the offset within the attribute memory of the Ethernet address. This value can be used within insert/remove commands using the $ether macro.

The insert and remove sections allow shell commands to be specified that are executed when the card is inserted or removed. Multiple insert and remove commands are allowed, and they are executed in the order they are listed.

EXAMPLE
A typical configuration file may appear thus:

    #
    # Sample configuration file.
    #
    # Pool parameters.
    #
    io 0x280 - 0x2F0 0x300 - 0x360
    irq 5 6 8 9 10 15
    memory 0xd4000 96k
    memory 0xc4000 32k
    #
    # Card database.
    #
    card "RPTI LTD." "EP400"  # NE2000 clone
           ether 0x110
           config 0x21 "ed0" 5
           insert ifconfig $device physical $ether
           insert ifconfig $device bean
           remove ifconfig $device down
    card "XYZZY" "FAX/1.0" tty
           config 0x30 "sio1" 11
           insert echo start getty
           remove echo stop getty

FILES
/etc/card.conf
    The cardd(8) configuration file.

SEE ALSO
cardd(8)