**************************************************************************
                CIF Device Driver V2.621 (64-bit & 32-bit)
**************************************************************************

0. Development & test environment
1. CIF Device Driver, V2.621
   1.1 ISA boards
   1.2 PCI Interrupts 
   1.3 PCMCIA boards
2. Driver Setup & Test Program
3. Console Demo
4. Changes
5. Notes
6. Copyright
7. Acknowledgments
--------------------------------------------------------------------------

	0. Development & test environment
SuSe 10.1, 64-bit Edition resp. 32-bit Edition, SuSe 10.2 32-bit Edition.
For Kernel/gcc versions refer to file VERSIONS.

	1. CIF Device Driver, V2.621
This driver version is running on 32-bit and 64-bit plattforms. Please, always 
recompile this package, /src, /api, /cifSET, on your machine. 

CIF-50 PCI, CIF-80 Compact-PCI, CIF-30 / CIF-104 ISA and CIF-60 PCMCIA cards 
are supported. 

Current developments are always to find on our Home Page www.Hilscher.com.

To build and load the driver module cif.ko  use drv_build_n_load.sh script
in the src/ directory, to simply load an already existing driver execute drv_load.sh 
script and to remove the driver and the corresponding device file execute
drv_remove.sh script in the same directory.
 
PCI cards are autodetected by driver. If you use ISA cards, you have to 
pass load parameters to the driver. 

	1.1 ISA boards
These parameters are: DPM-address, DPM-size and IRQ-number. you can have 
plugged up to four Hilscher communication Boards at a time, so you can 
pass up to four DPM-addresses, DPM-sizes and IRQ-numbers. The best way to 
describe this is by showing a few samples of the command line.

./drv_build_n_load dpm_add=0xCA000 dpm_len=0x2 irq=11 
  if there is only one ISA board plugged with appropriate jumper settings.
If you want the board to operate in polling mode simply pass IRQ-number 0:
./drv_build_n_load dpm_add=0xCA000 dpm_len=0x2 irq=0

./drv_build_n_load dpm_add=0xCA000,0xCB000,0xCC000,0xCD000 dpm_len=0x2,0x8,0x6,0x8 irq=11,9,12,14
    if there are four ISA boards plugged with appropriate jumper settings

Note: On Intel platforms, DPM-addresses for ISA boards are in range 
      640KB-1MB (0xA0000 to 0xFFFFF).
      Do not forget to tag IRQ-number, You are going to use for ISA card, 
      in BIOS as an ISA IRQ.

	1.2 PCI Interrupts
The driver is disabling interrups on PCI boards by default. If you like to
run them in interrupt mode, you have to activate pci interrupts during
driver load as follows:
./drv_build_n_load pci_irq=y
The driver requests shared irq (SA_SHIRQ) for the board(s) in this case.

	1.3 PCMCIA boards
In this driver version pcmcia boards support has been included. The development
was done by Mr. Ivan Ibrin from the University of Siegen, sponsored and supervised
by Mr. Dr.-Ing. Rainer Lehrig. Development env. - SuSe 10.2, 32-bit edition. 
For more information, please, visit http://pvbrowser.org.
For the pcmcia support, kernel 2.6.18 or higher is required.
To generate pcmcia driver image cif_cs.o, you've to modify the Makefile in 
src/ subfolder. Simply uncomment 'CIF_60 = y' and run drv_build_n_load_pcmcia.sh.
--------------------------------------------------------------------------

	2. Driver Setup & Test Program
The Driver Setup & Test program was developed with GTK+ version 1.2.8. 
For GNU Library General Public License agreement and library itself refer 
to the www.gtk.org

CIF Driver Setup and Test Program can help You to understand how to call 
Driver Functions. API for Driver itself is linked to the application as 
an object file (cif_api.o), see Makefile in 'cifSET/' subdirectory of the
driver intstallation directory.

You can modify CIF Driver Setup and Test Program for your own needs.
--------------------------------------------------------------------------

	3. Console Demo
If you want to test our Driver not in X-Windows Environment, there is a
simple console demo program incuded in package.
--------------------------------------------------------------------------

	4. Changes

This version of the driver is based on V2.100 and ported for the Kernel 2.6.xx. 
- Supports both 32- & 64-bit architectures.
- PCMCIA cards support has been added by Mr. Ivan Ibrin, see 1.3. 
- GNU Lesser GPL applies unchanged

If interrupt is used, the driver requests not shared one, due to the problems
discovered with 2.6.xx.xx Kernels.
--------------------------------------------------------------------------

	5. Notes

a) The driver version 2.100 works under Kernel 2.4.0-2
b) The driver version 1.003 works under Kernel 2.2.10, 2.2.14, 2.2.16
   Anyway, by any problems contact us via email. For the Address see below.
c) If you'd like to load and unload cif driver automatically at system
   start and shut down, there are two possibilities:
   -1- (the convenient way) you add the scripts 'cif_load' and 'cif_unload'
       to the scripts for system control - see 'AUTO/' subdirectory;
   -2- (time-consuming)  you integrate the driver in your actual Kernel
       static or as a module.
--------------------------------------------------------------------------

	6. Copyright
==========================================================================

    Copyright (C) 2004  Hilscher GmbH

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library 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
    Lesser General Public License for more details.
    
    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

==========================================================================

	7. Acknowledgments
			
We'd like to acknowledge people who helped us to keep the driver constantly
up-to-date by giving constructive feedback, finding time to look closer at
the source code, reporting errors or even making bug fixes.
Thank you very much indeed! 
--------------------------------------------------------------------------

We have tested and verified all the functions to the best of our ability,
but You may miss some features in Driver or in Test Program or even find
errors we have possibly made while coding. Please let us know about any
errors you find, as well as your suggestions for future releases.

You can send us an email to:

DTsaava@Hilscher.com


Hattersheim, Aug. '09.