Matthew, Yes, setting the CTRL.ILOS bit does allow me to receive the packets that I send without link. The trivial test case of sending a few packets also seems to work with link, although running more extensive tests with ILOS set when link is present seems to result in somewhat anomalous behaviour which I haven't been able to wrap my head around yet.
Thanks, Ray -----Original Message----- From: Vick, Matthew [mailto:[email protected]] Sent: Wednesday, April 11, 2012 9:15 PM To: Ruvinskiy, Ray; [email protected] Subject: RE: MAC Loopback with 82574L Ray, I haven't been able to reproduce this in-house yet but will continue to give it a shot over the next few days. Something else you can try in the mean time is setting the CTRL.ILOS bit (bit 7) and re-running the test both with and without link. If my hunch is correct, you should see the opposite situation (failing in the situation with link, passing in the situation without). Cheers, Matthew -----Original Message----- From: Ruvinskiy, Ray [mailto:[email protected]] Sent: Tuesday, April 10, 2012 5:44 PM To: Vick, Matthew; [email protected] Subject: RE: MAC Loopback with 82574L Hello Matthew, CTRL.SLU is already enabled. Enabling it "again" for good measure also doesn't seem to help. The register values I included in my original message were actually from the "fail" scenario (cable not plugged in, loopback enabled). The values from the success scenario (cable plugged in, loopback enabled) are 0x58101a49 for CTRL and 0x04008042 for RCTL. The only difference seems to be the presence of CTRL.RFCE and CTRL.TFCE in the "success" case. Thanks, Ray ________________________________________ From: Vick, Matthew [[email protected]] Sent: Tuesday, April 10, 2012 8:10 PM To: Ruvinskiy, Ray; [email protected] Subject: RE: MAC Loopback with 82574L > -----Original Message----- > From: Ruvinskiy, Ray [mailto:[email protected]] > Sent: Tuesday, April 10, 2012 3:34 PM > To: [email protected] > Subject: [E1000-devel] MAC Loopback with 82574L > > Hello, > > I am trying to enable MAC loopback with an 82574L device. The code > looks roughly as follows: > > u32 rctl, ctrl; > > ctrl = E1000_READ_REG(&adapter->hw, E1000_CTRL); > ctrl |= (E1000_CTRL_FRCSPD | E1000_CTRL_SPD_1000); > ctrl |= (E1000_CTRL_FRCDPX | E1000_CTRL_FD); > > rctl = E1000_READ_REG(&adapter->hw, E1000_RCTL); > rctl |= E1000_RCTL_LBM_MAC; > > E1000_WRITE_REG(&adapter->hw, E1000_RCTL, rctl); > E1000_WRITE_REG(&adapter->hw, E1000_CTRL, ctrl); > > This appears to work if the interface already has link (a cable is > plugged in). However, it does not work if a cable is not plugged in. I > do not get link interrupts, and packets I try to send disappear into > the ether. The values of CTRL and RCTL after the steps above end up > being 0x40101a49 and 0x04008042, respectively. Incidentally, the same > steps do work with an i350 card. > > I would appreciate if anyone had any suggestions. > > Thanks, > > Ray Hello Ray, If you're only getting the 82574 to pass when it has link, you can try setting the CTRL.SLU bit to 1. For comparison, can you please get me the CTRL and RCTL registers in a "fail" scenario as well? Cheers, Matthew > > ---------------------------------------------------------------------- > - > ------- > Better than sec? Nothing is better than sec when it comes to > monitoring Big Data applications. Try Boundary one-second resolution > app monitoring today. Free. > http://p.sf.net/sfu/Boundary-dev2dev > _______________________________________________ > E1000-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/e1000-devel > To learn more about Intel® Ethernet, visit > http://communities.intel.com/community/wired ------------------------------------------------------------------------------ For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
