]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/README
Merge: Correction for 2.6.23-git kernel - unregister_chrdev() does not return value.
[lincan.git] / lincan / README
index 619299430d79dacd31b65427d547361308e73c1b..faf2677af318a95c2489ff6710f5af7ca825ba76 100644 (file)
@@ -1,7 +1,9 @@
-               Linux CAN Driver (LinCAN) version 0.2 snapshot
+
+               Linux CAN Driver (LinCAN) version 0.3.3
                Pavel Pisa <pisa@cmp.felk.cvut.cz>
                Pavel Pisa <pisa@cmp.felk.cvut.cz>
-                       OCERA team member
-                       <http://www.ocera.org>
+                       OCERA team member <http://www.ocera.org>
+                       Real-time Systems Laboratory <http://rtlab.felk.cvut.cz/>
+                       Department of Control Engineering, FEE CTU
 
 
 INTRODUCTION
 
 
 INTRODUCTION
@@ -56,17 +58,44 @@ lincan-0.2-pre      heavily rewritten infrastructure of the driver based
 lincan-0.2     version tested on many bords and 2.2, 2.4, 2.6 Linux
 (Mar 2004)     and RT-Linux enabled 2.4 Linux kernel
 
 lincan-0.2     version tested on many bords and 2.2, 2.4, 2.6 Linux
 (Mar 2004)     and RT-Linux enabled 2.4 Linux kernel
 
+lincan-0.2.8   possible SMP and HT deadlock fixed, driver can take
+(Jul 2004)     advantage of CMPXCHG instruction if present on CPU,
+               added support for CPC-PCI and PCAN-PCI cards,
+               messages timestamping implemented
+               partially implemented support for Bosch C_CAN module,
+               requires more work and real hardware
+
+lincan-0.3     Changed SJA1000 chip IRQ handling. Enhanced VME
+(Nov 2004)     and EMS CPC-PCI support and many other changes.
+
+lincan-0.3.1   Small improvements, RTR read moved into separate IOCTL,
+(Jul 2005)     initial support for some boards contributed by users
+
+lincan-0.3.2   Improvements in SJA1000 error handling and reporting,
+(Feb 2006)     i82527 support fixes, simple UDEV support,
+               updates for kernels up to 2.6.15 and fully preemptive
+               kernel compatibility. Support for MX1_DIS1 extension
+               board for PiMX1 ARM based BCC.
+
+lincan-0.3.3   Some more fixes of SJA1000 buss-of recovery,
+(May 2006)     i82527 IRQ stuck problem fixed (reported by Terence Soh),
+               tested up to 2.6.17 (rc4). Minimal chip info in /proc/can.
+               Support for NSI CAN PCI contributed by Eric Pennamen.
+
+               
 The actual version of driver have been latest tested it with
   - PC104 Advantech PCM3680 dual channel board on 2.4 RT-Linux enabled kernel
   - PiKRON ISA card on 2.4.and 2.6 Linux kernels
 The actual version of driver have been latest tested it with
   - PC104 Advantech PCM3680 dual channel board on 2.4 RT-Linux enabled kernel
   - PiKRON ISA card on 2.4.and 2.6 Linux kernels
+  - PiKRON CAN extension board for PiMCX1 ARM BCC on 2.6 Linux kernels
   - BfaD DIMM PC card on 2.4 RT-Linux enabled kernel
   - KVASER pcican-q on 2.6 Linux kernel
   - MICROSPACE msmcan on 2.4 Linux and RT-Linux enabled kernel
   - BfaD DIMM PC card on 2.4 RT-Linux enabled kernel
   - KVASER pcican-q on 2.6 Linux kernel
   - MICROSPACE msmcan on 2.4 Linux and RT-Linux enabled kernel
-  - virtual board tested on all systems as well
-It takes more time to test it with more cards and polish
-support for 2.2 and 2.6 kernels, but these should be mainly
-cosmetic changes (I hope ;-), infrastructure and original
-support for more than 17 boards with more variants is in.
+  - Unicontrols PCAN ("unican"),PCAN-PCI ("unican-pci"), VCAN  ("unican-vme")
+  - EMS CPC-PCI cards ("ems_cpcpci")
+  - virtual board tested on all systems as wel
+It takes more time to test driver with more cards.
+Infrastructure and support for more than 20 boards with more
+variants is prepared in the sources.
 
 
 SOURCES AND URLs
 
 
 SOURCES AND URLs
