]> rtime.felk.cvut.cz Git - lincan.git/blob - lincan/README
Merge: ./switch2std replaced by ./switch-omk2std
[lincan.git] / lincan / README
1                 B
2                 Linux CAN Driver (LinCAN) version 0.3
3                 Pavel Pisa <pisa@cmp.felk.cvut.cz>
4                         OCERA team member
5                         <http://www.ocera.org>
6
7
8 INTRODUCTION
9 ============
10 The LinCAN is an implementation of the Linux CAN-bus device driver supporting
11 more CAN controller chips and many CAN interface boards. Its development
12 has long history already. The OCERA version of the driver has new better
13 designed internal structure, adds new features (as support for open by multiple
14 applications, select system call) and other enhancements.
15   
16 The driver consist of four main layers:
17   - chip level manipulation routines
18   - board specific support
19   - message queues
20   - user-space API and ABI character device interface
21
22
23 DRIVER HISTORY
24 ==============
25
26 The driver originates in The Linux Lab Project
27   http://www.llp.fu-berlin.de/
28 then it has been first rewritten by Arnaud Westenberg
29   http://home.wanadoo.nl/arnaud/
30 now it is developed and maintained as part of OCERA framework
31   http://www.ocera.org/
32
33 I am unable to contact previous maintainer Arnaud Westenberg
34 (arnaud@wanadoo.nl). If you know something about him, I like
35 to hear it.
36
37 Versions:
38
39 can-0.7.1       latest driver version version published
40                 by Arnaud Westenberg
41
42 can-0.7.1-tm5   the enhanced version with better support of
43                 SJA1000 PeliCAN mode and CAN Ethernet proxy
44                 contributed by Tomasz Motylewski <T.Motylewski@bfad.de>
45
46 can-0.7.1-pi1   the import and usage of previous version for
47 (Dec 2002)      OCERA group purposes
48                 
49 can-0.7.1-pi3.4 enhanced version with select support and rewritten
50 (Mar 2003)      make system for Linux kernels (2.2.x,2.4.x,2.5.x),
51                 interrupts service cleanup and partial redesign
52                 and DEVFS support
53
54 lincan-0.2-pre  heavily rewritten infrastructure of the driver based
55 (Aug 2003)      on atomic slot management of queues
56
57 lincan-0.2      version tested on many bords and 2.2, 2.4, 2.6 Linux
58 (Mar 2004)      and RT-Linux enabled 2.4 Linux kernel
59
60 lincan-0.2.8    possible SMP and HT deadlock fixed, driver can take
61 (Jul 2004)      advantage of CMPXCHG instruction if present on CPU,
62                 added support for CPC-PCI and PCAN-PCI cards,
63                 messages timestamping implemented
64                 partially implemented support for Bosch C_CAN module,
65                 requires more work and real hardware
66
67 lincan-0.3      Changed SJA1000 chip IRQ handling. Enhanced VME
68 (Nov 2004)      and EMS CPC-PCI support and many other changes.
69                 
70 The actual version of driver have been latest tested it with
71   - PC104 Advantech PCM3680 dual channel board on 2.4 RT-Linux enabled kernel
72   - PiKRON ISA card on 2.4.and 2.6 Linux kernels
73   - BfaD DIMM PC card on 2.4 RT-Linux enabled kernel
74   - KVASER pcican-q on 2.6 Linux kernel
75   - MICROSPACE msmcan on 2.4 Linux and RT-Linux enabled kernel
76   - Unicontrols PCAN ("unican"),PCAN-PCI ("unican-pci"), VCAN  ("unican-vme")
77   - EMS CPC-PCI cards ("ems_cpcpci")
78   - virtual board tested on all systems as wel
79 It takes more time to test driver with more cards.
80 Infrastructure and support for more than 20 boards with more
81 variants is prepared in the sources.
82
83
84 SOURCES AND URLs
85 ================
86
87 The LinCAN driver component page at OCERA web site
88 (not updated to the new version yet)
89
90   http://www.ocera.org/download/components/WP7/lincan-0.2.html
91   
92 List of related communication components
93   
94   http://www.ocera.org/download/components/WP7/index.html
95
96 The CVS repository of OCERA project at SourceForge
97
98   EXTCVS=":pserver:anonymous@cvs.ocera.sourceforge.net:/cvsroot/ocera"
99   cvs -d$EXTCVS login
100   cvs -z3 -d$EXTCVS co ocera
101   
102 Web access into CVS
103
104   http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ocera/ocera/components/comm/can/lincan/
105
106 Experimental directory at maintainer's (Pavel Pisa's) pages 
107
108   http://cmp.felk.cvut.cz/~pisa/can/
109   http://cmp.felk.cvut.cz/~pisa/can/lincan-YYMMDD.tar.gz
110   
111 Please send comments, bug-fixes and enhancements directly to
112 Pavel Pisa <pisa@cmp.felk.cvut.cz> or to OCERA discussion
113 forum <https://sourceforge.net/forum/forum.php?forum_id=170893> 
114 and lists <ocera-development@lists.sourceforge.net>
115
116 Driver documentation can be found at
117
118   http://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.2.pdf
119
120 The anouncements of new version are published at FreshMeat page
121
122   http://freshmeat.net/projects/lincan/
123
124
125 COMPILATION of LinCAN releases
126 ==============================
127
128 Just type 'make' at the command line and driver module should compile
129 without errors for current running kernel. 
130
131 More information can be found in driver documentation at
132   http://cmp.felk.cvut.cz/~pisa/can/
133   http://cmp.felk.cvut.cz/~pisa/can/lincandoc-X.Y.pdf
134   
135 Some releases use experimental OMK make system, which requires
136 recent GNU make program version 3.81beta1 and above.
137 Makefiles can be switched to old ones by script
138
139   sh ./switch-omk2std
140   make
141
142 If you have problem to obtain recent GNU make program,
143
144  http://paulandlesley.org/make/make-3.81beta1.tar.bz2
145
146 you can use our local copy
147
148   http://cmp.felk.cvut.cz/~pisa/can/make-3.81beta1.tar.gz
149
150
151 COMPILATION from CVS sources without full OCERA tree
152 ====================================================
153   
154 ---------------------------------------------------------------------------
155 Obtaining CVS sources of the CAN components only
156 ---------------------------------------------------------------------------
157   cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ocera login
158   cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ocera co
159          ocera/components/comm/can
160
161 ---------------------------------------------------------------------------
162 Commands to build OCERA CVS CAN components outside OCERA tree
163 ---------------------------------------------------------------------------
164   cd ocera/components/comm/can
165   ./switch2standalone
166   make
167
168 The selection of required features and options can be specified before make 
169 command invocation. Lines containing required changes to config.omk-default 
170 file should be stored in config.omk file. The config.omk is not altered by 
171 OMK system and options defined there override values defined in 
172 config.omk-default file. GNU make program version 3.81beta1 or newer is 
173 required by OMK make-system. If this is problem, LinCAN driver can be 
174 compiled with use of old style Makefiles as well.
175
176 ---------------------------------------------------------------------------
177 Old style Makefiles compilation of the LinCAN driver only
178 ---------------------------------------------------------------------------
179   cd ocera/components/comm/can/lincan
180   ./switch-omk2std
181   make
182
183
184 INSTALLATION
185 ============
186 Type 'make install' for standard make system compilation.
187 The driver should be copied into actual kernel version
188 modules directory "/lib/modules/x.y.z/kernel/drivers/char".
189
190 OMK system requires manual copy of files from "_compiled" tree
191 to its final destinations.
192
193 LOADING
194 =======
195
196 To load the driver type:
197 # insmod can.o hw='your hardware' irq='irq number' io='io address' <options>
198 Examples: # insmod can.o hw=pip5 irq=4 io=0x8000
199           # insmod can.o hw=virtual io=0
200
201 The hw argument can be one of:
202 - pip5, for the PIP5 computer by MPL
203 - pip6, for the PIP6 computer by MPL
204 - pip7, for the PIP7 computer by MPL
205 - pip8, for the PIP8 computer by MPL
206 - pccan-q, for the PCcan-Q ISA card by KVASER
207 - pccan-f, for the PCcan-F ISA card by KVASER
208 - pccan-s, for the PCcan-S ISA card by KVASER
209 - pccan-d, for the PCcan-D ISA card by KVASER
210 - pcican-q, for the PCIcan-Q PCI card by KVASER (4x SJA1000)
211 - pcican-d, for the PCIcan-Q PCI card by KVASER (2x SJA1000)
212 - pcican-s, for the PCIcan-Q PCI card by KVASER (1x SJA1000)
213 - smartcan for i82527 based card with indexed access
214 - nsican, for the CAN104 PC/104 card by NSI
215 - cc104, for the CAN104 PC/104 card by Contemporary Controls
216 - aim104, for the AIM104CAN PC/104 card by Arcom Control Systems
217 - pc-i03, for the PC-I03 ISA card by IXXAT
218 - pcm3680, for the PCM-3680 PC/104 card by Advantech
219 - m437, for the M436 PC/104 card by SECO
220 - bfadcan for sja1000 CAN embedded card made by BFAD GmbH
221 - pikronisa for ISA memory mapped sja1000 CAN card made by PiKRON Ltd.
222 - msmcan for MICROSPACE IO space indexed i82527
223 - unican for Unicontrols PCAN card
224 - unican-pci for Unicontrols PCAN-PCI card
225 - unican-vme for Unicontrols VCAN card
226 - ems_cpcpci for EMS CPC-PCI card
227 - pcan_dongle for PEAK's printer port dongle addapter
228 - oscar for SJA1000 based card connected to ARM LH7A400 SoC
229 - eb8245 for Kontron EB8245 onboard CAN with SJA1000 controller
230 - adlink7841 for ADLINK PCI-7841 dual SJA1000 based card
231 - template, for yet unsupported hardware (you need to edit src/template.c)
232 - virtual, CAN channel for testing of software and driver without CAN hardware
233
234 options can be one of:
235 - major=<nr>, major specifies the major number of the driver.
236 - minor=<nr>, you can specify which minor numbers the driver should use for your
237   hardware.
238 - extended=[1|0], configures the driver to use extended message format.
239 - pelican=[1|0], configures the driver to set the CAN chips into pelican mode.
240 - baudrate=<nr>, sets the baudrate of the device(s)
241 - clock_freq=<nr>, the frequency of the CAN quartz
242 - stdmask=<nr>, sets the standard mask of the device
243 - extmask=<nr>, sets the extended mask of the device
244 - mo15mask=<nr>, sets the mask for message object 15 (i82527 only)
245 - processlocal=<nr>, controls distribution of send messages to Rx FIFOs
246                 0, no local outgoing messages delivery to Rx FIFOs
247                 1, default off, but can be controlled by individual filter settings
248                 2, all FIFOs receive local messages
249
250 There's still a lot of work to do, have a look at the TODO file for more
251 information.
252