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.

DRA821U: SDK9.02 upgrade u-boot ethernet issues

Part Number: DRA821U

Tool/software:

We are using the DRA821U with SDK 9.02 on our custom board. In SDK version 8.02 we did not need to make any changes to the ethernet connection to get the connection to work. Now that we have upgraded to 9.02, we cannot ping anything (we get an ARP Retry count exceeded error) or tftp anything (same error). What has changed from 8.02 to 9.02?

We are using DP83867IRPAP as a phy chip and can reach out from the dev kit.

  • Hi,

    Are you using fixed-link in the u-boot device-tree?

    Can you share the device-tree being used and the u-boot logs.

    Regards,
    Tanmay

  • u-boot_diff.zipHello Tanmay,

    I am not fully sure what you mean with the fixed-link option. Could you give me an example? 

    I have also attached a diff file for our device tree changes. Let me know if you want the source files in stead. Also let me know if you can see the file I uploaded.

    Thank you,

    James Windorff-Perez

  • hi James,

    I can see the file  you uploaded. And based on that, you are not using fixed link.

    Can you share the complete boot logs you get from u-boot on UART as well.

    Which phy are you using on custom board?

    What has changed from 8.02 to 9.02?

    Majorly the u-boot version was changes from 2021.01 in SDK 8.2 to 2023.04 in SDK 9.2. But for our cpsw driver, the changes were mostly cosmetic and no functionality changes.

    Can you check the phy registers to see the phy status.

    Regards,
    Tanmay

  • Hello Tanmay,

    Thank you for the response. I will see what boot logs I am able to get (below). Since we cannot use the ethernet I have to UART boot so I know I will miss some. The phy we are using is DP83867IRPAP. We are connecting to the cpsw port 1/mcu cpsw/davinchi mdio. 

    As for the phy registers, I am a little fuzzy on how to do that. I know it is the mii command, but what exactly do you want me to run and what output do you need? 

    Thank you,
    James Windorff-Perez

    U-Boot 2023.04 (Jun 12 2024 - 14:23:09 -0400)
    
    SoC:   J7200 SR1.0 GP
    Model: Texas Instruments K3 J7200 SoC
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Board: J721EX-PM1-SOM rev E2
    DRAM:  1 GiB
    cdns3_bind: unsupported dr_mode
    Core:  89 devices, 31 uclasses, devicetree: separate
    Flash: 0 Bytes
    MMC:   mmc@4f80000: 0, mmc@4fb0000: 1
    Loading Environment from nowhere... OK
    In:    serial@42300000
    Out:   serial@42300000
    Err:   serial@42300000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Net:   eth0: ethernet@46000000port@1
    Hit any key to stop autoboot:  0 
    MMC: no card present
    mmc_init: -123, time 2002
    SD/MMC found on device 1
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1
    Can't set block device
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1
    Can't set block device
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@21: Error reading output register
    GPIO: 'gpio@22_17' not found
    Command 'gpio' failed: Error -22
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@21: Error reading output register
    GPIO: 'gpio@22_16' not found
    Command 'gpio' failed: Error -22
    k3_r5f_rproc r5f@41000000: Core 1 is already in use. No rproc commands work
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    MMC: no card present
    mmc_init: -123, time 2002
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    Bad Linux ARM64 Image magic!
    switch to partitions #0, OK
    mmc0(part 0) is current device
    ** No partition table - mmc 0 **
    Couldn't find partition mmc 0:1
    MMC: no card present
    mmc_init: -123, time 2002
    starting USB...
    No working controllers found
    USB is stopped. Please issue 'usb start' first.
    starting USB...
    No working controllers found
    k3-navss-ringacc ringacc@2b800000: Ring Accelerator probed rings:286, gp-rings[96,32] sci-dev-id:235
    k3-navss-ringacc ringacc@2b800000: dma-ring-reset-quirk: disabled
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    BOOTP broadcast 5
    BOOTP broadcast 6
    BOOTP broadcast 7
    BOOTP broadcast 8
    BOOTP broadcast 9
    BOOTP broadcast 10
    BOOTP broadcast 11
    BOOTP broadcast 12
    BOOTP broadcast 13
    BOOTP broadcast 14
    BOOTP broadcast 15
    BOOTP broadcast 16
    BOOTP broadcast 17
    
    Retry time exceeded; starting again
    missing environment variable: pxeuuid
    Retrieving file: pxelinux.cfg/01-24-76-25-a2-81-b0
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/00000000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/0000000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/000000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/00000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/0000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/00
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/0
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default-arm-k3-j721e
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default-arm-k3
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default-arm
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    *** ERROR: `serverip' not set
    Config file not found
    starting USB...
    No working controllers found
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    BOOTP broadcast 5
    BOOTP broadcast 6
    BOOTP broadcast 7
    BOOTP broadcast 8
    BOOTP broadcast 9
    BOOTP broadcast 10
    BOOTP broadcast 11
    BOOTP broadcast 12
    BOOTP broadcast 13
    BOOTP broadcast 14
    BOOTP broadcast 15
    BOOTP broadcast 16
    BOOTP broadcast 17
    
    Retry time exceeded; starting again
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    link up on port 1, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    BOOTP broadcast 5
    BOOTP broadcast 6
    BOOTP broadcast 7
    BOOTP broadcast 8
    BOOTP broadcast 9
    BOOTP broadcast 10
    BOOTP broadcast 11
    BOOTP broadcast 12
    BOOTP broadcast 13
    BOOTP broadcast 14
    BOOTP broadcast 15
    BOOTP broadcast 16
    BOOTP broadcast 17
    
    Retry time exceeded; starting again
    => 
    
    

  • Hi James,

    I see that you have the link-up log coming in u-boot. No need to check phy resistors with this. This means that you are able to establish a link.

    The issue is most likely with the dhcp server if any.

    Can you try to assign static ip addresses.

    use "setenv ipaddr $SOC_IP_ADDR" to set your IP address and "setenv serverip $HOST_IP_ADDR" to set host ip address. make sure that both of them are in the same subnet.

    After this, you can try to ping the host using "ping $HOST_IP_ADDR" and you should be able to get a response saying host is alive.

    Regards,
    Tanmay

  • Tanmay,

    I have already done that and they cannot see each other. They are on the same subnet and have the same gateway, but cannot ping each other. I should have been more clear in my initial post about this. 

    Is there another environment variable that needs to be set or something else that I need to do? 

    Thank you,

    James Windorff-Perez

  • Hi James,

    I have already done that and they cannot see each other

    Can you share the commands you used to do this.

    On my setup, I only need to set "ipaddr" variable for me to be able to ping.

    Regards,
    Tanmay

  • Tanmay,

    I have done just the ipaddr, the ipaddr and the netmask, and the ipaddr netmask and gatewayip. All three options result in the ARP failure mentioned above. 

    The values I use are:
    setenv ipaddr 3.28.216.241

    setenv netmask 255.255.252.0

    setenv gatewayip 3.28.216.254

    I have tried pinging our computer that is on that same network (same netmask and gateway) with no luck and I have also tried pinging a standard 8.8.8.8 with no luck. 

    Thank you,

    James Windorff-Perez

  • Tanmay,

    I found that we were missing some config file additions that we did have to add in the older version. I was able to get the link to work and tftp correctly.

    Thank you,

    James Windorff-Perez