@@ -75,58 +104,137 @@ SOURCES AND URLs
 The LinCAN driver component page at OCERA web site
 (not updated to the new version yet)
 
 The LinCAN driver component page at OCERA web site
 (not updated to the new version yet)
 
-  http://www.ocera.org/download/components/WP7/lincan-0.1.html
+  http://www.ocera.org/download/components/WP7/lincan-0.3.1.html
   
 List of related communication components
   
   http://www.ocera.org/download/components/WP7/index.html
 
   
 List of related communication components
   
   http://www.ocera.org/download/components/WP7/index.html
 
-The CVS repository of OCERA project at SourceForge
+The obtaining LinCAN and other CAN related components
+from OCERA CVS repository at SourceForge
 
   EXTCVS=":pserver:anonymous@cvs.ocera.sourceforge.net:/cvsroot/ocera"
   cvs -d$EXTCVS login
 
   EXTCVS=":pserver:anonymous@cvs.ocera.sourceforge.net:/cvsroot/ocera"
   cvs -d$EXTCVS login
-  cvs -z3 -d$EXTCVS co ocera
+  cvs -z3 -d$EXTCVS co ocera/components/comm/can
   
 Web access into CVS
 
   
 Web access into CVS
 
-  http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ocera/ocera/components/comm/can/lincan/
+  http://ocera.cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ocera/ocera/components/comm/can/lincan/
 
 
-Experimental directory at maintainer (Pavel Pisa's) pages 
+Experimental directory at maintainer's (Pavel Pisa's) pages 
 
   http://cmp.felk.cvut.cz/~pisa/can/
   http://cmp.felk.cvut.cz/~pisa/can/lincan-YYMMDD.tar.gz
   
 Please send comments, bug-fixes and enhancements directly to
 
   http://cmp.felk.cvut.cz/~pisa/can/
   http://cmp.felk.cvut.cz/~pisa/can/lincan-YYMMDD.tar.gz
   
 Please send comments, bug-fixes and enhancements directly to
-me (Pavel Pisa <pisa@cmp.felk.cvut.cz>) or to OCERA discussion
+Pavel Pisa <pisa@cmp.felk.cvut.cz> or to OCERA discussion
 forum <https://sourceforge.net/forum/forum.php?forum_id=170893> 
 and lists <ocera-development@lists.sourceforge.net>
 
 forum <https://sourceforge.net/forum/forum.php?forum_id=170893> 
 and lists <ocera-development@lists.sourceforge.net>
 
+Driver documentation can be found at
 
 
-COMPILATION
-===========
+  http://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.3.pdf
+
+The anouncements of new version are published at FreshMeat page
+
+  http://freshmeat.net/projects/lincan/
+
+
+COMPILATION of LinCAN releases
+==============================
 
 Just type 'make' at the command line and driver module should compile
 
 Just type 'make' at the command line and driver module should compile
-without errors for current running kernel.
+without errors for current running kernel. 
 
 More information can be found in driver documentation at
   http://cmp.felk.cvut.cz/~pisa/can/
 
 More information can be found in driver documentation at
   http://cmp.felk.cvut.cz/~pisa/can/
