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
[email protected] | 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel