I use ksz8863rll on my board using RMII. My board is similar with imx6q_sabresd only using 10/100M switch instead of GRMII. I have changed some code accroding OTT TV .
Now it can run, but when I insert only net1 wire it can work ok.the display is as folw:
root@freescale ~$ PHY: 1:01 - Link is Up - 100/Full
but I insert only net2 wire it cann't work.
it seems net1 port is master and net2 is slave.
why?
Solved! Go to Solution.
For the switch chip, it has one uplink port and two down link port, one of the down link port is connected to iMX6 fec directly, you can connect the uplink port to internet and connect a PC to another down link port, then both the PC and iMX6 board can access internet from the uplink port. This is the use case for this chip.
By the way, there is no KSZ8863 driver in uboot, if you want to enable it, you need porting the driver.
For the switch chip, it has one uplink port and two down link port, one of the down link port is connected to iMX6 fec directly, you can connect the uplink port to internet and connect a PC to another down link port, then both the PC and iMX6 board can access internet from the uplink port. This is the use case for this chip.
By the way, there is no KSZ8863 driver in uboot, if you want to enable it, you need porting the driver.
if no ksz8863 drvier in uboot,ott cannot use ethernet in uboot?
Yes, because it is a switch chip, not a phy. It needs special driver.
I write a switch driver in uboot ,but when ping it cannot pass. and mdc clock is 2.5MHZ, GPIO_16 is 50MHZ.
MX6Q SABRESD U-Boot > ping 192.168.0.147
FEC: Link is Up 780c
10Mbps
=====
ievent 2188004 - 0
imask 2188008 - 0
r_des_active 2188010 - 1000000
x_des_active 2188014 - 0
ecntrl 2188024 - f0000102
mii_mframe 2188040 - 61fe0000
mii_speed 2188044 - 1a
mii_ctrlstat 2188064 - c0000000
r_cntrl 2188084 - 5ee0306
x_cntrl 21880c4 - 0
padr_l 21880e4 - 12345678
padr_u 21880e8 - 9abc8808
op_pause 21880ec - 10000
iadr_u 2188118 - 0
iadr_l 218811c - 0
gadr_u 2188120 - 0
gadr_l 2188124 - 0
x_wmrk 2188144 - 100
r_bound 218814c - 600
r_fstart 2188150 - 500
r_drng 2188180 - 27602d20
x_drng 2188184 - 27602d60
r_bufsz 2188188 - 5f0
Using FEC0 device
TX timeout packet at 2782b2c0
mxc_fec.c[618] fec_send: cycles: 50000 status: 8c00 retry cnt: 0
TX timeout packet at 2782b2c0
mxc_fec.c[618] fec_send: cycles: 50000 status: ac00 retry cnt: 0
TX not ready
TX timeout packet at 2782b2c0
mxc_fec.c[618] fec_send: cycles: 50000 status: 8c00 retry cnt: 0
TX not ready
That's correct. You would need a driver for the switch which is handling the PHYs.
Oh,My god! It's diffcult for me!