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.

[参考译文] AM2632:BCM89884

Guru**** 2380860 points
Other Parts Discussed in Thread: AM2632, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1473651/am2632-bcm89884

器件型号:AM2632
主题中讨论的其他器件: SysConfig

工具与软件:

您好、我想在 AM2632中将一个新的 phy BCM89884与 mido45一起使用、但 SDK 中的默认 phy 是 mdio22、我如何在 syscfg 中添加新的 phy 并使用 mdio45来控制 phy reg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您联系我们。 该专家目前正在 OOO、下周早些时候将返回、以提供更多反馈。  

    此致、

    Zackary Fleenor

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    1.按照此处的步骤集成 默认 SDK 不支持的 PHY: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/custom_enetphy_guide.html

    2. SDK 也可以支持第45条帧格式、可在 example.syscfg 文件中进行配置。 在此处的"支持 MDIO 条款-45"中、输入您的 PHY 地址

    并选中"MAC Port Config"中的"Clause 45 Support"框

    此致、
    Shaunak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Shaunak 您好:

    我已根据您的建议配置了 phy、但 Enet 仍然无法查看第45条支持

    期待您的回复

    此致

    ZX

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、zx:

    我正在研究它、请期待明天回复。

    此致、
    Shaunak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、ZX、

    对于延迟响应的道歉、您还可以执行以下步骤:

    1.在以下位于以下 JavaScript 文件中(位于  mcu_plus_sdk/source/networking/enet/core/sysconfig/networking/.met/enet_cpsw/am263x/enet_cpsw_macport_config.syscfg.js )、请删除行号-199 (只读:true)

    2.执行第1步后、当您在应用程序中重新打开 example.syscfg 时、您将能够选中"Clause-45 Support"复选框。 重新编译您的应用。  

    3、在 MDIO_open 函数中、设置断点并确保正确写入 MDIO 配置、并 调用 CSL_MDIO_setClause45EnableMask 来设置第45条的掩码

    此外、由于 BCM89884是非 TI PHY、因此请确保您在应用中注意 PHY 配置(如果 PHY 需要任何配置来支持 Clause45)。 此外、确保在应用 syscfg 中正确提及 PHY 地址。 这也应显示在 syscfg 自动生成的 ti_enet_open_close.c 文件中的 Mdio_Cfg enetAppCpswMdioCfg 中

    此致、
    Shaunak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    按照您的步骤进行修改后、可以确认调用了 CSL_MDIO_setClause45EnableMask 来设置第45条的掩码、但 PHY 的操作接口默认仍与22连接、、我们需要手动将其修改为 45

    是否有任何其他配置项缺失?

    int32_t EnetPhy_readReg(void* pArgs,
                            uint32_t reg,
                            uint16_t *val)
    {
    	EnetPhy_Handle hPhy = (EnetPhy_Handle)pArgs;
        EnetPhy_MdioHandle hMdio = hPhy->hMdio;
        uint32_t phyGroup = hPhy->group;
        uint32_t phyAddr = hPhy->addr;
        int32_t status;
    
        status = hMdio->readC22(phyGroup, phyAddr, reg, val, hPhy->mdioArgs);
    
        ENETTRACE_ERR_IF(status != ENETPHY_SOK,
                         "PHY %u: Failed to read reg %u: %d\r\n", phyAddr, reg, status);
        ENETTRACE_VERBOSE_IF(status == ENETPHY_SOK,
                             "PHY %u: reg %u val 0x%04x %s\r\n", phyAddr, reg, *val);
    
        return status;
    }
    
    int32_t EnetPhy_writeReg(void* pArgs,
                             uint32_t reg,
                             uint16_t val)
    {
    	EnetPhy_Handle hPhy = (EnetPhy_Handle)pArgs;
        EnetPhy_MdioHandle hMdio = hPhy->hMdio;
        uint32_t phyGroup = hPhy->group;
        uint32_t phyAddr = hPhy->addr;
        int32_t status;
    
        status = hMdio->writeC22(phyGroup, phyAddr, reg, val, hPhy->mdioArgs);
        ENETTRACE_ERR_IF(status != ENETPHY_SOK,
                         "PHY %u: Failed to write reg %u: %d\r\n", phyAddr, reg, status);
        ENETTRACE_VERBOSE_IF(status == ENETPHY_SOK,
                             "PHY %u: reg %u val 0x%04x\r\n", phyAddr, reg, val);
    
        return status;
    }

    期待您的回复

    ZX

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、ZX、


    该驱动程序实际上是通用的、适用于第22条和第45条。 由于所有 AM263x 板载 PHY 都支持 Clause22、因此该函数直接调用 Clause22、并且由于我们端没有某些硬件、因此完全未使用条款-45帧格式进行测试 由于存在一些发布活动、完成验证需要几周时间。


    通用流程是从 IOCTL 调用的 EnetPhy_readReg 或 EnetPhy_writeReg 函数、这些函数在内部调用 hmdio->read22或 hmdio->write22。
    目前、有两种选择、
    1.如果只想让第45条进行读写而不使用第22条、可以修改 EnetPhy_readReg 和 EnetPhy_writeReg 来调用 hMdio->read45和 hMdio->write45、而不是 read22和 write22函数、因此每当调用任何 PHY Reg 读或写时、都将调用
    2.在 PHY 驱动程序中、您可以直接调用 EnetPhy_readC45Reg 和 EnetPhy_writeC45Reg 来执行基于第45条的读取或写入

    此致、
    Shaunak