Hi,
We've created a board with OMAP 3530 (3730 in next revision) processor and the SMSC9221 chip. We use WinCE 6.0 (we plan to move to 7.0), and the TI BSP has a driver for it (actually for 9118, but it should be compatible).
Once a while, in very specific circumstances, we lose the Ethernet connectivity, and after about 30 seconds the SMSC chip recovers and continues to work fine. I have several questions related to this:
1. There is a defined value of the GPIO pin for this chipset - LAN9115_RESET_GPIO and it’s being used only in boot loader (EBOOT\main.c). Do we hard reset the SMSC chipset only in boot loader? Later, under OS – only the soft reset is being used? Can the hard reset be also used?
2. Why do you think we have this 30 seconds delay there is it related to the TIMEOUT_VALUE define (lan91c.c)?
3. There is the Smsc9118CheckForHang function in the smsc9118.c file, and it’s accessible from the outside of the driver. Is it being used? Is the SMSC chip reseted after too many packets is lost? This function should be executed every 2 seconds by default, so why the chip recovers after 30 seconds?
4. Is the number 1500 (in the Smsc9118CheckForHang function) number of lost packets or bytes? From the description it looks like this is number of packets. It seems to be a very large number. Why it’s so large? Can we make it lower? Is it possible that we have this 30s delay because we wait for 1500 lost packets?
5. I had problems with RETAILMSG macro – I couldn’t make it to work inside of the smsc driver. It seemed to work, because the OS was running slower, but I couldn’t see any output messages on the serial terminal, even though I enabled the OAL messages in the boot loader menu, and I saw messages from differend peaces of code. Everything seems to be defined – RETAILMSG should be defined as SMSCPrintfW, and should send the strings to the serial port. Do I need to do something special? I’ve even enabled the SMSC_DBG define and set values to g_DebugMode, to activate all the debug messages, but it was still the same – no output, just a delay – so it looks like the strings are processed, but not sent.
Please, let me know.
Thanks a lot!
Zack