E1000 stops receiving packets after some time

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
online
Posts: 16
Joined: Fri Jan 20, 2012 8:26 am
Location: Obrnice, Czech Republic
Contact:

E1000 stops receiving packets after some time

Post by online »

Hello all,

I am experimenting with the E1000 with the help of the info found here on OsDev and in the Intel documentation. I tried to write a simple driver able to receive and transmit frames. It seems to work, but the receiving of packets stops working after some time.
I tried to turn on the E1000 logging in Bochs to see what's happening and everytime the story is the same - after some time the message "Device not ready to receive data" is being displayed.
The code itself and the log from Bochs is attached.

Notice: the behaviour in VirtualBox is the same (with the exception that I don't know the exact reason, but I assume it's the same).

Any idea where I am wrong ?

Thanks for help,
Vladimir
Attachments
e1000.txt
Logfile from Bochs
(14.83 KiB) Downloaded 107 times
I825XX.TXT
driver code
(16.42 KiB) Downloaded 74 times
User avatar
online
Posts: 16
Joined: Fri Jan 20, 2012 8:26 am
Location: Obrnice, Czech Republic
Contact:

Re: E1000 stops receiving packets after some time

Post by online »

Solved. The RDLEN value was wrong. In case I have only 1 descriptor available, the value has to be 16 :)
Post Reply