smcinit - Man Page

initialize the SMSC IrDA controler on various laptops

Synopsis

smcinit [Options]

Description

Toshiba Satellite 1800, Satellite 5100, Tecra 9100 laptops  and may be many other models are provided with a SMCS LPC47N227 SuperIO chip which is IrDA SIR/FIR capable.  The IrDA subsystem of the SuperIO chip is supported by the smc-ircc Linux kernel module.  Unfortunately the BIOS neither configurates the SuperIO chip IrDA subsystem (SIR port, FIR port,  dma, irq, IrDA mode, power) nor sets the PCI-ISA bridge to decode any usable port. Linux kernel is thus prevented to detect the second UART making impossible to use it  in SIR mode. For the same reason, the FIR mode smc-ircc is able to detect the SuperIO  chip but, once found the IrDA subsystem unconfigured, fails to install.

While this problem will be fixed in Linux 2.6.x kernel series, the 2.4.x users are frustrated. Daniele Peri, Rob Miller and Paul Hampson mananged to build little utilities that initialize the LPC47N227 SuperIO allowing smc-ircc IrDA kernel driver  to detect and use the SMSC chip.

My sole work was to put these utilities as one package, easy to install and use.

Options

-V,  --version

Show program version and exit

-h,  --help

Show a little help on options and exit

-v,  --verbose

Increase the details about actions performed

-t,  --tty=device

If specified, the serial device will be unbound from the kernel stock serial driver. It is there to replace an external call to setserial(1) to unset the UART of the device. There is no default value.

-s,  --sirio=IO

Set the SIR (serial infrared) I/O port address to IO. Default value is 0x3f8.

-f,  --firio=IO

Set the FIR (fast infrared) I/O port address to IO. Default value is 0x130.

-i,  --firirq=IRQ

Set the FIR (fast infrared) IRQ line to IRQ. Default value is 3.

-d,  --firdma=DMA

Set the FIR (fast infrared) DMA channel to DMA. Default value is 3.

Configuration

When system startup a script is run from /etc/init.d and which run appropriate SMC intialization utility. This is done before PCMCIA startup because on Tecra 9100 and other models the orinoco_cs wireless driver will block the I/O region  used 47N227 SuperIO.

The only configuration file is /etc/sysconfig/smcinit and the variable SMCCONFIG can be set to "1800" or "5100". By default "5100" value is used.

1800

for Toshiba Satellite 1800

5100

for Toshiba Satellite 5100 and Toshiba Tecra 9100

The next step is to configure the kernel IrDA stack package to attach the smc-ircc driver. This is Linux distribution specific. The main thing is that the device should be set to "irda0". Run the following command:

irattach irda0 -s

Distribution specific configuration:

SuSE

Edit the /etc/sysconfig/irda and set IRDA_PORT=irda0

RedHat

Edit the /etc/sysconfig/irda and set DEVICE=irda0

Notes

The smc-ircc driver is preloaded in kernel. I tested the package only on Tecra 9100 without any additional step, but for Toshiba Satellite 1800 Daniele Peri  sugest to put the following line in your /etc/modules.conf (on one line):

options smc-ircc ircc_dma=3 ircc_irq=7 ircc_cfg=0x2e \
        ircc_sir=0x2e8 ircc_fir=0x2f8

After that run the command:

prompt# depmod -a

If the laptop enter suspend mode, then resume operation the smc-ircc driver will  stop working. You need to stop IrDA service, then SMCINIT, start SMCINIT, and finally start IrDA service. Simply put, the kernel driver must be unloaded, then  reloaded.

Files

/etc/sysconfig/smcinit

Configuration file for SMCINIT startup script. It's shell script.

Author

This document is made by Claudiu Costin <claudiuc@kde.org> The utilities authors are Daniele Peri, Rob Miller and Paul Hampson. Thomas Pinz made improvements to tosh-smcinit (the former tosh5100-smcinit) to expand the number of Toshiba Satellite models supported.

See Also

smcinit(7),
tosh1800-smcinit(8),
irattach(1),
irdadump(1),
http://irda.sourceforge.net/smcinit/ the SMCINIT package home page.

Info

April 2004 0.4 Linux IrDA