Re: Ethernet network connection dead after reset til cable Unplug



'Debug' Ethernet is a completely different driver. KITL (Kernel independant transport layer) often uses Ethernet as its transport layer - grep for 'OALKitlInit' in your tree to find the code. There is lots of info in the PB docs about this.



MII - Media Independent Interface, this is the interface that talks to the PHY

The rest of the acronyms are a mystery to me too.

I have to say that the idea of having a polled Ethernet stack is most likely a recipe for a bad day out as you will be introducing inherent latencies into the communications.

'codelet' is not a MS thing.

Put some code into the CheckForHangHandler to dump the PHY registers and Ethernet registers to see if you can fathom why it is stuck in the failure case.

Geoff
--



Ted Toal at Sierra Video Systems wrote:
I didn't set this project up and don't know if KITL is being used at same time as NDIS in same NIC. We do connect to the board using the debugger over ethernet using this NIC. Embedded VC++ debugger is set for TCP/IP transport, not KITL transport, does that answer the Q? We have problems connecting both in debug and standalone mode.

Well, if eboot sends the arps, then maybe the problem is happening much earlier than I thought. eboot is the boot loader, right? I thought our boot loader didn't even have ethernet functionality at all. Looking at the project now, if I'm looking at the right stuff, I'd say the boot loader is not doing anything with ethernet.

The phy seems to init twice after a reset, once immediately because its reset line is asserted, and a second time as wince starts coming up. That seems like it is probably the expected thing, a software reset when the driver loads.

HandleInterruptHandler is set to NULL. NdisMRegisterInterrupt is called, but inside a #ifdef NDIS_USER_SUPERIST, and I can't find any place that defines that symbol. I also find no calls to NdisMSetPeriodicTimer. The following function exists, which appears to be some kind of ethernet polling function:

static void EthPoll(NpeInfo *npeInfo)
{
ixNpeMhMessagesReceive(npeInfo->npeId);
qmgrDispatchFunc(IX_QMGR_QUELOW_GROUP);
}

It is called via pfnNEDbgTxFrameDone.

Here is a question for you. I see lots of references to "debug" ethernet. Is there a completely different ethernet driver for use during debugging?? Also, what do "Acc", "Mii", "DB", and "Aal5" mean in ethernet file filenames?

I have found some code that is doing some ethernet initialization and phy resetting and other related stuff, in a place that is called a "codelet". I'm not sure what a codelet is, whether that is a Microsoft term or something dreamed up by the writer of this BSP. I suspect it might be some sample app code. I am wondering if the ethernet interface may not be fully initialized until an app runs and does something. A LinkUpCheck function loops up to two seconds checking link active, waiting for it to be active. A phy init function there makes three calls to it. The init function is doing things like this prior to initing the phy:

if (ixFeatureCtrlDeviceRead() == IX_FEATURE_CTRL_DEVICE_TYPE_IXP46X)

It looks to me like code that ought to be deep down in the driver, but instead appears to be at an app level.

Thanks for your help. I have been getting nowhere on this quite slowly. Very frustrating. I have taken over a project that someone else set up and then quit. They didn't set it up as I would have done. The BSP is an Intel BSP for an Intel development board; I would have cloned the BSP and modified it for our CPU board to begin with, but that was not done. We appear to have a lot of code in place that will never be used, and I'm concerned that that might be part of the problem -- e.g. other ethernet adapter drivers loading when they shouldn't.

.



Relevant Pages

  • Re: Degradation of TCP connection
    ... Gigabit ethernet. ... D card's data buffer can only hold about 64K samples worth of data ... link you posted is for an older version of VxWorks that used a BSD- ... but a bug in the ethernet driver. ...
    (comp.os.vxworks)
  • Re: [PATCH][5/5] RapidIO support: net driver over messaging
    ... It's nothing like Ethernet, the only relation is that an Ethernet network ... It gives easy access to RIO messaging from userspace ... ARP works by the driver emulating a broadcast over RIO by sending the ...
    (Linux-Kernel)
  • Re: Degradation of TCP connection
    ... Gigabit ethernet. ... D card's data buffer can only hold about 64K samples worth of data ... link you posted is for an older version of VxWorks that used a BSD- ... but a bug in the ethernet driver. ...
    (comp.os.vxworks)
  • Re: Making Ethernet work on DB1100 (MIPS) ie. "Product Ethernet"
    ... Ethernet chip it uses, I don't have a copy of your project handy, and I ... Sufficient OS support for Ethernet. ... if both SYSGEN_CONNMC and SYSGEN_ETHERNET are set and a driver is ... in the BSP to find out the exact filter. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Making Ethernet work on DB1100 (MIPS) ie. "Product Ethernet"
    ... I don't have a copy of the DB1100 BSP handy, I don't know what kind of Ethernet chip it uses, I don't have a copy of your project handy, and I don't have much to go on, so I can only make guesses and suggest how things should work. ... Looking at CE 6.0, if both SYSGEN_CONNMC and SYSGEN_ETHERNET are set and a driver is loaded, you'll get a system tray icon. ... You would have to look at the DIRS file or the SOURCES file in the BSP to find out the exact filter. ...
    (microsoft.public.windowsce.platbuilder)