smcinit - initialize the SMSC IrDA controler on various laptops
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
My sole work was to put these utilities as one package, easy to install
Show program version and exit
Show a little help on options and exit
Increase the details about actions performed
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
Set the SIR (serial infrared) I/O port address to IO. Default value
Set the FIR (fast infrared) I/O port address to IO. Default value
Set the FIR (fast infrared) IRQ line to IRQ. Default value is 3.
Set the FIR (fast infrared) DMA channel to DMA. Default value is 3.
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
for Toshiba Satellite 1800
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
irattach irda0 -s
Distribution specific configuration:
Edit the /etc/sysconfig/irda and set IRDA_PORT=irda0
Edit the /etc/sysconfig/irda and set DEVICE=irda0
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 \
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.
Configuration file for SMCINIT startup script. It’s shell script.
This document is made by Claudiu Costin <email@example.com> 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
http://irda.sourceforge.net/smcinit/ the SMCINIT package home page.