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