Setting the serial port speed over 115,200bps
If you have motherboard which has VIA VT82C686A or VT82C686B chipset
you can set serial ports in high speed mode with this kernel module.
I use module with external ISDN-TA and haven't had any problems
so far but I cannot guarantee that you won't have buffer overflows if
you use full 230K or 460K speed all the time (FIFO's are still 16550A size).
ISDN with two channels maxes out at 128 Kb which means that it doesn't
really stress serial ports at 230400. Unlike SHSMOD-patches you don't have
to patch serial driver and module takes only 1KB of memory when it's
loaded which should leave enough room for other programs. It should
be also possible to make this work from userspace but accessing
pci devices is so much easier from kernel.
How to use module
Get the package
and compile it using included makefiles.
If you have kernel in some other location than /usr/src/linux edit Makefile
before compiling. You can also install module with "make install". After
you have loaded module in kernel (use modprobe or insmod) you can set serial
ports to use high speed modes with setserial.
Copy Makefile-2.6 on top of Makefile and do make. After loading module set
serial speed with setserial. (NOTE: This gives a warning on depracated
# setserial /dev/ttyS0 spd_cust divisor 0x8002
which sets COM1: speed to 230400. With 0x8001 you should get 460800
but I haven't tested it. If you want to use COM2: use ttyS1 instead of ttyS0.
After this you should set program which you are using to use 38400 bps
speed which is now actually 230K or 460K. For more information check
setserial man page (spd_cust).
You can use serial port work as normal if you do
# setserial /dev/ttyS0 spd_normal
After this you can also remove viahss module with rmmod if you need to. Module doesn't intefere with normal serial port usage so you can leave
it loaded if you don't need that extra 1KB which module uses.
Thanks to Kimmo Rintala for help with divisor settings.
I also like to thank Jeff Garzik for help with VIA datasheets.
Port to 2.5/2.6 by Kingsly John with the help of LWN
0.90 First release
0.91 Fixed Makefile
0.92 Fixed for 2.5/2.6
You can reach me by email: firstname.lastname@example.org