Solution:
1. Answer: If you decide to use interrupts for one reason or another, your system must have an available interrupt for every SX card to be installed. On the ISA bus, you can’t share interrupts. On the PCI bus, the motherboard BIOS will assign an interrupt and can also share interrupts. Keep in mind that SX cards only allow a few interrupts, typically IRQ 9, 11, 12, 15. The SX driver will resort to “timer-based polling” when it can’t use the interrupt for one reason or another. The following command may help you to determine which interrupts are available on your system:
cat /proc/interrupts
If there are any available interrupts available on your system, refer to Table 1 below to find the values for the “sx_poll” and the “sx-irqmask” options.
interupt options
9 sx_poll=0 sx_irqmask=0x0200
11 sx_poll=0 sx_irqmask=0x0800
12 sx_poll=0 sx_irqmask=0x1000
15 sx_poll=0 sx_irqmask=0x8000
Timer based polling (Non-interrupt mode) sx_poll=1 sx_irqmask=0
For example, if interrupt 11 was available on your system, you would enter the following options to tell the SX driver that IRQ 11 is available.
sx_poll=0 sx_irqmask=0x0800
If you were installing 2 or more SX “ISA” cards and wanted to use interrupts, first make sure that the “memory address” dip switch settings on the SX cards are set differently and set apart by a 64K boundary from one another. SX cards have to tell the bus controller that they like their timing based on a 64K window which the memory address falls into. Refer to the SX Users Guide for dip switch settings. Next, add the sx_irqmask values of the IRQs to be assigned. For example, add the hexadecimal values for IRQ 9 and 11 from Table 1:
0x0200 + 0x0800 = 0x0A00.
Therefore, the following options would tell the driver that IRQ 9 and 11 are available:
sx_poll=0 sx_irqmask=0x0A00
2. Answer: Use the “lsmod” command to determine which modules the system has loaded. The sx module will appear as “sx” followed by memory usage and the number of login processes running.
3. Answer: Depending on how many SX cards (boards) are installed and ports (channels) configured, the following message appears after the sx_firmware is loaded:
“initialized x channels on x boards”
4. Answer: “Timer-based polling” is recommended and is especially useful when installing multiple SX cards in the same system and/or when there are not enough available interrupts on the system. There is no known performance degradation.
5. Answer: PCI cards are listed in “/proc/pci”.
6. Answer: The SX driver will report “found an SX card at …“ in the kernel log located in /var/log/dmesg”. However, nothing will be reported if there is a resource conflict.
7. Answer: Probably haven’t installed the Kernel sources. Install the kernel sources either from the CDROM package as follows: rpm –ivh /cdrom/RedHat/RPMS/kernel-source*.rpm or obtain the sources from the RedHat FTP site.
8. Answer: Try manually running “/sbin/depmod –a”. If it resolves the problem, add it to the startup script in “/etc/rc.d/rc.sysinit” so it loads automatically.
9. Answer: Probably need to configure logins in /etc/inittab, or need to include run level 5 for all logins. Furthermore, if you assigned interrupts to the SX card(s), the cause may be a resource conflict. Try using “timer-based polling” (sx_poll=1 sx_irqmask=0).
10. Answer: Ensure that you enabled support for the SX card in the kernel configuration (see Step 7)
and compiled the kernel.