X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/1cccb041a45ca131c014187a028c27167545ab9d..3a27164c05cbec3adb7aedee5e38047afc3aa416:/lincan/README diff --git a/lincan/README b/lincan/README index 774de93..dcb7b94 100644 --- a/lincan/README +++ b/lincan/README @@ -1,18 +1,18 @@ - Linux CAN Driver (LinCAN) version 0.3.1 + Linux CAN Driver (LinCAN) version 0.3.5 + part of OrtCAN project Pavel Pisa - OCERA team member - - + Department of Control Engineering (DCE) FEE CTU + DCE Real-Time Systems group CAN resources 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 +has long history already. The OCERA/OrtCAN 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 @@ -27,8 +27,11 @@ 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 +The driver code undergone major redesign in a frame of the OCERA IST project http://www.ocera.org/ +Actual driver version is maintained togther with other CAN/CANopen +components as part of the OrtCAN project + http://ortcan.sourceforge.net/ I am unable to contact previous maintainer Arnaud Westenberg (arnaud@wanadoo.nl). If you know something about him, I like @@ -69,14 +72,26 @@ lincan-0.3 Changed SJA1000 chip IRQ handling. Enhanced VME 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. + +lincan-0.3.4 Some more fixes of SJA1000 buss-of recovery, +(March 2009) Many enhancements and fixes. Tested up to 2.6.28 Linux kernel. + +lincan-0.3.5 Make system updates to build under latest Linux kernels, +(October 2011) LinCAN core builds and tested with 2.6.35 and 3.0 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 - - 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") + - KVASER pcican-q on 2.6 and 3.0 Linux kernel - EMS CPC-PCI cards ("ems_cpcpci") - virtual board tested on all systems as wel It takes more time to test driver with more cards. @@ -87,38 +102,28 @@ 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) +The actual driver version, development sources and mailing list +can be found on OrtCAN project pages - http://www.ocera.org/download/components/WP7/lincan-0.2.html - -List of related communication components - - http://www.ocera.org/download/components/WP7/index.html + http://ortcan.sourceforge.net/ -The CVS repository of OCERA project at SourceForge +Please send comments, bug-fixes and enhancements directly to +Pavel Pisa or to OrtCAN discussion +forums +and or mailinglist found on OrtCAN project page. - EXTCVS=":pserver:anonymous@cvs.ocera.sourceforge.net:/cvsroot/ocera" - cvs -d$EXTCVS login - cvs -z3 -d$EXTCVS co ocera - -Web access into CVS +The original LinCAN driver component page at OCERA web site +(not updated to the new version yet) - http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ocera/ocera/components/comm/can/lincan/ + http://www.ocera.org/download/components/WP7/lincan-0.3.1.html -Experimental directory at maintainer's (Pavel Pisa's) pages +List of related communication components - 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 -Pavel Pisa or to OCERA discussion -forum -and lists + http://www.ocera.org/download/components/WP7/index.html Driver documentation can be found at - http://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.2.pdf + http://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.3.pdf The anouncements of new version are published at FreshMeat page @@ -129,59 +134,65 @@ 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 +More detailed information can be found in driver documentation at + http://ortcan.sourceforge.net/lincan/ +Local maintainer site holds some usesfull information as well http://cmp.felk.cvut.cz/~pisa/can/ http://cmp.felk.cvut.cz/~pisa/can/lincandoc-X.Y.pdf - -Some releases use experimental OMK make system, which requires + +The LinCAN releases use 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, - http://paulandlesley.org/make/make-3.81beta1.tar.bz2 +COMPILATION from OrtCAN project GIT repository tree +=================================================== -you can use our local copy +There are more options to build LinCAN driver. +The first one is to use stand-alone driver module build. +The other option is to build LinCAN driver as part of the +whole OrtCAN tree. - http://cmp.felk.cvut.cz/~pisa/can/make-3.81beta1.tar.gz +The latest version of stand-alone LinCAN sources can be +obtained from GIT repository and build by next commands + git clone git://git.code.sf.net/p/ortcan/lincan + cd lincan + ./build-lincan.sh -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 +The other option is to build LinCAN driver as part of the whole +OrtCAN tree ---------------------------------------------------------------------------- -Commands to build OCERA CVS CAN components outside OCERA tree ---------------------------------------------------------------------------- - cd ocera/components/comm/can - ./switch2standalone + git clone git://git.code.sf.net/p/ortcan/ortcan-top + cd ortcan/ + git submodule update --init + make default-config 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 +COMPILATION options +=================== + +The options are defined in "config.omk" file for OMK based builds. +File is looked for at directory where are build top directory, +files "Makefile.rules" and "config.omk-default" +located. To select card which is not enabled by default +add line of next format to the "config.omk" file + + CONFIG_OC_LINCAN_CARD_tscan1=y + +The cross-compilation and build against non-default kernel +can be selected in "config.omk" file as well + + LINUX_DIR=/usr/src/linux-2.6-mpc5200-build + CC=powerpc-linux-gnu-gcc + CXX=powerpc-linux-gnu-g++ + AR=powerpc-linux-gnu-ar + LD=powerpc-linux-gnu-ld INSTALLATION @@ -193,6 +204,20 @@ 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 ======= @@ -215,13 +240,18 @@ The hw argument can be one of: - 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 +- 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 -- pikronisa for ISA memory mapped sja1000 CAN card made by PiKRON Ltd. +- gensja1000io for many sja1000 I/O mapped cards (PCAN-PC/104 for example). +- gensja1000mm for ISA memory mapped sja1000 CAN cards + (for pikronisa card used by PiKRON Ltd. the clockfreq=24000 has to be specified) +- pcisja1000mm for SJA1000 directly mapped into PCI mem region 0 +- pimx1 for MX1_DIS1 extension board for PiMX1 ARM based BCC - msmcan for MICROSPACE IO space indexed i82527 - unican for Unicontrols PCAN card - unican-pci for Unicontrols PCAN-PCI card @@ -232,6 +262,12 @@ The hw argument can be one of: - 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 +- esdpci266 for the ESD PCI/PMC 266 card by ESD Electronics - template, for yet unsupported hardware (you need to edit src/template.c) - virtual, CAN channel for testing of software and driver without CAN hardware @@ -242,7 +278,7 @@ 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=, sets the baudrate of the device(s) -- clock_freq=, the frequency of the CAN quartz +- clockfreq=, 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)