-  http://cmp.felk.cvut.cz/~pisa/can/lincan-X.Y.pdf
+  http://cmp.felk.cvut.cz/~pisa/can/lincandoc-X.Y.pdf
+  
+Some releases use experimental OMK make system, which requires
+recent GNU make program version 3.81beta1 and above.
+Makefiles can be switched to old ones by script
+
+  sh ./switch-omk2std
+  make
+
+If you have problem to obtain recent GNU make program,
+
+ ftp://alpha.gnu.org/gnu/make/make-3.81beta4.tar.bz2
+
+you can use our local copy
+
+  http://cmp.felk.cvut.cz/~pisa/can/make-3.81beta1.tar.gz
+
+
+COMPILATION from CVS sources without full OCERA tree
+====================================================
+  
+---------------------------------------------------------------------------
+Obtaining CVS sources of the CAN components only
+---------------------------------------------------------------------------
+  cvs -d:pserver:anonymous@ocera.cvs.sourceforge.net:/cvsroot/ocera login
+  cvs -z3 -d:pserver:anonymous@ocera.cvs.sourceforge.net:/cvsroot/ocera co
+         ocera/components/comm/can
+
+---------------------------------------------------------------------------
+Commands to build OCERA CVS CAN components outside OCERA tree
+---------------------------------------------------------------------------
+  cd ocera/components/comm/can
+  ./switch2standalone
+  make
+
+The selection of required features and options can be specified before make 
+command invocation. Lines containing required changes to config.omk-default 
+file should be stored in config.omk file. The config.omk is not altered by 
+OMK system and options defined there override values defined in 
+config.omk-default file. GNU make program version 3.81beta1 or newer is 
+required by OMK make-system. If this is problem, LinCAN driver can be 
+compiled with use of old style Makefiles as well.
+
+---------------------------------------------------------------------------
+Old style Makefiles compilation of the LinCAN driver only
+---------------------------------------------------------------------------
+  cd ocera/components/comm/can/lincan
+  ./switch-omk2std
+  make
+
 
 INSTALLATION
 ============
 
 INSTALLATION
 ============
-Type 'make install'. The driver should be copied into actual kernel version
+Type 'make install' for standard make system compilation.
+The driver should be copied into actual kernel version
 modules directory "/lib/modules/x.y.z/kernel/drivers/char".
 
 modules directory "/lib/modules/x.y.z/kernel/drivers/char".
 
+OMK system requires manual copy of files from "_compiled" tree
+to its final destinations.
+
+Create file "lincan.rules" with contents listed below in or linked
+into "/etc/udev/rules.d" directory to enable automatic device nodes
+creation for UDEV based system
+
+  # LinCAN driver
+  SUBSYSTEM=="can",GROUP="users",MODE="0660"
+
+The driver automatic loding can be requested by addition of "lincan"
+line into "/etc/modules" od Debian based systems.
+
+The target hardware/board specific options should be added into
+"/etc/modprobe.conf" file or file with similar functionality for your
+distribution. The options are discusses in the next paragraph.
+
 LOADING
 =======
 
 To load the driver type:
 # insmod can.o hw='your hardware' irq='irq number' io='io address' <options>
 LOADING
 =======
 
 To load the driver type:
 # insmod can.o hw='your hardware' irq='irq number' io='io address' <options>
-Example: # insmod can.o hw=pip5 irq=4 io=0x8000
+Examples: # insmod can.o hw=pip5 irq=4 io=0x8000
+          # insmod can.o hw=virtual io=0
 
 The hw argument can be one of:
 
 The hw argument can be one of:
-- pip5, for the pip5 computer by MPL
-- pip6, for the pip6 computer by MPL
+- pip5, for the PIP5 computer by MPL
+- pip6, for the PIP6 computer by MPL
+- pip7, for the PIP7 computer by MPL
+- pip8, for the PIP8 computer by MPL
 - pccan-q, for the PCcan-Q ISA card by KVASER
 - pccan-f, for the PCcan-F ISA card by KVASER
 - pccan-s, for the PCcan-S ISA card by KVASER
 - pccan-q, for the PCcan-Q ISA card by KVASER
 - pccan-f, for the PCcan-F ISA card by KVASER
 - pccan-s, for the PCcan-S ISA card by KVASER
@@ -134,15 +242,33 @@ The hw argument can be one of:
 - pcican-q, for the PCIcan-Q PCI card by KVASER (4x SJA1000)
 - pcican-d, for the PCIcan-Q PCI card by KVASER (2x SJA1000)
 - pcican-s, for the PCIcan-Q PCI card by KVASER (1x SJA1000)
 - pcican-q, for the PCIcan-Q PCI card by KVASER (4x SJA1000)
 - pcican-d, for the PCIcan-Q PCI card by KVASER (2x SJA1000)
 - pcican-s, for the PCIcan-Q PCI card by KVASER (1x SJA1000)
+- smartcan for i82527 based card with indexed access
 - nsican, for the CAN104 PC/104 card by NSI
 - nsican, for the CAN104 PC/104 card by NSI
