imx6ul 开机外部ping不通,失败几次之后可以

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6ul 开机外部ping不通,失败几次之后可以

2,369 Views
haifeng_jin
Contributor III

hi  ,imx6ul 开机外部ping不通,失败几次之后可以,每次reboot或者断电上电都有这个现象,大家不知道遇到过没有,奇怪的很,不知道是什么问题

Labels (1)
0 Kudos
4 Replies

2,233 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi, Haifeng,

    这个现象,要这样检查一下:

1. reboot之后,ethernet是不是在up状态。

2. reboot之后,ethernet PHY的工作时钟有没有出来。

3. reboot之后,PHY的reset脚是不是已经拉起来了。

4. reboot之后,loop back自己ping自己行不行。

5. 在失败几次后,上面的时钟和reset脚电平,是否由不正常到正常。

如果上面这些都是对的,那么你改变一下方式再做实验:

1. 可以ping其他几个不同的主机

2. 用其他机器ping板子

这个现象目前还没有客户提到,所以,你可以请客户在EVK上做一下测试。

Have a nice day!

BR,

Weidong

0 Kudos

2,233 Views
haifeng_jin
Contributor III

EVK上也是link up信息看到后,也是开始ping不通,要ping几次后才可以

0 Kudos

2,233 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Haifeng,

   u-boot 中的修改,不会影响到linux内核里fec_mail.c的加载和初始化。所以,你修改的地方影响不到网络。

(1)你看看2个网卡的MAC地址是不是相同了。如果相同,会有问题的。

(2)L4.19.35的内核刚刚发布出来,你在EVK上测试一下这个版本的内核,看2个ENET的情况。

(3)另外,针对目前正在用的4.1.15的BSP,先不用ping方法测试,可以写一个简单的网络应用,用socket方法,分别使用2个不同的网口互相对传数据,或者和PC通信。 看会不会影响到客户应用。

Have a nice day!

BR,

Weidong

0 Kudos

2,233 Views
haifeng_jin
Contributor III

hi  谢谢,比较奇怪,我两块6ull,用的代码是4.1.15——2.1.0,uboot中唯一修改的如下,其他都没动,然后一根网线插网络1,一根网线插另外一块板子的网络2,发现会出现网络1始终ping不通,或者网络2始终ping不通,要一路拔掉,另外一路就可以了,非常奇怪。

static void setup_iomux_fec(int fec_id)
{
//if (fec_id == 0)
imx_iomux_v3_setup_multiple_pads(fec1_pads,
ARRAY_SIZE(fec1_pads));
//else
imx_iomux_v3_setup_multiple_pads(fec2_pads,
ARRAY_SIZE(fec2_pads));
}

int board_eth_init(bd_t *bis)
{
setup_iomux_fec(CONFIG_FEC_ENET_DEV);

return fecmxc_initialize_multi(bis, CONFIG_FEC_ENET_DEV,
CONFIG_FEC_MXC_PHYADDR, IMX_FEC_BASE);
}

static int setup_fec(int fec_id)
{
struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
int ret;
puts("Board:jhf------------------- EVK\n");
//if (fec_id == 0) {
//if (check_module_fused(MX6_MODULE_ENET1))
// return -1;

/*
* Use 50M anatop loopback REF_CLK1 for ENET1,
* clear gpr1[13], set gpr1[17].
*/
clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC1_MASK,
IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK);
//} else {
//if (check_module_fused(MX6_MODULE_ENET2))
// return -1;

/*
* Use 50M anatop loopback REF_CLK2 for ENET2,
* clear gpr1[14], set gpr1[18].
*/
clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC2_MASK,
IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
//}

ret = enable_fec_anatop_clock(fec_id, ENET_50MHZ);
if (ret)
return ret;

enable_enet_clk(1);

return 0;
}

0 Kudos