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.

[参考译文] TDA4VM:CPSW2G:FIFO

Guru**** 2460850 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos

器件型号:TDA4VM

工具与软件:

尊敬的 TI:

我正在使用裸机开发自己的 cpsw2g 驱动程序。

我对 CPSW2G FIFO 有一些疑问、具体如下:

  1. 为什么 FIFO 存储器大小在 FIFO 存储器控制(TRM:12.2.1.4.6.5)和 接收 FIFO 架构(TRM:12.2.1.4.6.10.5)中不同?
  2. 数据流是如何在考虑 Tx (0-7)优先级队列的情况下通过 MAC 端口 FIFO 发生的?

期待收到您的回复。

此致、
Hasan

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos "]为什么 FIFO 存储器大小在 FIFO 存储器控制中(TRM:12.2.1.4.6.5)与 接收 FIFO 架构(TRM:12.2.1.4.6.10.5)不同?

    FIFO 存储器控制(TRM:12.2.1.4.6.5)根据 IP 是正确的。
    TRM:12.2.1.4.6.10.5 的 FIFO 块大小为4K。

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos "]考虑到 Tx (0-7)优先级队列、数据流是如何穿过 MAC 端口 FIFO 的?[/QUOT]

    根据默认寄存器映射、数据包将根据数据包中的 PCP 转发到优先级队列(0-7)。
    所有非优先级数据包都将转发到优先级为0的队列。

    从内部内核到外部端口队列接收到主机端口的数据包、以及从外部端口到主机端口 Tx 队列接收到的类似数据包。


    此致、
    Sudheer

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

    尊敬的 Sudheer:

    TRM:12.2.1.4.6.10.5将从数据包存储器一品脱视图

    能否从数据包存储的角度进一步解释一下?

    所有非优先级数据包都将转发到优先级为0的队列。

    为什么会这样呢? 为什么非优先级数据包不使用任何其他优先级队列? 从硬件的角度来看、它是固定的吗?


    为什么主机端口的优先级队列没有寄存器? 优先级队列设置是否退出主机端口?

    期待收到您的回复。

    此致、
    Hasan

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5662538 #5662538"]
    TRM:12.2.1.4.6.10.5将从数据包存储器一品脱

    能否从数据包存储的角度进一步解释一下?

    [报价]

    这将 是具有4KB FIFO 块大小的 CPSW 架构观点  
    但 CPSW IP 具有1KB FIFO 块大小、因此20KB 是 Tx 和 Rx 每个端口的总 FIFO 大小。

    所有优先级0至7的缺省值16KB 被分配给 Tx、而4KB 被分配给 Rx。
    您可以使用 TX_PRX_MAXLEN_REG 为单个优先级分配整个存储器。

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5662538 #5662538"]
    所有非优先级数据包都将转发到优先级为0的队列。

    为什么会这样呢? 为什么非优先级数据包不使用任何其他优先级队列? 从硬件的角度来看、它是固定的吗?

    [报价]

    如果传入的数据包是 VLAN 数据包、则将从 PCP 中选择优先级。
    如果数据包未标记且 VLAN 未识别模式、则优先级被视为 Port-VLAN 寄存器优先级、默认为0、因此数据包将转发到 Queue-0。

    为什么主机端口没有优先级队列寄存器? 是否退出主机端口的优先级队列设置?

    在从外部端口接收基于优先级的数据包的数据时、主机端口也存在优先级队列、这些数据包将被转发到主机端口优先级队列。

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    从基于优先级的外部端口接收数据包时、主机端口也存在优先级队列、这将转发到主机端口优先级队列。

    是否有任何位置可以修改为主机端口的 TX 优先级队列分配的大小?

    20KB 是每个端口的总 FIFO 大小

    如何为主机端口分配 TX 和 Rx 的大小? 对于 Tx 为10kB、主机端口为10kB、Rx 为10kB 的实例?

    如何将所有10 KB 分配给主机端口的 TX 优先级队列0?

    期待收到您的回复。


    此致、
    Hasan

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5663332 #5663332"]
    在从外部端口接收基于优先级的数据包的数据时、主机端口也存在优先级队列、这些数据包将被转发到主机端口优先级队列。

    是否有任何位置可以修改为主机端口的 TX 优先级队列分配的大小?

    [报价]

    否 我们无法更改"主机端口"。
    我们只能为外部端口进行更改。 此外、我们可以为 Tx FIFO 和 Rx FIFO 选择多少、而不是为每个优先队列选择多少。
    CPSW_PN_MAX_BLKS_REG 用于为 Rx 选择多少个块、为 Tx 选择多少个块。
    Tx 默认为16、Rx 默认为4。

    如何为主机端口分配 TX 和 Rx 的大小? 对于 Tx 为10kB、主机端口为10kB、Rx 为10kB 的实例?

    此外、如何将所有10 KB 分配给主机端口的 TX 优先级队列0?

    我们已获悉无法控制主机端口缓冲区分配。
    仅供参考、由于主机端口的运行速度比外部端口快得多、因此无需在主机端口保持更多的缓冲器。

    您可以在应用软件中定义所需的 no.of buffers 而不是 H/W buffers。

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    ]对于所有优先级为0到7的 Tx 分配了默认的16KB 并为 Rx 分配了4KB。
    您可以使用 TX_PRix_MAXLEN_REG[/QUOT]将整个存储器分配给单个优先级

    这意味着我可以将全部16KB 分配给单个优先级吗?


    此致、
    Hasan

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5666726 #5666726"]
    所有优先级0至7的缺省值16KB 被分配给 Tx、而4KB 被分配给 Rx。
    您可以使用 TX_PRX_MAXLEN_REG 为单个优先级分配整个存储器

    这意味着我可以将全部16KB 分配给单个优先级吗?

    [报价]

    不可能将整个16KB 作为单个优先级、我们尚未对此进行测试。
    基本上、上述寄存器将限制 CPSW 优先级的最大帧大小、但 CPSW 可支持的最大2024帧大小、无法支持。
    因此、您必须在寄存器上方配置每个优先级的 最大值、为2024、而不是超过该值。

    如上所述、您可以在应用程序中管理 S/W 缓冲器、并按原样使用 CPSW 端口的默认存储器。

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    根据通知、我们无法控制主机端口缓冲区分配。
    仅供参考、由于主机端口的运行速度比外部端口快得多、因此无需在主机端口保持更多的缓冲区。

    在这种情况下、为主机端口的 Tx 和 Rx 缓冲区分配了多少存储器?


    如果数据包未标记且 VLAN 未识别模式、则优先级被视为 Port-VLAN 寄存器优先级默认为0、因此数据包将转发到 Queue-0。

    我正在传输无标记和 VLAN 不识别模式的数据包。 由于所有数据包都将从 Tx 优先级队列0发送、并且我们具有最大值  TX_PRX_MAXLEN_REG 的2024字节限制。

    问题:

    1. 是否建议为 Tx 缓冲区分配2KB (所有 TX_PRI0_MAXLEN_REG 其他队列设置为0)、为 Rx 缓冲区分配18KB?

    2. 以太网数据包如何通过交换结构从 MAC 端口的 Rx 缓冲区传输到分配的内存、然后传输到主机端口?
      例如、在 OCRAM 中、我为从 CAONE 接收的以太网数据包分配了9 KB (每个1.5 KB 的6个以太网帧的空间)的内存。 由于 MAC 端口的 Rx 缓冲区是18 KB 、我从 CAUKE 发送了12个以太网帧、每个帧1.5 KB。 所有帧都在 MAC 端口的 Rx 缓冲区中接收、 OCRAM 中接收到6个数据包、其余6个数据包会发生什么情况?

      当我使用 DMA 检索 Rx 帧并使用旧的6个数据包时、它们是否会保留在 MAC 端口的 Rx 缓冲区中并传输到 OCRAM?

      是 MAC 端口的 Rx 缓冲区的工作方式、还是缺少一些细节?


    此致、
    Hasan

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5667161 #5667161"]
    我们已获悉无法控制主机端口缓冲区分配。
    仅供参考、由于主机端口的运行速度比外部端口快得多、因此无需在主机端口保持更多的缓冲器。

    在这种情况下、为主机端口的 Tx 和 Rx 缓冲区分配了多少存储器?

    [报价]

    如前所述、默认情况下、20KB 的分配为 Tx 16KB 和 Rx 4KB。

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5667161 #5667161"]是否建议为 Tx 缓冲区分配2KB (所有为 TX_PRI0_MAXLEN_REG 的其他队列设为0)以及为 Rx 缓冲区分配18KB?

    主机端口没有此类分配、此类分配对于 Tx 为16KB、对于 Rx 为4KB。
    当大小大于 MAXLEN_REG 中指定的值时、将丢弃上述数据包。 它不会决定 FIFO 的大小。

    以太网数据包如何通过交换结构从 MAC 端口的 Rx 缓冲区传输到已分配的内存、然后传输到主机端口?
    例如、在 OCRAM 中、我为从 CAONE 接收的以太网数据包分配了9 KB (每个1.5 KB 的6个以太网帧的空间)的内存。 由于 MAC 端口的 Rx 缓冲区是18 KB 、我从 CAUKE 发送了12个以太网帧、每个帧1.5 KB。 所有帧都在 MAC 端口的 Rx 缓冲区中接收、 OCRAM 中接收到6个数据包、其余6个数据包会发生什么情况?

    当我使用 DMA 检索 Rx 帧并使用旧的6个数据包时、它们是否会保留在 MAC 端口的 Rx 缓冲区中并传输到 OCRAM?

    是 MAC 端口的 Rx 缓冲区的工作方式、还是缺少一些细节?

    是的、您的低估是正确的。 数据流的工作方式如您所述、但 FIFO 的大小与我在前面提到的不同。

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    这个问题与 MAC 端口 FIFO 有关。

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5667161 #5667161"]
    如果数据包未标记且 VLAN 未识别模式、则优先级被视为 Port-VLAN 寄存器优先级、默认为0、因此数据包将转发到 Queue-0。

    我正在传输无标记和 VLAN 不识别模式的数据包。 由于所有数据包都将从 Tx 优先级队列0发送、并且我们具有最大值  TX_PRX_MAXLEN_REG 的2024字节限制。

    问题:

    1. 是否建议为 Tx 缓冲区分配2KB (所有 TX_PRI0_MAXLEN_REG 其他队列设置为0)、为 Rx 缓冲区分配18KB?
    [报价]
    1. 是否建议为 Tx 缓冲区分配2KB (所有 TX_PRI0_MAXLEN_REG 其他队列设置为0)、为 Rx 缓冲区分配18KB?
      或者我应该使用 MAC 端口 FIFO 的默认设置(16KB Tx 缓冲区和4KB Rx 缓冲区)?

    此致、
    Hasan

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5669638 #5669638"]
    1. 是否建议为 Tx 缓冲区分配2KB (所有 TX_PRI0_MAXLEN_REG 其他队列设置为0)、为 Rx 缓冲区分配18KB?
    1. 是否建议为 Tx 缓冲区分配2KB (所有 TX_PRI0_MAXLEN_REG 其他队列设置为0)、为 Rx 缓冲区分配18KB?
      或者我应该使用 MAC 端口 FIFO 的默认设置(16KB Tx 缓冲区和4KB Rx 缓冲区)?
    [报价]

    您可以使用 CPSW_PN_MAX_BLKS_REG 寄存器将块的 no.of 分配更改为 MAC 端口的 Tx 和 Rx。

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    我想澄清另一个有关 Mac 端口中 Tx 缓冲区的疑问。 我已将  TX_PRI0_MAXLEN_REG 设置为2024。 我仅在 VLAN 不可识别模式下传输非 VLAN 标记的数据包和 cpsw。 因此、通过 TX_PRI0_MAXLEN_REG 进行所有传输。

    1. 考虑一种情况、我为 MAC 端口 Tx 缓冲区分配了2KB 的空间。 我会不断使1.5kB 以太网数据包进入 uDMA 队列进行传输。 如何在 MAC 端口 Tx 缓冲区上进行传输?

      例如、 Tx 优先级队列0是否会逐个发送以太网数据包、先发送1.5kB、再发送0.5kB 保持不分配、其他数据包也是如此。

       Tx 优先级队列0是否将发送以太网数据包、如首先进行1.5kB 传输 剩余0.5kB 将填充数据包2的数据、对于优先级队列的第2个 GO、1kB 用于第2个以太网数据包的剩余数据、依此类推


    2. 当 TX_PRI0_MAXLEN_REG 最多只能使用2024个字节时、将 Tx 缓冲区用于 MAC 端口的用例是什么?

    此致、
    Hasan

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5670081 #5670081"]当 TX_PRI0_MAXLEN_REG 最多只能使用2024字节时、MAC 端口的 Tx 缓冲区有何用例?[/QUOT]

    其目的是限制数据包大小、使其不超过指定的数量、但 Tx 缓冲区可以大于该值、以便在 H/W FIFO 上容纳更多数据包。

    考虑一种为 MAC 端口 Tx 缓冲区分配2KB 的情况。 我会不断使1.5kB 以太网数据包进入 uDMA 队列进行传输。 如何在 MAC 端口 Tx 缓冲区上进行传输?

    例如、 Tx 优先级队列0将逐个发送以太网数据包、先发送1.5 KB、然后再发送0.5 KB 不使用、其他数据包也是如此。[/QUOT]

    根据知识、内部 H/W 将以上述方式工作、即如果整个数据可以容纳在 FIFO 中、则只会启动传输。

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    [报价 userid="540868" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5669514 #5669514"]
    我们已获悉无法控制主机端口缓冲区分配。
    仅供参考、由于主机端口的运行速度比外部端口快得多、因此无需在主机端口保持更多的缓冲器。

    在这种情况下、为主机端口的 Tx 和 Rx 缓冲区分配了多少存储器?

    如前所述、默认情况下、20KB 的分配为 Tx 16KB 和 Rx 4KB。

    [报价]

    如前所述、CPSW2G 中的主机端口有固定大小的 FIFO。 但是 TRM 在上面的寄存器定义中说、主机端口没有 Tx FIFO?

    此致、
    Hasan

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

    您好!  

    如前所述、CPSW2G 中的主机端口有一个固定大小的 FIFO。 但是 TRM 在上面的寄存器定义中指出、主机端口没有 Tx FIFO?[/QUOT]

    以上信息可能是错误的、让我与我们的 IP 所有者确认相同。  

    此致、  

    Sudheer

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

    尊敬的 Sudheer:

    期待收到您的回复。

    此致、
    Hasan

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

    您好!

    我已要求我们的知识产权团队确认上述情况、一旦我收到他们的更新、我们将与您分享。

    此致、
    Sudheer

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

    您好!

    根据 IP 组的信息、它有几个内存块用于 处理从外部端口发送到主机端口的数据包。
    它与外部端口 Tx FIFO 不同、即 CPSW2G 中为16KB、对于 CPSW5G/CPSW9G、它具有16KB、因为在 CPSW2G 中、只有单个外部端口入口可以进入主机端口、因此在 TRM 中被称为不是 TXFIFO。

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    根据 IP 团队提供的信息、它有几个内存块用于 将从外部端口发送的数据包发送到主机端口。

    您能告诉我这几个内存块有多大? 4KB 还是8KB?

    然后为 Rx 主机端口 FIFO 分配了多少存储器空间?

    此致、
    Hasan  

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

    您好!

    [报价 userid="557709" url="~/support/processors-group/processors/f/processors-forum/1475124/tda4vm-cpsw2g-fifos/5680651 #5680651"]
    根据 IP 组的信息、它有几个内存块用于 处理从外部端口发送到主机端口的数据包。

    您能告诉我这几个内存块有多大? 4KB 还是8KB?

    然后为 Rx 主机端口 FIFO 分配了多少存储器空间?

    [报价]

    它能够避免前一个数据包溢出、即至少有两个数据包可以管理一个数据包正在转发、另一个数据包可以接受下一个数据包。
    而不是16KB 和4KB。

    如果您想按照之前的建议存储数据包、请在 S/W 中存储内存

    此致、
    Sudheer

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

    尊敬的 Sudheer:

    根据我们在这个 TT 中进行的整个讨论、我根据我对 CPSW2G FIFO 的底层描述分享一张图片。
    请您确认我的理解是否正确吗? 如果没有、您能否建议对建议的图进行更改?




    此致、
    Hasan

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

    您好!

    根据我们在这张票证中的整个讨论、我正在根据我对 CPSW2G FIFO 的欠载分享一张图片。
    请您确认我的理解是否正确吗? [报价]

    是的、您的理解是正确的。

    此致、
    Sudheer