Qiang Li - Mpu Se

Bug fix for iMX28 L2 switch can't work in 10Base-T network -blog archive

Discussion created by Qiang Li - Mpu Se Employee on Apr 23, 2012
Latest reply on May 20, 2013 by Eric Kang

    For L2.6.35_10.12.01_SDK iMX28 BSP, the L2 switch driver can't work in 10Base-T network, because the default driver hasn't identify the network conditions for different PHY setting, it just used the default 100Mbps setting.

    And there is also another issue, if you run command "ifconfig eth0 down"; then run "ifconfig eth0 up", the L2 switch driver will not work. The root cause is that when the L2 switch driver stops, it will set PHY to power down mode in switch_enet_close(), but when the L2 switch driver re-started, in function switch_enet_open(), it will not set the PHY out of power down mode.

 

    Attached is the updated driver for the above two issues. The file position "linux\drivers\net\". All modifid codes are marked with flag "qiang_debug".

(The old code was removed, please use the followed new patch "fec_switch_update_for_L2.6.35_10.12.01_BSP.zip")

 

    A new issue was found in the L2 switch driver.

    When we connected half duplex and full duplex network on two ethernet connectors for iMX28, the performance will be poor.

    Root cause: The driver had save the two ethernet phy link speed into the same paramenter (full_duplex), then in the above case, this parameter is always in changing, and the driver will think the link state is in changing, it will loop to re-config the PHY.

    Attached is the new updated L2 switch driver for iMX28 L2.6.35_10.12.01 BSP.

Original Attachment has been moved to: fec_switch_update_for_L2.6.35_10.12.01_BSP.zip

Outcomes