Tool/software:
I'm using Xilinx VCU118 board with SGMII interface.
After enabling the 6-wire mode (Setting bit 14 of extended register 0xd3) and making sure the software workaround for the RX_CTRL strap (reg 0x31 bit 7 to 0) is correct. All the phy registers get junk value but I'm able to use the ethernet at 1G/Full duplex (strange for me). Now the issue is phy register has wrong value therefore any application I run on top of it, read wrong phy register and we are not able to see any data transfer from MAC to phy.
If I do SW reset (setting bit 15 for 0x1f) then all registers are set back to the correct value but now the phy won't work as it has switched back to 4-wire mode. If I switch it back to 6-wire mode then same registers get updated with junk value cycle start.
I went through a similar issue on the forum (https://e2e.ti.com/support/interface-group/interface/f/interface-forum/829808/dp83867is-ti-phy-sgmii-clock-output-stops-after-20-seconds). But for me there is no 20 sec. As soon as I enable the differential clock, I see the effect.
Phy register (addr:0x3) value at the beginning:
addr=0x0:0x1140
addr=0x1:0x7949
addr=0x2:0x2000
addr=0x3:0xa231
addr=0x4:0x1e1
addr=0x5:0x0
addr=0x6:0x66
addr=0x7:0x2001
addr=0x8:0x0
addr=0x9:0x300
addr=0xa:0x0
addr=0xb:0x0
addr=0xc:0x0
addr=0xd:0x401f
addr=0xe:0x1030
addr=0xf:0x3000
addr=0x10:0x5848
addr=0x11:0x1302
addr=0x12:0x0
addr=0x13:0x1440
addr=0x14:0x29c7
addr=0x15:0x0
addr=0x16:0x0
addr=0x17:0x40
addr=0x18:0x6150
addr=0x19:0x4444
addr=0x1a:0x2
addr=0x1b:0x0
addr=0x1c:0x0
addr=0x1d:0x0
addr=0x1e:0x2
addr=0x1f:0x0
addr=0x25:0x400
addr=0x2c:0x141f
addr=0x2d:0x0
addr=0x2e:0x221
addr=0x31:0x1030
addr=0x32:0xd3
addr=0x33:0x0
addr=0x37:0x0
addr=0x43:0x7a0
addr=0x53:0x2055
addr=0x55:0x0
addr=0x6e:0x803
addr=0x6f:0x50
addr=0x71:0x0
addr=0x72:0x0
addr=0x7b:0x5dc
addr=0x7c:0x7d
addr=0x8a:0x0
addr=0x86:0xd7
addr=0xa0:0x908
addr=0xa1:0x607
addr=0xa2:0x1010
addr=0xa3:0x1010
addr=0xb3:0x88
addr=0xc0:0x0
addr=0xc6:0x0
addr=0xd3:0x0
addr=0x170:0xc10
Phy registers value after enabling 6-wire mode:
addr=0x0:0x1140
addr=0x1:0x1f8
addr=0x2:0x174
addr=0x3:0xc00
addr=0x4:0x1
addr=0x5:0x4001
addr=0x6:0x6
addr=0x7:0x0
addr=0x8:0x0
addr=0x9:0x0
addr=0xa:0x0
addr=0xb:0x0
addr=0xc:0x0
addr=0xd:0x0
addr=0xe:0x0
addr=0xf:0x8000
addr=0x10:0x3
addr=0x11:0x1
addr=0x12:0x3
addr=0x13:0x0
addr=0x14:0x0
addr=0x15:0x0
addr=0x16:0x0
addr=0x17:0x0
addr=0x18:0x0
addr=0x19:0x0
addr=0x1a:0x0
addr=0x1b:0x0
addr=0x1c:0x0
addr=0x1d:0x0
addr=0x1e:0x0
addr=0x1f:0x0
addr=0x25:0x0
addr=0x2c:0x0
addr=0x2d:0x0
addr=0x2e:0x0
addr=0x31:0x0
addr=0x32:0x0
addr=0x33:0x0
addr=0x37:0x0
addr=0x43:0x0
addr=0x53:0x0
addr=0x55:0x0
addr=0x6e:0x0
addr=0x6f:0x0
addr=0x71:0x0
addr=0x72:0x0
addr=0x7b:0x0
addr=0x7c:0x0
addr=0x8a:0x0
addr=0x86:0x0
addr=0xa0:0x0
addr=0xa1:0x0
addr=0xa2:0x0
addr=0xa3:0x0
addr=0xb3:0x0
addr=0xc0:0x0
addr=0xc6:0x0
addr=0xd3:0x0
addr=0x170:0x0
Any help is highly appreciated. Thanks