ASoC: SOF: Intel: Initialize hdaudio bus properly
[linux-2.6-block.git] / Documentation / driver-api / serial / moxa-smartio.rst
CommitLineData
f1374017
MCC
1=============================================================
2MOXA Smartio/Industio Family Device Driver Installation Guide
3=============================================================
4
5.. note::
6
7 This file is outdated. It needs some care in order to make it
8 updated to Kernel 5.0 and upper
9
10Copyright (C) 2008, Moxa Inc.
11
12Date: 01/21/2008
13
14.. Content
15
16 1. Introduction
17 2. System Requirement
18 3. Installation
19 3.1 Hardware installation
20 3.2 Driver files
21 3.3 Device naming convention
22 3.4 Module driver configuration
23 3.5 Static driver configuration for Linux kernel 2.4.x and 2.6.x.
24 3.6 Custom configuration
25 3.7 Verify driver installation
26 4. Utilities
27 5. Setserial
28 6. Troubleshooting
29
301. Introduction
31^^^^^^^^^^^^^^^
32
33 The Smartio/Industio/UPCI family Linux driver supports following multiport
34 boards.
35
36 - 2 ports multiport board
37 CP-102U, CP-102UL, CP-102UF
38 CP-132U-I, CP-132UL,
39 CP-132, CP-132I, CP132S, CP-132IS,
40 CI-132, CI-132I, CI-132IS,
41 (C102H, C102HI, C102HIS, C102P, CP-102, CP-102S)
42
43 - 4 ports multiport board
44 CP-104EL,
45 CP-104UL, CP-104JU,
46 CP-134U, CP-134U-I,
47 C104H/PCI, C104HS/PCI,
48 CP-114, CP-114I, CP-114S, CP-114IS, CP-114UL,
49 C104H, C104HS,
50 CI-104J, CI-104JS,
51 CI-134, CI-134I, CI-134IS,
52 (C114HI, CT-114I, C104P),
53 POS-104UL,
54 CB-114,
55 CB-134I
56
57 - 8 ports multiport board
58 CP-118EL, CP-168EL,
59 CP-118U, CP-168U,
60 C168H/PCI,
61 C168H, C168HS,
62 (C168P),
63 CB-108
64
65 This driver and installation procedure have been developed upon Linux Kernel
66 2.4.x and 2.6.x. This driver supports Intel x86 hardware platform. In order
67 to maintain compatibility, this version has also been properly tested with
68 RedHat, Mandrake, Fedora and S.u.S.E Linux. However, if compatibility problem
69 occurs, please contact Moxa at support@moxa.com.tw.
70
71 In addition to device driver, useful utilities are also provided in this
72 version. They are:
73
74 - msdiag
75 Diagnostic program for displaying installed Moxa
76 Smartio/Industio boards.
77 - msmon
78 Monitor program to observe data count and line status signals.
79 - msterm A simple terminal program which is useful in testing serial
80 ports.
81 - io-irq.exe
82 Configuration program to setup ISA boards. Please note that
83 this program can only be executed under DOS.
84
85 All the drivers and utilities are published in form of source code under
86 GNU General Public License in this version. Please refer to GNU General
87 Public License announcement in each source code file for more detail.
88
89 In Moxa's Web sites, you may always find latest driver at http://www.moxa.com/.
90
91 This version of driver can be installed as Loadable Module (Module driver)
92 or built-in into kernel (Static driver). You may refer to following
93 installation procedure for suitable one. Before you install the driver,
94 please refer to hardware installation procedure in the User's Manual.
95
96 We assume the user should be familiar with following documents.
97
98 - Serial-HOWTO
99 - Kernel-HOWTO
100
1012. System Requirement
102^^^^^^^^^^^^^^^^^^^^^
103
104 - Hardware platform: Intel x86 machine
105 - Kernel version: 2.4.x or 2.6.x
106 - gcc version 2.72 or later
107 - Maximum 4 boards can be installed in combination
108
1093. Installation
110^^^^^^^^^^^^^^^
111
1123.1 Hardware installation
113=========================
114
115 There are two types of buses, ISA and PCI, for Smartio/Industio
116 family multiport board.
117
118ISA board
119---------
120
121 You'll have to configure CAP address, I/O address, Interrupt Vector
122 as well as IRQ before installing this driver. Please refer to hardware
123 installation procedure in User's Manual before proceed any further.
124 Please make sure the JP1 is open after the ISA board is set properly.
125
126PCI/UPCI board
127--------------
128
129 You may need to adjust IRQ usage in BIOS to avoid from IRQ conflict
130 with other ISA devices. Please refer to hardware installation
131 procedure in User's Manual in advance.
132
133PCI IRQ Sharing
134---------------
135
136 Each port within the same multiport board shares the same IRQ. Up to
137 4 Moxa Smartio/Industio PCI Family multiport boards can be installed
138 together on one system and they can share the same IRQ.
139
140
1413.2 Driver files
142================
143
144 The driver file may be obtained from ftp, CD-ROM or floppy disk. The
145 first step, anyway, is to copy driver file "mxser.tgz" into specified
146 directory. e.g. /moxa. The execute commands as below::
147
148 # cd /
149 # mkdir moxa
150 # cd /moxa
151 # tar xvf /dev/fd0
152
153or::
154
155 # cd /
156 # mkdir moxa
157 # cd /moxa
158 # cp /mnt/cdrom/<driver directory>/mxser.tgz .
159 # tar xvfz mxser.tgz
160
161
1623.3 Device naming convention
163============================
164
165 You may find all the driver and utilities files in /moxa/mxser.
166 Following installation procedure depends on the model you'd like to
167 run the driver. If you prefer module driver, please refer to 3.4.
168 If static driver is required, please refer to 3.5.
169
170Dialin and callout port
171-----------------------
172
173 This driver remains traditional serial device properties. There are
174 two special file name for each serial port. One is dial-in port
175 which is named "ttyMxx". For callout port, the naming convention
176 is "cumxx".
177
178Device naming when more than 2 boards installed
179-----------------------------------------------
180
181 Naming convention for each Smartio/Industio multiport board is
182 pre-defined as below.
183
184 ============ =============== ==============
185 Board Num. Dial-in Port Callout port
186 1st board ttyM0 - ttyM7 cum0 - cum7
187 2nd board ttyM8 - ttyM15 cum8 - cum15
188 3rd board ttyM16 - ttyM23 cum16 - cum23
189 4th board ttyM24 - ttym31 cum24 - cum31
190 ============ =============== ==============
191
192.. note::
193
194 Under Kernel 2.6 and upper, the cum Device is Obsolete. So use ttyM*
195 device instead.
196
197Board sequence
198--------------
199
200 This driver will activate ISA boards according to the parameter set
201 in the driver. After all specified ISA board activated, PCI board
202 will be installed in the system automatically driven.
203 Therefore the board number is sorted by the CAP address of ISA boards.
204 For PCI boards, their sequence will be after ISA boards and C168H/PCI
205 has higher priority than C104H/PCI boards.
206
2073.4 Module driver configuration
208===============================
209
210 Module driver is easiest way to install. If you prefer static driver
211 installation, please skip this paragraph.
212
213
214 ------------- Prepare to use the MOXA driver --------------------
215
2163.4.1 Create tty device with correct major number
217-------------------------------------------------
218
219 Before using MOXA driver, your system must have the tty devices
220 which are created with driver's major number. We offer one shell
221 script "msmknod" to simplify the procedure.
222 This step is only needed to be executed once. But you still
223 need to do this procedure when:
224
225 a. You change the driver's major number. Please refer the "3.7"
226 section.
227 b. Your total installed MOXA boards number is changed. Maybe you
228 add/delete one MOXA board.
229 c. You want to change the tty name. This needs to modify the
230 shell script "msmknod"
231
232 The procedure is::
233
234 # cd /moxa/mxser/driver
235 # ./msmknod
236
237 This shell script will require the major number for dial-in
238 device and callout device to create tty device. You also need
239 to specify the total installed MOXA board number. Default major
240 numbers for dial-in device and callout device are 30, 35. If
241 you need to change to other number, please refer section "3.7"
242 for more detailed procedure.
243 Msmknod will delete any special files occupying the same device
244 naming.
245
2463.4.2 Build the MOXA driver and utilities
247-----------------------------------------
248
249 Before using the MOXA driver and utilities, you need compile the
250 all the source code. This step is only need to be executed once.
251 But you still re-compile the source code if you modify the source
252 code. For example, if you change the driver's major number (see
253 "3.7" section), then you need to do this step again.
254
255 Find "Makefile" in /moxa/mxser, then run
256
257 # make clean; make install
258
259 ..note::
260
261 For Red Hat 9, Red Hat Enterprise Linux AS3/ES3/WS3 & Fedora Core1:
262 # make clean; make installsp1
263
264 For Red Hat Enterprise Linux AS4/ES4/WS4:
265 # make clean; make installsp2
266
267 The driver files "mxser.o" and utilities will be properly compiled
268 and copied to system directories respectively.
269
270------------- Load MOXA driver--------------------
271
2723.4.3 Load the MOXA driver
273--------------------------
274
275 ::
276
277 # modprobe mxser <argument>
278
279 will activate the module driver. You may run "lsmod" to check
280 if "mxser" is activated. If the MOXA board is ISA board, the
281 <argument> is needed. Please refer to section "3.4.5" for more
282 information.
283
284------------- Load MOXA driver on boot --------------------
285
2863.4.4 Load the mxser driver
287---------------------------
288
289
290 For the above description, you may manually execute
291 "modprobe mxser" to activate this driver and run
292 "rmmod mxser" to remove it.
293
294 However, it's better to have a boot time configuration to
295 eliminate manual operation. Boot time configuration can be
296 achieved by rc file. We offer one "rc.mxser" file to simplify
297 the procedure under "moxa/mxser/driver".
298
299 But if you use ISA board, please modify the "modprobe ..." command
300 to add the argument (see "3.4.5" section). After modifying the
301 rc.mxser, please try to execute "/moxa/mxser/driver/rc.mxser"
302 manually to make sure the modification is ok. If any error
303 encountered, please try to modify again. If the modification is
304 completed, follow the below step.
305
306 Run following command for setting rc files::
307
308 # cd /moxa/mxser/driver
309 # cp ./rc.mxser /etc/rc.d
310 # cd /etc/rc.d
311
312 Check "rc.serial" is existed or not. If "rc.serial" doesn't exist,
313 create it by vi, run "chmod 755 rc.serial" to change the permission.
314
315 Add "/etc/rc.d/rc.mxser" in last line.
316
317 Reboot and check if moxa.o activated by "lsmod" command.
318
3193.4.5. specify CAP address
320--------------------------
321
322 If you'd like to drive Smartio/Industio ISA boards in the system,
323 you'll have to add parameter to specify CAP address of given
324 board while activating "mxser.o". The format for parameters are
325 as follows.::
326
327 modprobe mxser ioaddr=0x???,0x???,0x???,0x???
328 | | | |
329 | | | +- 4th ISA board
330 | | +------ 3rd ISA board
331 | +------------ 2nd ISA board
332 +-------------------1st ISA board
333
3343.5 Static driver configuration for Linux kernel 2.4.x and 2.6.x
335================================================================
336
337 Note:
338 To use static driver, you must install the linux kernel
339 source package.
340
3413.5.1 Backup the built-in driver in the kernel
342----------------------------------------------
343
344 ::
345
346 # cd /usr/src/linux/drivers/char
347 # mv mxser.c mxser.c.old
348
349 For Red Hat 7.x user, you need to create link:
350 # cd /usr/src
351 # ln -s linux-2.4 linux
352
3533.5.2 Create link
354-----------------
355 ::
356
357 # cd /usr/src/linux/drivers/char
358 # ln -s /moxa/mxser/driver/mxser.c mxser.c
359
3603.5.3 Add CAP address list for ISA boards.
361------------------------------------------
362
363 For PCI boards user, please skip this step.
364
365 In module mode, the CAP address for ISA board is given by
366 parameter. In static driver configuration, you'll have to
367 assign it within driver's source code. If you will not
368 install any ISA boards, you may skip to next portion.
369 The instructions to modify driver source code are as
370 below.
371
372 a. run::
373
374 # cd /moxa/mxser/driver
375 # vi mxser.c
376
377 b. Find the array mxserBoardCAP[] as below::
378
379 static int mxserBoardCAP[] = {0x00, 0x00, 0x00, 0x00};
380
381 c. Change the address within this array using vi. For
382 example, to driver 2 ISA boards with CAP address
383 0x280 and 0x180 as 1st and 2nd board. Just to change
384 the source code as follows::
385
386 static int mxserBoardCAP[] = {0x280, 0x180, 0x00, 0x00};
387
3883.5.4 Setup kernel configuration
389--------------------------------
390
391 Configure the kernel::
392
393 # cd /usr/src/linux
394 # make menuconfig
395
396 You will go into a menu-driven system. Please select [Character
397 devices][Non-standard serial port support], enable the [Moxa
398 SmartIO support] driver with "[*]" for built-in (not "[M]"), then
399 select [Exit] to exit this program.
400
4013.5.5 Rebuild kernel
402--------------------
403
404 The following are for Linux kernel rebuilding, for your
405 reference only.
406
407 For appropriate details, please refer to the Linux document:
408
409 a. Run the following commands::
410
411 cd /usr/src/linux
412 make clean # take a few minutes
413 make dep # take a few minutes
414 make bzImage # take probably 10-20 minutes
415 make install # copy boot image to correct position
416
417 f. Please make sure the boot kernel (vmlinuz) is in the
418 correct position.
419 g. If you use 'lilo' utility, you should check /etc/lilo.conf
420 'image' item specified the path which is the 'vmlinuz' path,
421 or you will load wrong (or old) boot kernel image (vmlinuz).
422 After checking /etc/lilo.conf, please run "lilo".
423
424 Note that if the result of "make bzImage" is ERROR, then you have to
425 go back to Linux configuration Setup. Type "make menuconfig" in
426 directory /usr/src/linux.
427
428
4293.5.6 Make tty device and special file
430--------------------------------------
431
432 ::
433 # cd /moxa/mxser/driver
434 # ./msmknod
435
4363.5.7 Make utility
437------------------
438
439 ::
440
441 # cd /moxa/mxser/utility
442 # make clean; make install
443
4443.5.8 Reboot
445------------
446
447
448
4493.6 Custom configuration
450========================
451
452 Although this driver already provides you default configuration, you
453 still can change the device name and major number. The instruction to
454 change these parameters are shown as below.
455
456a. Change Device name
457
458 If you'd like to use other device names instead of default naming
459 convention, all you have to do is to modify the internal code
460 within the shell script "msmknod". First, you have to open "msmknod"
461 by vi. Locate each line contains "ttyM" and "cum" and change them
462 to the device name you desired. "msmknod" creates the device names
463 you need next time executed.
464
465b. Change Major number
466
467 If major number 30 and 35 had been occupied, you may have to select
468 2 free major numbers for this driver. There are 3 steps to change
469 major numbers.
470
4713.6.1 Find free major numbers
472-----------------------------
473
474 In /proc/devices, you may find all the major numbers occupied
475 in the system. Please select 2 major numbers that are available.
476 e.g. 40, 45.
477
4783.6.2 Create special files
479--------------------------
480
481 Run /moxa/mxser/driver/msmknod to create special files with
482 specified major numbers.
483
4843.6.3 Modify driver with new major number
485-----------------------------------------
486
487 Run vi to open /moxa/mxser/driver/mxser.c. Locate the line
488 contains "MXSERMAJOR". Change the content as below::
489
490 #define MXSERMAJOR 40
491 #define MXSERCUMAJOR 45
492
493 3.6.4 Run "make clean; make install" in /moxa/mxser/driver.
494
4953.7 Verify driver installation
496==============================
497
498 You may refer to /var/log/messages to check the latest status
499 log reported by this driver whenever it's activated.
500
5014. Utilities
502^^^^^^^^^^^^
503
504 There are 3 utilities contained in this driver. They are msdiag, msmon and
505 msterm. These 3 utilities are released in form of source code. They should
506 be compiled into executable file and copied into /usr/bin.
507
508 Before using these utilities, please load driver (refer 3.4 & 3.5) and
509 make sure you had run the "msmknod" utility.
510
511msdiag - Diagnostic
512===================
513
514 This utility provides the function to display what Moxa Smartio/Industio
515 board found by driver in the system.
516
517msmon - Port Monitoring
518=======================
519
520 This utility gives the user a quick view about all the MOXA ports'
521 activities. One can easily learn each port's total received/transmitted
522 (Rx/Tx) character count since the time when the monitoring is started.
523
524 Rx/Tx throughputs per second are also reported in interval basis (e.g.
525 the last 5 seconds) and in average basis (since the time the monitoring
526 is started). You can reset all ports' count by <HOME> key. <+> <->
527 (plus/minus) keys to change the displaying time interval. Press <ENTER>
528 on the port, that cursor stay, to view the port's communication
529 parameters, signal status, and input/output queue.
530
531msterm - Terminal Emulation
532===========================
533
534 This utility provides data sending and receiving ability of all tty ports,
535 especially for MOXA ports. It is quite useful for testing simple
536 application, for example, sending AT command to a modem connected to the
537 port or used as a terminal for login purpose. Note that this is only a
538 dumb terminal emulation without handling full screen operation.
539
5405. Setserial
541^^^^^^^^^^^^
542
543 Supported Setserial parameters are listed as below.
544
545 ============== =========================================================
546 uart set UART type(16450-->disable FIFO, 16550A-->enable FIFO)
547 close_delay set the amount of time(in 1/100 of a second) that DTR
548 should be kept low while being closed.
549 closing_wait set the amount of time(in 1/100 of a second) that the
550 serial port should wait for data to be drained while
551 being closed, before the receiver is disable.
552 spd_hi Use 57.6kb when the application requests 38.4kb.
553 spd_vhi Use 115.2kb when the application requests 38.4kb.
554 spd_shi Use 230.4kb when the application requests 38.4kb.
555 spd_warp Use 460.8kb when the application requests 38.4kb.
556 spd_normal Use 38.4kb when the application requests 38.4kb.
557 spd_cust Use the custom divisor to set the speed when the
558 application requests 38.4kb.
559 divisor This option set the custom division.
560 baud_base This option set the base baud rate.
561 ============== =========================================================
562
5636. Troubleshooting
564^^^^^^^^^^^^^^^^^^
565
566 The boot time error messages and solutions are stated as clearly as
567 possible. If all the possible solutions fail, please contact our technical
568 support team to get more help.
569
570
571 Error msg:
572 More than 4 Moxa Smartio/Industio family boards found. Fifth board
573 and after are ignored.
574
575 Solution:
576 To avoid this problem, please unplug fifth and after board, because Moxa
577 driver supports up to 4 boards.
578
579 Error msg:
580 Request_irq fail, IRQ(?) may be conflict with another device.
581
582 Solution:
583 Other PCI or ISA devices occupy the assigned IRQ. If you are not sure
584 which device causes the situation, please check /proc/interrupts to find
585 free IRQ and simply change another free IRQ for Moxa board.
586
587 Error msg:
588 Board #: C1xx Series(CAP=xxx) interrupt number invalid.
589
590 Solution:
591 Each port within the same multiport board shares the same IRQ. Please set
592 one IRQ (IRQ doesn't equal to zero) for one Moxa board.
593
594 Error msg:
595 No interrupt vector be set for Moxa ISA board(CAP=xxx).
596
597 Solution:
598 Moxa ISA board needs an interrupt vector.Please refer to user's manual
599 "Hardware Installation" chapter to set interrupt vector.
600
601 Error msg:
602 Couldn't install MOXA Smartio/Industio family driver!
603
604 Solution:
605 Load Moxa driver fail, the major number may conflict with other devices.
606 Please refer to previous section 3.7 to change a free major number for
607 Moxa driver.
608
609 Error msg:
610 Couldn't install MOXA Smartio/Industio family callout driver!
611
612 Solution:
613 Load Moxa callout driver fail, the callout device major number may
614 conflict with other devices. Please refer to previous section 3.7 to
615 change a free callout device major number for Moxa driver.