Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Oct 1995 17:49:18 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@GndRsh.aac.dev.com>
To:        gary@palmer.demon.co.uk (Gary Palmer)
Cc:        archie@tribe.com, freebsd-questions@freebsd.org
Subject:   Re: ix0: device timeout
Message-ID:  <199510050049.RAA04644@GndRsh.aac.dev.com>
In-Reply-To: <3289.812829589@palmer.demon.co.uk> from "Gary Palmer" at Oct 4, 95 06:59:49 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> Archie Cobbs stands accused of writing in message ID
> <199510041723.KAA22177@bubba.tribe.com>:
> >I need help diagnosing the following symptom:
> 
> >  Oct  4 08:47:32 foobar /kernel: ix0: device timeout
> >  Oct  4 09:03:01 foobar /kernel: ix0: device timeout
> >  Oct  4 09:13:02 foobar last message repeated 188 times
> >  Oct  4 09:23:03 foobar last message repeated 168 times
> >  Oct  4 09:33:04 foobar last message repeated 209 times
> 
> >Here is the bootup message:
> 
> >  ix0 at 0x300-0x30f irq 10 maddr 0xd0000 msize 32768 on isa
> >  ix0: address 00:aa:00:4c:97:df
> 
> Traditionally, timeout messages mean that the IRQ of the ethernet card
> is wrong.

Can't happen with if_ix, see below.  Is what can happen is that
the irq is being stomped on by someone else though.  Or the board
is not soft set for the correct connector.

> I seem to remember that the ix driver doesn't auto-probe the
> IRQ number, so you will need to either recompile your kernel with the
> right IRQ or set it using userconfig (boot -c).

The if_ix.c driver can fully read the softset IRQ value and reports
any descrepancy between it and what the kernel config value is:
	/*
         * Get the encoded interrupt number from the EEPROM, check it
         * against the passed in IRQ.  Issue a warning if they do not
         * match.  Always use the passed in IRQ, not the one in the EEPROM.
         */     
        irq = ixeeprom_read(unit, eeprom_config1);
        irq = (irq & IRQ) >> IRQ_SHIFT;
        sc->irq_encoded = irq;
        irq = irq_translate[irq]; 
        if (irq != dvp->id_irq) {
                printf("Warning board is configured for IRQ %d\n", irq);
        }
        

> Rod is the IX driver expert, he's CC'd on this reply as I think he's
> not on the questions list...

I am not any questions, infact the only list (that has any activity) that
I am on is the commit list.

-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Compancomputers for FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510050049.RAA04644>