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

使用GE例子,只能收到broadcast包,收不到其他报

使用开发板,把GE改了一下与PC通信,在ale设置成 ALE_BYPASS中断能收到所有包,

设置成ALE_RECEIVE_ALL时中断只能收到broadcast包,其他包收不到,但是RXGOODFRAMES一直在增加

请问怎么设置才能只收Dest_MAC_address和Source_MAC_address地址匹配的数据包

或者收到的其他包发送到哪去了

Thomas Yang1:

需要配置ALE TABLE ENTRY,将MAC地址和PORT映射起来,具体请参考EMAC userguide 2.3.6 Address Lookup Engine (ALE) Submodule Architecture 章节

xd zhang:

回复 Thomas Yang1:

void ALE_Entries_Init(ALE_Test_Mode ALE_test_mode){ int i;

if(ALE_BYPASS==ALE_test_mode) return;

for(i=0; i<GE_NUM_ETHERNET_PORT; i++) { ALE_entries[i].macAddress[0]= (_hill(Dest_MAC_address[i])>>8)&0xFF; ALE_entries[i].macAddress[1]= (_hill(Dest_MAC_address[i])>>0)&0xFF; ALE_entries[i].macAddress[2]= (_loll(Dest_MAC_address[i])>>24)&0xFF; ALE_entries[i].macAddress[3]= (_loll(Dest_MAC_address[i])>>16)&0xFF; ALE_entries[i].macAddress[4]= (_loll(Dest_MAC_address[i])>>8)&0xFF; ALE_entries[i].macAddress[5]= (_loll(Dest_MAC_address[i])>>0)&0xFF;

ALE_entries[i].portNumber= 0; //all packect are received to host port (0) ALE_entries[i].ucastType = ALE_UCASTTYPE_UCAST_NOAGE; ALE_entries[i].secureEnable = 0; ALE_entries[i].blockEnable = 0; }

ale_cfg.unicastEntries= ALE_entries; ale_cfg.num_unicastEntries= GE_NUM_ETHERNET_PORT; ge_cfg.ale_cfg= &ale_cfg;}

就是和例子设置一样的,不对吗,还要怎么设置,

你说的那个是不是在Gigabit Ethernet (GbE) Switch Subsystem上面,我看了寄存器,和设置的一样

Thomas Yang1:

回复 xd zhang:

那你看下HOST PORT的统计是什么状态?前面您说的在增加指的是SGMII port的?

xd zhang:

回复 Thomas Yang1:

看了下手册,GbE3.5.3,是Ethernet switch里面的Statistics (STATS) Submodule

对应的应该是PORT2口的统计

Thomas Yang1:

回复 xd zhang:

那你检查下host port(port 0)端口 统计模块 收发是否正常

xd zhang:

回复 Thomas Yang1:

看了STATS,没有收到任何包

Thomas Yang1:

回复 xd zhang:

那另外一个SGMII 口呢?此时EMAC有没有向网络发PAUSE帧?

赞(0)
未经允许不得转载:TI中文支持网 » 使用GE例子,只能收到broadcast包,收不到其他报
分享到: 更多 (0)