Hi All,
I am testing my e1000 driver for 82540em model on a new os. When I wrote
the tail of the tx_ring to the transmission descriptor tail TDT(3818h), the
NIC card should start to transmit packets between TDH(3810h) and TDT. The
situation I have is as follows,
1. When I wrote 1 to TDT (TDH is 0), the NIC works just fine by sending a
packet stored in descriptor 0 to the destination. ICR.RS (bit 0) is set,
TDH is automatically updated to 1 by hardware, and the DD bit is written
back as 1 by hardware.
2. When I try to send the same packet by calling e1000_xmit again, the
function will write 2 to TDT. In the normal case, the card should start to
send the packet between TDH(1 now) and TDT(2 now). However, in my case,
ICR.RS is not fired, the DD bit is not written back this time but TDH is
updated to 2. And the link status change bit, ICR.LSC is set, sometimes
before I write 2 to TDT, sometimes after. Is it because the link status
really changes? Why would that happen? Is there a way to verify that?
3. The current test environment is Virtualbox. But when I run it on a real
desktop, it cannot even send the first packet, no ICR.RS is fired, nor is
the DD bit written.
Does anyone has any idea about what may be wrong in my driver? I am using
the driver of gpxe/genode system as a raw model. It is much simplified from
linux code, but the basic operations and driver running process are still
the same. Thank you very much for your help.
Best
Qiao Xiang
--
Qiao Xiang
PhD student
Computer Science Department
Wayne State University
5057 Woodward Avenue, Suite 3010
Detroit, MI 48202
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit
http://communities.intel.com/community/wired