eth1 not working, Linux 4.1.15

  • Using the last 4.1.15 kernel from F+S, eth1 does not work. eth0 works properly.
    May be related to some DTS Hardware binding issues for eth1 ?



    H. Euzenot
    Garderos




    # ifconfig eth1 up
    ifconfig: SIOCSIFFLAGS: No such device


    # ifconfig -a
    can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    NOARP MTU:16 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:10
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    Interrupt:27


    can1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    NOARP MTU:16 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:10
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    Interrupt:28


    eth0 Link encap:Ethernet HWaddr 00:05:51:0C:43:17
    BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


    eth1 Link encap:Ethernet HWaddr 00:05:51:0C:43:18
    BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


    sit0 Link encap:IPv6-in-IPv4
    NOARP MTU:1480 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


    # uname -a
    Linux fsimx6ul 4.1.15-F+S #1 PREEMPT Fri Aug 19 23:48:41 CEST 2016 armv7l GNU/Linux

  • Dear Mr. Euzenot,


    which release version do you use?
    Can you post or append your devicetree?


    Best Regards
    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • The dtb file is the one provided in f+s software package (sdcard-fsimx6ul-V2.0.tar.bz2) unchanged. Same for the kernel and the rootfs.
    Attached the dtb file.

  • Okay do you use the same U-Boot which is in the package sdcard-fsimx6ul-V2.0.tar.bz2?
    Which U-Boot version do you have?
    Normally you should have this U-Boot.



    Best Regards
    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • I have just updated u-boot: problem persists and
    now eth1 becomes always a random mac address in Linux.
    Do I need some additional U-boot environment variables maybe ?


    Here under is boot & print-a log of my u-boot


    U-Boot 2014.07 (Aug 19 2016 - 23:07:47) for F&S


    CPU: Freescale i.MX6UL rev1.0 at 396 MHz
    Reset: WDOG
    Board: efusA7UL Rev 1.10 (LAN, 1x DRAM)
    DRAM: 256 MiB
    NAND: 256 MiB
    MMC: FSL_SDHC: 0, FSL_SDHC: 1
    *** Warning - bad CRC, using default environment


    In: serial
    Out: serial
    Err: serial
    Net: FEC
    Hit any key to stop autoboot: 0



    efusA7UL # print -a
    .console_display=setenv console console=tty1
    .console_none=setenv console
    .console_serial=setenv console console=${sercon},${baudrate}
    .fdt_mmc=setenv fdt mmc rescan\\; load mmc 0 81000000 ${bootfdt}\\; bootm ${loadaddr} - 81000000
    .fdt_nand=setenv fdt nand read 81000000 FDT\\; bootm ${loadaddr} - 81000000
    .fdt_nfs=setenv fdt nfs 81000000 ${serverip}:${rootpath}/${bootfdt}\\; bootm ${loadaddr} - 81000000
    .fdt_none=setenv fdt bootm
    .fdt_tftp=setenv fdt tftpboot 81000000 ${bootfdt}\\; bootm ${loadaddr} - 81000000
    .fdt_ubi=setenv fdt ubi part TargetFS\\; ubi read 81000000 fdt\\; bootm ${loadaddr} - 81000000
    .fdt_ubifs=setenv fdt ubi part TargetFS\\; ubifsmount ubi0:rootfs\\; ubifsload 81000000 /boot/${bootfdt}\\; bootm ${loadaddr} - 81000000
    .fdt_usb=setenv fdt usb start\\; load usb 0 81000000 ${bootfdt}\\; bootm ${loadaddr} - 81000000
    .init_init=setenv init
    .init_linuxrc=setenv init init=linuxrc
    .kernel_mmc=setenv kernel mmc rescan\\; load mmc 0 . ${bootfile}
    .kernel_nand=setenv kernel nboot Kernel
    .kernel_nfs=setenv kernel nfs . ${serverip}:${rootpath}/${bootfile}
    .kernel_tftp=setenv kernel tftpboot . ${bootfile}
    .kernel_ubi=setenv kernel ubi part TargetFS\\; ubi read . kernel
    .kernel_ubifs=setenv kernel ubi part TargetFS\\; ubifsmount ubi0:rootfs\\; ubifsload . /boot/${bootfile}
    .kernel_usb=setenv kernel usb start\\; load usb 0 . ${bootfile}
    .login_display=setenv login login_tty=tty1
    .login_none=setenv login login_tty=null
    .login_serial=setenv login login_tty=${sercon},${baudrate}
    .mode_ro=setenv mode ro
    .mode_rw=setenv mode rw
    .mtdparts_std=setenv mtdparts mtdparts=gpmi-nand:256k(NBoot)ro,768k(UserDef),256k(Refresh)ro,768k(UBoot)ro,256k(UBootEnv)ro,8m(Kernel)ro,1792)
    .mtdparts_ubionly=setenv mtdparts mtdparts=gpmi-nand:256k(NBoot)ro,768k(UserDef),256k(Refresh)ro,768k(UBoot)ro,256k(UBootEnv)ro,-(TargetFS)
    .network_dhcp=setenv network ip=dhcp
    .network_off=setenv network
    .network_on=setenv network ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}
    .rootfs_mmc=setenv rootfs root=/dev/mmcblk0p1 rootwait
    .rootfs_nfs=setenv rootfs root=/dev/nfs nfsroot=${serverip}:${rootpath}
    .rootfs_ubifs=setenv rootfs rootfstype=ubifs ubi.mtd=TargetFS root=ubi0:rootfs
    .rootfs_usb=setenv rootfs root=/dev/sda1 rootwait
    .ubivol_std=ubi part TargetFS; ubi create rootfs
    .ubivol_ubi=ubi part TargetFS; ubi create kernel 5c0000 s; ubi create rootfs
    arch=fsimx6ul
    baudrate=115200
    bootargs=console=ttymxc0,115200 login_tty=ttymxc0,115200 mtdparts=gpmi-nand:256k(NBoot)ro,768k(UserDef),256k(Refresh)ro,768k(UBoot)ro,256k(UBo
    bootcmd=run set_bootargs; run kernel; run fdt
    bootdelay=3
    bootfdt=efusa7ul.dtb
    bootfile=uImage
    console=console=ttymxc0,115200
    ethact=FEC
    ethaddr=00:05:51:07:55:83
    ethprime=FEC0
    fdt=nand read 81000000 FDT; bootm 80800000 - 81000000
    gatewayip=10.0.0.5
    installcheck=ram@80300000,mmc,usb
    ipaddr=10.0.0.252
    kernel=nboot Kernel
    loadaddr=80800000
    login=login_tty=ttymxc0,115200
    mem=260096k
    mode=ro
    mtdparts=mtdparts=gpmi-nand:256k(NBoot)ro,768k(UserDef),256k(Refresh)ro,768k(UBoot)ro,256k(UBootEnv)ro,8m(Kernel)ro,1792k(FDT)ro,-(TargetFS)
    netdev=eth0
    netmask=255.255.255.0
    platform=efusa7ul
    recovercheck=mmc,usb
    rootfs=rootfstype=ubifs ubi.mtd=TargetFS root=ubi0:rootfs
    rootpath=/rootfs
    sercon=ttymxc0
    serverip=10.0.0.122
    set_bootargs=setenv bootargs ${console} ${login} ${mtdparts} ${network} ${rootfs} ${mode} ${init} ${extra}
    set_bootfdt=setenv bootfdt ${platform}.dtb
    updatecheck=mmc,usb


    Environment size: 3696/16380 bytes

  • You have to set the two variables ethaddr and eth1addr to the correct network addresses.


    Code
    1. setenv ethaddr 00:05:51:xx:yy:zz
    2. setenv eth1addr 00:05:51:xx:yy:zz+1
    3. saveenv


    The three final hex digits xx yy zz are given on the barcode sticker on your board. The address for the second port is one higher than for the first port.


    Unfortunately, U-Boot also only detects one ethernet. Are you sure that you have two PHYs equipped on the board? Is the barcode sticker white or yellow?


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • A white sticker indicates a single ethernet port. So I assume the board is only equipped with one ethernet port. The PHYs are on the bottom side of the efusA7UL module next to each other. You can easily see if there is one PHY missing or not.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.