weixin_42129655 2023-12-29 16:54
浏览 154
已结题

关于RTL8367rb芯片使用的疑问

关于交换机芯片RTL8367rb的问题

请教各位,现在正在调试linux 5.10的内核 + 8367rb这个芯片。目前驱动已经能够加载(从6.6的驱动获取)。
8367rb的使用情况如下:
5个port用了前面的4个,系统里面显示是 lan0 到 lan3。
连接CPU的是第二个额外接口,是rgmii接口。系统里面显示的是 eth1。
现在存在以下问题:
问题1:
假设 lan0 和 lan3 都接入了PC,PC的网段一致。在固件阶段的时候,两台PC能够互相ping通。但是在系统启动,驱动加载后,两台PC不能ping通。即使构建了网桥,也一样不行。
问题2:
假设 lan0 接入了PC,配置eth1或者lan0的网段和PC的一样后,想在板卡ping通PC或者PCping通板卡,暂时两者都不行。

针对问题1,看到8367rb的驱动里面初始化的时候,会设置用到的port的属性(rtl8365mb_port_set_isolation 函数),里面的注释写的是,只转发给CPU port,也就是eth1。如果这里不去设置(采用默认值),那么两台PC就能Ping通,默认值应该是全部port都能转发。

针对问题2,假设是PC 尝试ping板卡,发现eth1对应的stmmac的中断是有反应的。然后eth1的stmmac_xmit的发送动作是有执行的,tcpdump也是可以看到收到的ICMP报文。但是网口上的数据灯没闪烁,应该是交换芯片没发出去。而板卡尝试ping PC,同样的stmmac_xmit的发送动作是有执行的,是先执行了dsa_slave_xmit,然后才执行stmmac_xmit。但是网口上的数据灯不闪烁,PC上打开wireshark也显示没收到相关报文。

综合以上两个目前的发现,认为是CPU port给到8367rb的报文在8367rb没有发送出去,导致问题的出现。

因为驱动是从6.6.8里面拿的,担心是不是有部分的移植没做。或者说系统要进行什么设置才能正常使用这个交换芯片(第一次接触交换芯片,相关知识不太够)。

还望各位不吝赐教,十分感谢!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月6日
    • 创建了问题 12月29日