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.

TDA4AL-Q1: TDA4AL eMMC Booting.

Part Number: TDA4AL-Q1
Other Parts Discussed in Thread: TDA4VM

Hello TI Experts.

References

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j721s2/09_01_00_06/exports/docs/linux/How_to_Guides/Target/How_to_flash_emmc_device.html

https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j721s2/09_01_00_06/exports/docs/psdk_rtos/docs/user_guide/evm_setup_j721s2.html#boot-modes

I have a few questions related to the j721s2 EVK.

  1. Is it possible to boot only with eMMC without ospi/qspi?
    1. Is it possible to boot only with eMMC, how would it be accomplished?
    2. When NOR Flash is required, what are the steps for booting with QSPI and eMMC?
  2. FLASHING
    1. The v09x SDK does not include the mksdboot.sh script.
    2. The documentation covers aspects related to the rootfs. Could you provide guidance on flashing the BOOT partition?
  3. EVM Boot Mode.
    1. The documentation includes instructions for setting SD Boot Mode, XSPI Boot Mode, and UART Boot Mode. How do we set the eMMC Boot Mode?

Best regards,

JK

  • Hi JK,

    • Is it possible to boot only with eMMC, how would it be accomplished?

    Are you planning to use Linux or RTOS? Linux SPL bootloader supports eMMC boot.

    https://e2e.ti.com/support/processors/f/791/t/1067116

    Has references for SBL booting from eMMC on J721e.

      1. When NOR Flash is required, what are the steps for booting with QSPI and eMMC?

    You mean QSPI for booting and eMMC for rootfs?

    FLASHING
    1. The v09x SDK does not include the mksdboot.sh script.
    2. The documentation covers aspects related to the rootfs. Could you provide guidance on flashing the BOOT partition?

    There has been a renaming from mksdboot.sh as create-sdcard.sh

      1. The documentation includes instructions for setting SD Boot Mode, XSPI Boot Mode, and UART Boot Mode. How do we set the eMMC Boot Mode?

    RTOS SDK does not support eMMC boot by default.

    - Keerthy

  • Hello Keerthy,

    I want to use RTOS SDK.

    Is there any way to boot using only eMMC with the RTOS SDK?

    If I cannot boot using only eMMC, I would like to use QSPI+eMMC.

    The reference you provided is for J721e. Is it the same for J721s2?

    Especially, there are no macros related to j721s2 in the sbl_mmcsd.c file.

    Regards,

    JK

  • Hi JK,

    If you are planning to just load RTOS application using eMMC, you can check the following link https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j721s2/09_02_00_05/exports/docs/pdk_j721s2_09_02_00_30/docs/userguide/j721s2/boot/boot_k3.html#boot-modes 

    But HLOS boot with SBL boot flow is not yet supported with eMMC boot mode

    Regards,
    Parth

  • Hello, Parth.

    I want to use HLOS regardless of SBL or SPL.

    In other words, it’s fine to use either SPL or SBL.

    However, we need to make modifications for TDA4AL in the J721S2 SDK.

    So, we can recompile the PDK and use it.

    What I’m curious about is how to boot using only eMMC or both eMMC and QSPI.

    Best regards,

    JK

  • Hello,

    This thread is assigned to our engineer in the India office. Due to a regional holiday, half of our team is out of the office. Please expect a 1~2 day delay in responses.

    Apologies for the delay, and thank you for your patience.

    Thanks.

  • Hi JK,

    want to use HLOS regardless of SBL or SPL.

    In other words, it’s fine to use either SPL or SBL.

    In this case, you'll need to use Linux SPL boot flow itself, as the RTOS SBL boot flow with eMMC does not support HLOS boot.

    However, we need to make modifications for TDA4AL in the J721S2 SDK.

    I believe, you want to customize the remote core firmware in RTOS SDK right? That is possible, no problem in that.

    What I’m curious about is how to boot using only eMMC or both eMMC and QSPI.

    You can boot using only eMMC with SPL boot flow.

     You can use the documentation https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j721s2/09_01_00_06/exports/docs/linux/How_to_Guides/Target/How_to_flash_emmc_device.html 

    The only change would be to use create-sdcard.sh instead of mksdboot.sh. I believe both scripts work in similar way,

    Regards,
    Parth

  • Hello Parth,

    Reference : https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j721s2/09_01_00_06/exports/docs/linux/How_to_Guides/Target/How_to_flash_emmc_device.html

    The description you provided only covers the way of booting from an SD card and copying the rootfs.

    I don’t believe it’s possible to boot without information about the BOOT partition on eMMC.

    I need a more detailed explanation.

    Regards,

    JK

  • Hi,

    I don’t believe it’s possible to boot without information about the BOOT partition on eMMC.

    Yes, you are correct. I believe this doc needs to be updated. I'll raise this issue with the team.
    you can mount to boot partition and copy the contents in the same way as done for root fs

    You can also check the appnote https://www.ti.com/lit/an/spracy5/spracy5.pdf 

    Regards,
    Parth 

  • Hello Parth,

    How can I make the sysfw.itb?

    $ make list-targets
    Below targets are supported by the Makefile for PLATFORM=j721s2-evm
    arm-benchmarks cryptodev ti-img-rogue-driver u-boot linux linux-dtbs linux-fitImage

    There is no target sysfw-image in the 'make list-targets'.

    Regards,

    JK

  • HI JK 

    How can I make the sysfw.itb?

    The document was developed considering the TDA4VM as a SOC in mind where it used to use legacy boot flow.

    J721S2 uses combined boot flow where tifs(sysfw binary) gets included in the tiboot3.bin so there is no need of flashing the sysfw.itb.

    Regards
    Diwakar

  • Hello,

    create-sdcard.sh is not working on the EVB. I used mksdboot.sh for partitioning.

    I executed the commands below.

    1. rootfs
        umount /run/media/*
        mkdir /mnt/sd-rootfs
        mount /dev/mmcblk1p2 /mnt/sd-rootfs
        mkdir /mnt/emmc-rootfs
        mount /dev/mmcblk0p2 /mnt/emmc-rootfs
        cp -r /mnt/sd-rootfs/* /mnt/emmc-rootfs
        sync
        umount /mnt/*

    2. BOOT(on u-boot)
        => mmc dev 0 1
        => fatload mmc 1 ${loadaddr} tiboot3.bin
        => mmc write ${loadaddr} 0x0 0x400
        => fatload mmc 1 ${loadaddr} tispl.bin
        => mmc write ${loadaddr} 0x400 0x1000
        => fatload mmc 1 ${loadaddr} u-boot.img
        => mmc write ${loadaddr} 0x1400 0x2000

    When I switch to eMMC boot mode and reboot, it doesn’t start up.

    Best regards,

    JK

  • Hello Diwakar,

    When booting from eMMC, only the following message is displayed, the boot process won’t continue.

    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

    Regards,

    JK

    =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2024.04.17 09:41:49 =~=~=~=~=~=~=~=~=~=~=~=
    
    U-Boot SPL 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    SPL initial stack usage: 13472 bytes
    Trying to boot from MMC1
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Loading Environment from nowhere... OK
    init_env from device 17 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC: 
    I/TC: OP-TEE version: 4.1.0-51-g012cdca49 (gcc version 11.4.0 (GCC)) #1 Tue Jan 30 10:48:03 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Fixing SA2UL firewall owner for GP device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    Trying to boot from MMC1
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    
    
    U-Boot 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    
    SoC:   J721S2 SR1.0 GP
    Model: Texas Instruments J721S2 EVM
    Board: J721S2X-PM1-SOM rev E3
    DRAM:  2 GiB (effective 16 GiB)
    Core:  89 devices, 32 uclasses, devicetree: separate
    Flash: 0 Bytes
    MMC:   mmc@4f80000: 0, mmc@4fb0000: 1
    Loading Environment from nowhere... OK
    In:    serial@2880000
    Out:   serial@2880000
    Err:   serial@2880000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    Net:   eth0: ethernet@46000000port@1
    Hit any key to stop autoboot:  2  1  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 **
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    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
    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
    Scanning mmc 0:1...
    MMC: no card present
    mmc_init: -123, time 2002
    No EFI system partition
    No EFI system partition
    Failed to persist EFI variables
    BootOrder not defined
    EFI boot manager: Cannot load any image
    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,20] sci-dev-id:272
    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
    DHCP client bound to address 192.168.0.38 (130 ms)
    *** ERROR: `serverip' not set
    Cannot autoload with TFTPGET
    missing environment variable: pxeuuid
    Retrieving file: pxelinux.cfg/01-34-08-e1-77-ea-9a
    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/C0A80026
    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/C0A8002
    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/C0A800
    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/C0A80
    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/C0A8
    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/C0A
    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/C0
    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/C
    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-j721s2
    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
    DHCP client bound to address 192.168.0.38 (195 ms)
    *** ERROR: `serverip' not set
    Cannot autoload with TFTPGET
    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
    DHCP client bound to address 192.168.0.38 (158 ms)
    *** ERROR: `serverip' not set
    Cannot autoload with TFTPGET
    => 
    => 
    => 
    => 
    => 

  • Hi JK,

    Please mention all the steps you have followed so far for this.

    Regards
    Diwakar

  • Hello Diwakar,

    The order in which I tested is as follows.

    1. INSTALL to SDCARD

    2. BOOT from SDCARD

    3. Reboot and go to u-boot shell

    4. Turn off

    5. Booting.

    Best regards,

    JK

  • Hi JK 

    The issue that you are not setting the env variable properly in the U-BOOT.

    Please do the below changes in the UBOOT.

    • Halt at UBOOT
    • setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait"
    • boot

    Regards
    Diwakar

  • Hello Diwakar,

    I got the same result.

    0. set bootmode

    1. Halt at UBOOT and printenv

    2. setenv and printenv

    3. run boot

    I am attaching the log

    After a cold boot, the args_mmc value disappear. I couldn’t find a menu like saveenv. How can I use the environment values permanently?

    Regards,

    JK

    =~=~=~=~=~=~=~=~=~=~=~= MobaXterm log 2024.04.19 08:39:02 =~=~=~=~=~=~=~=~=~=~=~=
    
    U-Boot SPL 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    SPL initial stack usage: 13472 bytes
    Trying to boot from MMC1
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Loading Environment from nowhere... OK
    init_env from device 17 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC: 
    I/TC: OP-TEE version: 4.1.0-51-g012cdca49 (gcc version 11.4.0 (GCC)) #1 Tue Jan 30 10:48:03 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Fixing SA2UL firewall owner for GP device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    Trying to boot from MMC1
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    
    
    U-Boot 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    
    SoC:   J721S2 SR1.0 GP
    Model: Texas Instruments J721S2 EVM
    Board: J721S2X-PM1-SOM rev E3
    DRAM:  2 GiB (effective 16 GiB)
    Core:  89 devices, 32 uclasses, devicetree: separate
    Flash: 0 Bytes
    MMC:   mmc@4f80000: 0, mmc@4fb0000: 1
    Loading Environment from nowhere... OK
    In:    serial@2880000
    Out:   serial@2880000
    Err:   serial@2880000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    Net:   eth0: ethernet@46000000port@1
    Hit any key to stop autoboot:  2  0 
    => printenv
    addr_fit=0x90000000
    arch=arm
    args_all=setenv optargs earlycon=ns16550a,mmio32,0x02880000 ${mtdparts}
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
    args_ospi_nand=setenv bootargs console=${console} ${optargs} ubi.mtd=${ospi_nand_bootpart} root=${ospi_nand_bootvolume} rootfstype=ubifs
    args_ufs=setenv devtype scsi;setenv bootpart 1:1; run ufs_finduuid; setenv bootargs console = ${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${scsirootfstype}; setenv devtype scsi; setenv bootpart 1:1
    baudrate=115200
    board=j721s2
    board_name=j721s2
    board_rev=E3
    board_serial=0133
    board_software_revision=01
    boot=mmc
    boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
    boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
    boot_efi_bootmgr=if fdt addr -q ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
    boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
    boot_fdt=try
    boot_fit=0
    boot_net_usb_start=usb start
    boot_prefixes=/ /boot/
    boot_rprocs=if test ${dorprocboot} -eq 1 && test ${boot} = mmc; then rproc init; run boot_rprocs_mmc; fi;
    boot_rprocs_mmc=env set rproc_id; env set rproc_fw; env set secure_suffix; if test ${secure_rprocs} -eq 1; then env set secure_suffix -sec; fi; for i in ${rproc_fw_binaries} ; do if test -z "${rproc_id}" ; then env set rproc_id $i; else env set rproc_fw $i${secure_suffix}; run rproc_load_and_boot_one; env set rproc_id; env set rproc_fw; fi; done
    boot_script_dhcp=boot.scr.uimg
    boot_scripts=boot.scr.uimg boot.scr
    boot_syslinux_conf=extlinux/extlinux.conf
    boot_targets=ti_mmc mmc0 mmc1 usb0 pxe dhcp 
    bootcmd=run envboot; run distro_bootcmd;
    bootcmd_dhcp=devtype=dhcp; run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
    bootcmd_mmc0=devnum=0; run mmc_boot
    bootcmd_mmc1=devnum=1; run mmc_boot
    bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
    bootcmd_ti_mmc=run findfdt; run init_${boot}; if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1; then run main_cpsw0_qsgmii_phyinit; fi; run boot_rprocs; if test ${boot_fit} -eq 1; then run get_fit_${boot}; run get_fit_overlaystring; run run_fit; else; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern; fi;
    bootcmd_usb0=devnum=0; run usb_boot
    bootdelay=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootm_size=0x10000000
    bootpart=1:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyS2,115200n8
    cpu=armv8
    default_device_tree=ti/k3-j721s2-common-proc-board.dtb
    dfu_alt_info_emmc=rawemmc raw 0 0x800000 mmcpart 1; rootfs part 0 1; tiboot3.bin.raw raw 0x0 0x400 mmcpart 1; tispl.bin.raw raw 0x400 0x1000 mmcpart 1; u-boot.img.raw raw 0x1400 0x2000 mmcpart 1; u-env.raw raw 0x3400 0x100 mmcpart 1; sysfw.itb.raw raw 0x3600 0x800 mmcpart 1
    dfu_alt_info_mmc=boot part 1 1; rootfs part 1 2; tiboot3.bin fat 1 1; tispl.bin fat 1 1; u-boot.img fat 1 1; uEnv.txt fat 1 1; sysfw.itb fat 1 1
    dfu_alt_info_nand=NAND.tiboot3 part 0 1; NAND.tispl part 0 2; NAND.tiboot3.backup part 0 3; NAND.u-boot part 0 4; NAND.u-boot-env part 0 5; NAND.u-boot-env.backup part 0 6; NAND.file-system part 0 7
    dfu_alt_info_ospi=tiboot3.bin raw 0x0 0x080000; tispl.bin raw 0x080000 0x200000; u-boot.img raw 0x280000 0x400000; u-boot-env raw 0x680000 0x020000; sysfw.itb raw 0x6c0000 0x100000; rootfs raw 0x800000 0x3800000
    dfu_alt_info_ospi_nand=ospi_nand.tiboot3 part 1; ospi_nand.tispl part 2; ospi_nand.u-boot part 3; ospi_nand.env part 4; ospi_nand.env.backup part 5; ospi_nand.rootfs part 6; ospi_nand.phypattern part 7
    dfu_alt_info_ram=tispl.bin ram 0x80080000 0x200000; u-boot.img ram 0x81000000 0x400000
    distro_bootcmd=scsi_need_init=; for target in ${boot_targets}; do run bootcmd_${target}; done
    dorprocboot=1
    dtboaddr=0x89000000
    efi_dtb_prefixes=/ /dtb/ /dtb/current/
    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=34:08:e1:77:ea:9a
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontroladdr=fde6f4d0
    fdtoverlay_addr_r=0x89000000
    findfdt=setenv name_fdt ${default_device_tree}; if test $board_name = j721s2; then setenv name_fdt ti/k3-j721s2-common-proc-board.dtb; fi; if test $board_name = am68-sk; then setenv name_fdt ti/k3-am68-sk-base-board.dtb; fi; setenv fdtfile ${name_fdt}
    finduuid=part uuid ${boot} ${bootpart} uuid
    get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/dtb/${name_fdt}
    get_fdt_ospi_nand=ubifsload ${fdtaddr} ${bootdir}/dtb/${fdtfile};
    get_fdt_ufs=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
    get_fit_config=setexpr name_fit_config gsub / _ conf-${fdtfile}
    get_fit_mmc=load mmc ${bootpart} ${addr_fit} ${bootdir}/${name_fit}
    get_fit_ospi_nand=ubifsload ${addr_fit} ${bootdir}/${name_fit}
    get_fit_overlaystring=for overlay in $name_overlays; do; setexpr name_fit_overlay gsub / _ conf-${overlay}; setenv overlaystring ${overlaystring}'#'${name_fit_overlay}; done;
    get_kern_mmc=load mmc ${bootpart} ${loadaddr} ${bootdir}/${name_kern}
    get_kern_ospi_nand=ubifsload ${loadaddr} ${bootdir}/${name_kern}
    get_kern_ufs=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${name_kern}
    get_overlay_mmc=fdt address ${fdtaddr}; fdt resize 0x100000; for overlay in $name_overlays; do; load mmc ${bootpart} ${dtboaddr} ${bootdir}/dtb/ti/${overlay} && fdt apply ${dtboaddr}; done;
    get_overlay_ospi_nand=fdt address ${fdtaddr} fdt resize 0x100000; for overlay in $name_overlays; do; ubifsload ${dtboaddr} ${bootdir}/dtb/${overlay} && fdt apply ${dtboaddr}; done;
    get_overlay_ufs=fdt address ${fdtaddr}; fdt resize 0x100000; for overlay in $name_overlays; do; load scsi ${bootpart} ${dtboaddr} ${bootdir}/${overlay} && fdt apply ${dtboaddr}; done;
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    init_mmc=run args_all args_mmc
    init_ospi_nand=run args_all args_ospi_nand ospi_nand_ubi_init
    init_ufs=ufs init; scsi scan; run args_ufs
    kernel_addr_r=0x82000000
    load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
    loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/dtb/${fdtfile}
    loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
    mmcboot=mmc dev ${mmcdev}; devnum=${mmcdev}; devtype=mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev}; if run loadimage; then run args_mmc; if test ${boot_fit} -eq 1; then run run_fit; else run mmcloados; fi; fi; fi;
    mmcdev=1
    mmcloados=if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run get_fdt_mmc; 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
    mtdids=nor0=47040000.spi.0,nand0=spi-nand0
    mtdparts=mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);spi-nand0:512k(ospi_nand.tiboot3),2m(ospi_nand.tispl),4m(ospi_nand.u-boot),256k(ospi_nand.env),256k(ospi_nand.env.backup),98048k@32m(ospi_nand.rootfs),256k@130816k(ospi_nand.phypattern)
    name_fit=fitImage
    name_kern=Image
    ospi_nand_bootpart=ospi_nand.rootfs
    ospi_nand_bootvolume=ubi0:rootfs
    ospi_nand_ubi_init=ubi part ${ospi_nand_bootpart}; ubifsmount ${ospi_nand_bootvolume};
    partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    rd_spec=-
    rdaddr=0x88080000
    rproc_fw_binaries= 1 /lib/firmware/j721s2-mcu-r5f0_1-fw 2 /lib/firmware/j721s2-main-r5f0_0-fw 3 /lib/firmware/j721s2-main-r5f0_1-fw 4 /lib/firmware/j721s2-main-r5f1_0-fw 5 /lib/firmware/j721s2-main-r5f1_1-fw 6 /lib/firmware/j721s2-c71_0-fw 7 /lib/firmware/j721s2-c71_1-fw
    rproc_load_and_boot_one=if load mmc ${bootpart} $loadaddr ${rproc_fw}; then if rproc load ${rproc_id} ${loadaddr} ${filesize}; then rproc start ${rproc_id}; fi; fi
    run_fit=run get_fit_config; bootm ${addr_fit}#${name_fit_config}${overlaystring}
    run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
    scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
    scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then part uuid ${devtype} ${devnum}:${distro_bootpart} distro_bootpart_uuid ; run scan_dev_for_boot; fi; done; setenv devplist
    scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
    scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo EXTLINUX FAILED: continuing...; fi
    scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
    scriptaddr=0x80000000
    scsi_boot=run scsi_init; if scsi dev ${devnum}; then devtype=scsi; run scan_dev_for_boot_part; fi
    scsi_init=if ${scsi_need_init}; then scsi_need_init=false; scsi scan; fi
    scsirootfstype=ext4 rootwait
    secure_rprocs=0
    serial#=0000000000000133
    soc=k3
    stderr=serial@2880000
    stdin=serial@2880000
    stdout=serial@2880000
    ubifs_boot=if ubi part ${bootubipart} ${bootubioff} && ubifsmount ubi0:${bootubivol}; then devtype=ubi; devnum=ubi0; bootfstype=ubifs; distro_bootpart=${bootubivol}; run scan_dev_for_boot; ubifsumount; fi
    ufs_finduuid=part uuid scsi ${bootpart} uuid
    update_to_fit=setenv loadaddr ${addr_fit}; setenv bootfile ${name_fit}
    usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
    vendor=ti
    
    Environment size: 11385/262139 bytes
    => setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait"
    => printenv
    addr_fit=0x90000000
    arch=arm
    args_all=setenv optargs earlycon=ns16550a,mmio32,0x02880000 ${mtdparts}
    args_mmc=run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
    args_ospi_nand=setenv bootargs console=${console} ${optargs} ubi.mtd=${ospi_nand_bootpart} root=${ospi_nand_bootvolume} rootfstype=ubifs
    args_ufs=setenv devtype scsi;setenv bootpart 1:1; run ufs_finduuid; setenv bootargs console = ${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${scsirootfstype}; setenv devtype scsi; setenv bootpart 1:1
    baudrate=115200
    board=j721s2
    board_name=j721s2
    board_rev=E3
    board_serial=0133
    board_software_revision=01
    boot=mmc
    boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
    boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
    boot_efi_bootmgr=if fdt addr -q ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
    boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
    boot_fdt=try
    boot_fit=0
    boot_net_usb_start=usb start
    boot_prefixes=/ /boot/
    boot_rprocs=if test ${dorprocboot} -eq 1 && test ${boot} = mmc; then rproc init; run boot_rprocs_mmc; fi;
    boot_rprocs_mmc=env set rproc_id; env set rproc_fw; env set secure_suffix; if test ${secure_rprocs} -eq 1; then env set secure_suffix -sec; fi; for i in ${rproc_fw_binaries} ; do if test -z "${rproc_id}" ; then env set rproc_id $i; else env set rproc_fw $i${secure_suffix}; run rproc_load_and_boot_one; env set rproc_id; env set rproc_fw; fi; done
    boot_script_dhcp=boot.scr.uimg
    boot_scripts=boot.scr.uimg boot.scr
    boot_syslinux_conf=extlinux/extlinux.conf
    boot_targets=ti_mmc mmc0 mmc1 usb0 pxe dhcp 
    bootcmd=run envboot; run distro_bootcmd;
    bootcmd_dhcp=devtype=dhcp; run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
    bootcmd_mmc0=devnum=0; run mmc_boot
    bootcmd_mmc1=devnum=1; run mmc_boot
    bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
    bootcmd_ti_mmc=run findfdt; run init_${boot}; if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1; then run main_cpsw0_qsgmii_phyinit; fi; run boot_rprocs; if test ${boot_fit} -eq 1; then run get_fit_${boot}; run get_fit_overlaystring; run run_fit; else; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern; fi;
    bootcmd_usb0=devnum=0; run usb_boot
    bootdelay=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootm_size=0x10000000
    bootpart=1:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyS2,115200n8
    cpu=armv8
    default_device_tree=ti/k3-j721s2-common-proc-board.dtb
    dfu_alt_info_emmc=rawemmc raw 0 0x800000 mmcpart 1; rootfs part 0 1; tiboot3.bin.raw raw 0x0 0x400 mmcpart 1; tispl.bin.raw raw 0x400 0x1000 mmcpart 1; u-boot.img.raw raw 0x1400 0x2000 mmcpart 1; u-env.raw raw 0x3400 0x100 mmcpart 1; sysfw.itb.raw raw 0x3600 0x800 mmcpart 1
    dfu_alt_info_mmc=boot part 1 1; rootfs part 1 2; tiboot3.bin fat 1 1; tispl.bin fat 1 1; u-boot.img fat 1 1; uEnv.txt fat 1 1; sysfw.itb fat 1 1
    dfu_alt_info_nand=NAND.tiboot3 part 0 1; NAND.tispl part 0 2; NAND.tiboot3.backup part 0 3; NAND.u-boot part 0 4; NAND.u-boot-env part 0 5; NAND.u-boot-env.backup part 0 6; NAND.file-system part 0 7
    dfu_alt_info_ospi=tiboot3.bin raw 0x0 0x080000; tispl.bin raw 0x080000 0x200000; u-boot.img raw 0x280000 0x400000; u-boot-env raw 0x680000 0x020000; sysfw.itb raw 0x6c0000 0x100000; rootfs raw 0x800000 0x3800000
    dfu_alt_info_ospi_nand=ospi_nand.tiboot3 part 1; ospi_nand.tispl part 2; ospi_nand.u-boot part 3; ospi_nand.env part 4; ospi_nand.env.backup part 5; ospi_nand.rootfs part 6; ospi_nand.phypattern part 7
    dfu_alt_info_ram=tispl.bin ram 0x80080000 0x200000; u-boot.img ram 0x81000000 0x400000
    distro_bootcmd=scsi_need_init=; for target in ${boot_targets}; do run bootcmd_${target}; done
    dorprocboot=1
    dtboaddr=0x89000000
    efi_dtb_prefixes=/ /dtb/ /dtb/current/
    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=34:08:e1:77:ea:9a
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontroladdr=fde6f4d0
    fdtoverlay_addr_r=0x89000000
    findfdt=setenv name_fdt ${default_device_tree}; if test $board_name = j721s2; then setenv name_fdt ti/k3-j721s2-common-proc-board.dtb; fi; if test $board_name = am68-sk; then setenv name_fdt ti/k3-am68-sk-base-board.dtb; fi; setenv fdtfile ${name_fdt}
    finduuid=part uuid ${boot} ${bootpart} uuid
    get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/dtb/${name_fdt}
    get_fdt_ospi_nand=ubifsload ${fdtaddr} ${bootdir}/dtb/${fdtfile};
    get_fdt_ufs=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
    get_fit_config=setexpr name_fit_config gsub / _ conf-${fdtfile}
    get_fit_mmc=load mmc ${bootpart} ${addr_fit} ${bootdir}/${name_fit}
    get_fit_ospi_nand=ubifsload ${addr_fit} ${bootdir}/${name_fit}
    get_fit_overlaystring=for overlay in $name_overlays; do; setexpr name_fit_overlay gsub / _ conf-${overlay}; setenv overlaystring ${overlaystring}'#'${name_fit_overlay}; done;
    get_kern_mmc=load mmc ${bootpart} ${loadaddr} ${bootdir}/${name_kern}
    get_kern_ospi_nand=ubifsload ${loadaddr} ${bootdir}/${name_kern}
    get_kern_ufs=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${name_kern}
    get_overlay_mmc=fdt address ${fdtaddr}; fdt resize 0x100000; for overlay in $name_overlays; do; load mmc ${bootpart} ${dtboaddr} ${bootdir}/dtb/ti/${overlay} && fdt apply ${dtboaddr}; done;
    get_overlay_ospi_nand=fdt address ${fdtaddr} fdt resize 0x100000; for overlay in $name_overlays; do; ubifsload ${dtboaddr} ${bootdir}/dtb/${overlay} && fdt apply ${dtboaddr}; done;
    get_overlay_ufs=fdt address ${fdtaddr}; fdt resize 0x100000; for overlay in $name_overlays; do; load scsi ${bootpart} ${dtboaddr} ${bootdir}/${overlay} && fdt apply ${dtboaddr}; done;
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    init_mmc=run args_all args_mmc
    init_ospi_nand=run args_all args_ospi_nand ospi_nand_ubi_init
    init_ufs=ufs init; scsi scan; run args_ufs
    kernel_addr_r=0x82000000
    load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
    loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/dtb/${fdtfile}
    loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
    mmcboot=mmc dev ${mmcdev}; devnum=${mmcdev}; devtype=mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev}; if run loadimage; then run args_mmc; if test ${boot_fit} -eq 1; then run run_fit; else run mmcloados; fi; fi; fi;
    mmcdev=1
    mmcloados=if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run get_fdt_mmc; 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
    mtdids=nor0=47040000.spi.0,nand0=spi-nand0
    mtdparts=mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);spi-nand0:512k(ospi_nand.tiboot3),2m(ospi_nand.tispl),4m(ospi_nand.u-boot),256k(ospi_nand.env),256k(ospi_nand.env.backup),98048k@32m(ospi_nand.rootfs),256k@130816k(ospi_nand.phypattern)
    name_fit=fitImage
    name_kern=Image
    ospi_nand_bootpart=ospi_nand.rootfs
    ospi_nand_bootvolume=ubi0:rootfs
    ospi_nand_ubi_init=ubi part ${ospi_nand_bootpart}; ubifsmount ${ospi_nand_bootvolume};
    partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    rd_spec=-
    rdaddr=0x88080000
    rproc_fw_binaries= 1 /lib/firmware/j721s2-mcu-r5f0_1-fw 2 /lib/firmware/j721s2-main-r5f0_0-fw 3 /lib/firmware/j721s2-main-r5f0_1-fw 4 /lib/firmware/j721s2-main-r5f1_0-fw 5 /lib/firmware/j721s2-main-r5f1_1-fw 6 /lib/firmware/j721s2-c71_0-fw 7 /lib/firmware/j721s2-c71_1-fw
    rproc_load_and_boot_one=if load mmc ${bootpart} $loadaddr ${rproc_fw}; then if rproc load ${rproc_id} ${loadaddr} ${filesize}; then rproc start ${rproc_id}; fi; fi
    run_fit=run get_fit_config; bootm ${addr_fit}#${name_fit_config}${overlaystring}
    run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
    scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
    scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then part uuid ${devtype} ${devnum}:${distro_bootpart} distro_bootpart_uuid ; run scan_dev_for_boot; fi; done; setenv devplist
    scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
    scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo EXTLINUX FAILED: continuing...; fi
    scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
    scriptaddr=0x80000000
    scsi_boot=run scsi_init; if scsi dev ${devnum}; then devtype=scsi; run scan_dev_for_boot_part; fi
    scsi_init=if ${scsi_need_init}; then scsi_need_init=false; scsi scan; fi
    scsirootfstype=ext4 rootwait
    secure_rprocs=0
    serial#=0000000000000133
    soc=k3
    stderr=serial@2880000
    stdin=serial@2880000
    stdout=serial@2880000
    ubifs_boot=if ubi part ${bootubipart} ${bootubioff} && ubifsmount ubi0:${bootubivol}; then devtype=ubi; devnum=ubi0; bootfstype=ubifs; distro_bootpart=${bootubivol}; run scan_dev_for_boot; ubifsumount; fi
    ufs_finduuid=part uuid scsi ${bootpart} uuid
    update_to_fit=setenv loadaddr ${addr_fit}; setenv bootfile ${name_fit}
    usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
    vendor=ti
    
    Environment size: 11373/262139 bytes
    => boot
    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 **
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    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
    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
    Scanning mmc 0:1...
    MMC: no card present
    mmc_init: -123, time 2002
    No EFI system partition
    No EFI system partition
    Failed to persist EFI variables
    BootOrder not defined
    EFI boot manager: Cannot load any image
    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,20] sci-dev-id:272
    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
    DHCP client bound to address 192.168.0.38 (154 ms)
    *** ERROR: `serverip' not set
    Cannot autoload with TFTPGET
    missing environment variable: pxeuuid
    Retrieving file: pxelinux.cfg/01-34-08-e1-77-ea-9a
    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/C0A80026
    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/C0A8002
    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/C0A800
    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/C0A80
    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/C0A8
    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/C0A
    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/C0
    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/C
    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-j721s2
    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
    DHCP client bound to address 192.168.0.38 (173 ms)
    *** ERROR: `serverip' not set
    Cannot autoload with TFTPGET
    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
    DHCP client bound to address 192.168.0.38 (187 ms)
    *** ERROR: `serverip' not set
    Cannot autoload with TFTPGET
    => 

  • HI JK,

    From the env shared by you there are two thing which is not correct one is boot part and another is mmcdev.

    saveenv is removed after  8.6 SDK suggested to use uEnv.txt for setting the environment variable.

    or revert the below patch 

    commit id : 

    2b3213dc4a5c96949e082852522a590b784cb584 

    Regards
    Diwakar

  • Hello Diwakar.

    I can’t see the attached picture, so I can’t understand it precisely.

    I referenced all the modified content from the TI document.

    Are there any other documents I can refer to?

    Regards,

    JK

  • HI JK 

    I can’t see the attached picture, so I can’t understand it precisely.

    Reattaching the screenshot.

    If you see the values of the variable shared by you is different then that of mentioned in the document.

    You need to revert this patch if you want to store the env variable 

    https://lists.denx.de/pipermail/u-boot/2022-December/502749.html

    I referenced all the modified content from the TI document.

    Are there any other documents I can refer to?

    The app not was developed in the early time frame and due to continues development in the uboot lead to the change in the saveenv command.

    So you can revert the above patch if you want to store the U-Boot environment variable in the emmc.

    Regards
    Diwakar

  • Hi Diwakar,

    You said:
    
    saveenv is removed after. 8.6 SDK suggested to use uEnv.txt for setting the environment variable.

    Where can I find an information of how to use the uEnv.txt file?

    As I mentioned before, I am looking for instructions on booting from eMMC.

    Is there any advice on booting to eMMC using the v09x SDK? 

    The link you suggested is not enough for working.

    Regards,

    JK

  • Hi JK 

    There two things which i suggested

    • Either to revert the patch which i mentioned above if you want to get the saveenv functionality.
    • Or you can use the uEnv.txt to store the environment variable , uEnv.txt is a slandered uboot thing nothing specific to TI.

    Regards
    Diwakar