| $Id: README.hysdn,v 1.3.6.1 2001/02/10 14:41:19 kai Exp $ | 
 | The hysdn driver has been written by | 
 | Werner Cornelius (werner@isdn4linux.de or werner@titro.de) | 
 | for Hypercope GmbH Aachen Germany. Hypercope agreed to publish this driver | 
 | under the GNU General Public License. | 
 |  | 
 | The CAPI 2.0-support was added by Ulrich Albrecht (ualbrecht@hypercope.de) | 
 | for Hypercope GmbH Aachen, Germany. | 
 |  | 
 |  | 
 |     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., 675 Mass Ave, Cambridge, MA 02139, USA. | 
 |  | 
 | Table of contents | 
 | ================= | 
 |  | 
 | 1. About the driver | 
 |  | 
 | 2. Loading/Unloading the driver | 
 |  | 
 | 3. Entries in the /proc filesystem | 
 |  | 
 | 4. The /proc/net/hysdn/cardconfX file | 
 |  | 
 | 5. The /proc/net/hysdn/cardlogX file | 
 |  | 
 | 6. Where to get additional info and help | 
 |  | 
 |  | 
 | 1. About the driver | 
 |  | 
 |    The drivers/isdn/hysdn subdir contains a driver for HYPERCOPEs active  | 
 |    PCI isdn cards Champ, Ergo and Metro. To enable support for this cards | 
 |    enable ISDN support in the kernel config and support for HYSDN cards in | 
 |    the active cards submenu. The driver may only be compiled and used if  | 
 |    support for loadable modules and the process filesystem have been enabled. | 
 |  | 
 |    These cards provide two different interfaces to the kernel. Without the | 
 |    optional CAPI 2.0 support, they register as ethernet card. IP-routing | 
 |    to a ISDN-destination is performed on the card itself. All necessary | 
 |    handlers for various protocols like ppp and others as well as config info | 
 |    and firmware may be fetched from Hypercopes WWW-Site www.hypercope.de. | 
 |  | 
 |    With CAPI 2.0 support enabled, the card can also be used as a CAPI 2.0  | 
 |    compliant devices with either CAPI 2.0 applications  | 
 |    (check isdn4k-utils) or -using the capidrv module- as a regular | 
 |    isdn4linux device. This is done via the same mechanism as with the  | 
 |    active AVM cards and in fact uses the same module. | 
 |     | 
 |  | 
 | 2. Loading/Unloading the driver | 
 |  | 
 |    The module has no command line parameters and auto detects up to 10 cards | 
 |    in the id-range 0-9. | 
 |    If a loaded driver shall be unloaded all open files in the /proc/net/hysdn | 
 |    subdir need to be closed and all ethernet interfaces allocated by this  | 
 |    driver must be shut down. Otherwise the module counter will avoid a module | 
 |    unload. | 
 |     | 
 |    If you are using the CAPI 2.0-interface, make sure to load/modprobe the | 
 |    kernelcapi-module first. | 
 |  | 
 |    If you plan to use the capidrv-link to isdn4linux, make sure to load | 
 |    capidrv.o after all modules using this driver (i.e. after hysdn and | 
 |    any avm-specific modules). | 
 |  | 
 | 3. Entries in the /proc filesystem | 
 |  | 
 |    When the module has been loaded it adds the directory hysdn in the  | 
 |    /proc/net tree. This directory contains exactly 2 file entries for each  | 
 |    card. One is called cardconfX and the other cardlogX, where X is the | 
 |    card id number from 0 to 9.  | 
 |    The cards are numbered in the order found in the PCI config data. | 
 |  | 
 | 4. The /proc/net/hysdn/cardconfX file | 
 |  | 
 |    This file may be read to get by everyone to get info about the cards type,  | 
 |    actual state, available features and used resources. | 
 |    The first 3 entries (id, bus and slot) are PCI info fields, the following | 
 |    type field gives the information about the cards type: | 
 |  | 
 |    4 -> Ergo card (server card with 2 b-chans) | 
 |    5 -> Metro card (server card with 4 or 8 b-chans) | 
 |    6 -> Champ card (client card with 2 b-chans)    | 
 |  | 
 |    The following 3 fields show the hardware assignments for irq, iobase and the | 
 |    dual ported memory (dp-mem). | 
 |    The fields b-chans and fax-chans announce the available card resources of | 
 |    this types for the user. | 
 |    The state variable indicates the actual drivers state for this card with the | 
 |    following assignments. | 
 |  | 
 |    0 -> card has not been booted since driver load | 
 |    1 -> card booting is actually in progess | 
 |    2 -> card is in an error state due to a previous boot failure | 
 |    3 -> card is booted and active | 
 |  | 
 |    And the last field (device) shows the name of the ethernet device assigned | 
 |    to this card. Up to the first successful boot this field only shows a - | 
 |    to tell that no net device has been allocated up to now. Once a net device | 
 |    has been allocated it remains assigned to this card, even if a card is | 
 |    rebooted and an boot error occurs.  | 
 |  | 
 |    Writing to the cardconfX file boots the card or transfers config lines to  | 
 |    the cards firmware. The type of data is automatically detected when the  | 
 |    first data is written. Only root has write access to this file. | 
 |    The firmware boot files are normally called hyclient.pof for client cards | 
 |    and hyserver.pof for server cards. | 
 |    After successfully writing the boot file, complete config files or single | 
 |    config lines may be copied to this file. | 
 |    If an error occurs the return value given to the writing process has the  | 
 |    following additional codes (decimal): | 
 |  | 
 |    1000 Another process is currently bootng the card | 
 |    1001 Invalid firmware header | 
 |    1002 Boards dual-port RAM test failed | 
 |    1003 Internal firmware handler error | 
 |    1004 Boot image size invalid | 
 |    1005 First boot stage (bootstrap loader) failed | 
 |    1006 Second boot stage failure | 
 |    1007 Timeout waiting for card ready during boot | 
 |    1008 Operation only allowed in booted state | 
 |    1009 Config line too long  | 
 |    1010 Invalid channel number  | 
 |    1011 Timeout sending config data | 
 |  | 
 |    Additional info about error reasons may be fetched from the log output.  | 
 |  | 
 | 5. The /proc/net/hysdn/cardlogX file | 
 |    	   | 
 |    The cardlogX file entry may be opened multiple for reading by everyone to  | 
 |    get the cards and drivers log data. Card messages always start with the | 
 |    keyword LOG. All other lines are output from the driver.  | 
 |    The driver log data may be redirected to the syslog by selecting the  | 
 |    appropriate bitmask. The cards log messages will always be send to this | 
 |    interface but never to the syslog. | 
 |  | 
 |    A root user may write a decimal or hex (with 0x) value t this file to select | 
 |    desired output options. As mentioned above the cards log dat is always  | 
 |    written to the cardlog file independent of the following options only used | 
 |    to check and debug the driver itself: | 
 |  | 
 |    For example:  | 
 |    echo "0x34560078" > /proc/net/hysdn/cardlog0 | 
 |    to output the hex log mask 34560078 for card 0. | 
 |   | 
 |    The written value is regarded as an unsigned 32-Bit value, bit ored for  | 
 |    desired output. The following bits are already assigned: | 
 |  | 
 |    0x80000000   All driver log data is alternatively via syslog  | 
 |    0x00000001   Log memory allocation errors | 
 |    0x00000010   Firmware load start and close are logged | 
 |    0x00000020   Log firmware record parser | 
 |    0x00000040   Log every firmware write actions | 
 |    0x00000080   Log all card related boot messages | 
 |    0x00000100   Output all config data sent for debugging purposes | 
 |    0x00000200   Only non comment config lines are shown wth channel | 
 |    0x00000400   Additional conf log output | 
 |    0x00001000   Log the asynchronous scheduler actions (config and log) | 
 |    0x00100000   Log all open and close actions to /proc/net/hysdn/card files | 
 |    0x00200000   Log all actions from /proc file entries | 
 |    0x00010000   Log network interface init and deinit | 
 |     | 
 | 6. Where to get additional info and help | 
 |  | 
 |    If you have any problems concerning the driver or configuration contact  | 
 |    the Hypercope support team (support@hypercope.de) and or the authors | 
 |    Werner Cornelius (werner@isdn4linux or cornelius@titro.de) or | 
 |    Ulrich Albrecht (ualbrecht@hypercope.de). | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  |