Re: Windows CE 6.0 IXP425 ethernet driver problems by K
K
Fri May 16 11:49:23 PDT 2008
As far as I know, it seems the CSR library release come with Windows CE BSP
dose not handle the simultaneously Ethernet access well.
This issue could be happened when using both NPE for Ethernet access.
The issue has been workaround by adding a SpinLock around
ixEthAccPortTxFrameSubmit function in
SRC\DRIVERS\NET\IXP4xxEthNpe\IXP4xxEthNpe_send.c.
But take a look at the SRC\DRIVERS\NET\IXP4xxEthNpe\sources @ about line 68
which define the TX_SPINLOCK C macro if and only if IMGNOTALLKMODE is *not*
defined (ALL Kernel Mode); before CE 6, it is possible to enabling this
feature but in CE 6, there is no more all Kernel Mode (in fact, the NDIS
miniport driver is loaded into kernel space in CE6) so that SPINLOCK is
never being define in this case.
So you may fix it by moving the "CDEFINES=$(CDEFINES) -DNO_TX_TRANSLATION"
line out of the !IF !ENDIF scope or you may remove the code from line 57 to
61 and having the SOURCES code like this
CDEFINES=$(CDEFINES) -DNO_TX_TRANSLATION
# currently shall enable the CHECK_BUFFER_COUNT
# or the NPE will hang while too many buffer in one packet ( > 3)
CDEFINES=$(CDEFINES) -DCHECK_BUFFER_COUNT
CDEFINES=$(CDEFINES) -DTX_SPINLOCK
# CDEFINES=$(CDEFINES) -DFORCE_TX_COPY
!if "$(BSP_NDIS_STATIC_TX_POOL)" == "1"
CDEFINES=$(CDEFINES) -DNEED_DRAIN_BUFFER
!endif
Either way should enable the TX_SPIN LOCK and solve you issue and the later
way might have some advantage on network performance. (It was optimized for
IP Routing scenario)
<adam.astrom@gmail.com> wrote in message
news:91c918cb-0377-4665-9303-b356ddc17a39@l64g2000hse.googlegroups.com...
> Hi!
>
> We're using the OSDN_RICHFIELD BSP for IXP4xx under WinCE 6.0.
> We're having problems with ethernet deadlocks when running a CF3.5
> application which
> communicates over ethernet. Sometimes the application can run for
> several days without any
> problems and sometimes the ehternet interface becomes unavaliable
> after less than a day.
> When the ethernet interface has dealocked the other ethernet interface
> still works properly.
> If you try to disable the deadlocked interface the entire OS hangs.
>
> Any ideas?
>
> Is there any other ethernet driver avaliable for IXP4xx running
> WinCE6.0 than the driver from the OSDN_RICHFIELD BSP?
>
> Is there no Windows CE support from Intel for the IXP4xx platform?
>
> Regards,
> Adam
>