DSA driver kernel extension for DSA MV88E6190 switch

Hello Community,

We have interesting problem to solve using our HW platform. And I hope somebody has the similar example, and some patches which need to be applied to the kernel (directory .../drivers/net/dsa/) to make this application to work.

We have the configuration problem with the Marvell 88E6190 switch. What the our problem is... Is the switch is NOT configured with the EEPROM (24C512), which does not exist on the board. It is put in autoconfig by HW straps (NOCPU mode). Once the MDIO command, issued to probe the switch and read the make of it, the switch jumps out of the autoconfig mode. There are some commands issued from the DSA to configure the switch (to apply to switch TXC and RXC RGMII delays - RGMII-ID mode), but this is not enough to make it work properly.

Once the configuration is not properly applied (NOT configured via EEPROM). We have problems when the Linux booting phase comes to LIBPHY. Since switch should be transparent to the PHYs at that time, but my best guess, it is not!

Once LIBPHY starts writing to the switch (since MDIO commands are not reaching PHYs), switch blocks. Exists from auto config mode and refuses to respond (my best guess). So no ping possible on the MV88E61890 MACs and through after Linux boots.

If we physically cut the MDIO line and put the switch in autoconfig mode, then switch stays in autoconfig mode (by HW straps), but then it is impossible to do RGMII Tx and Rx clock skew, since i.MX6 has the silicon bug which does NOT allow this skew to be applied to i.MX6 (1.5 ns skew MUST be applied to the both clocks). If this done from the DSA, (having MDIO fully in effect), the switch goes out of autoconfig and does not finish the proper config.

I have here three questions, if there are some educated suggestions?

[1] Does this, what I wrote here, sound as known problem (Google has very little on it)?

[2] Does MV88E6190 switch allow for RGMII mode some HW straps to be applied in order to make switch's TXC and RXC clock skew for ~ 1.5 nsec, and make it work without MDIO in HW autoconfig mode?

{3] Does anybody have pointer to some similar patches for the DSA driver addendum, how to properly deal with this problem and fully configure the switch from Linux DSA driver (chip.c and port.c files)??

Thank you in advance,

1 Like