Hi Nick,
Now I'm using XAUI_PHY LPM instead of ALTGX. At the receiver the upper and lower 32 Bits of data and corresponding control bytes are swapped sometimes.
Transmit:
control: 0xFF, 0xFF, 0x01
data: 0x0707 0707 0707 0707, 0x0707 0707 0707 0707, 0x1111 1111 2222 22FB
Receive:
control: 0x0F, 0x0F, 0x1F
data: 0x0707 0707 0707 0707, 0x0707 0707 0707 0707, 0x2222 22FB 0707 0707
In some cases at Receive:
control: 0xFF, 0xFF, 0x01
data: 0x0707 0707 0707 0707, 0x0707 0707 0707 0707, 0x1111 1111 2222 22FB
After Idle-Code Gap I do the alignment manually by means of detecting the START Code (0xFB) in the upper or lower 32 Bit word.
Because we are using our own protocol we can do that. I don't know how its viable in case of 10GE.
Good Luck!
Jens