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.
工具与软件:
#1。 CPSW9g 有一个 Tx 和一个 Rx 中断、但有9个端口、如果使用8 MAC 模式、它可以为每个端口实现8个单独的 TX 和 RX 中断吗?
#2。 如果所有端口共享相同的 Tx 和 Rx 中断、它如何区分上行端口上的每个端口数据?
您好!
[quote userid="35100" url="~/support/processors-group/processors/f/processors-forum/1454190/tda4vh-q1-cpsw9g-interrupt。 CPSW9g有一个 Tx 和一个 Rx 中断CPSW9G 的 TX 和 Rx 中断来自 uDMA。
CPSW 最多可支持8个 Tx 通道和多个 Rx 流。 默认 启用8个 Tx 通道和1个 Rx 流。
每个 CPSW 端口在网络堆栈中都有单独的 netdev 注册、请参阅" am65_cpsw_nuss_register_ndevs " API。
TX 路径接口连接到端口、这些是定向流量、数据包将从该端口发送。
在 Rx PATH 中、CPSW 接受数据包(根据描述符标头信息)、将在驱动器中获取端口号并映射到要提交给应用程序的相应端口 ndev。
有关更多详细信息、请参阅
Rx 数据包:
am65_cpsw_nuss_rx_packets ()从 am65-cpsw-nuss 驱动程序进行 Rx 数据包处理、并提交到网络堆栈。
TX 数据包:
am65_cpsw_nuss_ndo_slave_xmit ()从 am65-cpsw-nuss 驱动程序进行 Tx 数据包处理、并提交到 DMA。
此致、
Sudheer
尊敬的 Sudheer:
CPSW9G 的 Tx 和 Rx 中断来自 uDMA
那么、只有一个中断吗? 还是可以有多个?
从这篇文章中、CPSW-3G 使用 VLAN 标记来区分端口、对 CPSW9g 是否相同?
您好!
[报价 userid="35100" url="~/support/processors-group/processors/f/processors-forum/1454190/tda4vh-q1-cpsw9g-interrupt/5578957 #5578957"]CPSW9G 的 TX 和 Rx 中断来自 uDMA
那么、只有一个中断吗? 还是可以有多个?
[报价]根据上述8个 Tx 通道-> 8个 Tx 中断、1个 Rx 流程-> 1个 Rx 中断、该序列可以是多个。
从这篇文章中、CPSW-3G 使用 VLAN 标记来区分端口、对 CPSW9g 来说是否相同?
否、如上所述、主机端口会在 uDMA 描述符中的 Tx 数据包信息中添加端口信息。
使用上面的、我们可以确定数据包来自哪个外部端口。
此致、
Sudheer
你(们)好
关于 Rx。 在 rx_poll 函数中、驱动程序可以通过获取数据的 port_id DESC_Rx . DMA 数据已经传输端口信息。 我还有其他问题
1、cpsw9g 有八个端口,端口是否共享一个 DMA 通道以将数据传输到 ringbuffer。 八个端口是否共享一个环状缓冲器。
2.网络协议是直接访问 ringbuff 数据还是复制 ringbuff 数据一次,然后释放 ringbuff。
谢谢
您好!
驱动程序可通过获取数据的 port_id DESC_Rx . DMA 数据已经传送端口信息[/QUOT]是从描述符驱动程序获取端口信息。
1、cpsw9g 有八个端口、这些端口是否共享一个 DMA 通道以将数据传输到 ringbuff。 八个端口是否共享一个 ringbuffer来自外部8个端口的数据将位于内部 主机端口 Tx FIFO 上、从主机到它将通过 DMA 到达驱动器。
是的、所有8个端口信息都将通过相同的环形缓冲器和相同的 DMA 通道传递。
2. 网络协议是直接访问 ringbuff 数据还是复制 ringbuff 数据一次然后释放 ringbuff驱动程序将在复制到 skb 缓冲区后释放环缓冲区以进行网络访问。
环形缓冲区不会共享给网络堆栈。
此致、
Sudheer
[/quote]
您好!
我发现驱动程序(SDK 10.00.00.08)请求8 common->txchns。
每个端口都有自己的 TX_CHN。 这是否意味着他们有自己的 DMA 通道和振铃缓冲器? 不共享同一信道。[/QUOT]有。 8个 Tx 通道、具有自己的环形缓冲区、但都复制到同一主机端口 Rx FIFO。
抱歉、通道选择基于从网络堆栈传递的软件队列。 驱动程序将向网络堆栈注册8个软队列。
我们可以将软队列映射到优先级、并为特定通道选择特定的优先级。
如果从多个端口发送相同的优先级、则所有这些都将使用相同的环形缓冲区通过相同的 Tx 通道发送到主机端口 Rx、即每个端口可以根据数据包优先级从所有8个 Tx 通道发送数据。
TX 描述符信息保存端口号、主机端口使用该端口号将数据包传输到相应端口。
更多详细信息、请参阅 slave_xmit API。[/quote]我们公司基于 SDK 09.01.00.06开发。 驱动程序仅请求 TX 通道、 这是否意味着它们也共享 ringbuffer/quote]是、即使在 Tx 侧、默认也会启用1个通道。
如果需要、可以使用 ethtool -L 选项更改 Tx 通道的节点。
有关查询/设置通道的更多详细信息、请参阅 SDK 文档。
https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j7200/10_00_07_03/exports/docs/linux/Foundational_Components /内核/ Kernel_Drivers Network05/CPSW2g.html#interrupt-bacing
查询频道:
#ethtool-l DEVNAME
设置通道:
# ethtool -L DevName
此致、
Sudheer