Part Number:AM6442
目前需要开发一个基于cpsw模块的以太网端口,开发过程借鉴SDK的examples ,工程名为:enet_l2_cpsw_am64x-evm_r5fss0-0_freertos_ti-arm-clang。发现里边提供enet接口过于复杂,不符合项目的需要。
项目需要一个耦合性很低,功能简单的以太网端口,用于以太网帧的全双工收发即可。 开发过程中发现没有具体的资料,对cpsw的FIFO操作有过多说明。因此存在疑问,能否直接通过FIFO的操作,进行以太网端口的收发,如果可以,那么如何操作FIFO? 然后官方这边是否有一个功能简单的cpsw examples用于参考?
框图如下:
Gary Lu:
您好,我已咨询e2e工程师,这需要一些时间,谢谢!
,
s s:
好的谢谢,希望可以尽快得到回复。
,
Gary Lu:
s s said:因此存在疑问,能否直接通过FIFO的操作,进行以太网端口的收发
您好,
不,它不能读/写。
CPSW 的 FIFO 在 CPSW 之外不可访问。
,
s s:
那如何访问,是通过PKT DMA?我在TRM中,找不到方向了。我正在通过阅读TRM中的DMSS部分,尝试解决上述问题,但是暂时还没找到DMSS和CPSW之间的关系。
TRM的CPSW对访问的方式描述得很晦涩难懂,只提及了packet相关的描述,但是从仅仅到这里就没有下一步讲解了,我多次阅读TRM,但是完全没有头绪,比如以太网帧是如何收发的,从哪里进行的,CPPI在这过程中,起了什么作用,实在是太难以理解了,对此我感到特别的困惑。下图是cpsw访问FIFO的描述:
,
s s:
既然在CPSW之外无法访问, 那么CPSW端口数据的收发是如何进行呢, 可以指引我一个方向?
,
Gary Lu:
您好,已跟进
,
s s:
好的,非常感谢
,
Gary Lu:
请耐心等等
,
Gary Lu:
您好,
如TRM章节“12.2.1.4.6”所示,CPSW FIFO不能直接访问。应通过 CPPI 接口访问。
您可以参考 AM64x TRM 的“12.2.1.4.8 CPPI 流数据包接口”部分了解更多详细信息。
https://www.ti.com/lit/ug/spruim2g/spruim2g.pdf?ts=1695616494392&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FAM6442