- Linux CAN Driver (LinCAN) version 0.2 snapshot
+ Linux CAN Driver (LinCAN) version 0.3
Pavel Pisa <pisa@cmp.felk.cvut.cz>
OCERA team member
<http://www.ocera.org>
lincan-0.2-pre heavily rewritten infrastructure of the driver based
(Aug 2003) on atomic slot management of queues
+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.
+
The actual version of driver have been latest tested it with
-PC104 Advantech PCM3680 dual channel board on 2.4 kernel.
-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 14 boards with more variants is in.
+ - PC104 Advantech PCM3680 dual channel board on 2.4 RT-Linux enabled kernel
+ - PiKRON ISA card on 2.4.and 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
+ - 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
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.2.html
List of related communication components
http://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
-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>
+Driver documentation can be found at
+
+ http://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.2.pdf
+
+The anouncements of new version are published at FreshMeat page
-COMPILATION
-===========
+ http://freshmeat.net/projects/lincan/
+
+
+COMPILATION of LinCAN releases
+==============================
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/
- 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,
+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@cvs.sourceforge.net:/cvsroot/ocera login
+ cvs -z3 -d:pserver:anonymous@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
+ ./switch2std
+ make
+
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".
+OMK system requires manual copy of files from "_compiled" tree
+to its final destinations.
+
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:
- pip5, for the pip5 computer by MPL
- pccan-f, for the PCcan-F ISA card by KVASER
- pccan-s, for the PCcan-S ISA card by KVASER
- pccan-d, for the PCcan-D ISA card by KVASER
+- 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)
- nsican, for the CAN104 PC/104 card by NSI
- cc104, for the CAN104 PC/104 card by Contemporary Controls
- aim104, for the AIM104CAN PC/104 card by Arcom Control Systems
- m437, for the M436 PC/104 card by SECO
- bfadcan for sja1000 CAN embedded card made by BFAD GmbH
- pikronisa for ISA memory mapped sja1000 CAN card made by PiKRON Ltd.
+- 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
+- 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
- template, for yet unsupported hardware (you need to edit src/template.c)
+- virtual, CAN channel for testing of software and driver without CAN hardware
options can be one of:
- major=<nr>, major specifies the major number of the driver.
- 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.
+