This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Keystone 2: 10Gbe (XGE) MDIO not working (compile error!)

Hi everyone,

has anyone managed to use the MDIO bus on the 10Gbe (XGE) with an external (copper) PHY? When using the latest Linux kernel 3.10.10 from git.ti.com, enabling the config option

CONFIG_TI_KEYSTONE_XGE_MDIO=y

results in the following error:

| drivers/net/ethernet/ti/keystone_xgemdio.c: In function 'keystone_mdiox_probe':
| drivers/net/ethernet/ti/keystone_xgemdio.c:374:2: error: implicit declaration of function 'xge_serdes_init_156p25Mhz' [-Werror=implicit-function-declaration]
| xge_serdes_init_156p25Mhz();
| ^
| cc1: some warnings being treated as errors

Grepping through the kernel sources reveals that this function is neither defined nor used anywhere else, so it can not work in its current state!

Does anyone else have the same problem?

Best regards,

Olaf

  • Hi Olaf,

    Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com).

    We are working on your post. We will get back to you on this. Thank you for your patience.

  • Olaf,
    I hope, the MDIO is connected with 1GbE(PHY) interface only in the K2Hx EVMs.
    If you like to confirm this, refer the Keystone II based EVM schematic.
  • Olaf,

    I hope, the MDIO is connected with 1GbE(PHY) interface only in the K2Hx EVMs. If you like to confirm this, refer the Keystone II based EVM schematic.

  • Hi Pubesh,

    I think you did not get my question. There are 2 MDIO busses on the keystone, one for 1G and one for 10G (XFIMDIO). For using the latter bus, we need the controller driver, which can not be enabled in your kernel.

    Best regards,

    Olaf
  • Olaf,
    Enabling MDIO for 1Gbe in the linux kernel, refer this wiki, There is no support document for 10Gbe MDIO enabling. I hope, this will be useful.
    http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring#Enabling_MDIO
    http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring#10G_Ethernet_Driver
    http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring#Ethernet_Driver
    The U-boot implementation of the 10G ethernet driver can be considered as an extension of the 1G ethernet driver framework.
    It adds two interfaces to the data structure eth_priv_cfg[] in the corresponding board_k2x.c files:
  • Olaf,
    There is no test code for 10GbE. Did you check the driver code of 10GbE? You can close this thread, If you do not have further discussion of thread.
  • Hi, Olaf,

    You probably read the User's Guide too fast. The user's guide says that if you use releases older than MCSDK 3.0.2, you should enable

    CONFIG_TI_KEYSTONE_XGE=y
    CONFIG_TI_KEYSTONE_XGE_MDIO=y
    

    Starting from MCSDK 3.0.2 and newer releases, you should have the following instead. We use bit bang MDIO for 10GbE in the latest code, not the "mdio" MDIO

    CONFIG_TI_KEYSTONE_XGE=y
    CONFIG_MDIO_BITBANG=y
    CONFIG_MDIO_GPIO=y
    CONFIG_GPIO_PCA953X=y
    
    Hope this clarify your question.

    Rex
  • Hi Pubesh,

    I have seen this section in the MCSDK. Still I wonder why there is code in your Kernel tree for the 10G MDIO controller that is not working - and not even compiling. Is there a hardware problem in the keystone?

    If the 10G MDIO is unusable for any reason you should probably have an errata sheet either for the hardware side or state that problem explicitly in the MCSDK!

    Best regards,

    Olaf