Hi all,
One of our new designs include the LAN port KSZ8895RQ and I have found a problem with it. After several proofs, I have realized that the problem is that it is only working when I have something connected to the port 1. If I connect my PC to the port 1, everything works fine, if I don't connect anything, nothing is working.
The ports are connected the following way:
- Port 1: to an Ethernet connector, used to connect a PC
- Port 2: to another Ethernet connector, used to connect a PC
- Port 3: empty, future uses
- Port 4: to another board
- Port 5: to the main CPU through the RMII interface
The ports 4 and 5 are always connected but I cannot ping the board connected to the Port 4 from the main CPU if the Port 1 is not connected. Can any of you helping me with this? It seems that the phy driver is only working if it is able to connect through the Port 1 of the switch. I use the SPI port to configure the switch
Hi Alvaro
one can try to test with uboot KSZ8895 driver with fixed fixed phy/link
http://lists.denx.de/pipermail/u-boot/2013-September/161819.html
http://lists.denx.de/pipermail/u-boot/2013-August/161220.html
Best regards
igor
Hi Igor,
Thanks a lot for your response but I had already used those patches and they are not working fine, I suppose that is because I have a different kernel version that the one they were created (mine is 3.0.79). An example of phy driver structure that I find in my micrel.c file:
static struct phy_driver ks8001_driver = {
.phy_id = PHY_ID_KS8001,
.name = "Micrel KS8001 or KS8721",
.phy_id_mask = 0x00fffff0,
.features = (PHY_BASIC_FEATURES | SUPPORTED_Pause),
.flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
.config_init = kszphy_config_init,
.config_aneg = genphy_config_aneg,
.read_status = genphy_read_status,
.ack_interrupt = kszphy_ack_interrupt,
.config_intr = kszphy_config_intr,
.driver = { .owner = THIS_MODULE,},
};
Have you found any other patch or fix on the web? Because I have been looking in the Internet and nothing works for me.
Regards
Alvaro