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.

[参考译文] SK-AM64:TMDS64EVM -如何为 ICSS 2X 1千兆位以太网配置 SysConfig?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1243455/sk-am64-tmds64evm---how-to-sysconfig-for-icss-2x-1-gigiabit-ethernet

器件型号:SK-AM64
主题中讨论的其他器件:TMDS64EVM、SysConfig、 DP83869

我正在使用 TMDS64EVM 开发板来实现和测试 PLC 系统。  我们的应用需要三个1千兆位以太网端口。

我能够使用"enet_L2_cpsw"示例让 CPSW 以太网端口以千兆位运行。  我现在看一下"enet_layer2_icssg"示例。  SDK 版本为8.5.0.24。

"enet_layer2_icssg"示例似乎只允许协商100兆位以太网链路。  此外、它也不会在双 MAC 模式下运行 ICSS、尽管似乎可以选择这样做。

我的问题很基本。  我能否使用 SysConfig 将 PRU 的 ICSS 以太网更改为使用双 MAC 模式而不是开关模式、或者我是否需要为此创建定制的电路板配置?  第二个问题是、我是否可以使用 SysConfig 将 ICSS 端口更改为允许或选择1千兆位操作。  如果我无法使用 SysConfig、我可以做什么呢?

开发板上是否有用于更改 PHY 模式的开关或跳线、或者 SDK 中是否有用于更改 PHY 设置的功能?

根据我所能知、两个 ICSS 以太网 PHY 都连接到了同一个 PRU。  单个 PRU 能否支持两个千兆位以太网端口?  开发板是否可以使用第二个 PRU 来访问其中一个以太网端口?

如果您能提供有关配置千兆位和双 MAC 模式的 PRU 的链接或信息、我将不胜感激。

请告诉我、是不可能在 SOC 上使用三个千兆位端口、还是开发板不支持三个千兆位端口。  其中任何一项都会影响我们的发展计划。

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

    尊敬的 

    感谢您的提问。

    您能否参阅以下 MCUSDK 8.6.0.45示例并更新结果?

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/08_06_00_45/exports/docs/api_guide_am64x/EXAMPLES_ENET_ICSSG_LOOPBACK.html

    此致

    阿什瓦尼

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

    这是我运行该示例得到的结果。  链路仍以100兆位的速率运行。  此外、对于底部 RJ45、端口编号似乎已从端口1更改为端口2。

    ============================
     ENET 环回:迭代1
    ============================
    ICSSG_DUALMAC 测试
    启用时钟!

    初始化 配置 EnetType:1,InstId:3
    -------------------------------------------------------
    initQs()以16个 pkts 初始化 txFreePktInfoQ

     -主机端口统计信息
    -------------------------------------------------------


     MAC 1统计信息
    -------------------------------------------------------

    EnetPhy_bindDriver:Phy 3:OUI:080028型号:0f Ver:01 <->'d ph83869':确定
    Icssg_handleLinkUp:icssg1-2:端口2:链路接通:100Mbps 全双工
    已完成

     -主机端口统计信息
    -------------------------------------------------------
     hostRxByteCnt             = 518000
     HostTxByteCnt             = 514000
     HostRxPktCnt              = 1000
     主机 TxPktCnt              = 1000


     MAC 1统计信息
    -------------------------------------------------------
     rxGoodFrame           = 1000
     rxBCastFrame          = 1000
     rxMCastFrame          = 1000
     rxClass8               = 1000
     rxClass9               = 1000
     rxBucket5SizedFrame    = 1000
     rxTotalByte            = 518000
     rxTxTotalByte          = 1044000
     txGoodFrame            = 1000
     txBcastFrame           = 1000
     txMcastFrame           = 1000
     txBucket5SizedFrame    = 1000
     txTotalByte            = 526000

    Icssg_unregisterEventCb:icssg1-2:事件未注册1
    取消注册 TX 时间戳回调
    Icssg_unregisterEventCb:icssg1-2:事件未注册64
    Icssg_handleLinkDown:icssg1-2:端口2:链路断开
    正在禁用 ENET: 1, INSTRUM:3!的时钟
    测试完成:通过
    回送应用程序完成
    所有测试均已通过!!

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

    运行第2层示例后、我看到连接的链路为1千兆。

    ============================
         多端口测试      
    ============================

    初始化所有外设时钟
    -------------------------------------------------------
    启用时钟!
    启用时钟!

    打开所有外设
    -------------------------------------------------------

    初始化 配置 EnetType:1,InstId:2
    -------------------------------------------------------
    MDIO_open:MDIO Manual_Mode 已启用
    icssg1-P1:打开端口1
    EnetPhy_bindDriver:Phy 15:OUI:080028型号:0f Ver:01 <->'d ph83869':确定
    PHY 3处于活动状态
    PHY 15处于活动状态

    初始化 配置 EnetType:1,InstId:3
    -------------------------------------------------------
    MDIO_open:MDIO Manual_Mode 已启用
    icssg1-P2:打开端口2
    EnetPhy_bindDriver:Phy 3:OUI:080028型号:0f Ver:01 <->'d ph83869':确定
    PHY 3处于活动状态
    PHY 15处于活动状态
    icssg1-P1:寄存器异步 IOCTL 回调
    icssg1-P1:寄存器 TX 时间戳回调
    icssg1-P2:寄存器异步 IOCTL 回调
    icssg1-P2:寄存器 TX 时间戳回调

    在所有外设上连接内核 id 1
    -------------------------------------------------------
    icssg1-P1:连接内核
    icssg1-P2:连接内核

    创建 RX 任务
    -------------------------------------------------------
    icssg1-P1:创建 RX 任务
    icssg1-P1:正在等待链路建立...
    icssg1-P2:创建 RX 任务
    icssg1-P2:正在等待链路建立...

    Enet 多端口菜单:
     'T' - 启用时间戳打印
     "T"-  禁用时间戳打印
     'S' - 打印统计信息
     'R' - 重置统计信息
     'M' - 显示分配的 MAC 地址
     'D' - 启用基于 DSCP 的优先级映射
     "X" - 停止测试

    Icssg_handleLinkUp:icssg1-1:端口1:链路接通:1Gbps 全双工
    icssg1-P1:端口1链路已接通
    icssg1-P1:将端口状态设置为"转发"
    icssg1-P1:异步 IOCTL 已完成
    icssg1-P1:打开 DMA
    initQs()以8个 pkts 初始化 txFreePktInfoQ
    34:08:E1:80:B5:CD
    icssg1-P1:设置 MAC 地址:34:08:E1:80:B5:CD

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

    我使用 SDK 8.5.0.24版构建了相同的示例、但没有以1千兆位进行连接。  操作千兆位的 ICSSG 端口是否需要 SDK 的8.6.0.45版?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Icssg_handleLinkUp: icssg1-1:端口1:链路接通:1-Gbps 全双工

    看起来 ICSSG1 Port1链路的速度为1G。 正确吗?

    您需要在 SysConfig 中更 改为端口2。

    此致

    阿什瓦尼

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

    Ashwani,

    感谢您的快速、详细的回复。  您解决了问题、我可以继续开发我们的应用。