[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Atari TT



Geert,

> >> The hydra and zorro8390 driver should handle that case fine, as interrupts are
> >> shared on Amiga.
> >
> > But these will only generate interrupts if the card has something to send,
> > or receive has been enabled. The timer polling seems to be the problem here.
> 
> The point of IRQ sharing is that multiple devices use the same interrupt line.
> So it's about _another_ device generating the interrupt.

You're right of course. 

> Both zorro8390 and hydra use IRQ_AMIGA_PORTS. As does Gayle IDE.
> Hence if the IDE hardware on A4000 triggers and interrupt, the
> interrupt handler of
> zorro8390 and hydra will be called as well. Since I'm not aware of any issues
> with zorro8390 and hydra in A4000, I assume zorro8390 and hydra handle this,
> while ne doesn't.

Turns out ne does - atari_ethernec did't. I could boot a kernel with ne
builtin, got the same message as always but this time it didn't hang:

NE*000 ethercard probe at 0x300:
ne ne (unregistered net_device): interrupt from stopped card
00:00:e8:5d:58:cd
eth0: RTL8019 found at 0x300, using IRQ 64.
 sda: AHDI sda1 sda2 sda3 XGM< sda4 sda5 >

That's good enough for me. 

> 
> >> > Geert: is there some way for kernel network drivers to figure out whether the
> >> > network subsystem has been initialized, and hold off interrupt processing
> >> > before that time? I'm using 'if (netif_running(dev))' in atari_ethernec but
> >> > that does not appear to prevent the lockup.
> >>
> >> Doesn't the driver know when it's configured?
> >
> > It does - it will spit out 'interrupt from stopped card' in that case.
> > That's the last message I see from the kernel before it locks up (haven't
> > tried in a while, at least that's what happened a year or two ago). The same
> > still happens when loading the driver as a module - a single message of the
> > kind, nothing more (but the kernel keeps running).
> >
> > I would have thought netif_running(dev) returns false before the device has
> > been started, but that's wrong, apparently.
> 
> How does zorro8390 and hydra handle it? They use __ei_interrupt, while
> ne uses eip_interrupt, but the latter just calls the former?

I'll have to check that - as I said, it seems to have gone away with the
current ne driver. 

Baffled,

	Michael


Reply to: