This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/DRA726: Ethernet issue

Part Number: DRA726
Other Parts Discussed in Thread: DP83867IS,

Tool/software: Linux

I am trying to figure out what u-boot is telling me

Net:   wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout

a lot of "wait_for_user_access Timeout"

wait_for_user_access Timeout
PHY reset timed out
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout
wait_for_user_access Timeout

Warning: ethernet@48484000 using MAC address from ROM
eth0: ethernet@48484000

I double checked the settings in the dts and they match the schematic of our board

Michel Catudal

  • Hi Michael,

    I have forwarded your question to u-boot expert.
    Can you just tell what is the version of the u-boot that you use?

    Regards,
    Yordan
  • The one from the 3.02 industrial SDK with my modification to support our board.
    I could not get the one from the automotive SDK to find the linux device tree on the micro SD and since I've had no problem in the past with industrial version I figure that was a best choice to debug our hardware.

    The differences between the two are with the early boot and android, we do not use either one at the moment and have no plan to ever use android. We've had issues with the eMMC on this board so we try to get the board to work with the micro SD card.
  • I forgot to mention that the device used is DP83865DVH
  • oops I meant DP83867IS, the DP83865DVH is the one on the automotive evm.
    I had the wrong schematic on top.

    It always times out. Note that we only use one of the ports, not both.

    Michel
  • Here is the env
    => printenv
    arch=arm
    args_fit=setenv bootargs console=${console}
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
    baudrate=115200
    board=dra726
    board_name=dra726
    boot_fdt=try
    boot_fit=0
    bootcmd=if test ${boot_fit} -eq 1; then run update_to_fit;fi;run findfdt; run envboot; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; setenv mmcroot /dev/mmcblk0p2 rw; run mmcboot;
    bootdelay=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootfile=zImage
    bootm_size=0x10000000
    bootpart=0:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyO2,115200n8
    cpu=armv7
    dfu_alt_info_emmc=rawemmc raw 0 3751936;boot part 1 1;rootfs part 1 2;MLO fat 1 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x400;spl-os-args.raw raw 0x80 0x80;spl-os-image.raw raw 0x900 0x2000;spl-os-args fat 1 1;spl-os-image fat 1 1;u-boot.img fat 1 1;uEnv.txt fat 1 1
    dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x400;spl-os-args.raw raw 0x80 0x80;spl-os-image.raw raw 0x900 0x2000;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
    dfu_alt_info_qspi=MLO raw 0x0 0x040000;u-boot.img raw 0x040000 0x0100000;u-boot-spl-os raw 0x140000 0x080000;u-boot-env raw 0x1C0000 0x010000;u-boot-env.backup raw 0x1D0000 0x010000;kernel raw 0x1E0000 0x800000
    dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    dfu_bufsiz=0x10000
    envboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;
    ethaddr=fc:0f:4b:5d:e5:28
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontroladdr=9ff8aae0
    fdtfile=undefined
    findfdt=setenv fdtfile dra726-actia-lcd-12inch.dtb;
    finduuid=part uuid mmc ${bootpart} uuid
    fit_bootfile=fitImage.itb
    fit_loadaddr=0x88000000
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    kernel_addr_r=0x82000000
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
    loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
    loadfit=run args_fit; bootm ${loadaddr}#${fdtfile};
    loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    mmcboot=mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;
    mmcdev=0
    mmcloados=run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
    mmcrootfstype=ext4 rootwait
    netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
    netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
    netloadfdt=tftp ${fdtaddr} ${fdtfile}
    netloadimage=tftp ${loadaddr} ${bootfile}
    nfsopts=nolock
    partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    rdaddr=0x88080000
    rootpath=/export/rootfs
    scriptaddr=0x80000000
    soc=omap5
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=serial@48020000
    stdin=serial@48020000
    stdout=serial@48020000
    update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}
    usbtty=cdc_acm
    vendor=actia
    ver=U-Boot 2016.05 (Apr 03 2017 - 17:25:53 -0400)
    vram=16M

    Environment size: 4028/65532 bytes

    ----------------------------------------------

    I get this on the serial port when it starts

    ���������a3�%ŘK�DRAM: 512 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1


    I get this when trying to switch to eMMC
    => mmc dev 1
    Card did not respond to voltage select!

    And after the linux device tree is loaded it crashes. It is kind of hard to debug without a functioning ethernet


    => boot
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    ** Unable to read file uEnv.txt **
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3515920 bytes read in 175 ms (19.2 MiB/s)
    93430 bytes read in 20 ms (4.5 MiB/s)
    Kernel image @ 0x82000000 [ 0x000000 - 0x35a610 ]
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Device Tree to 8ffe6000, end 8ffffcf5 ... OK

    Starting kernel ...
  • Hi Michel,
    I'm not an expert. I just recall there are several E2E threads for PHY timeout.
    - Can you check the MDIO connections, pullups?
    - MDIO pinmux?
    - PHY address configured properly? (I2C-like)

    Regards,
    Stan
  • Michel Catudal said:
    oops I meant DP83867IS, the DP83865DVH is the one on the automotive evm.

    Rev C and newer of the DRA72x EVM have migrated to the DP83867.  Have a look at dra72-evm-revc.dts:

    &davinci_mdio {
            dp83867_0: ethernet-phy@2 {
                    reg = <2>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
                    ti,min-output-impedance;
            };
    
            dp83867_1: ethernet-phy@3 {
                    reg = <3>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
                    ti,min-output-impedance;
            };
    };
    

    There are a lot of subtleties for the RGMII interfaces related to Manual I/O modes, internal delays, etc.  Everything needs to be configured to precisely align.