基于OK335xS2增加了一个百兆网卡,新增加的网卡不工作
本帖最后由 shijunpu 于 2015-5-29 22:47 编辑修改内容:在OK335xS2的基础上,增加了一个百兆网卡(仍采用LAN8720A),原有的网卡(phyid:01)工作正常,但新增加网卡不工作。
网卡2在启动时未报错,ifconfig eth1也可以分配到ip和掩码;其他机器ping该机左边的绿色的灯也会闪,但就是ping无响应。
增加网卡2所做工作如下:
1.电路图修改:
拷贝自第一个正常的网卡,唯一的区别是将表示地址PHYAD0的引线RMII2-RXER接地(原来的是接3.3V电压拉高表示地址1,现在将第二个网卡接地,意欲表示地址0)。这样修改行不?
双网卡的原理图见附件
2.修改内核代码:
devices.c,修改am33xx_cpsw_init函数,
#define RMII1_IO_CLK_EN 0x0040
gmii_sel |= (RMII1_IO_CLK_EN);
改为
#define RMII1_IO_CLK_EN 0x0040
#define RMII2_IO_CLK_EN 0x0080
gmii_sel |= (RMII1_IO_CLK_EN);
gmii_sel |= (RMII2_IO_CLK_EN);
增加:
am33xx_cpsw_slaves.phy_id = "0:01";
am33xx_cpsw_slaves.phy_id = "0:00";
3. pin脚设置修改,board-am335xevm.c文件
参考RMII1的pin脚设置RMII2的各个pin脚,定义第二个网卡如下:
static struct pinmux_config rmii2_pin_mux[] = {// added by sjp
{"gpmc_csn3.rmii2_crs_dv", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
{"gpmc_wpn.rmii2_rxerr", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLDOWN},
{"gpmc_a0.rmii2_txen", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
{"gpmc_a4.rmii2_txd1", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
{"gpmc_a5.rmii2_txd0", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
{"gpmc_a10.rmii2_rxd1", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLDOWN},
{"gpmc_a11.rmii2_rxd0", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLDOWN},
{"mii1_col.rmii2_refclk", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
{"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
{NULL, 0},
};
并在static void net_init(int evm_id, int profile)函数中增加setup_pin_mux(rmii2_pin_mux);的调用
正常启动后,ifconfig能看到eth0,虽然看不到eth1,但可以通过ifconfig配置ip(和eth0不同的网段)。且插入网线后,控制台也能显示eth1 up。但eth1就是和外面机器互相ping不通
不确定地方:
两个网卡的id还是保留了相同的PHYID定义,#define AM335X_EVM_PHY_ID 0x7c0f0 ,不知道有没有影响?
那位大虾知道还需要改别的地方吗? 遇到了同样的问题,楼主问题解决了嘛 我这个问题已经解决 想问下是什么问题造成的? /etc/network/inte**ce文件是配置以太网节点的 liwx 发表于 2018-7-26 11:51
我这个问题已经解决
你好,相同问题,请问你是怎么解决的? 曲奇龙 发表于 2021-10-12 13:31
你好,相同问题,请问你是怎么解决的?
参考一下这个配置,感觉配置是没有问题的 ping不通其他设备检查一下设备是否有防火墙http://bbs.witech.com.cn/portal.php?mod=view&aid=482 本帖最后由 曲奇龙 于 2021-10-12 16:18 编辑
ljb2019001 发表于 2021-10-12 15:34
参考一下这个配置,感觉配置是没有问题的 ping不通其他设备检查一下设备是否有防火墙http://bbs.witech.c ...
就是参考这个知识库来的
新增了板级文件的rmii2_pin_mux,并setup_pin_mux(rmii2_pin_mux);
修改了phy_id顺序,原本eth0的地址是1,自制底板eth0的地址是0,eth1的地址是1
新增了slave配置am33xx_cpsw_slaves.phy_if = PHY_INTE**CE_MODE_RMII; am33xx_cpsw_slaves.phy_if = PHY_INTE**CE_MODE_RMII;
修改了寄存器
#define RMII_IO_CLK_EN 0x00C0
gmii_sel |= (RMII_IO_CLK_EN);
然而还是ping不通static struct pinmux_config rmii2_pin_mux[] = {
{"gpmc_csn3.rmii2_crs_dv", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
{"gpmc_wpn.rmii2_rxerr", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLDOWN},
{"gpmc_a0.rmii2_txen", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
{"gpmc_a4.rmii2_txd1", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
{"gpmc_a5.rmii2_txd0", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
{"gpmc_a10.rmii2_rxd1", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLDOWN},
{"gpmc_a11.rmii2_rxd0", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLDOWN},
{"gmii1_col.rmii2_refclk", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
{"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
{NULL, 0},
};static struct cpsw_slave_data am33xx_cpsw_slaves[] = {
{
.slave_reg_ofs= 0x200,
.sliver_reg_ofs = 0xd80,
.phy_id = "0:00",
.dual_emac_reserved_vlan = CPSW_PORT_VLAN_SLAVE_0,
},
{
.slave_reg_ofs= 0x300,
.sliver_reg_ofs = 0xdc0,
.phy_id = "0:01",
.dual_emac_reserved_vlan = CPSW_PORT_VLAN_SLAVE_1,
},
};#define RMII_IO_CLK_EN 0x00C0
gmii_sel |= (RMII_IO_CLK_EN);
eth1 up起来了吗,eth1默认是没有开启的,ping不通有什么打印信息吗 ljb2019001 发表于 2021-10-12 16:51
eth1 up起来了吗,eth1默认是没有开启的,ping不通有什么打印信息吗
都可以up起来,插拔网线也都有反应。eth1自己ping自己也ping的通 eth0和eth1是在不同网段吧,ping的是什么设备,设备有防火墙吗 ljb2019001 发表于 2021-10-13 08:51
eth0和eth1是在不同网段吧,ping的是什么设备,设备有防火墙吗
ping的路由器,没有防火墙 现在建议一个一个测试,代码先初始化一组,确定ping通了,再初始另一组,最后两组再一起测试 有收获~~~~~~~~~ 曲奇龙 发表于 2021-10-13 08:03
都可以up起来,插拔网线也都有反应。eth1自己ping自己也ping的通
解决了吗?同样的问题 liwx 发表于 2018-7-26 11:51
我这个问题已经解决
怎么解决的? 335x系列配置LAN8720的可以参考一下:http://bbs.witech.com.cn/portal.php?mod=view&aid=482
页:
[1]