shijunpu 发表于 2015-5-29 17:37:37

基于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 ,不知道有没有影响?

那位大虾知道还需要改别的地方吗?

liwx 发表于 2018-6-21 14:49:24

遇到了同样的问题,楼主问题解决了嘛

liwx 发表于 2018-7-26 11:51:09

我这个问题已经解决

chemist 发表于 2020-11-10 13:30:41

想问下是什么问题造成的?

ljb2019001 发表于 2020-11-20 17:05:59

/etc/network/inte**ce文件是配置以太网节点的

曲奇龙 发表于 2021-10-12 13:31:47

liwx 发表于 2018-7-26 11:51
我这个问题已经解决

你好,相同问题,请问你是怎么解决的?

ljb2019001 发表于 2021-10-12 15:34:51

曲奇龙 发表于 2021-10-12 13:31
你好,相同问题,请问你是怎么解决的?

参考一下这个配置,感觉配置是没有问题的 ping不通其他设备检查一下设备是否有防火墙http://bbs.witech.com.cn/portal.php?mod=view&aid=482

曲奇龙 发表于 2021-10-12 16:16:13

本帖最后由 曲奇龙 于 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);

ljb2019001 发表于 2021-10-12 16:51:03

eth1 up起来了吗,eth1默认是没有开启的,ping不通有什么打印信息吗

曲奇龙 发表于 2021-10-13 08:03:55

ljb2019001 发表于 2021-10-12 16:51
eth1 up起来了吗,eth1默认是没有开启的,ping不通有什么打印信息吗

都可以up起来,插拔网线也都有反应。eth1自己ping自己也ping的通

ljb2019001 发表于 2021-10-13 08:51:51

eth0和eth1是在不同网段吧,ping的是什么设备,设备有防火墙吗

曲奇龙 发表于 2021-10-18 09:25:27

ljb2019001 发表于 2021-10-13 08:51
eth0和eth1是在不同网段吧,ping的是什么设备,设备有防火墙吗

ping的路由器,没有防火墙

ljb2019001 发表于 2021-10-18 11:27:50

现在建议一个一个测试,代码先初始化一组,确定ping通了,再初始另一组,最后两组再一起测试

lilonghui920 发表于 2021-10-28 18:48:29

有收获~~~~~~~~~

fzcubuntu 发表于 2022-5-25 09:55:47

曲奇龙 发表于 2021-10-13 08:03
都可以up起来,插拔网线也都有反应。eth1自己ping自己也ping的通

解决了吗?同样的问题

fzcubuntu 发表于 2022-5-25 09:57:06

liwx 发表于 2018-7-26 11:51
我这个问题已经解决

怎么解决的?

ljb2019001 发表于 2022-5-26 08:53:47

335x系列配置LAN8720的可以参考一下:http://bbs.witech.com.cn/portal.php?mod=view&aid=482
页: [1]
查看完整版本: 基于OK335xS2增加了一个百兆网卡,新增加的网卡不工作