This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: PCI Ethernet card (DHCP issue)
- From: Andrew Lunn <andrew at lunn dot ch>
- To: Michael Anburaj <embeddedeng at hotmail dot com>
- Cc: Eric dot Doenges at DynaPel dot com, andrew at lunn dot ch,ecos-discuss at sources dot redhat dot com
- Date: Wed, 17 Sep 2003 12:22:22 +0200
- Subject: Re: [ECOS] PCI Ethernet card (DHCP issue)
- References: <Law15-F81z5ndSu9Zsl000183e8@hotmail.com>
On Wed, Sep 17, 2003 at 05:52:08AM +0000, Michael Anburaj wrote:
> Hi,
>
> Thanks to Andrew & Eric.
>
> The problem was with the atlas pci definitions.
>
> HAL_PCI_TRANSLATE_INTERRUPT() macro of plf_io.h was not complete. I fixed
> it & the eth interface works fine now. I will send the patch for it soon.
>
>
> Questions:
> 1. The ethereal debug info showed the following:
> From MIPS board: DHCP discover
> From MIPS board: DHCP discover
> From MIPS board: DHCP discover
> From MIPS board: DHCP discover
> From RH9 host: DHCP Offer
> From RH9 host: DHCP Offer
> From RH9 host: DHCP Offer
> From RH9 host: DHCP Offer
>
>
> This got me confused. It looked like the host was not responding for some
> reason. But, actually the MIPS board was dropping packets, because of the
> PCI INT vector setting. The above ethereal info does not make sense to me.
It does seem wrong. Are you running Ethereal on the RH9 server or some
other machine? I've know M$ boxes get packets out of order when used
with tcpdump.
>
> I feel it must have been like this,
>
> From MIPS board: DHCP discover
> From RH9 host: DHCP Offer <dropped by MIPS board due to INT vector
> issue>
> From MIPS board: DHCP discover
> From RH9 host: DHCP Offer <dropped by MIPS board due to INT vector
> issue>
> From MIPS board: DHCP discover
> From RH9 host: DHCP Offer <dropped by MIPS board due to INT vector
> issue>
> From MIPS board: DHCP discover
> From RH9 host: DHCP Offer <dropped by MIPS board due to INT vector
> issue>
Actually, it might not be that simple. Quite often when the ethernet
driver is requested to send something it also checks the receive queue
and processes anything thats waiting. So you can still sometimes
receive when interrupts are broken. If that is happening, the dhcp
client probably drops the received packets because they are too late.
> 2. The PCI interrupts seems to be mapped in the following manner <My
> assumption>:
>
> PCI device number Interrupt controller PIN
> 0,4,8... INTC
> 1,5,9... INTD
> 2,6,10... INTA
> 3,7,11... INTB
>
> Is this right? Let me know how to know this & is there any material
> regarding this?
I beleave there is a defacto standard, but i've known hardware get it
wrong. You need to look at the documentation for your specific board.
Andrew
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss