diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-18 19:57:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-18 19:57:53 -0400 |
commit | 575a2929815bca197983a22fe6d072534d219be4 (patch) | |
tree | 77960b02f5ff4c43c29152119f82658c9bbd0b2d /Documentation | |
parent | 7e55f81ecf592d269b9430d9c06db509fc3f19f9 (diff) | |
parent | 12de375ec493ab1767d4a07dde823e63ae5edc21 (diff) |
Merge tag 'tty-3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver fixes from Greg KH:
"Here are a number of small tty/serial driver fixes for 3.15-rc2. Also
in here are some Documentation file removals for drivers that we
removed a long time ago, no need to keep it around any longer.
All of these have been in linux-next for a bit"
* tag 'tty-3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
Revert "serial: 8250, disable "too much work" messages"
serial: amba-pl011: fix regression, causing an Oops on rmmod
tty: Fix help text of SYNCLINK_CS
tty: fix memleak in alloc_pid
ttyprintk: Allow built as a module
ttyprintk: Fix wrong tty_unregister_driver() call in the error path
serial: 8250, disable "too much work" messages
Documentation/serial: Delete obsolete driver documentation
serial: omap: Fix missing pm_runtime_resume handling by simplifying code
serial_core: Fix pm imbalance on unbind
serial: pl011: change Rx burst size to half of trigger level
serial: timberdale: Depend on X86_32
serial: st-asc: Fix SysRq char handling
Revert "serial: clps711x: Give a chance to perform useful tasks during wait loop"
serial_core: Fix conditional start_tx on ring buffer not empty
serial: efm32: use $vendor,$device scheme for compatible string
serial: omap: free the wakeup settings in remove
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/devicetree/bindings/serial/efm32-uart.txt | 4 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 13 | ||||
-rw-r--r-- | Documentation/magic-number.txt | 12 | ||||
-rw-r--r-- | Documentation/serial/00-INDEX | 8 | ||||
-rw-r--r-- | Documentation/serial/digiepca.txt | 98 | ||||
-rw-r--r-- | Documentation/serial/riscom8.txt | 36 | ||||
-rw-r--r-- | Documentation/serial/specialix.txt | 383 | ||||
-rw-r--r-- | Documentation/serial/sx.txt | 294 | ||||
-rw-r--r-- | Documentation/zh_CN/magic-number.txt | 12 |
9 files changed, 2 insertions, 858 deletions
diff --git a/Documentation/devicetree/bindings/serial/efm32-uart.txt b/Documentation/devicetree/bindings/serial/efm32-uart.txt index 1984bdfbd545..3ca01336b837 100644 --- a/Documentation/devicetree/bindings/serial/efm32-uart.txt +++ b/Documentation/devicetree/bindings/serial/efm32-uart.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | * Energymicro efm32 UART | 1 | * Energymicro efm32 UART |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "efm32,uart" | 4 | - compatible : Should be "energymicro,efm32-uart" |
5 | - reg : Address and length of the register set | 5 | - reg : Address and length of the register set |
6 | - interrupts : Should contain uart interrupt | 6 | - interrupts : Should contain uart interrupt |
7 | 7 | ||
@@ -13,7 +13,7 @@ Optional properties: | |||
13 | Example: | 13 | Example: |
14 | 14 | ||
15 | uart@0x4000c400 { | 15 | uart@0x4000c400 { |
16 | compatible = "efm32,uart"; | 16 | compatible = "energymicro,efm32-uart"; |
17 | reg = <0x4000c400 0x400>; | 17 | reg = <0x4000c400 0x400>; |
18 | interrupts = <15>; | 18 | interrupts = <15>; |
19 | efm32,location = <0>; | 19 | efm32,location = <0>; |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 03e50b4883a8..43842177b771 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -804,13 +804,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
804 | dhash_entries= [KNL] | 804 | dhash_entries= [KNL] |
805 | Set number of hash buckets for dentry cache. | 805 | Set number of hash buckets for dentry cache. |
806 | 806 | ||
807 | digi= [HW,SERIAL] | ||
808 | IO parameters + enable/disable command. | ||
809 | |||
810 | digiepca= [HW,SERIAL] | ||
811 | See drivers/char/README.epca and | ||
812 | Documentation/serial/digiepca.txt. | ||
813 | |||
814 | disable= [IPV6] | 807 | disable= [IPV6] |
815 | See Documentation/networking/ipv6.txt. | 808 | See Documentation/networking/ipv6.txt. |
816 | 809 | ||
@@ -2939,9 +2932,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
2939 | rhash_entries= [KNL,NET] | 2932 | rhash_entries= [KNL,NET] |
2940 | Set number of hash buckets for route cache | 2933 | Set number of hash buckets for route cache |
2941 | 2934 | ||
2942 | riscom8= [HW,SERIAL] | ||
2943 | Format: <io_board1>[,<io_board2>[,...<io_boardN>]] | ||
2944 | |||
2945 | ro [KNL] Mount root device read-only on boot | 2935 | ro [KNL] Mount root device read-only on boot |
2946 | 2936 | ||
2947 | root= [KNL] Root filesystem | 2937 | root= [KNL] Root filesystem |
@@ -3083,9 +3073,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
3083 | sonypi.*= [HW] Sony Programmable I/O Control Device driver | 3073 | sonypi.*= [HW] Sony Programmable I/O Control Device driver |
3084 | See Documentation/laptops/sonypi.txt | 3074 | See Documentation/laptops/sonypi.txt |
3085 | 3075 | ||
3086 | specialix= [HW,SERIAL] Specialix multi-serial port adapter | ||
3087 | See Documentation/serial/specialix.txt. | ||
3088 | |||
3089 | spia_io_base= [HW,MTD] | 3076 | spia_io_base= [HW,MTD] |
3090 | spia_fio_base= | 3077 | spia_fio_base= |
3091 | spia_pedr= | 3078 | spia_pedr= |
diff --git a/Documentation/magic-number.txt b/Documentation/magic-number.txt index 76d80a64bbe1..4c8e142db2ef 100644 --- a/Documentation/magic-number.txt +++ b/Documentation/magic-number.txt | |||
@@ -63,8 +63,6 @@ Magic Name Number Structure File | |||
63 | PG_MAGIC 'P' pg_{read,write}_hdr include/linux/pg.h | 63 | PG_MAGIC 'P' pg_{read,write}_hdr include/linux/pg.h |
64 | CMAGIC 0x0111 user include/linux/a.out.h | 64 | CMAGIC 0x0111 user include/linux/a.out.h |
65 | MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h | 65 | MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h |
66 | RISCOM8_MAGIC 0x0907 riscom_port drivers/char/riscom8.h | ||
67 | SPECIALIX_MAGIC 0x0907 specialix_port drivers/char/specialix_io8.h | ||
68 | HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c | 66 | HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c |
69 | APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c | 67 | APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c |
70 | CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h | 68 | CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h |
@@ -82,7 +80,6 @@ STRIP_MAGIC 0x5303 strip drivers/net/strip.c | |||
82 | X25_ASY_MAGIC 0x5303 x25_asy drivers/net/x25_asy.h | 80 | X25_ASY_MAGIC 0x5303 x25_asy drivers/net/x25_asy.h |
83 | SIXPACK_MAGIC 0x5304 sixpack drivers/net/hamradio/6pack.h | 81 | SIXPACK_MAGIC 0x5304 sixpack drivers/net/hamradio/6pack.h |
84 | AX25_MAGIC 0x5316 ax_disp drivers/net/mkiss.h | 82 | AX25_MAGIC 0x5316 ax_disp drivers/net/mkiss.h |
85 | ESP_MAGIC 0x53ee esp_struct drivers/char/esp.h | ||
86 | TTY_MAGIC 0x5401 tty_struct include/linux/tty.h | 83 | TTY_MAGIC 0x5401 tty_struct include/linux/tty.h |
87 | MGSL_MAGIC 0x5401 mgsl_info drivers/char/synclink.c | 84 | MGSL_MAGIC 0x5401 mgsl_info drivers/char/synclink.c |
88 | TTY_DRIVER_MAGIC 0x5402 tty_driver include/linux/tty_driver.h | 85 | TTY_DRIVER_MAGIC 0x5402 tty_driver include/linux/tty_driver.h |
@@ -94,13 +91,10 @@ USB_BLUETOOTH_MAGIC 0x6d02 usb_bluetooth drivers/usb/class/bluetty.c | |||
94 | RFCOMM_TTY_MAGIC 0x6d02 net/bluetooth/rfcomm/tty.c | 91 | RFCOMM_TTY_MAGIC 0x6d02 net/bluetooth/rfcomm/tty.c |
95 | USB_SERIAL_PORT_MAGIC 0x7301 usb_serial_port drivers/usb/serial/usb-serial.h | 92 | USB_SERIAL_PORT_MAGIC 0x7301 usb_serial_port drivers/usb/serial/usb-serial.h |
96 | CG_MAGIC 0x00090255 ufs_cylinder_group include/linux/ufs_fs.h | 93 | CG_MAGIC 0x00090255 ufs_cylinder_group include/linux/ufs_fs.h |
97 | A2232_MAGIC 0x000a2232 gs_port drivers/char/ser_a2232.h | ||
98 | RPORT_MAGIC 0x00525001 r_port drivers/char/rocket_int.h | 94 | RPORT_MAGIC 0x00525001 r_port drivers/char/rocket_int.h |
99 | LSEMAGIC 0x05091998 lse drivers/fc4/fc.c | 95 | LSEMAGIC 0x05091998 lse drivers/fc4/fc.c |
100 | GDTIOCTL_MAGIC 0x06030f07 gdth_iowr_str drivers/scsi/gdth_ioctl.h | 96 | GDTIOCTL_MAGIC 0x06030f07 gdth_iowr_str drivers/scsi/gdth_ioctl.h |
101 | RIEBL_MAGIC 0x09051990 drivers/net/atarilance.c | 97 | RIEBL_MAGIC 0x09051990 drivers/net/atarilance.c |
102 | RIO_MAGIC 0x12345678 gs_port drivers/char/rio/rio_linux.c | ||
103 | SX_MAGIC 0x12345678 gs_port drivers/char/sx.h | ||
104 | NBD_REQUEST_MAGIC 0x12560953 nbd_request include/linux/nbd.h | 98 | NBD_REQUEST_MAGIC 0x12560953 nbd_request include/linux/nbd.h |
105 | RED_MAGIC2 0x170fc2a5 (any) mm/slab.c | 99 | RED_MAGIC2 0x170fc2a5 (any) mm/slab.c |
106 | BAYCOM_MAGIC 0x19730510 baycom_state drivers/net/baycom_epp.c | 100 | BAYCOM_MAGIC 0x19730510 baycom_state drivers/net/baycom_epp.c |
@@ -116,7 +110,6 @@ ISDN_ASYNC_MAGIC 0x49344C01 modem_info include/linux/isdn.h | |||
116 | CTC_ASYNC_MAGIC 0x49344C01 ctc_tty_info drivers/s390/net/ctctty.c | 110 | CTC_ASYNC_MAGIC 0x49344C01 ctc_tty_info drivers/s390/net/ctctty.c |
117 | ISDN_NET_MAGIC 0x49344C02 isdn_net_local_s drivers/isdn/i4l/isdn_net_lib.h | 111 | ISDN_NET_MAGIC 0x49344C02 isdn_net_local_s drivers/isdn/i4l/isdn_net_lib.h |
118 | SAVEKMSG_MAGIC2 0x4B4D5347 savekmsg arch/*/amiga/config.c | 112 | SAVEKMSG_MAGIC2 0x4B4D5347 savekmsg arch/*/amiga/config.c |
119 | STLI_BOARDMAGIC 0x4bc6c825 stlibrd include/linux/istallion.h | ||
120 | CS_STATE_MAGIC 0x4c4f4749 cs_state sound/oss/cs46xx.c | 113 | CS_STATE_MAGIC 0x4c4f4749 cs_state sound/oss/cs46xx.c |
121 | SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c | 114 | SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c |
122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c | 115 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c |
@@ -127,10 +120,8 @@ SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | |||
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 120 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h | 121 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |
129 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c | 122 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c |
130 | STL_PORTMAGIC 0x5a7182c9 stlport include/linux/stallion.h | ||
131 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c | 123 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c |
132 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h | 124 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h |
133 | EPCA_MAGIC 0x5c6df104 channel include/linux/epca.h | ||
134 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h | 125 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h |
135 | KV_MAGIC 0x5f4b565f kernel_vars_s arch/mips/include/asm/sn/klkernvars.h | 126 | KV_MAGIC 0x5f4b565f kernel_vars_s arch/mips/include/asm/sn/klkernvars.h |
136 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c | 127 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c |
@@ -142,17 +133,14 @@ SLOT_MAGIC 0x67267322 slot drivers/hotplug/acpiphp.h | |||
142 | LO_MAGIC 0x68797548 nbd_device include/linux/nbd.h | 133 | LO_MAGIC 0x68797548 nbd_device include/linux/nbd.h |
143 | OPROFILE_MAGIC 0x6f70726f super_block drivers/oprofile/oprofilefs.h | 134 | OPROFILE_MAGIC 0x6f70726f super_block drivers/oprofile/oprofilefs.h |
144 | M3_STATE_MAGIC 0x734d724d m3_state sound/oss/maestro3.c | 135 | M3_STATE_MAGIC 0x734d724d m3_state sound/oss/maestro3.c |
145 | STL_PANELMAGIC 0x7ef621a1 stlpanel include/linux/stallion.h | ||
146 | VMALLOC_MAGIC 0x87654320 snd_alloc_track sound/core/memory.c | 136 | VMALLOC_MAGIC 0x87654320 snd_alloc_track sound/core/memory.c |
147 | KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c | 137 | KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c |
148 | PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h | 138 | PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h |
149 | NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h | 139 | NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h |
150 | STL_BOARDMAGIC 0xa2267f52 stlbrd include/linux/stallion.h | ||
151 | ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h | 140 | ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h |
152 | SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h | 141 | SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h |
153 | CODA_MAGIC 0xC0DAC0DA coda_file_info fs/coda/coda_fs_i.h | 142 | CODA_MAGIC 0xC0DAC0DA coda_file_info fs/coda/coda_fs_i.h |
154 | DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h | 143 | DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h |
155 | STLI_PORTMAGIC 0xe671c7a1 stliport include/linux/istallion.h | ||
156 | YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c | 144 | YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c |
157 | CCB_MAGIC 0xf2691ad2 ccb drivers/scsi/ncr53c8xx.c | 145 | CCB_MAGIC 0xf2691ad2 ccb drivers/scsi/ncr53c8xx.c |
158 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c | 146 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c |
diff --git a/Documentation/serial/00-INDEX b/Documentation/serial/00-INDEX index f9c6b5ed03e7..8021a9f29fc5 100644 --- a/Documentation/serial/00-INDEX +++ b/Documentation/serial/00-INDEX | |||
@@ -2,23 +2,15 @@ | |||
2 | - this file. | 2 | - this file. |
3 | README.cycladesZ | 3 | README.cycladesZ |
4 | - info on Cyclades-Z firmware loading. | 4 | - info on Cyclades-Z firmware loading. |
5 | digiepca.txt | ||
6 | - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards. | ||
7 | driver | 5 | driver |
8 | - intro to the low level serial driver. | 6 | - intro to the low level serial driver. |
9 | moxa-smartio | 7 | moxa-smartio |
10 | - file with info on installing/using Moxa multiport serial driver. | 8 | - file with info on installing/using Moxa multiport serial driver. |
11 | n_gsm.txt | 9 | n_gsm.txt |
12 | - GSM 0710 tty multiplexer howto. | 10 | - GSM 0710 tty multiplexer howto. |
13 | riscom8.txt | ||
14 | - notes on using the RISCom/8 multi-port serial driver. | ||
15 | rocket.txt | 11 | rocket.txt |
16 | - info on the Comtrol RocketPort multiport serial driver. | 12 | - info on the Comtrol RocketPort multiport serial driver. |
17 | serial-rs485.txt | 13 | serial-rs485.txt |
18 | - info about RS485 structures and support in the kernel. | 14 | - info about RS485 structures and support in the kernel. |
19 | specialix.txt | ||
20 | - info on hardware/driver for specialix IO8+ multiport serial card. | ||
21 | sx.txt | ||
22 | - info on the Specialix SX/SI multiport serial driver. | ||
23 | tty.txt | 15 | tty.txt |
24 | - guide to the locking policies of the tty layer. | 16 | - guide to the locking policies of the tty layer. |
diff --git a/Documentation/serial/digiepca.txt b/Documentation/serial/digiepca.txt deleted file mode 100644 index f2560e22f2c9..000000000000 --- a/Documentation/serial/digiepca.txt +++ /dev/null | |||
@@ -1,98 +0,0 @@ | |||
1 | NOTE: This driver is obsolete. Digi provides a 2.6 driver (dgdm) at | ||
2 | http://www.digi.com for PCI cards. They no longer maintain this driver, | ||
3 | and have no 2.6 driver for ISA cards. | ||
4 | |||
5 | This driver requires a number of user-space tools. They can be acquired from | ||
6 | http://www.digi.com, but only works with 2.4 kernels. | ||
7 | |||
8 | |||
9 | The Digi Intl. epca driver. | ||
10 | ---------------------------- | ||
11 | The Digi Intl. epca driver for Linux supports the following boards: | ||
12 | |||
13 | Digi PC/Xem, PC/Xr, PC/Xe, PC/Xi, PC/Xeve | ||
14 | Digi EISA/Xem, PCI/Xem, PCI/Xr | ||
15 | |||
16 | Limitations: | ||
17 | ------------ | ||
18 | Currently the driver only autoprobes for supported PCI boards. | ||
19 | |||
20 | The Linux MAKEDEV command does not support generating the Digiboard | ||
21 | Devices. Users executing digiConfig to setup EISA and PC series cards | ||
22 | will have their device nodes automatically constructed (cud?? for ~CLOCAL, | ||
23 | and ttyD?? for CLOCAL). Users wishing to boot their board from the LILO | ||
24 | prompt, or those users booting PCI cards may use buildDIGI to construct | ||
25 | the necessary nodes. | ||
26 | |||
27 | Notes: | ||
28 | ------ | ||
29 | This driver may be configured via LILO. For users who have already configured | ||
30 | their driver using digiConfig, configuring from LILO will override previous | ||
31 | settings. Multiple boards may be configured by issuing multiple LILO command | ||
32 | lines. For examples see the bottom of this document. | ||
33 | |||
34 | Device names start at 0 and continue up. Beware of this as previous Digi | ||
35 | drivers started device names with 1. | ||
36 | |||
37 | PCI boards are auto-detected and configured by the driver. PCI boards will | ||
38 | be allocated device numbers (internally) beginning with the lowest PCI slot | ||
39 | first. In other words a PCI card in slot 3 will always have higher device | ||
40 | nodes than a PCI card in slot 1. | ||
41 | |||
42 | LILO config examples: | ||
43 | --------------------- | ||
44 | Using LILO's APPEND command, a string of comma separated identifiers or | ||
45 | integers can be used to configure supported boards. The six values in order | ||
46 | are: | ||
47 | |||
48 | Enable/Disable this card or Override, | ||
49 | Type of card: PC/Xe (AccelePort) (0), PC/Xeve (1), PC/Xem or PC/Xr (2), | ||
50 | EISA/Xem (3), PC/64Xe (4), PC/Xi (5), | ||
51 | Enable/Disable alternate pin arrangement, | ||
52 | Number of ports on this card, | ||
53 | I/O Port where card is configured (in HEX if using string identifiers), | ||
54 | Base of memory window (in HEX if using string identifiers), | ||
55 | |||
56 | NOTE : PCI boards are auto-detected and configured. Do not attempt to | ||
57 | configure PCI boards with the LILO append command. If you wish to override | ||
58 | previous configuration data (As set by digiConfig), but you do not wish to | ||
59 | configure any specific card (Example if there are PCI cards in the system) | ||
60 | the following override command will accomplish this: | ||
61 | -> append="digi=2" | ||
62 | |||
63 | Samples: | ||
64 | append="digiepca=E,PC/Xe,D,16,200,D0000" | ||
65 | or | ||
66 | append="digi=1,0,0,16,512,851968" | ||
67 | |||
68 | Supporting Tools: | ||
69 | ----------------- | ||
70 | Supporting tools include digiDload, digiConfig, buildPCI, and ditty. See | ||
71 | drivers/char/README.epca for more details. Note, | ||
72 | this driver REQUIRES that digiDload be executed prior to it being used. | ||
73 | Failure to do this will result in an ENODEV error. | ||
74 | |||
75 | Documentation: | ||
76 | -------------- | ||
77 | Complete documentation for this product may be found in the tool package. | ||
78 | |||
79 | Sources of information and support: | ||
80 | ----------------------------------- | ||
81 | Digi Intl. support site for this product: | ||
82 | |||
83 | -> http://www.digi.com | ||
84 | |||
85 | Acknowledgments: | ||
86 | ---------------- | ||
87 | Much of this work (And even text) was derived from a similar document | ||
88 | supporting the original public domain DigiBoard driver Copyright (C) | ||
89 | 1994,1995 Troy De Jongh. Many thanks to Christoph Lameter | ||
90 | (christoph@lameter.com) and Mike McLagan (mike.mclagan@linux.org) who authored | ||
91 | and contributed to the original document. | ||
92 | |||
93 | Changelog: | ||
94 | ---------- | ||
95 | 10-29-04: Update status of driver, remove dead links in document | ||
96 | James Nelson <james4765@gmail.com> | ||
97 | |||
98 | 2000 (?) Original Document | ||
diff --git a/Documentation/serial/riscom8.txt b/Documentation/serial/riscom8.txt deleted file mode 100644 index 14f61fdad7ca..000000000000 --- a/Documentation/serial/riscom8.txt +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | * NOTE - this is an unmaintained driver. The original author cannot be located. | ||
2 | |||
3 | SDL Communications is now SBS Technologies, and does not have any | ||
4 | information on these ancient ISA cards on their website. | ||
5 | |||
6 | James Nelson <james4765@gmail.com> - 12-12-2004 | ||
7 | |||
8 | This is the README for RISCom/8 multi-port serial driver | ||
9 | (C) 1994-1996 D.Gorodchanin | ||
10 | See file LICENSE for terms and conditions. | ||
11 | |||
12 | NOTE: English is not my native language. | ||
13 | I'm sorry for any mistakes in this text. | ||
14 | |||
15 | Misc. notes for RISCom/8 serial driver, in no particular order :) | ||
16 | |||
17 | 1) This driver can support up to 4 boards at time. | ||
18 | Use string "riscom8=0xXXX,0xXXX,0xXXX,0xXXX" at LILO prompt, for | ||
19 | setting I/O base addresses for boards. If you compile driver | ||
20 | as module use modprobe options "iobase=0xXXX iobase1=0xXXX iobase2=..." | ||
21 | |||
22 | 2) The driver partially supports famous 'setserial' program, you can use almost | ||
23 | any of its options, excluding port & irq settings. | ||
24 | |||
25 | 3) There are some misc. defines at the beginning of riscom8.c, please read the | ||
26 | comments and try to change some of them in case of problems. | ||
27 | |||
28 | 4) I consider the current state of the driver as BETA. | ||
29 | |||
30 | 5) SDL Communications WWW page is http://www.sdlcomm.com. | ||
31 | |||
32 | 6) You can use the MAKEDEV program to create RISCom/8 /dev/ttyL* entries. | ||
33 | |||
34 | 7) Minor numbers for first board are 0-7, for second 8-15, etc. | ||
35 | |||
36 | 22 Apr 1996. | ||
diff --git a/Documentation/serial/specialix.txt b/Documentation/serial/specialix.txt deleted file mode 100644 index 6eb6f3a3331c..000000000000 --- a/Documentation/serial/specialix.txt +++ /dev/null | |||
@@ -1,383 +0,0 @@ | |||
1 | |||
2 | specialix.txt -- specialix IO8+ multiport serial driver readme. | ||
3 | |||
4 | |||
5 | |||
6 | Copyright (C) 1997 Roger Wolff (R.E.Wolff@BitWizard.nl) | ||
7 | |||
8 | Specialix pays for the development and support of this driver. | ||
9 | Please DO contact io8-linux@specialix.co.uk if you require | ||
10 | support. | ||
11 | |||
12 | This driver was developed in the BitWizard linux device | ||
13 | driver service. If you require a linux device driver for your | ||
14 | product, please contact devices@BitWizard.nl for a quote. | ||
15 | |||
16 | This code is firmly based on the riscom/8 serial driver, | ||
17 | written by Dmitry Gorodchanin. The specialix IO8+ card | ||
18 | programming information was obtained from the CL-CD1865 Data | ||
19 | Book, and Specialix document number 6200059: IO8+ Hardware | ||
20 | Functional Specification, augmented by document number 6200088: | ||
21 | Merak Hardware Functional Specification. (IO8+/PCI is also | ||
22 | called Merak) | ||
23 | |||
24 | |||
25 | This program is free software; you can redistribute it and/or | ||
26 | modify it under the terms of the GNU General Public License as | ||
27 | published by the Free Software Foundation; either version 2 of | ||
28 | the License, or (at your option) any later version. | ||
29 | |||
30 | This program is distributed in the hope that it will be | ||
31 | useful, but WITHOUT ANY WARRANTY; without even the implied | ||
32 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
33 | PURPOSE. See the GNU General Public License for more details. | ||
34 | |||
35 | You should have received a copy of the GNU General Public | ||
36 | License along with this program; if not, write to the Free | ||
37 | Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, | ||
38 | USA. | ||
39 | |||
40 | |||
41 | Intro | ||
42 | ===== | ||
43 | |||
44 | |||
45 | This file contains some random information, that I like to have online | ||
46 | instead of in a manual that can get lost. Ever misplace your Linux | ||
47 | kernel sources? And the manual of one of the boards in your computer? | ||
48 | |||
49 | |||
50 | Addresses and interrupts | ||
51 | ======================== | ||
52 | |||
53 | Address dip switch settings: | ||
54 | The dip switch sets bits 2-9 of the IO address. | ||
55 | |||
56 | 9 8 7 6 5 4 3 2 | ||
57 | +-----------------+ | ||
58 | 0 | X X X X X X X | | ||
59 | | | = IoBase = 0x100 | ||
60 | 1 | X | | ||
61 | +-----------------+ ------ RS232 connectors ----> | ||
62 | |||
63 | | | | | ||
64 | edge connector | ||
65 | | | | | ||
66 | V V V | ||
67 | |||
68 | Base address 0x100 caused a conflict in one of my computers once. I | ||
69 | haven't the foggiest why. My Specialix card is now at 0x180. My | ||
70 | other computer runs just fine with the Specialix card at 0x100.... | ||
71 | The card occupies 4 addresses, but actually only two are really used. | ||
72 | |||
73 | The PCI version doesn't have any dip switches. The BIOS assigns | ||
74 | an IO address. | ||
75 | |||
76 | The driver now still autoprobes at 0x100, 0x180, 0x250 and 0x260. If | ||
77 | that causes trouble for you, please report that. I'll remove | ||
78 | autoprobing then. | ||
79 | |||
80 | The driver will tell the card what IRQ to use, so you don't have to | ||
81 | change any jumpers to change the IRQ. Just use a command line | ||
82 | argument (irq=xx) to the insmod program to set the interrupt. | ||
83 | |||
84 | The BIOS assigns the IRQ on the PCI version. You have no say in what | ||
85 | IRQ to use in that case. | ||
86 | |||
87 | If your specialix cards are not at the default locations, you can use | ||
88 | the kernel command line argument "specialix=io0,irq0,io1,irq1...". | ||
89 | Here "io0" is the io address for the first card, and "irq0" is the | ||
90 | irq line that the first card should use. And so on. | ||
91 | |||
92 | Examples. | ||
93 | |||
94 | You use the driver as a module and have three cards at 0x100, 0x250 | ||
95 | and 0x180. And some way or another you want them detected in that | ||
96 | order. Moreover irq 12 is taken (e.g. by your PS/2 mouse). | ||
97 | |||
98 | insmod specialix.o iobase=0x100,0x250,0x180 irq=9,11,15 | ||
99 | |||
100 | The same three cards, but now in the kernel would require you to | ||
101 | add | ||
102 | |||
103 | specialix=0x100,9,0x250,11,0x180,15 | ||
104 | |||
105 | to the command line. This would become | ||
106 | |||
107 | append="specialix=0x100,9,0x250,11,0x180,15" | ||
108 | |||
109 | in your /etc/lilo.conf file if you use lilo. | ||
110 | |||
111 | The Specialix driver is slightly odd: It allows you to have the second | ||
112 | or third card detected without having a first card. This has | ||
113 | advantages and disadvantages. A slot that isn't filled by an ISA card, | ||
114 | might be filled if a PCI card is detected. Thus if you have an ISA | ||
115 | card at 0x250 and a PCI card, you would get: | ||
116 | |||
117 | sx0: specialix IO8+ Board at 0x100 not found. | ||
118 | sx1: specialix IO8+ Board at 0x180 not found. | ||
119 | sx2: specialix IO8+ board detected at 0x250, IRQ 12, CD1865 Rev. B. | ||
120 | sx3: specialix IO8+ Board at 0x260 not found. | ||
121 | sx0: specialix IO8+ board detected at 0xd800, IRQ 9, CD1865 Rev. B. | ||
122 | |||
123 | This would happen if you don't give any probe hints to the driver. | ||
124 | If you would specify: | ||
125 | |||
126 | specialix=0x250,11 | ||
127 | |||
128 | you'd get the following messages: | ||
129 | |||
130 | sx0: specialix IO8+ board detected at 0x250, IRQ 11, CD1865 Rev. B. | ||
131 | sx1: specialix IO8+ board detected at 0xd800, IRQ 9, CD1865 Rev. B. | ||
132 | |||
133 | ISA probing is aborted after the IO address you gave is exhausted, and | ||
134 | the PCI card is now detected as the second card. The ISA card is now | ||
135 | also forced to IRQ11.... | ||
136 | |||
137 | |||
138 | Baud rates | ||
139 | ========== | ||
140 | |||
141 | The rev 1.2 and below boards use a CL-CD1864. These chips can only | ||
142 | do 64kbit. The rev 1.3 and newer boards use a CL-CD1865. These chips | ||
143 | are officially capable of 115k2. | ||
144 | |||
145 | The Specialix card uses a 25MHz crystal (in times two mode, which in | ||
146 | fact is a divided by two mode). This is not enough to reach the rated | ||
147 | 115k2 on all ports at the same time. With this clock rate you can only | ||
148 | do 37% of this rate. This means that at 115k2 on all ports you are | ||
149 | going to lose characters (The chip cannot handle that many incoming | ||
150 | bits at this clock rate.) (Yes, you read that correctly: there is a | ||
151 | limit to the number of -=bits=- per second that the chip can handle.) | ||
152 | |||
153 | If you near the "limit" you will first start to see a graceful | ||
154 | degradation in that the chip cannot keep the transmitter busy at all | ||
155 | times. However with a central clock this slow, you can also get it to | ||
156 | miss incoming characters. The driver will print a warning message when | ||
157 | you are outside the official specs. The messages usually show up in | ||
158 | the file /var/log/messages . | ||
159 | |||
160 | The specialix card cannot reliably do 115k2. If you use it, you have | ||
161 | to do "extensive testing" (*) to verify if it actually works. | ||
162 | |||
163 | When "mgetty" communicates with my modem at 115k2 it reports: | ||
164 | got: +++[0d]ATQ0V1H0[0d][0d][8a]O[cb][0d][8a] | ||
165 | ^^^^ ^^^^ ^^^^ | ||
166 | |||
167 | The three characters that have the "^^^" under them have suffered a | ||
168 | bit error in the highest bit. In conclusion: I've tested it, and found | ||
169 | that it simply DOESN'T work for me. I also suspect that this is also | ||
170 | caused by the baud rate being just a little bit out of tune. | ||
171 | |||
172 | I upgraded the crystal to 66Mhz on one of my Specialix cards. Works | ||
173 | great! Contact me for details. (Voids warranty, requires a steady hand | ||
174 | and more such restrictions....) | ||
175 | |||
176 | |||
177 | (*) Cirrus logic CD1864 databook, page 40. | ||
178 | |||
179 | |||
180 | Cables for the Specialix IO8+ | ||
181 | ============================= | ||
182 | |||
183 | The pinout of the connectors on the IO8+ is: | ||
184 | |||
185 | pin short direction long name | ||
186 | name | ||
187 | Pin 1 DCD input Data Carrier Detect | ||
188 | Pin 2 RXD input Receive | ||
189 | Pin 3 DTR/RTS output Data Terminal Ready/Ready To Send | ||
190 | Pin 4 GND - Ground | ||
191 | Pin 5 TXD output Transmit | ||
192 | Pin 6 CTS input Clear To Send | ||
193 | |||
194 | |||
195 | -- 6 5 4 3 2 1 -- | ||
196 | | | | ||
197 | | | | ||
198 | | | | ||
199 | | | | ||
200 | +----- -----+ | ||
201 | |__________| | ||
202 | clip | ||
203 | |||
204 | Front view of an RJ12 connector. Cable moves "into" the paper. | ||
205 | (the plug is ready to plug into your mouth this way...) | ||
206 | |||
207 | |||
208 | NULL cable. I don't know who is going to use these except for | ||
209 | testing purposes, but I tested the cards with this cable. (It | ||
210 | took quite a while to figure out, so I'm not going to delete | ||
211 | it. So there! :-) | ||
212 | |||
213 | |||
214 | This end goes This end needs | ||
215 | straight into the some twists in | ||
216 | RJ12 plug. the wiring. | ||
217 | IO8+ RJ12 IO8+ RJ12 | ||
218 | 1 DCD white - | ||
219 | - - 1 DCD | ||
220 | 2 RXD black 5 TXD | ||
221 | 3 DTR/RTS red 6 CTS | ||
222 | 4 GND green 4 GND | ||
223 | 5 TXD yellow 2 RXD | ||
224 | 6 CTS blue 3 DTR/RTS | ||
225 | |||
226 | |||
227 | Same NULL cable, but now sorted on the second column. | ||
228 | |||
229 | 1 DCD white - | ||
230 | - - 1 DCD | ||
231 | 5 TXD yellow 2 RXD | ||
232 | 6 CTS blue 3 DTR/RTS | ||
233 | 4 GND green 4 GND | ||
234 | 2 RXD black 5 TXD | ||
235 | 3 DTR/RTS red 6 CTS | ||
236 | |||
237 | |||
238 | |||
239 | This is a modem cable usable for hardware handshaking: | ||
240 | RJ12 DB25 DB9 | ||
241 | 1 DCD white 8 DCD 1 DCD | ||
242 | 2 RXD black 3 RXD 2 RXD | ||
243 | 3 DTR/RTS red 4 RTS 7 RTS | ||
244 | 4 GND green 7 GND 5 GND | ||
245 | 5 TXD yellow 2 TXD 3 TXD | ||
246 | 6 CTS blue 5 CTS 8 CTS | ||
247 | +---- 6 DSR 6 DSR | ||
248 | +---- 20 DTR 4 DTR | ||
249 | |||
250 | This is a modem cable usable for software handshaking: | ||
251 | It allows you to reset the modem using the DTR ioctls. | ||
252 | I (REW) have never tested this, "but xxxxxxxxxxxxx | ||
253 | says that it works." If you test this, please | ||
254 | tell me and I'll fill in your name on the xxx's. | ||
255 | |||
256 | RJ12 DB25 DB9 | ||
257 | 1 DCD white 8 DCD 1 DCD | ||
258 | 2 RXD black 3 RXD 2 RXD | ||
259 | 3 DTR/RTS red 20 DTR 4 DTR | ||
260 | 4 GND green 7 GND 5 GND | ||
261 | 5 TXD yellow 2 TXD 3 TXD | ||
262 | 6 CTS blue 5 CTS 8 CTS | ||
263 | +---- 6 DSR 6 DSR | ||
264 | +---- 4 RTS 7 RTS | ||
265 | |||
266 | I bought a 6 wire flat cable. It was colored as indicated. | ||
267 | Check that yours is the same before you trust me on this. | ||
268 | |||
269 | |||
270 | Hardware handshaking issues. | ||
271 | ============================ | ||
272 | |||
273 | The driver can be told to operate in two different ways. The default | ||
274 | behaviour is specialix.sx_rtscts = 0 where the pin behaves as DTR when | ||
275 | hardware handshaking is off. It behaves as the RTS hardware | ||
276 | handshaking signal when hardware handshaking is selected. | ||
277 | |||
278 | When you use this, you have to use the appropriate cable. The | ||
279 | cable will either be compatible with hardware handshaking or with | ||
280 | software handshaking. So switching on the fly is not really an | ||
281 | option. | ||
282 | |||
283 | I actually prefer to use the "specialix.sx_rtscts=1" option. | ||
284 | This makes the DTR/RTS pin always an RTS pin, and ioctls to | ||
285 | change DTR are always ignored. I have a cable that is configured | ||
286 | for this. | ||
287 | |||
288 | |||
289 | Ports and devices | ||
290 | ================= | ||
291 | |||
292 | Port 0 is the one furthest from the card-edge connector. | ||
293 | |||
294 | Devices: | ||
295 | |||
296 | You should make the devices as follows: | ||
297 | |||
298 | bash | ||
299 | cd /dev | ||
300 | for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \ | ||
301 | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ||
302 | do | ||
303 | echo -n "$i " | ||
304 | mknod /dev/ttyW$i c 75 $i | ||
305 | mknod /dev/cuw$i c 76 $i | ||
306 | done | ||
307 | echo "" | ||
308 | |||
309 | If your system doesn't come with these devices preinstalled, bug your | ||
310 | linux-vendor about this. They have had ample time to get this | ||
311 | implemented by now. | ||
312 | |||
313 | You cannot have more than 4 boards in one computer. The card only | ||
314 | supports 4 different interrupts. If you really want this, contact me | ||
315 | about this and I'll give you a few tips (requires soldering iron).... | ||
316 | |||
317 | If you have enough PCI slots, you can probably use more than 4 PCI | ||
318 | versions of the card though.... | ||
319 | |||
320 | The PCI version of the card cannot adhere to the mechanical part of | ||
321 | the PCI spec because the 8 serial connectors are simply too large. If | ||
322 | it doesn't fit in your computer, bring back the card. | ||
323 | |||
324 | |||
325 | ------------------------------------------------------------------------ | ||
326 | |||
327 | |||
328 | Fixed bugs and restrictions: | ||
329 | - During initialization, interrupts are blindly turned on. | ||
330 | Having a shadow variable would cause an extra memory | ||
331 | access on every IO instruction. | ||
332 | - The interrupt (on the card) should be disabled when we | ||
333 | don't allocate the Linux end of the interrupt. This allows | ||
334 | a different driver/card to use it while all ports are not in | ||
335 | use..... (a la standard serial port) | ||
336 | == An extra _off variant of the sx_in and sx_out macros are | ||
337 | now available. They don't set the interrupt enable bit. | ||
338 | These are used during initialization. Normal operation uses | ||
339 | the old variant which enables the interrupt line. | ||
340 | - RTS/DTR issue needs to be implemented according to | ||
341 | specialix' spec. | ||
342 | I kind of like the "determinism" of the current | ||
343 | implementation. Compile time flag? | ||
344 | == Ok. Compile time flag! Default is how Specialix likes it. | ||
345 | == Now a config time flag! Gets saved in your config file. Neat! | ||
346 | - Can you set the IO address from the lilo command line? | ||
347 | If you need this, bug me about it, I'll make it. | ||
348 | == Hah! No bugging needed. Fixed! :-) | ||
349 | - Cirrus logic hasn't gotten back to me yet why the CD1865 can | ||
350 | and the CD1864 can't do 115k2. I suspect that this is | ||
351 | because the CD1864 is not rated for 33MHz operation. | ||
352 | Therefore the CD1864 versions of the card can't do 115k2 on | ||
353 | all ports just like the CD1865 versions. The driver does | ||
354 | not block 115k2 on CD1864 cards. | ||
355 | == I called the Cirrus Logic representative here in Holland. | ||
356 | The CD1864 databook is identical to the CD1865 databook, | ||
357 | except for an extra warning at the end. Similar Bit errors | ||
358 | have been observed in testing at 115k2 on both an 1865 and | ||
359 | a 1864 chip. I see no reason why I would prohibit 115k2 on | ||
360 | 1864 chips and not do it on 1865 chips. Actually there is | ||
361 | reason to prohibit it on BOTH chips. I print a warning. | ||
362 | If you use 115k2, you're on your own. | ||
363 | - A spiky CD may send spurious HUPs. Also in CLOCAL??? | ||
364 | -- A fix for this turned out to be counter productive. | ||
365 | Different fix? Current behaviour is acceptable? | ||
366 | -- Maybe the current implementation is correct. If anybody | ||
367 | gets bitten by this, please report, and it will get fixed. | ||
368 | |||
369 | -- Testing revealed that when in CLOCAL, the problem doesn't | ||
370 | occur. As warned for in the CD1865 manual, the chip may | ||
371 | send modem intr's on a spike. We could filter those out, | ||
372 | but that would be a cludge anyway (You'd still risk getting | ||
373 | a spurious HUP when two spikes occur.)..... | ||
374 | |||
375 | |||
376 | |||
377 | Bugs & restrictions: | ||
378 | - This is a difficult card to autoprobe. | ||
379 | You have to WRITE to the address register to even | ||
380 | read-probe a CD186x register. Disable autodetection? | ||
381 | -- Specialix: any suggestions? | ||
382 | |||
383 | |||
diff --git a/Documentation/serial/sx.txt b/Documentation/serial/sx.txt deleted file mode 100644 index cb4efa0fb5cc..000000000000 --- a/Documentation/serial/sx.txt +++ /dev/null | |||
@@ -1,294 +0,0 @@ | |||
1 | |||
2 | sx.txt -- specialix SX/SI multiport serial driver readme. | ||
3 | |||
4 | |||
5 | |||
6 | Copyright (C) 1997 Roger Wolff (R.E.Wolff@BitWizard.nl) | ||
7 | |||
8 | Specialix pays for the development and support of this driver. | ||
9 | Please DO contact support@specialix.co.uk if you require | ||
10 | support. | ||
11 | |||
12 | This driver was developed in the BitWizard linux device | ||
13 | driver service. If you require a linux device driver for your | ||
14 | product, please contact devices@BitWizard.nl for a quote. | ||
15 | |||
16 | (History) | ||
17 | There used to be an SI driver by Simon Allan. This is a complete | ||
18 | rewrite from scratch. Just a few lines-of-code have been snatched. | ||
19 | |||
20 | (Sources) | ||
21 | Specialix document number 6210028: SX Host Card and Download Code | ||
22 | Software Functional Specification. | ||
23 | |||
24 | (Copying) | ||
25 | This program is free software; you can redistribute it and/or | ||
26 | modify it under the terms of the GNU General Public License as | ||
27 | published by the Free Software Foundation; either version 2 of | ||
28 | the License, or (at your option) any later version. | ||
29 | |||
30 | This program is distributed in the hope that it will be | ||
31 | useful, but WITHOUT ANY WARRANTY; without even the implied | ||
32 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
33 | PURPOSE. See the GNU General Public License for more details. | ||
34 | |||
35 | You should have received a copy of the GNU General Public | ||
36 | License along with this program; if not, write to the Free | ||
37 | Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, | ||
38 | USA. | ||
39 | |||
40 | (Addendum) | ||
41 | I'd appreciate it that if you have fixes, that you send them | ||
42 | to me first. | ||
43 | |||
44 | |||
45 | Introduction | ||
46 | ============ | ||
47 | |||
48 | This file contains some random information, that I like to have online | ||
49 | instead of in a manual that can get lost. Ever misplace your Linux | ||
50 | kernel sources? And the manual of one of the boards in your computer? | ||
51 | |||
52 | |||
53 | Theory of operation | ||
54 | =================== | ||
55 | |||
56 | An important thing to know is that the driver itself doesn't have the | ||
57 | firmware for the card. This means that you need the separate package | ||
58 | "sx_firmware". For now you can get the source at | ||
59 | |||
60 | ftp://ftp.bitwizard.nl/specialix/sx_firmware_<version>.tgz | ||
61 | |||
62 | The firmware load needs a "misc" device, so you'll need to enable the | ||
63 | "Support for user misc device modules" in your kernel configuration. | ||
64 | The misc device needs to be called "/dev/specialix_sxctl". It needs | ||
65 | misc major 10, and minor number 167 (assigned by HPA). The section | ||
66 | on creating device files below also creates this device. | ||
67 | |||
68 | After loading the sx.o module into your kernel, the driver will report | ||
69 | the number of cards detected, but because it doesn't have any | ||
70 | firmware, it will not be able to determine the number of ports. Only | ||
71 | when you then run "sx_firmware" will the firmware be downloaded and | ||
72 | the rest of the driver initialized. At that time the sx_firmware | ||
73 | program will report the number of ports installed. | ||
74 | |||
75 | In contrast with many other multi port serial cards, some of the data | ||
76 | structures are only allocated when the card knows the number of ports | ||
77 | that are connected. This means we won't waste memory for 120 port | ||
78 | descriptor structures when you only have 8 ports. If you experience | ||
79 | problems due to this, please report them: I haven't seen any. | ||
80 | |||
81 | |||
82 | Interrupts | ||
83 | ========== | ||
84 | |||
85 | A multi port serial card, would generate a horrendous amount of | ||
86 | interrupts if it would interrupt the CPU for every received | ||
87 | character. Even more than 10 years ago, the trick not to use | ||
88 | interrupts but to poll the serial cards was invented. | ||
89 | |||
90 | The SX card allow us to do this two ways. First the card limits its | ||
91 | own interrupt rate to a rate that won't overwhelm the CPU. Secondly, | ||
92 | we could forget about the cards interrupt completely and use the | ||
93 | internal timer for this purpose. | ||
94 | |||
95 | Polling the card can take up to a few percent of your CPU. Using the | ||
96 | interrupts would be better if you have most of the ports idle. Using | ||
97 | timer-based polling is better if your card almost always has work to | ||
98 | do. You save the separate interrupt in that case. | ||
99 | |||
100 | In any case, it doesn't really matter all that much. | ||
101 | |||
102 | The most common problem with interrupts is that for ISA cards in a PCI | ||
103 | system the BIOS has to be told to configure that interrupt as "legacy | ||
104 | ISA". Otherwise the card can pull on the interrupt line all it wants | ||
105 | but the CPU won't see this. | ||
106 | |||
107 | If you can't get the interrupt to work, remember that polling mode is | ||
108 | more efficient (provided you actually use the card intensively). | ||
109 | |||
110 | |||
111 | Allowed Configurations | ||
112 | ====================== | ||
113 | |||
114 | Some configurations are disallowed. Even though at a glance they might | ||
115 | seem to work, they are known to lockup the bus between the host card | ||
116 | and the device concentrators. You should respect the drivers decision | ||
117 | not to support certain configurations. It's there for a reason. | ||
118 | |||
119 | Warning: Seriously technical stuff ahead. Executive summary: Don't use | ||
120 | SX cards except configured at a 64k boundary. Skip the next paragraph. | ||
121 | |||
122 | The SX cards can theoretically be placed at a 32k boundary. So for | ||
123 | instance you can put an SX card at 0xc8000-0xd7fff. This is not a | ||
124 | "recommended configuration". ISA cards have to tell the bus controller | ||
125 | how they like their timing. Due to timing issues they have to do this | ||
126 | based on which 64k window the address falls into. This means that the | ||
127 | 32k window below and above the SX card have to use exactly the same | ||
128 | timing as the SX card. That reportedly works for other SX cards. But | ||
129 | you're still left with two useless 32k windows that should not be used | ||
130 | by anybody else. | ||
131 | |||
132 | |||
133 | Configuring the driver | ||
134 | ====================== | ||
135 | |||
136 | PCI cards are always detected. The driver auto-probes for ISA cards at | ||
137 | some sensible addresses. Please report if the auto-probe causes trouble | ||
138 | in your system, or when a card isn't detected. | ||
139 | |||
140 | I'm afraid I haven't implemented "kernel command line parameters" yet. | ||
141 | This means that if the default doesn't work for you, you shouldn't use | ||
142 | the compiled-into-the-kernel version of the driver. Use a module | ||
143 | instead. If you convince me that you need this, I'll make it for | ||
144 | you. Deal? | ||
145 | |||
146 | I'm afraid that the module parameters are a bit clumsy. If you have a | ||
147 | better idea, please tell me. | ||
148 | |||
149 | You can specify several parameters: | ||
150 | |||
151 | sx_poll: number of jiffies between timer-based polls. | ||
152 | |||
153 | Set this to "0" to disable timer based polls. | ||
154 | Initialization of cards without a working interrupt | ||
155 | will fail. | ||
156 | |||
157 | Set this to "1" if you want a polling driver. | ||
158 | (on Intel: 100 polls per second). If you don't use | ||
159 | fast baud rates, you might consider a value like "5". | ||
160 | (If you don't know how to do the math, use 1). | ||
161 | |||
162 | sx_slowpoll: Number of jiffies between timer-based polls. | ||
163 | Set this to "100" to poll once a second. | ||
164 | This should get the card out of a stall if the driver | ||
165 | ever misses an interrupt. I've never seen this happen, | ||
166 | and if it does, that's a bug. Tell me. | ||
167 | |||
168 | sx_maxints: Number of interrupts to request from the card. | ||
169 | The card normally limits interrupts to about 100 per | ||
170 | second to offload the host CPU. You can increase this | ||
171 | number to reduce latency on the card a little. | ||
172 | Note that if you give a very high number you can overload | ||
173 | your CPU as well as the CPU on the host card. This setting | ||
174 | is inaccurate and not recommended for SI cards (But it | ||
175 | works). | ||
176 | |||
177 | sx_irqmask: The mask of allowable IRQs to use. I suggest you set | ||
178 | this to 0 (disable IRQs all together) and use polling if | ||
179 | the assignment of IRQs becomes problematic. This is defined | ||
180 | as the sum of (1 << irq) 's that you want to allow. So | ||
181 | sx_irqmask of 8 (1 << 3) specifies that only irq 3 may | ||
182 | be used by the SX driver. If you want to specify to the | ||
183 | driver: "Either irq 11 or 12 is ok for you to use", then | ||
184 | specify (1 << 11) | (1 << 12) = 0x1800 . | ||
185 | |||
186 | sx_debug: You can enable different sorts of debug traces with this. | ||
187 | At "-1" all debugging traces are active. You'll get several | ||
188 | times more debugging output than you'll get characters | ||
189 | transmitted. | ||
190 | |||
191 | |||
192 | Baud rates | ||
193 | ========== | ||
194 | |||
195 | Theoretically new SXDCs should be capable of more than 460k | ||
196 | baud. However the line drivers usually give up before that. Also the | ||
197 | CPU on the card may not be able to handle 8 channels going at full | ||
198 | blast at that speed. Moreover, the buffers are not large enough to | ||
199 | allow operation with 100 interrupts per second. You'll have to realize | ||
200 | that the card has a 256 byte buffer, so you'll have to increase the | ||
201 | number of interrupts per second if you have more than 256*100 bytes | ||
202 | per second to transmit. If you do any performance testing in this | ||
203 | area, I'd be glad to hear from you... | ||
204 | |||
205 | (Psst Linux users..... I think the Linux driver is more efficient than | ||
206 | the driver for other OSes. If you can and want to benchmark them | ||
207 | against each other, be my guest, and report your findings...... :-) | ||
208 | |||
209 | |||
210 | Ports and devices | ||
211 | ================= | ||
212 | |||
213 | Port 0 is the top connector on the module closest to the host | ||
214 | card. Oh, the ports on the SXDCs and TAs are labelled from 1 to 8 | ||
215 | instead of from 0 to 7, as they are numbered by linux. I'm stubborn in | ||
216 | this: I know for sure that I wouldn't be able to calculate which port | ||
217 | is which anymore if I would change that.... | ||
218 | |||
219 | |||
220 | Devices: | ||
221 | |||
222 | You should make the device files as follows: | ||
223 | |||
224 | #!/bin/sh | ||
225 | # (I recommend that you cut-and-paste this into a file and run that) | ||
226 | cd /dev | ||
227 | t=0 | ||
228 | mknod specialix_sxctl c 10 167 | ||
229 | while [ $t -lt 64 ] | ||
230 | do | ||
231 | echo -n "$t " | ||
232 | mknod ttyX$t c 32 $t | ||
233 | mknod cux$t c 33 $t | ||
234 | t=`expr $t + 1` | ||
235 | done | ||
236 | echo "" | ||
237 | rm /etc/psdevtab | ||
238 | ps > /dev/null | ||
239 | |||
240 | |||
241 | This creates 64 devices. If you have more, increase the constant on | ||
242 | the line with "while". The devices start at 0, as is customary on | ||
243 | Linux. Specialix seems to like starting the numbering at 1. | ||
244 | |||
245 | If your system doesn't come with these devices pre-installed, bug your | ||
246 | linux-vendor about this. They should have these devices | ||
247 | "pre-installed" before the new millennium. The "ps" stuff at the end | ||
248 | is to "tell" ps that the new devices exist. | ||
249 | |||
250 | Officially the maximum number of cards per computer is 4. This driver | ||
251 | however supports as many cards in one machine as you want. You'll run | ||
252 | out of interrupts after a few, but you can switch to polled operation | ||
253 | then. At about 256 ports (More than 8 cards), we run out of minor | ||
254 | device numbers. Sorry. I suggest you buy a second computer.... (Or | ||
255 | switch to RIO). | ||
256 | |||
257 | ------------------------------------------------------------------------ | ||
258 | |||
259 | |||
260 | Fixed bugs and restrictions: | ||
261 | - Hangup processing. | ||
262 | -- Done. | ||
263 | |||
264 | - the write path in generic_serial (lockup / oops). | ||
265 | -- Done (Ugly: not the way I want it. Copied from serial.c). | ||
266 | |||
267 | - write buffer isn't flushed at close. | ||
268 | -- Done. I still seem to lose a few chars at close. | ||
269 | Sorry. I think that this is a firmware issue. (-> Specialix) | ||
270 | |||
271 | - drain hardware before changing termios | ||
272 | - Change debug on the fly. | ||
273 | - ISA free irq -1. (no firmware loaded). | ||
274 | - adding c8000 as a probe address. Added warning. | ||
275 | - Add a RAMtest for the RAM on the card.c | ||
276 | - Crash when opening a port "way" of the number of allowed ports. | ||
277 | (for example opening port 60 when there are only 24 ports attached) | ||
278 | - Sometimes the use-count strays a bit. After a few hours of | ||
279 | testing the use count is sometimes "3". If you are not like | ||
280 | me and can remember what you did to get it that way, I'd | ||
281 | appreciate an Email. Possibly fixed. Tell me if anyone still | ||
282 | sees this. | ||
283 | - TAs don't work right if you don't connect all the modem control | ||
284 | signals. SXDCs do. T225 firmware problem -> Specialix. | ||
285 | (Mostly fixed now, I think. Tell me if you encounter this!) | ||
286 | |||
287 | Bugs & restrictions: | ||
288 | |||
289 | - Arbitrary baud rates. Requires firmware update. (-> Specialix) | ||
290 | |||
291 | - Low latency (mostly firmware, -> Specialix) | ||
292 | |||
293 | |||
294 | |||
diff --git a/Documentation/zh_CN/magic-number.txt b/Documentation/zh_CN/magic-number.txt index 2ebe539f5450..dfb72a5c63e9 100644 --- a/Documentation/zh_CN/magic-number.txt +++ b/Documentation/zh_CN/magic-number.txt | |||
@@ -63,8 +63,6 @@ struct tty_ldisc { | |||
63 | PG_MAGIC 'P' pg_{read,write}_hdr include/linux/pg.h | 63 | PG_MAGIC 'P' pg_{read,write}_hdr include/linux/pg.h |
64 | CMAGIC 0x0111 user include/linux/a.out.h | 64 | CMAGIC 0x0111 user include/linux/a.out.h |
65 | MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h | 65 | MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h |
66 | RISCOM8_MAGIC 0x0907 riscom_port drivers/char/riscom8.h | ||
67 | SPECIALIX_MAGIC 0x0907 specialix_port drivers/char/specialix_io8.h | ||
68 | HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c | 66 | HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c |
69 | APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c | 67 | APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c |
70 | CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h | 68 | CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h |
@@ -82,7 +80,6 @@ STRIP_MAGIC 0x5303 strip drivers/net/strip.c | |||
82 | X25_ASY_MAGIC 0x5303 x25_asy drivers/net/x25_asy.h | 80 | X25_ASY_MAGIC 0x5303 x25_asy drivers/net/x25_asy.h |
83 | SIXPACK_MAGIC 0x5304 sixpack drivers/net/hamradio/6pack.h | 81 | SIXPACK_MAGIC 0x5304 sixpack drivers/net/hamradio/6pack.h |
84 | AX25_MAGIC 0x5316 ax_disp drivers/net/mkiss.h | 82 | AX25_MAGIC 0x5316 ax_disp drivers/net/mkiss.h |
85 | ESP_MAGIC 0x53ee esp_struct drivers/char/esp.h | ||
86 | TTY_MAGIC 0x5401 tty_struct include/linux/tty.h | 83 | TTY_MAGIC 0x5401 tty_struct include/linux/tty.h |
87 | MGSL_MAGIC 0x5401 mgsl_info drivers/char/synclink.c | 84 | MGSL_MAGIC 0x5401 mgsl_info drivers/char/synclink.c |
88 | TTY_DRIVER_MAGIC 0x5402 tty_driver include/linux/tty_driver.h | 85 | TTY_DRIVER_MAGIC 0x5402 tty_driver include/linux/tty_driver.h |
@@ -94,13 +91,10 @@ USB_BLUETOOTH_MAGIC 0x6d02 usb_bluetooth drivers/usb/class/bluetty.c | |||
94 | RFCOMM_TTY_MAGIC 0x6d02 net/bluetooth/rfcomm/tty.c | 91 | RFCOMM_TTY_MAGIC 0x6d02 net/bluetooth/rfcomm/tty.c |
95 | USB_SERIAL_PORT_MAGIC 0x7301 usb_serial_port drivers/usb/serial/usb-serial.h | 92 | USB_SERIAL_PORT_MAGIC 0x7301 usb_serial_port drivers/usb/serial/usb-serial.h |
96 | CG_MAGIC 0x00090255 ufs_cylinder_group include/linux/ufs_fs.h | 93 | CG_MAGIC 0x00090255 ufs_cylinder_group include/linux/ufs_fs.h |
97 | A2232_MAGIC 0x000a2232 gs_port drivers/char/ser_a2232.h | ||
98 | RPORT_MAGIC 0x00525001 r_port drivers/char/rocket_int.h | 94 | RPORT_MAGIC 0x00525001 r_port drivers/char/rocket_int.h |
99 | LSEMAGIC 0x05091998 lse drivers/fc4/fc.c | 95 | LSEMAGIC 0x05091998 lse drivers/fc4/fc.c |
100 | GDTIOCTL_MAGIC 0x06030f07 gdth_iowr_str drivers/scsi/gdth_ioctl.h | 96 | GDTIOCTL_MAGIC 0x06030f07 gdth_iowr_str drivers/scsi/gdth_ioctl.h |
101 | RIEBL_MAGIC 0x09051990 drivers/net/atarilance.c | 97 | RIEBL_MAGIC 0x09051990 drivers/net/atarilance.c |
102 | RIO_MAGIC 0x12345678 gs_port drivers/char/rio/rio_linux.c | ||
103 | SX_MAGIC 0x12345678 gs_port drivers/char/sx.h | ||
104 | NBD_REQUEST_MAGIC 0x12560953 nbd_request include/linux/nbd.h | 98 | NBD_REQUEST_MAGIC 0x12560953 nbd_request include/linux/nbd.h |
105 | RED_MAGIC2 0x170fc2a5 (any) mm/slab.c | 99 | RED_MAGIC2 0x170fc2a5 (any) mm/slab.c |
106 | BAYCOM_MAGIC 0x19730510 baycom_state drivers/net/baycom_epp.c | 100 | BAYCOM_MAGIC 0x19730510 baycom_state drivers/net/baycom_epp.c |
@@ -116,7 +110,6 @@ ISDN_ASYNC_MAGIC 0x49344C01 modem_info include/linux/isdn.h | |||
116 | CTC_ASYNC_MAGIC 0x49344C01 ctc_tty_info drivers/s390/net/ctctty.c | 110 | CTC_ASYNC_MAGIC 0x49344C01 ctc_tty_info drivers/s390/net/ctctty.c |
117 | ISDN_NET_MAGIC 0x49344C02 isdn_net_local_s drivers/isdn/i4l/isdn_net_lib.h | 111 | ISDN_NET_MAGIC 0x49344C02 isdn_net_local_s drivers/isdn/i4l/isdn_net_lib.h |
118 | SAVEKMSG_MAGIC2 0x4B4D5347 savekmsg arch/*/amiga/config.c | 112 | SAVEKMSG_MAGIC2 0x4B4D5347 savekmsg arch/*/amiga/config.c |
119 | STLI_BOARDMAGIC 0x4bc6c825 stlibrd include/linux/istallion.h | ||
120 | CS_STATE_MAGIC 0x4c4f4749 cs_state sound/oss/cs46xx.c | 113 | CS_STATE_MAGIC 0x4c4f4749 cs_state sound/oss/cs46xx.c |
121 | SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c | 114 | SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c |
122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c | 115 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c |
@@ -127,10 +120,8 @@ SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | |||
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 120 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h | 121 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |
129 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c | 122 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c |
130 | STL_PORTMAGIC 0x5a7182c9 stlport include/linux/stallion.h | ||
131 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c | 123 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c |
132 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h | 124 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h |
133 | EPCA_MAGIC 0x5c6df104 channel include/linux/epca.h | ||
134 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h | 125 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h |
135 | KV_MAGIC 0x5f4b565f kernel_vars_s arch/mips/include/asm/sn/klkernvars.h | 126 | KV_MAGIC 0x5f4b565f kernel_vars_s arch/mips/include/asm/sn/klkernvars.h |
136 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c | 127 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c |
@@ -142,17 +133,14 @@ SLOT_MAGIC 0x67267322 slot drivers/hotplug/acpiphp.h | |||
142 | LO_MAGIC 0x68797548 nbd_device include/linux/nbd.h | 133 | LO_MAGIC 0x68797548 nbd_device include/linux/nbd.h |
143 | OPROFILE_MAGIC 0x6f70726f super_block drivers/oprofile/oprofilefs.h | 134 | OPROFILE_MAGIC 0x6f70726f super_block drivers/oprofile/oprofilefs.h |
144 | M3_STATE_MAGIC 0x734d724d m3_state sound/oss/maestro3.c | 135 | M3_STATE_MAGIC 0x734d724d m3_state sound/oss/maestro3.c |
145 | STL_PANELMAGIC 0x7ef621a1 stlpanel include/linux/stallion.h | ||
146 | VMALLOC_MAGIC 0x87654320 snd_alloc_track sound/core/memory.c | 136 | VMALLOC_MAGIC 0x87654320 snd_alloc_track sound/core/memory.c |
147 | KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c | 137 | KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c |
148 | PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h | 138 | PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h |
149 | NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h | 139 | NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h |
150 | STL_BOARDMAGIC 0xa2267f52 stlbrd include/linux/stallion.h | ||
151 | ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h | 140 | ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h |
152 | SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h | 141 | SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h |
153 | CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h | 142 | CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h |
154 | DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h | 143 | DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h |
155 | STLI_PORTMAGIC 0xe671c7a1 stliport include/linux/istallion.h | ||
156 | YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c | 144 | YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c |
157 | CCB_MAGIC 0xf2691ad2 ccb drivers/scsi/ncr53c8xx.c | 145 | CCB_MAGIC 0xf2691ad2 ccb drivers/scsi/ncr53c8xx.c |
158 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c | 146 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c |