The ixgbe_reset_hw_82598() function in ixgbe_82598.c contains the following 
code:

        gheccr = IXGBE_READ_REG(hw, IXGBE_GHECCR);
        gheccr &= ~((1 << 21) | (1 << 18) | (1 << 9) | (1 << 6));
        IXGBE_WRITE_REG(hw, IXGBE_GHECCR, gheccr);

I've been working on my own 82598 driver using an 82598AF single port adapter 
(fiber). I got to the point where I had basic RX and TX support done -- one 
RX and TX queue each (advanced descriptors, no header splitting), legacy 
interrupt handling, simple link state monitoring, no offloading yet -- and 
started doing some simple testing. I could see RX events occuring, but 
sometimes (maybe one frame in every ten), the chip would signal an RX event, 
write back a valid RX descriptor, but not put any data in the associated RX 
buffer. Transmissions were similarly erratic, with some frames being corrupt. 
The same behavior manifested on two different test platforms: an x86 Core Duo 
and a dual core PPC eval board.

I went through the manual and couldn't find any place where I'd made any 
horrible mistakes. Having run FreeBSD on the x86 system and seen that the 
card worked correctly in that case, I went through the driver code looking 
for something I may have missed, and finally came upon the update to the 
GHECCR register shown above. Sure enough, if clear the same bits in the 
GHECCR register in my own reset routine, the card suddenly works perfectly.

There's just one problem: neither the register, nor the meaning of those magic 
bits, is documented anywhere. The manual makes no mention of GHECCR or offset 
0x110B0, and the Intel driver code just lists it under the heading of 
diagnostic registers.

I really want to know what this register does (mainly so that I can understand 
the nature of the weird behavior I was seeing before I updated it), and why 
Intel chose not to document it in the 82598 manual, given that it seems to be 
so important to the correct operation of the chip. Can any Intel people shed 
some light on this?

-Bill

-- 
=============================================================================
-Bill Paul            (510) 749-2329 | Senior Engineer, Master of Unix-Fu
                 wp...@windriver.com | Wind River Systems
=============================================================================
   "I put a dollar in a change machine. Nothing changed." - George Carlin
=============================================================================


------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel

Reply via email to