We have a custom board with 82599 connected to one of our processors directly by XAUI. The 82599 is also connected via PCIe to a linux x86 box. We are currently using our own driver for 82599, but we are not able to see the link up or see any packets on the other end.
Also, 82599 is connected to a blank EEPROM, so all the register values are at default values in the beginning. ( I don't think we can use the ixgbe driver because it heavily relies on EEPROM settings )
Setting the device in Tx->Rx loopback mode, we are able to see packets on the Rx side. So, things like DMA, Tx/Rx rings etc.. are all working properly.
My doubt is about the XAUI link part which seems very difficult to debug.
The following things are done during driver load :
- Soft reset (resets the registers to default values)
- In AUTOC, the following bits are set
- FLU = 1b (Force Link Up)
- ANSF = 1b (Auto-Neg selector field)
- 10G_PMA_PMD_PARALLEL = 0 (XAUI)
- LMS = 001b (10 GbE parallel link KX4 no back-plane autonegotiation)
- KR_SUPPORT = 1b (default value)
- FECA = 1b (FEC Detect Ability, default value)
- ARNXAT = 11b (Backplane Auto-Negotiation Rx Align Threshold, default)
- ANRXDM = 1b (Auto-Negotiation Rx Drift Mode, default)
- ANRXLM = 1b (Auto-Negotiation Rx Loose Mode, default)
- KX_SUPPORT = 11b (default)
- And then AUTOC.Restart_AN is set
- I'm not seeing LINKS[Link Up]. So I manually set AUTOC[FLU] = 1 (Force Link Up)
I can't see any packets on both sides. My question is is any of those steps wrong? Any suggestions on what I can do next? Also, is it possible to get ixgbe to work with this setup?