ZHCABI5 January   2022 AM67 , AM67A , AM68 , AM68A , AM69 , AM69A , DRA821U , DRA821U-Q1 , DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4AEN-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4VE-Q1 , TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VM-Q1 , TDA4VP-Q1

 

  1.   摘要
  2.   商标
  3. 1以太网和 CPSW 简介
    1. 1.1 以太网接口
    2. 1.2 以太网集成
    3. 1.3 CPSW
    4. 1.4 MAC2MAC
  4. 2JACINTO7 MAC2MAC 解决方案
    1. 2.1 应用要求
    2. 2.2 RGMII 解决方案
    3. 2.3 SGMII 解决方案
  5. 3MAC2MAC 实现
    1. 3.1 RGMII 实现
      1. 3.1.1 CPSW 2G 更改
      2. 3.1.2 CPSW 9G 更改
    2. 3.2 SGMII 实现
    3. 3.3 MAC2MAC 调试
      1. 3.3.1 软件和配置问题
      2. 3.3.2 调试软件和配置问题
      3. 3.3.3 Pinmux 问题
      4. 3.3.4 硬件问题
        1. 3.3.4.1 RGMII 调试
        2. 3.3.4.2 SGMII 调试
  6. 4总结
  7. 5参考文献

CPSW 9G 更改

CPSW 9G 由主 R5F 2_0 上运行的以太网固件控制,因此所有更改必须在以太网固件和 ENET-LLD 中完成。要求的主要更改都在端口开放序列中,后者用于获取端口参数并配置 PHY。参考补丁 (0002-*.patch for ti-processor-sdk-rtos-j721e-evm-07_03_00_07) 可从工程配套资料和源代码链接下载。

注: 在 ti-processor-sdk-rtos-j721e-evm-07_03_00_07 上应用 0002-*.patch。应用补丁后,重建使用“make pdk ; make ethfw; make vision_apps”的 PDK/ETHFW/VISION_APPS。接下来,运行“make linux_fs_install”将映像更新到 targetfs。
  1. EnetPer_PortLinkCfg::macPort 中设置端口号。
  2. 通过 EnetPer_PortLinkCfg::mii 的层、子层和变量字段设置 MAC 端口接口(RMII、RGMII、SGMII 等)。
  3. 使用 CpswMacPort_initCfg() 初始化 MAC 配置参数,手动覆盖不同于默认参数的任何参数。
  4. 将 PHY 地址设置为 ENETPHY_INVALID_PHYADDR,以指示这是没有 PHY 的连接
  5. EnetPer_PortLinkCfg::linkCfg 中设置链路速度和双工配置,使之与 MAC 搭档端口的配置匹配。速度和双工必须是固定值,不能是 ENET_SPEED_AUTOENET_DUPLEX_AUTO,因为它们用于自动协商,这与 MAC 到 MAC 模式无关
  6. 完成所有 MAC 和 PHY 配置后,可通过调用 ENET_PER_IOCTL_OPEN_PORT_LINK 命令打开端口
  7. 如果上述所有步骤都成功,没有任何错误,则 Enet 驱动程序、以太网外设和 MAC 端口已成功打开
  8. 检测到链路接通时,该应用应使用 CPSW_ALE_IOCTL_SET_PORT_STATE IOCTL 命令将 ALE 端口状态设置为正向状态,并通过调用 ENET_HOSTPORT_IOCTL_ENABLE 命令启用 CPSW 的主机端口。

所述更改源于 ENET-LLD 视角,但在以太网固件环境下,这些步骤分别在以太网固件和 Enet LLD utils 库中实施。下面介绍了以太网固件和 Enet LLD 如何互动以实现端口配置。

在以太网固件中配置端口时,发生如下序列:

  1. EthFw_initLinkArgs() 由 Enet MCM(多客户端管理器)调用,以获取要用于给定端口的端口配置参数。
  2. 以太网固件填充 EthFw_initLinkArgs() 中的常见参数,例如 CPSW MAC 端口默认配置、速度/双工。
    1. MAC 到 MAC 模式的速度和双工当前设置为 1Gbps 全双工,需要时可更改它。
  3. 以太网固件调用 EnetBoard_setPhyConfig() 以设置接口类型和 PHY 配置参数(例如 PHY 地址)。
  4. EnetBoard_setPhyConfig() 是一个 Enet LLD 电路板 utils 函数。
    1. 需要在此函数中对 MAC 到 MAC 进行更改。
  5. EnetBoard_setPhyConfig() 中提供参考补丁及更改,其中 MAC 端口 4 是 MAC 到 MAC 连接需要使用的端口。参考补丁 (0003-*.patch) 可从工程配套资料和源代码链接下载。
  6. 完成所有更改后,再次编译以太网固件并加载。如果使用 Linux,则将固件 (app_remoteswitchcfg_server_strip.xer5f) 复制到 rootfs 分区中的 /lib/firmware/ethfw 并重新引导。