Hello.
I met a problem I can't solve.

1. My hardware is:
Advantech PCA-6135/L all-in-one CPU Card with i386sx-40 CPU, 16Mb RAM,
HDD Quantum 170Mb, Trident SVGA 8900,
ne2000-compatible ethernet card _OR_ 3c509 card.
Both ethernet cards are ISA and have the same resources:
base i/o = 0x300, irq = 10. There was not any irq or
i/o addresses conflicts with other controllers.

2. I successfully compiled and tested rtlinux-2.2 with 3c509.
(prepatched kernel 2.2.14 from www.fsmlabs.com)
BUT when I change 3c509 to ne2000 ISA ethernet
my rt-kernel hangup during the boot process.
The last lines I saw were:
> Apr 17 04:42:47 rtl kernel: hda: QUANTUM ELS170A, ATA DISK drive
sometimes I see the next line too:
> Apr 17 04:42:47 rtl kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
but then system stands up and does not respond to keyboard clicks
(Ctrl-Alt-Del too...)

( without ne2000 next 2 lines are:
> Apr 17 04:42:47 rtl kernel: hda: QUANTUM ELS170A, 162MB w/32kB Cache, CHS=1011/15/22
> Apr 17 04:42:47 rtl kernel: FDC 0 is a post-1991 82077 )
...

3. When I test the _same_ kernel on Pentium CPU (P133 and Celeron500
were tested) everything works properly with ne2000 ISA ethernet.

4. When I compiled pure linux-2.2.14 kernel result was Ok.
Kernel config was the _same_. Linux 2.2.14 CAN work on my
hardware with ne2000, but rt-linux 2.2 can't...

5. MS-DOS 6.22, FreeBSD 3.4, FreeBSD 4.0 were booted
without any problems on the same hardware.

6. I tried to explore the problem by tracing the boot process.
I found that boot has process reached line 611 in the file
rtlinux-2.2/linux/drivers/block/ide-probe.c (function init_irq())

605>         if (!hwgroup->hwif) {
606>                 hwgroup->hwif = HWIF(hwgroup->drive);
607> #ifdef DEBUG
608>                 printk("%s : Adding missed hwif to hwgroup!!\n", hwif->name);
609> #endif
610>         }
611>         restore_flags(flags);   /* all CPUs; safe now that hwif->hwgroup is set 
up */
612>
613> #if !defined(__mc68000__) && !defined(CONFIG_APUS) && !defined(__sparc__)

then, after enabling interupt handler via restore_flags() call,
process never go next line and handles IRQ 14 all the time...
(function rtl_intercept() in rtlinux-2.2/linux/arch/i386/kernel/irq.c)

How can I solve this problem?
I can use 3c509 but it's not suitable for some reason.
And I'd like to understand: why combiation of
i386sx-40 + ne2000 (ISA) + rtlinux-2.2 does not work?

If somebody can help me I can give more detailed information
about my environment and methods and conditions of my tests.

Thank in advance.

sincerely,
Dmitry Kargapolov        [EMAIL PROTECTED], ICQ 54000305


-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/

Reply via email to