+- nsicanpci, for NSI CAN PCI card (2xi82527)
 - cc104, for the CAN104 PC/104 card by Contemporary Controls
 - aim104, for the AIM104CAN PC/104 card by Arcom Control Systems
 - pc-i03, for the PC-I03 ISA card by IXXAT
 - pcm3680, for the PCM-3680 PC/104 card by Advantech
 - m437, for the M436 PC/104 card by SECO
 - bfadcan for sja1000 CAN embedded card made by BFAD GmbH
 - cc104, for the CAN104 PC/104 card by Contemporary Controls
 - aim104, for the AIM104CAN PC/104 card by Arcom Control Systems
 - pc-i03, for the PC-I03 ISA card by IXXAT
 - pcm3680, for the PCM-3680 PC/104 card by Advantech
 - m437, for the M436 PC/104 card by SECO
 - bfadcan for sja1000 CAN embedded card made by BFAD GmbH
+- gensja1000io for many sja1000 I/O mapped cards (PCAN-PC/104 for example).
 - pikronisa for ISA memory mapped sja1000 CAN card made by PiKRON Ltd.
 - pikronisa for ISA memory mapped sja1000 CAN card made by PiKRON Ltd.
+- pimx1 for MX1_DIS1 extension board for PiMX1 ARM based BCC
 - msmcan for MICROSPACE IO space indexed i82527
 - msmcan for MICROSPACE IO space indexed i82527
+- unican for Unicontrols PCAN card
+- unican-pci for Unicontrols PCAN-PCI card
+- unican-vme for Unicontrols VCAN card
+- ipci165 for IXXAT iPC-I 165 (PCI), requires CONFIG_OC_LINCAN_CARD_ipci165=y
+- ems_cpcpci for EMS CPC-PCI card
+- pcan_dongle for PEAK's printer port dongle addapter
+- oscar for SJA1000 based card connected to ARM LH7A400 SoC
+- eb8245 for Kontron EB8245 onboard CAN with SJA1000 controller
+- adlink7841 for ADLINK PCI-7841 dual SJA1000 based card
+- tscan1 for Technologic Systems' TS-CAN1 single SJA1000 based board
+- ts7kv for Technologic Systems' TS-7KV Multi-function board with SJA1000
+   both these cards require CONFIG_OC_LINCAN_CARD_tscan1=y
+- pcan_pci for PEAK System PCAN-PCI single, double or quad SJA1000 based board
+- esdpci200 for the CAN/PCI-200 card by ESD Electronics board
 - template, for yet unsupported hardware (you need to edit src/template.c)
 - virtual, CAN channel for testing of software and driver without CAN hardware
 
 - template, for yet unsupported hardware (you need to edit src/template.c)
 - virtual, CAN channel for testing of software and driver without CAN hardware
 
@@ -153,10 +279,18 @@ options can be one of:
 - extended=[1|0], configures the driver to use extended message format.
 - pelican=[1|0], configures the driver to set the CAN chips into pelican mode.
 - baudrate=<nr>, sets the baudrate of the device(s)
 - extended=[1|0], configures the driver to use extended message format.
 - pelican=[1|0], configures the driver to set the CAN chips into pelican mode.
 - baudrate=<nr>, sets the baudrate of the device(s)
-- clock_freq=<nr>, the frequency of the CAN quartz
+- clockfreq=<nr>, the frequency of the CAN quartz
 - stdmask=<nr>, sets the standard mask of the device
 - extmask=<nr>, sets the extended mask of the device
 - mo15mask=<nr>, sets the mask for message object 15 (i82527 only)
 - stdmask=<nr>, sets the standard mask of the device
 - extmask=<nr>, sets the extended mask of the device
 - mo15mask=<nr>, sets the mask for message object 15 (i82527 only)
+- processlocal=<nr>, controls distribution of send messages to Rx FIFOs
+               0, no local outgoing messages delivery to Rx FIFOs
+               1, default off, but can be controlled by individual filter settings
+               2, all FIFOs receive local messages
 
 There's still a lot of work to do, have a look at the TODO file for more
 information.
 
 There's still a lot of work to do, have a look at the TODO file for more
 information.
+
+Some boards support is compiled in only, when it is enabled through
+config.omk file. It has to be stored in same directory as Makefile.rules
+and config.omk-default is located.