| | |
|||||||||||||||||||||||||
For developers and others wanting to help debug:
Version 0.4.1
Driver can be downloaded from:
http://home.c2i.net/hselasky/isdn4bsd/privat/temporary/new_ihfc_0_4_1.tar.bz2
A diff has also been made for existing files (not the new ones) so that
it is easier to check where changes have been made. NOTE: this diff is
against the last driver.
http://home.c2i.net/hselasky/isdn4bsd/privat/temporary/new_ihfc_0_4_1.diff.bz2
NOTE: This code should work with the current sources of 2. of October 2002 or later.
Using this driver with earlier current sources may break other drivers, but new_ihfc.
List of new features currently not found in I4B:
- Driver uses mutexes to protect chip access.
- Direct access to D-channel and B-channel(not finished, but works)
- D-channel encoding support.
- Support for:
- NT-mode (IPAC chips support line switch instead)
- data filters (``as plug-ins'')
- drivers (``as plug-ins'')
- polled interrupt mode
- chip reset
- HFCS-PCI
- USB
About the driver:
=================
The driver supports generic IPAC/ISAC/HSCX/HFC/WINBOND chips and allows the
drivers to emulate behind one or more of those chips. As a consequence
of this any ring-buffer or block-buffer ISDN device can easily be
implemented with a minimum of code. To have more people being able to
test the driver there has been added support for some cards already
found in ISDN4BSD. Please see the ``new_ihfc'' manual.
NOTE: Only HFC based and Dynalink compatible cards have been tested.
Please send patches using `diff -crN` and include the complete file
if the patch is big.
NOTE: Because USB devices can be unplugged some code had to be
rewritten outside i4b/layer1, to allow this.
TODO:
=====
1. Currently freeing an mbuf takes ``so long time'' that if it is done
before an ISAC/HSCX cmdr write, that command may fail (no fix). Is
this a mutex sleeping problem? Also when switching the console there
may occur glitches in the output stream. Maybe ISDN4BSD should use a
fixed ring of mbufs to speed up allocation and freeing? Some tests in
polled mode showed that enabling the Giant mutex before interrupt call
caused an extra delay in the range 10ms!
How to install:
=============
1. manually add these lines to /sys/conf/files.i386
at the line saying:
#
# isdn4bsd, needed for isic | iwic | ifpi | ifpi2 | ihfc | ifpnp | itjc
#
# add this:
i4b/layer1/i4b_l1dmux.c optional new_ihfc
i4b/layer1/i4b_l1lib.c optional new_ihfc
i4b/layer1/i4b_hdlc.c optional new_ihfc
i4b/layer1/ihfc2/i4b_ihfc2_l1if.c optional new_ihfc
i4b/layer1/ihfc2/i4b_ihfc2_pnp.c optional new_ihfc
i4b/layer1/ihfc2/i4b_ihfc2_drv.c optional new_ihfc
i4b/layer1/ihfc2/i4b_ihfc2_dev.c optional new_ihfc
2. make sure the following lines are in your kernel configuration
file: (NOTE: please only use one of new_ihfc and (ihfc or isic or
itjc or iwic) at a time).
# I4B section
options IPR_VJ
device "i4bq921"
device "i4bq931"
device "i4b"
device "i4btrc" 8
device "i4bctl"
device "i4brbch" 8
device "i4btel" 8
device "i4bipr" 8
device "i4bisppp" 8
device new_ihfc
3. make backup of these directories if you don't want to
develop the driver
mkdir /usr/i4b_bak || exit
mkdir /usr/i4b_bak/sys || exit
cp -rv /usr/include/machine /usr/i4b_bak/
cp -rv /usr/src/sys/i386/include /usr/i4b_bak/sys/
cp -rv /usr/src/usr.sbin/i4b /usr/i4b_bak/
cp -rv /usr/src/sys/i4b /usr/i4b_bak/sys/
cp -rv /usr/src/sys/isa/isa_common.c /usr/i4b_bak/
cp -rv /usr/src/sys/i386/include/bus_at386.h /usr/i4b_bak/
rm -rv /usr/src/sys/i4b/*
4. install the driver like this
tar -jxvf new_ihfc*.tar.bz2 -C /usr/src/
cp -rv /usr/src/sys/i386/include/*i4b* /usr/include/machine/
5. run your kernel configuration script
6. recompile the kernel (remove all *i4b*.o files
from the compile directory, "make clean build" or
just "make depend all -DNO_MODULES -DNO_CLEAN")
7. hopefully no errors should occur during
compilation.
8. after the kernel has been compiled recompile isdndebug and
manual pages (`man new_ihfc' should work afterwards)
cd /usr/src/usr.sbin/i4b/
make all install
9. make a backup of the old kernel in case
it doesn't work.
10. reboot
-HPS
Uninstall script:
#rm -rv /usr/src/sys/i4b/*
cp -rvi /usr/i4b_bak/machine /usr/include/
cp -rvi /usr/i4b_bak/sys/include /usr/src/sys/i386/
cp -rvi /usr/i4b_bak/sys/i4b /usr/src/sys/
cp -rvi /usr/i4b_bak/i4b /usr/src/usr.sbin/
cp -rvi /usr/i4b_bak/isa_common.c /usr/src/sys/isa/
cp -rvi /usr/i4b_bak/bus_at386.h /usr/src/sys/i386/include/
| |||||||||||||||||||||||||||
This document was last updated on Fri Nov 28 20:54:55 CET 2008.
|