X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/4ddb8468e0688f83f24fc041cfb62512ee45194a..2827b727d2910a3b48f9de7d67b3a67f59e256c7:/lincan/README diff --git a/lincan/README b/lincan/README index 34573b9..c51ad5f 100644 --- a/lincan/README +++ b/lincan/README @@ -1,2 +1,157 @@ -Linux CAN Driver + Linux CAN Driver (LinCAN) version 0.2 snapshot + Pavel Pisa + OCERA team member + + + +INTRODUCTION +============ +The LinCAN is an implementation of the Linux CAN-bus device driver supporting +more CAN controller chips and many CAN interface boards. Its development +has long history already. The OCERA version of the driver has new better +designed internal structure, adds new features (as support for open by multiple +applications, select system call) and other enhancements. + +The driver consist of four main layers: + - chip level manipulation routines + - board specific support + - message queues + - user-space API and ABI character device interface + + +DRIVER HISTORY +============== + +The driver originates in The Linux Lab Project + http://www.llp.fu-berlin.de/ +then it has been first rewritten by Arnaud Westenberg + http://home.wanadoo.nl/arnaud/ +now it is developed and maintained as part of OCERA framework + http://www.ocera.org/ + +I am unable to contact previous maintainer Arnaud Westenberg +(arnaud@wanadoo.nl). If you know something about him, I like +to hear it. + +Versions: + +can-0.7.1 latest driver version version published + by Arnaud Westenberg + +can-0.7.1-tm5 the enhanced version with better support of + SJA1000 PeliCAN mode and CAN Ethernet proxy + contributed by Tomasz Motylewski + +can-0.7.1-pi1 the import and usage of previous version for +(Dec 2002) OCERA group purposes + +can-0.7.1-pi3.4 enhanced version with select support and rewritten +(Mar 2003) make system for Linux kernels (2.2.x,2.4.x,2.5.x), + interrupts service cleanup and partial redesign + and DEVFS support + +lincan-0.2-pre heavily rewritten infrastructure of the driver based +(Aug 2003) on atomic slot management of queues + +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 + - BfaD DIMM PC card on 2.4 RT-Linux enabled kernel + - KVASER pcican-q on 2.6 Linux 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. + + +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 + +List of related communication components + + http://www.ocera.org/download/components/WP7/index.html + +The CVS repository of OCERA project at SourceForge + + EXTCVS=":pserver:anonymous@cvs.ocera.sourceforge.net:/cvsroot/ocera" + cvs -d$EXTCVS login + cvs -z3 -d$EXTCVS co ocera + +Web access into CVS + + http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ocera/ocera/components/comm/can/lincan/ + +Experimental directory at maintainer (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 ) or to OCERA discussion +forum +and lists + + +COMPILATION +=========== + +Just type 'make' at the command line and driver module should compile +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 + +INSTALLATION +============ +Type 'make install'. The driver should be copied into actual kernel version +modules directory "/lib/modules/x.y.z/kernel/drivers/char". + +LOADING +======= + +To load the driver type: +# insmod can.o hw='your hardware' irq='irq number' io='io address' +Example: # insmod can.o hw=pip5 irq=4 io=0x8000 + +The hw argument can be one of: +- pip5, for the pip5 computer by MPL +- pip6, for the pip6 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-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 +- 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 +- pikronisa for ISA memory mapped sja1000 CAN card made by PiKRON Ltd. +- 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=, major specifies the major number of the driver. +- minor=, you can specify which minor numbers the driver should use for your + hardware. +- 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=, sets the baudrate of the device(s) +- clock_freq=, the frequency of the CAN quartz +- stdmask=, sets the standard mask of the device +- extmask=, sets the extended mask of the device +- mo15mask=, sets the mask for message object 15 (i82527 only) + +There's still a lot of work to do, have a look at the TODO file for more +information.