Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | $Id: README.hysdn,v 1.3.6.1 2001/02/10 14:41:19 kai Exp $ |
| 2 | The hysdn driver has been written by |
Paolo Ornati | 670e9f3 | 2006-10-03 22:57:56 +0200 | [diff] [blame] | 3 | Werner Cornelius (werner@isdn4linux.de or werner@titro.de) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 4 | for Hypercope GmbH Aachen Germany. Hypercope agreed to publish this driver |
| 5 | under the GNU General Public License. |
| 6 | |
| 7 | The CAPI 2.0-support was added by Ulrich Albrecht (ualbrecht@hypercope.de) |
| 8 | for Hypercope GmbH Aachen, Germany. |
| 9 | |
| 10 | |
| 11 | This program is free software; you can redistribute it and/or modify |
| 12 | it under the terms of the GNU General Public License as published by |
| 13 | the Free Software Foundation; either version 2 of the License, or |
| 14 | (at your option) any later version. |
| 15 | |
| 16 | This program is distributed in the hope that it will be useful, |
| 17 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 18 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 19 | GNU General Public License for more details. |
| 20 | |
| 21 | You should have received a copy of the GNU General Public License |
| 22 | along with this program; if not, write to the Free Software |
| 23 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| 24 | |
| 25 | Table of contents |
| 26 | ================= |
| 27 | |
| 28 | 1. About the driver |
| 29 | |
| 30 | 2. Loading/Unloading the driver |
| 31 | |
| 32 | 3. Entries in the /proc filesystem |
| 33 | |
| 34 | 4. The /proc/net/hysdn/cardconfX file |
| 35 | |
| 36 | 5. The /proc/net/hysdn/cardlogX file |
| 37 | |
| 38 | 6. Where to get additional info and help |
| 39 | |
| 40 | |
| 41 | 1. About the driver |
| 42 | |
| 43 | The drivers/isdn/hysdn subdir contains a driver for HYPERCOPEs active |
| 44 | PCI isdn cards Champ, Ergo and Metro. To enable support for this cards |
| 45 | enable ISDN support in the kernel config and support for HYSDN cards in |
| 46 | the active cards submenu. The driver may only be compiled and used if |
| 47 | support for loadable modules and the process filesystem have been enabled. |
| 48 | |
| 49 | These cards provide two different interfaces to the kernel. Without the |
| 50 | optional CAPI 2.0 support, they register as ethernet card. IP-routing |
| 51 | to a ISDN-destination is performed on the card itself. All necessary |
| 52 | handlers for various protocols like ppp and others as well as config info |
| 53 | and firmware may be fetched from Hypercopes WWW-Site www.hypercope.de. |
| 54 | |
| 55 | With CAPI 2.0 support enabled, the card can also be used as a CAPI 2.0 |
| 56 | compliant devices with either CAPI 2.0 applications |
| 57 | (check isdn4k-utils) or -using the capidrv module- as a regular |
| 58 | isdn4linux device. This is done via the same mechanism as with the |
| 59 | active AVM cards and in fact uses the same module. |
| 60 | |
| 61 | |
| 62 | 2. Loading/Unloading the driver |
| 63 | |
| 64 | The module has no command line parameters and auto detects up to 10 cards |
| 65 | in the id-range 0-9. |
| 66 | If a loaded driver shall be unloaded all open files in the /proc/net/hysdn |
| 67 | subdir need to be closed and all ethernet interfaces allocated by this |
| 68 | driver must be shut down. Otherwise the module counter will avoid a module |
| 69 | unload. |
| 70 | |
| 71 | If you are using the CAPI 2.0-interface, make sure to load/modprobe the |
| 72 | kernelcapi-module first. |
| 73 | |
| 74 | If you plan to use the capidrv-link to isdn4linux, make sure to load |
| 75 | capidrv.o after all modules using this driver (i.e. after hysdn and |
| 76 | any avm-specific modules). |
| 77 | |
| 78 | 3. Entries in the /proc filesystem |
| 79 | |
| 80 | When the module has been loaded it adds the directory hysdn in the |
| 81 | /proc/net tree. This directory contains exactly 2 file entries for each |
| 82 | card. One is called cardconfX and the other cardlogX, where X is the |
| 83 | card id number from 0 to 9. |
| 84 | The cards are numbered in the order found in the PCI config data. |
| 85 | |
| 86 | 4. The /proc/net/hysdn/cardconfX file |
| 87 | |
| 88 | This file may be read to get by everyone to get info about the cards type, |
| 89 | actual state, available features and used resources. |
| 90 | The first 3 entries (id, bus and slot) are PCI info fields, the following |
| 91 | type field gives the information about the cards type: |
| 92 | |
| 93 | 4 -> Ergo card (server card with 2 b-chans) |
| 94 | 5 -> Metro card (server card with 4 or 8 b-chans) |
| 95 | 6 -> Champ card (client card with 2 b-chans) |
| 96 | |
| 97 | The following 3 fields show the hardware assignments for irq, iobase and the |
| 98 | dual ported memory (dp-mem). |
| 99 | The fields b-chans and fax-chans announce the available card resources of |
| 100 | this types for the user. |
| 101 | The state variable indicates the actual drivers state for this card with the |
| 102 | following assignments. |
| 103 | |
| 104 | 0 -> card has not been booted since driver load |
| 105 | 1 -> card booting is actually in progess |
| 106 | 2 -> card is in an error state due to a previous boot failure |
| 107 | 3 -> card is booted and active |
| 108 | |
| 109 | And the last field (device) shows the name of the ethernet device assigned |
| 110 | to this card. Up to the first successful boot this field only shows a - |
| 111 | to tell that no net device has been allocated up to now. Once a net device |
| 112 | has been allocated it remains assigned to this card, even if a card is |
| 113 | rebooted and an boot error occurs. |
| 114 | |
| 115 | Writing to the cardconfX file boots the card or transfers config lines to |
| 116 | the cards firmware. The type of data is automatically detected when the |
| 117 | first data is written. Only root has write access to this file. |
| 118 | The firmware boot files are normally called hyclient.pof for client cards |
| 119 | and hyserver.pof for server cards. |
| 120 | After successfully writing the boot file, complete config files or single |
| 121 | config lines may be copied to this file. |
| 122 | If an error occurs the return value given to the writing process has the |
| 123 | following additional codes (decimal): |
| 124 | |
| 125 | 1000 Another process is currently bootng the card |
| 126 | 1001 Invalid firmware header |
| 127 | 1002 Boards dual-port RAM test failed |
| 128 | 1003 Internal firmware handler error |
| 129 | 1004 Boot image size invalid |
| 130 | 1005 First boot stage (bootstrap loader) failed |
| 131 | 1006 Second boot stage failure |
| 132 | 1007 Timeout waiting for card ready during boot |
| 133 | 1008 Operation only allowed in booted state |
| 134 | 1009 Config line too long |
| 135 | 1010 Invalid channel number |
| 136 | 1011 Timeout sending config data |
| 137 | |
| 138 | Additional info about error reasons may be fetched from the log output. |
| 139 | |
| 140 | 5. The /proc/net/hysdn/cardlogX file |
| 141 | |
| 142 | The cardlogX file entry may be opened multiple for reading by everyone to |
| 143 | get the cards and drivers log data. Card messages always start with the |
| 144 | keyword LOG. All other lines are output from the driver. |
| 145 | The driver log data may be redirected to the syslog by selecting the |
| 146 | appropriate bitmask. The cards log messages will always be send to this |
| 147 | interface but never to the syslog. |
| 148 | |
| 149 | A root user may write a decimal or hex (with 0x) value t this file to select |
| 150 | desired output options. As mentioned above the cards log dat is always |
| 151 | written to the cardlog file independent of the following options only used |
| 152 | to check and debug the driver itself: |
| 153 | |
| 154 | For example: |
| 155 | echo "0x34560078" > /proc/net/hysdn/cardlog0 |
| 156 | to output the hex log mask 34560078 for card 0. |
| 157 | |
| 158 | The written value is regarded as an unsigned 32-Bit value, bit ored for |
| 159 | desired output. The following bits are already assigned: |
| 160 | |
| 161 | 0x80000000 All driver log data is alternatively via syslog |
| 162 | 0x00000001 Log memory allocation errors |
| 163 | 0x00000010 Firmware load start and close are logged |
| 164 | 0x00000020 Log firmware record parser |
| 165 | 0x00000040 Log every firmware write actions |
| 166 | 0x00000080 Log all card related boot messages |
| 167 | 0x00000100 Output all config data sent for debugging purposes |
| 168 | 0x00000200 Only non comment config lines are shown wth channel |
| 169 | 0x00000400 Additional conf log output |
| 170 | 0x00001000 Log the asynchronous scheduler actions (config and log) |
| 171 | 0x00100000 Log all open and close actions to /proc/net/hysdn/card files |
| 172 | 0x00200000 Log all actions from /proc file entries |
| 173 | 0x00010000 Log network interface init and deinit |
| 174 | |
| 175 | 6. Where to get additional info and help |
| 176 | |
| 177 | If you have any problems concerning the driver or configuration contact |
| 178 | the Hypercope support team (support@hypercope.de) and or the authors |
| 179 | Werner Cornelius (werner@isdn4linux or cornelius@titro.de) or |
| 180 | Ulrich Albrecht (ualbrecht@hypercope.de). |
| 181 | |
| 182 | |
| 183 | |
| 184 | |
| 185 | |
| 186 | |
| 187 | |
| 188 | |
| 189 | |
| 190 | |
| 191 | |
| 192 | |
| 193 | |
| 194 | |
| 195 | |