1.cpu主控:rk3399;
2.交换机芯片marvell mv88e6390(8个电口+2光口);
3.rk399通过RGMII与marvell mv88e6390 p0 rgmii连接,port0做数据转发口,实现带管理的路由器功能(port1作WAN,port2-port10做LAN)
实现步骤:
3.1.硬件调试,保证6390本身工作起来,通过rj45与电脑相连可以做傻瓜交换机使用;
3.2.rgmii调试: cpu gmac没有接phy,一定要强制为1000M,6390也要强制为1000M,保证两边速度一致:
rk3399端:
此处略去50字......
6390端:
此处略去50字......
其实可以用示波器量rgmii clk的频率 :
clk=2.5Mhz为10M网络;
clk=25Mhz为100M网络;
clk=125Mhz为千兆网络;
3.3: 由于6390不对外产生125M clk,需要rk3399内部产生125M clk(gmac配置为"output");
进入系统后确认是否会生成网络结点eth0,确认能收到广播包:
如果只有发送包,而没有接收包,可以考虑配置下tx/rx delay;
tx_delay = <0x2f>;
rx_delay = <0x24>;
3.4:
正常后可以获得ip试下:udhcpc -i eth0
4. 划分vlan,使用iptables实现路由功能:
4.1 通过tag based vlan将marvell mv88e6390划分为vlan1(wan (port1))+vlan2(lan (port2-port10));这个是花了4500块大洋找原厂定制的。
4.2 用vconfig实现 vlan网桥;
4.3 通过iptables 实现wan/lan数据转发
5.使用marvell mv88e6390内部功能实现MAC bindsing/Speed 控制;
6.linux ip层实现路由转发功能;