Package: linux-image-2.6.15-1-686 Version: 2.6.15-8 Unlike kernel-image-2.6.8, this kernel does not leave enough IRQs available for ISA boards. The test machine has hardware configured as a 3-port Ethernet router and firewall. It works as intended under a stock Sarge distribution with a 2.6.8 kernel. Sarge has successfully supported a 4-port router, with two PCI boards, and two ISA boards, either both PNP or one PNP and one jumper-configured. Under Etch, installed over the Internet from ftp.us.debian.org on 4/10/2006 using a netboot CD, it was not possible to configure all three Ethernet boards. One PCI and one ISA-PNP board were successfully configured and pinged, but the second ISA-PNP board was not able to obtain an IRQ, because too many of the IRQs which are normally set aside for optional boards are pre-allocated by other kernel functions and not shared.
Hardware platform: HP Vectra VL, with Pentium 2, 128 MB RAM, 80 GB EIDE disk at /dev/hda (primary master), CD-ROM (secondary master), floppy disk, two on-board serial ports, on-board parallel port, on-board sound, on-board VGA, PS2 keyboard and mouse. Ethernet boards: 3C905B 10/100 UTP (3c59x driver) SMC Ultra BNC, AUI, UTP (smc-ultra driver) 3C509 Combo BNC, AUI, UTP (3c509 driver) The 3C905B is plugged into a UTP hub, and gets DHCP service from 192.168.67.1. It was configured during installation by debian-installer netcfg. Depending on what's being tested, either the SMC or the 3C509 is plugged into a coax metwork with static IP addresses. 192.168.136.43 is available for ping tests. The test begins with the PCI board starting up at boot time. ulysses:/proc# cat interrupts CPU0 0: 274546 XT-PIC timer 1: 590 XT-PIC i8042 2: 0 XT-PIC cascade 7: 1 XT-PIC parport0 8: 4 XT-PIC rtc 9: 0 XT-PIC acpi 10: 6926 XT-PIC cs46xx, eth0 11: 0 XT-PIC uhci_hcd:usb1 12: 3894 XT-PIC i8042 14: 9863 XT-PIC ide0 15: 63 XT-PIC ide1 NMI: 0 LOC: 0 ERR: 0 MIS: 0 ulysses:/proc# cat ioports 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-006f : keyboard 0070-0077 : rtc 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0213-0213 : ISAPnP 02f8-02ff : serial 0376-0376 : ide1 0378-037a : parport0 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial 0778-077a : parport0 0a79-0a79 : isapnp write 0cf8-0cff : PCI conf1 1000-100f : 0000:00:04.1 1000-1007 : ide0 1008-100f : ide1 1020-103f : 0000:00:04.2 1020-103f : uhci_hcd 1040-104f : 0000:00:04.3 1040-104f : motherboard 1040-1047 : piix4_smbus 1080-10ff : 0000:00:10.0 8000-803f : 0000:00:04.3 8000-803f : motherboard 8000-8003 : PM1a_EVT_BLK 8004-8005 : PM1a_CNT_BLK 8008-800b : PM_TMR 800c-800f : GPE0_BLK 8010-8015 : ACPI CPU throttle Now we bring up the first ISA board: ulysses:/proc# modprobe smc-ultra ulysses:/proc# ifconfig eth1 192.168.71.1 ulysses:/proc# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:04:01:74:18 inet addr:192.168.67.235 Bcast:192.168.67.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4435 errors:0 dropped:0 overruns:0 frame:0 TX packets:2665 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6542639 (6.2 MiB) TX bytes:191315 (186.8 KiB) Interrupt:10 Base address:0x6000 eth1 Link encap:Ethernet HWaddr 00:00:C0:9D:91:F4 inet addr:192.168.71.1 Bcast:192.168.71.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:5 Base address:0x250 Memory:c0000-c2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) ulysses:/proc# cat interrupts CPU0 0: 612095 XT-PIC timer 1: 1193 XT-PIC i8042 2: 0 XT-PIC cascade 5: 0 XT-PIC eth1 7: 1 XT-PIC parport0 8: 4 XT-PIC rtc 9: 0 XT-PIC acpi 10: 7075 XT-PIC cs46xx, eth0 11: 0 XT-PIC uhci_hcd:usb1 12: 8426 XT-PIC i8042 14: 11091 XT-PIC ide0 15: 63 XT-PIC ide1 NMI: 0 LOC: 0 ERR: 0 MIS: 0 ulysses:/proc# cat ioports 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-006f : keyboard 0070-0077 : rtc 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0213-0213 : ISAPnP 0240-025f : smc-ultra 02f8-02ff : serial 0376-0376 : ide1 0378-037a : parport0 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial 0778-077a : parport0 0a79-0a79 : isapnp write 0cf8-0cff : PCI conf1 1000-100f : 0000:00:04.1 1000-1007 : ide0 1008-100f : ide1 1020-103f : 0000:00:04.2 1020-103f : uhci_hcd 1040-104f : 0000:00:04.3 1040-104f : motherboard 1040-1047 : piix4_smbus 1080-10ff : 0000:00:10.0 8000-803f : 0000:00:04.3 8000-803f : motherboard 8000-8003 : PM1a_EVT_BLK 8004-8005 : PM1a_CNT_BLK 8008-800b : PM_TMR 800c-800f : GPE0_BLK 8010-8015 : ACPI CPU throttle As we see, the board got an IRQ assignment ulysses:/proc# modprobe 3c509 xcvr=3 ulysses:/proc# ifconfig eth2 192.168.136.55 SIOCSIFFLAGS: Device or resource busy But this failed. The 3c509 driver attempted to assign an IRQ, but was blocked because other functions were already assigned to all IRQs, and refused to share. /proc/interrupts was unchanged. Similarly, the output of ifconfig was unchanged. If I install the 3c509 driver first, it gets IRQ 5, and when eth1 comes up, I can ping 192.168.136.43 successfully. When I attempt to install the smc-ultra module after that, I get a different error message: ulysses:/proc# modprobe smc-ultra FATAL: Error inserting smc-ultra <snip full pathname>: No such device or address Under kernel 2.6.8, the 3C905B gets auto-assigned to IRQ 9, shared with two other functions (the sound card and uhci). acpi doesn't reserve an IRQ at all. So 5, 10, and 11 are all free for expansion boards to use. PNP assigns the SMC board to IRQ 5 and the 3C509 to IRQ 10. (I haven't tested this with two SMCs or two 3C509s.) Do you need similar output from bringing up all three boards on Sarge? So unless an IRQ can be freed, or the kernel can be induced to share one of the pre-allocated IRQs with an Ethernet board, it doesn't appear to be possible to accomplish the objective, which is to use the latest kernel on a 3-port router. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]