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.

[FAQ] DRA821U: DRA829:面向 CPSW 5G/9G 的电路板特定修改指南

Part Number: DRA821U

问:需要在 enet-lld 和 EthFW 中进行哪些更改来进行面向 CPSW 5G/9G 的电路板特定修改?

  • 答:

    面向 RTOS 上以太网的电路板特定修改指南

    • 通用引脚多路复用:这由 pdk/packages/ti/board 中的电路板库来处理。通过 PinMux 工具生成文件 cJ7200_pinmux.h(面向 J7200 的示例),并替换到 pdk/packages/ti/board/src/j7200_evm
    • 特定于以太网的引脚多路复用
      • 修改 enet/examples/utils/V1/enet_board_pinmux_j7200_data.c 以进行特定于以太网的引脚多路复用更改,如 RGMII/SGMII。结构 gEthFwPinmuxData 包含所有引脚多路复用数据,这继而由 enet/examples/utils/V1/enet_board_pinmux.c 中的函数 EnetBoard_configEthFwPinmux() 进行调用
      • 无需 SGMII 引脚多路复用。当 SGMII 连接到 SERDES 时,SERDES 在 SoC 上有专用引脚,在 SERDES 中,使用多路复用器寄存器来选择 USB、SGMII 和 PCIe。
    • ENET-LLD 中的电路板配置:对于 enet_loopback 等示例,可以使用 EnetBoard_setEnetControl() API 直接配置开关。
      • PHY 时的配置:例如,如果您使用了 SGMII/RGMII PHY,那么您还可以使用 examples/utils/V1/enet_appboardutils_j721e_evm.c 中的辅助函数 EnetBoard_setPhyConfigSgmii()EnetBoard_setPhyConfigRgmii()
      • PHY 时的配置:如果您没有使用 PHY,那么请分别查看 enet/examples/utils/enet_apputils.c 中的辅助函数 EnetAppUtils_setNoPhyCfgRgmii() 和 EnetAppUtils_setNoPhyCfgSgmii()。该文件还包含用于其他配置(如 RMII 等)的辅助函数。
      • EthFw 中的电路板配置(如果仅运行示例,则可以跳过):EthFw 内部的配置是通过一个定义明确的结构 EthFw_Config(在 ethfw/ethfw.h 中定义)实现的。然后使用用于配置端口号和端口数量的数组 gEthAppPorts[] 初始化该结构。该数组在初始化例程 EthApp_initEthFw() 中用于配置 enet-lld。VLAN、ALE、MTU 大小等各种其他配置是使用 ethfw/src/ethfw.c 中定义的函数 EthFw_initConfigParams() 来实现的。该函数继而使用函数 EthFw_initAleCfg() 来初始化 ALE。
    • ENET-LLD 集成:对于 ENET 配置,用户/应用需要执行以下步骤


      1. 初始化序列在使用任何 Enet LLD API 之前进行一次性初始化。
      2. 外设打开序列打开一个以太网外设,需要针对应用要使用的每个外设(例如 CPSW)调用该序列。
      3. 端口打开序列打开一个 MAC 端口。对于提供多个 MAC 端口的外设(即具有 8 MAC 端口的 CPSW9G),必须针对每个 MAC 端口执行该序列。该部分还包含 MAC-PHY MAC-MAC 链路。
      4. 数据包发送/接收序列DMA TX RX 通道打开序列以及用于向驱动程序提交数据包队列/从驱动程序中检索数据包队列的函数。用户应用通常不修改该序列,该序列应保持不变。

      5. 数据包时间戳添加序列:用于启用时间戳添加和检索机制的 TX RX 数据包时间戳添加序列。
      6. 端口关闭序列:关闭一个 MAC 端口。当不再需要在步骤 3 中打开的 MAC 端口时,应用必须将其全部关闭。
      7. 外设关闭序列:当应用不再需要某个以太网外设时,关闭该以太网外设。对于在步骤 2 中打开的每个外设,必须执行该序列。

      8. 取消初始化序列 使用 ENET-LLD 完成应用后,一次性取消初始化。

         指南对最后一点进行了深入介绍。尤其要注意端口打开序列,该序列介绍了 MAC-PHY MAC-MAC 配置。

         下面提供了一个片段: