TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678, 如何在sys/bios的协议栈中添加两个MAC地址

大家好,

我想在sys/bios初始化网络时添加两个MAC地址,来实现两个虚拟的网络适配器收发数据。这几天看了sys/bios的源代码,但是没有找到什么好的思路,在nimu.c和nimu_eth.c中看到网卡初始化的代码。但是更改都不成功。

希望大家给点思路,同时希望TI的专家能提供下解决思路。

Andy Yin1:

您好,

从底层硬件来讲,6678有一个3-port Ethernet switch,可以配置每个port的MAC地址,但是这些MAC地址只是在flow control时使用,在收发数据时与配置的MAC地址无关;真正起作用的是EMAC中的ALE,以及PA的配置,在发送数据的时候由软件组包,可以是任意指定的MAC地址,然后可以根据ALE的配置由相应的port口发送;在接收时,可以根据ALE及PA的配置将携带不同MAC地址的数据接收到相应的core等。

至于你说的使用NDK如何配置,建议你可以在E2E上搜索并发表相应的帖子咨询,参考一个E2E的帖子:http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/112/p/11827/46329.aspx#46329

gun lee:

回复 Andy Yin1:

不好意思,这两天忙点其他的工作,回复晚了。

我尝试改了NDK的相应驱动,但是没改成功,其实最后发现还是对那部分驱动机制不熟,感觉在NDK中对网卡的初始化过程要比一般的直接配卡要复杂,可能是底层驱动要考虑很多东西吧。  您给的链接我看过了,最早我也想这么改,但是没有成功, 不知道是不是方法问题。

您可以提供NDK关于网卡初始化的流程简介么?就是类似于数据流程图,好帮我理解。 或者其他的建议也行。

谢谢。

 

gun lee:

回复 Kevin Cai:

谢谢您的回复,我试着改下。

qian cui:

回复 Kevin Cai:

你好, 我刚学习C6678,在自己的开发板上调试网 口,用的是SGMII1口,外接有PHY芯片。使用的是TI提供的helloword代码,经常回出现unregister the EMAC错误,不知道怎么解决?希望能给予帮助。
还有一个问题是测试时候使用的是gel文件初始化,现在改为在main函数里初始化。将gel里初始化的内容写到main函数里,但是在bios_start调用之前,这个顺序对么?
会出现调试时候无法跳转到main函数,但是核显示的是running状态,求指导?
还有就是偶尔跳转到mian函数后,初始化执行不了,例如init_mainpll时候调试就自动结束了?但是这些函数在写到gel文件里执行的时候是没有问题的,放到main里就不能执行了,希望能指导下?
非常感谢。

赞(0)
未经允许不得转载:TI中文支持网 » C6678, 如何在sys/bios的协议栈中添加两个MAC地址
分享到: 更多 (0)