Bug in DM9000 Ethernet

Joan Y
Dear all,

I am having a problem with the ethernet DM9000 on Win CE 6.

In fact, i have enabled file sharing on Mini 2440. I downloaded
successfully any file no matter what the size from the pc to the Mini via
the share. However in the opposite direction it only works for small files.
when the file size is bigger than 500 KB the Network fails, and i am not
even able to ping the Mini,

and the one thing that cures it is the Hard Reset.

I am using the BSP that errol has posted, and it should have a fix for the
DM9000. But i am not sure if there is something wrong in the build, and
that the fix is not being applied. Unless that fix does not work as it
should in all situations.

Can anybody plese help.


Joan Y
anybody has found a solution for this ethernet problem?? Please ???

i tried my best without luck...

I hope any body can help ...

Did you try?

I think it helped us (we heave to do more testing).

Joan Y
Dear Simon,

thank you a lot for your reply,

I have already used the fix about changing :"for (;m_nTx < 2;)" by line
"for (;m_nTx < 1;)". in DM9000.cpp,

However i still encounter drops in the ethernet, when trying to download
big files i.e. above 500 KB from the Mini 2440 Webserver, or when using FTP
and also pinging the MINI at the same time,

also if i do from my PC:

ping -l 5000  (ie. IP of Mini 2440)

The ping will be lost, and the ethernet will be down,

and only a hard reset will restore the network connectivity.

Please advise,

Best regards,


Did you compile image yourself with fix or did you download image from web?
No image I download from web did work OK until I didn't make a fix and
compile it myself. 

Now I heave a different problem. After software reset the Ethernet stops
working. I guess the DM9000 stays in some strange state and should be
Initialize. Any ideas?

And make shore there are only unique MAC adresses (only one FriendlyArm) in
one switch.

Joan. I tested the ping with the parameter "-l 5000" and it works
flawlessly. I would follow the SimonG recomendation (Check the .bin being

SimonG. I have noticed the same when a software reset is made.

Joan Y
Dear Simon and Ferite,

Thank you for your help, i appreciate it so much.

as for the .bin i build it myself, and there is only one Mini on the

today i left the board off all day long.

when i started it in the evening, i tried to transfer 15 MB it worked for
2-3 consecutive times in a row!!, (while pinging at the same time the Mini
2440)so i tried to transfer 50 MB to stress it(while Pinging at the same
time), it worked for 4 times.

the 5th time the network went down!

I also have a laptop that is wirelessly connected to the same network,

I try to transfer a file of 15 MB it starts and transfers let's say 12MB
then the network drops, and the ping is lost, and a hard reset is needed.

so it seems like there is a problem in the Transfer speed adjust mechanism
in the driver, or maybe the throughput adjust, i don't know exactly. (I am
a newbie in this field).

Or Maybe there is a hardware problem, might be overheating.

Yesterday i was not able to transfer 500 KB, but the board was on for 24
Hours consecutively....

I made also contact with Dacom (davicom Distibutor in Germany), they have
sent me a driver for the DM9000EP for windows CE, which they say it is the
latest driver.

But unfortunately i do not know exactly how to incorporate it in the Build.

there is some documentation in it, but as i am new to Windows CE, i did not
try to include it in the build, coz it seems there are some parameters that
need to be adjusted as well.

so in case somebody out there is expert in manipulating drivers, i can send
him the new driver for him to try it out.

Any way,

I will keep you posted.



Witch date is written in the driver? The one included in BSP is:
$Id: dm9000.cpp,v 1.2 2004/12/08 08:53:18

If you heave newer could you please post a link to it?

Joan Y
Dear Simon,

the driver i have is dated to 2008, it is version 2.08

if you know how to work on the driver, send me an e-mail:


i will gladly send you the driver,

but please if you adapt it to Mini 2440,

share it back with me,


Dear Joan Y,

 The Flow control register of DM9000 is 0AH.
 It's default value is 0x00.
 Set it to be 0x29.

 This may helpful.



In which the file is located this value? 

Regards Kristjan

Oh My God,did this problem solved?
I am now using a similar boar ,bu the chip is S3C2416 instead of S3C2440.
this problem keeps occuring.
As the software reset,I use a gpio to control nREST instead of software
reset,so this can both reset s3c2416 and dm9000.

Rahul Patil
Driver 'sd' needs updating - please use bus_type methods
dm9000 Ethernet Driver, V1.31
Now use the default MAC address: 10:23:45:67:89:ab
eth0 (dm9000): not using net_device_ops yet
eth0: dm9000e at c8810000,c8814004 IRQ 51 MAC: 10:23:45:67:89:ab (EmbedSky)
S3C24XX NAND Driver, (c) 2004 Simtec Electronics

this is log msg. ethernet driver  has problem approximately every 2days
link down after hard rest problem has been resolved.

thank you 
Rahul Patil