Linux kernel 2.4.19 failure to access a serial port
Summary: In an i586 system with two serial ports and a modem, Linux fails to access the modem
Slight expansion: A system with two serial ports on ttyS0 and ttyS1 and a hardware modem on ttyS2 was not serviced properly in kernel 2.4.19 and some earlier ones. The modem at ttyS2 was fairly well ignored. The interrupt requests used were ttyS0:irq4 ttyS1:irq3 ttyS2:irq10
Temporary fix:
In drivers/char/serial.c at the directive "#ifdef CONFIG_PCI"
the assumption is made that interrupt requests are shared and there are more than four serial ports. That is not necessarily true, and the directives defeat the options set in configuration.
The solution here was to comment out #define CONFIG_SERIAL_SHARE_IRQ
and CONFIG_SERIAL_MANY_PORTS and recompile.
#ifdef CONFIG_PCI
#define ENABLE_SERIAL_PCI
/*** Commented out to allow unshared IRQ's on ttyS0-ttyS3 #ifndef CONFIG_SERIAL_SHARE_IRQ
#define CONFIG_SERIAL_SHARE_IRQ
#endif
#ifndef CONFIG_SERIAL_MANY_PORTS
#define CONFIG_SERIAL_MANY_PORTS
#endif
***/
#endif
It seems a more sophisticated judgement needs to be made, and
perhaps simply following the directions of the configurer would be advisable, in that these two items are made specifically available in configuration, and should not be silently bypassed.
Note: I have been informed the mailer here does not break lines as shown on the screen. I hope this message turned out better. It is purposely reposted so the viewer doesn't have to deal with the unbroken line version
__________________________________________________________________
Your favorite stores, helpful shopping tools and great gift ideas. Experience the convenience of buying online with Shop@Netscape! http://shopnow.netscape.com/
Get your own FREE, personal Netscape Mail account today at http://webmail.netscape.com/
From: <[email protected]>
Quoted 14 lines
Slight expansion: A system with two serial ports on ttyS0 and ttyS1 and a hardware modem on ttyS2 was not serviced properly in kernel 2.4.19 and some earlier ones. The modem at ttyS2 was fairly well ignored. The interrupt requests used were ttyS0:irq4 ttyS1:irq3 ttyS2:irq10
Temporary fix:
Indrivers/char/serial.cat the directive "#ifdefCONFIG_PCI"
the assumption is made that interrupt requests are shared and there are more than four serial ports. That is not necessarily true, and the directives defeat the options set in configuration.
The solution here was to comment out #defineCONFIG_SERIAL_SHARE_IRQ
andCONFIG_SERIAL_MANY_PORTSand recompile.
Quoted 11 lines
#ifdef
CONFIG_PCI
#defineENABLE_SERIAL_PCI
/*** Commented out to allow unshared IRQ's on ttyS0-ttyS3 #ifndefCONFIG_SERIAL_SHARE_IRQ
#defineCONFIG_SERIAL_SHARE_IRQ
#endif
#ifndefCONFIG_SERIAL_MANY_PORTS
#defineCONFIG_SERIAL_MANY_PORTS
#endif
***/
#endif
This fix breaks the driver in a fundamental way. SHARE_IRQ and MANY_PORTS are turned on if CONFIG_PCI is on because a) pci drivers *must* share interrrupts and b) generally serial ports that are behind a pci bus are multiport boards.
The effect of MANY_PORTS is merely to increase the size of the static array that holds the serial port state. Whether or not it is on should not have affected your problem. (I believe the smallest size of the array is 4, for ttyS0-3.)
SHARE_IRQ should also not have affected your problem, since your modem is configured at irq 10, and you haven't mentioned that anything else is also using irq 10. If turning off this option "fixes" your problem then that should indicate that your setup isn't what you think it is; either the modem isn't really at irq 10 (unclear from your previous post, and my lack of isapnp knowledge) and/or something else is also using the same irq your modem is on.
Please see my previous email, and try some of my suggestions. The one about reserving the irq in bios for isa-only use is critical.
..Stu
--
We make multiport serial boards.
<http://www.connecttech.com>
(800) 426-8979