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.

TDA4VM: Does tda4vm support emmc UDA partition boot ?

Part Number: TDA4VM

Hi expert,

I have tried the emmc boot partition boot and can be success, by vishal introduced in below link:

https://e2e.ti.com/support/processors/f/791/p/886615/3330218#3330218

but it's failed when I tried the emmc UDA boot. and I can find the emmc boot introduction in TRM as below, which do not have UDA related. But I think it's supported in J6, so does tda4 supported this mode?

Best regard,

Neo

  • Hi Neo,

    The picture you attached did not come through.
    eMMC UDA partition is supported on TDA4VM and verified on TI EVM.

    Are you using TI EVM?
    Do you have SYSBOOT DIP switch settings selected for UDA partition? SW8: 1000_0000 SW9: 0000_0000

    Regards,
    Vishal

  • Hi Vishal,

    Thanks for your reply.

    yes, I tried this in EVM and SW8: 1000_0000 SW9: 0000_0000, but it will stuck in below log :

    "

    U-Boot SPL 2020.01-gf9b0d030d3 (Jun 17 2020 - 15:08:08 +0000)
    SYSFW ABI: 2.9 (firmware rev 0x0013 '19.12.1-v2019.12a (Terrific Lla')
    Trying to boot from MMC1
    Loading Environment from MMC... *** Warning - bad CRC, using default environment

    init_env from device 17 not supported!
    Loading rproc fw image from device 17 not supported!
    Loading rproc fw image from device 17 not supported!
    Starting ATF on ARM64 core...

    "

    /***************my step as below****************/

    1. partition emmc to boot and rootfs, also flash the file to emmc partition from SD card.

    2. Do below u-boot environment settings:

    env default -f -a

    mmc partconf 0 1 7 0

    mmc bootbus 0 2 0 0

    setenv bootpart 0:2

    saveenv

    3. set boot mode pin SW8: 1000_0000 SW9: 0000_0000

    Do I missed some things?

    thanks

    Neo

  • Hi Neo,

    partconf and bootbus commands are not needed for UDA partition boot.

    Also, based on the log the tiboot3.bin is loaded by ROM from UDA partition.

    Could you share the log of steps you followed?

    Regards,
    Vishal

  • Hi Vishal,

    Please find my step and detail log as attachment.

    j7-evm login: root
    Last login: Wed Jun 17 14:17:26 UTC 2020
    root@j7-evm:~# 
    root@j7-evm:~# ls
    mksdboot.sh
    root@j7-evm:~# chmod +x mksdboot.sh
    root@j7-evm:~# ls -l /dev/mmcblk*
    brw-rw----    1 root     disk      179,   0 Jun 17 14:17 /dev/mmcblk0
    brw-rw----    1 root     disk      179,  32 Jun 17 14:17 /dev/mmcblk0boot0
    brw-rw----    1 root     disk      179,  64 Jun 17 14:17 /dev/mmcblk0boot1
    brw-rw----    1 root     disk      179,   1 Jun 17 14:17 /dev/mmcblk0p1
    brw-rw----    1 root     disk      179,   2 Jun 17 14:17 /dev/mmcblk0p2
    crw-------    1 root     root      240,   0 Jun 17 14:17 /dev/mmcblk0rpmb
    brw-rw----    1 root     disk      179,  96 Jun 17 14:17 /dev/mmcblk1
    brw-rw----    1 root     disk      179,  97 Jun 17 14:17 /dev/mmcblk1p1
    brw-rw----    1 root     disk      179,  98 Jun 17 14:17 /dev/mmcblk1p2
    root@j7-evm:~# umount /dev/mmcblk0*
    umount: /dev/mmcblk0: not mounted.
    umount: /dev/mmcblk0boot0: not mounted.
    umount: /dev/mmcblk0boot1: not mounted.
    umount: /dev/mmcblk0rpmb: not mounted.
    root@j7-evm:~# udevadm control -s
    root@j7-evm:~# ./mksdboot.sh --device /dev/mmcblk0
    -- Main device is: /dev/mmcblk1p2
    ************************************************************
    *         THIS WILL DELETE ALL THE DATA ON /dev/mmcblk0         *
    *                                                          *
    *         WARNING! Make sure your computer does not go     *
    *                  in to idle mode while this script is    *
    *                  running. The script will complete,      *
    *                  but your SD card may be corrupted.      *
    *                                                          *
    *         Press <ENTER> to confirm....                     *
    ************************************************************
    
    unmounting device '/dev/mmcblk0'
    unmounting device '/dev/mmcblk0boot0'
    unmounting device '/dev/mmcblk0boot1'
    unmounting device '/dev/mmcblk0p1'
    unmounting device '/dev/mmcblk0p2'
    unmounting device '/dev/mmcblk0rpmb'
    1024+0 records in
    1024+0 records out
    
    Welcome to fdisk (util-linux 2.35.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0xf4cca351.
    
    Command (m for help): Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): Partition number (1-4, default 1): First sector (2048-2
    : Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-31080447, [   96.4152
    default 31080447): 
    Created a new partition 1 of type 'Linux' and of size 62 MiB.
    Partition #1 contains a vfat signature.
    
    Command (m for help): Partition type
       p   primary (1 primary, 0 extended, 3 free)
       e   extended (container for logical partitions)
    Select (default p): Partition number (2-4, default 2): First sector (12902 
    Created a new partition 2 of type 'Linux' and of size 14.8 GiB.
    Partition #2 contains a ext4 signature.
    
    Command (m for help): Partition number (1,2, default 2): Hex code (type L  
    Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.
    
    Command (m for help): Partition number (1,2, default 2): 
    The bootable flag on partition 1 is enabled now.
    
    Command (m for help): The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
    unmounting device '/dev/mmcblk0'
    unmounting device '/dev/mmcblk0boot0'
    unmounting device '/dev/mmcblk0boot1'
    unmounting device '/dev/mmcblk0rpmb'
    Formatting /dev/mmcblk0 ...
    mkfs.fat 4.1 (2017-01-24)
    mkfs.fat: warning - lowercase labels might not work properly with DOS or Ws
    mke2fs 1.45.4 (23-Sep-2019)
    /dev/mmcblk0p2 contains a ext4 file system labelled 'rootfs'
            last mounted on / on Wed Jun 17 14:17:27 2020
    Proceed anyway? (y,N) y
    Discarding device blocks: done                            
    Creating filesystem with 3868928 4k blocks and 967232 inodes
    Filesystem UUID: d8e41851-87b8-40b4-96ad-d17f964fcc98
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2658
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (16384 blocks): done
    Writing superblocks and filesystem accounting information: done   
    
    Partitioning and formatting completed!
    
    root@j7-evm:~# 
    root@j7-evm:~# 
    root@j7-evm:~# sync
    root@j7-evm:~# umount /run/media/*
    root@j7-evm:~# mkdir /mnt/sd-boot
    mkdir: can't create directory '/mnt/sd-boot': File exists
    root@j7-evm:~# [  129.551089] Initializing XFRM netlink socket
    [  131.644876] bridge: filtering via arp/ip/ip6tables is no longer availab.
    [  131.662835] Bridge firewalling registered
    mount /dev/mmcblk1p1 /mnt/sd-boot
    root@j7-evm:~# mkdir /mnt/sd-rootfs
    mkdir: can't create directory '/mnt/sd-rootfs': File exists
    root@j7-evm:~# mount /dev/mmcblk1p2 /mnt/sd-rootfs
    root@j7-evm:~# mkdir /mnt/emmc-boot
    mkdir: can't create directory '/mnt/emmc-boot': File exists
    root@j7-evm:~# mount /dev/mmcblk0p1 /mnt/emmc-boot
    root@j7-evm:~# mkdir /mnt/emmc-rootfs
    mkdir: can't create directory '/mnt/emmc-rootfs': File exists
    root@j7-evm:~# mount /dev/mmcblk0p2 /mnt/emmc-rootfs
    [  164.845144] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data m)
    root@j7-evm:~# cp -r /mnt/sd-boot/* /mnt/emmc-boot
    root@j7-evm:~# sync
    root@j7-evm:~# cp -r /mnt/sd-rootfs/* /mnt/emmc-rootfs
    root@j7-evm:~# sync
    root@j7-evm:~# umount /mnt/*
    root@j7-evm:~# sync
    root@j7-evm:~# 
    

    After flash the filesystem as attached step, I changed the boot mode pin and restart the EVM, will stuct in above log.

    thanks a lot!

    Best regard,

    Neo

  • Hi Neo,

    On u-boot console, can you try below commands and try?

    => env default -f -a
    => setenv mmcdev 0
    => setenv bootpart 0:2
    => env save


    Regards,
    Vishal

  • Hi Vishal,

    Already tried this and no effect. Thanks!

    BR,

    Neo

  • li wang75 said:
    U-Boot SPL 2020.01-gf9b0d030d3 (Jun 17 2020 - 15:08:08 +0000)
    SYSFW ABI: 2.9 (firmware rev 0x0013 '19.12.1-v2019.12a (Terrific Lla')

    Neo,

    Please burn all the binaries from 7.0. Your SPL is 7.0 but sysfw version is old. So please make sure
    that you pick the binary from 7.0 pre built and burn it to eMMC & this will work.

    Please resolve the issue if this makes it work.

    Best Regards,
    Keerthy

  • Hi Keerthy,

    Thank you for your reply and I replace the default file in prebuild, and this issue still exist. current status is the console don't print any log.

    My step as below:

    1. use mksdboot.sh to partition the emmc and flash sd-boot/rootfs to emmc-bbot/rootfs.

    2. set arg in uboot as

    => env default -f -a
    => setenv mmcdev 0
    => setenv bootpart 0:2
    => env save

    3. bootmode pin as

    sw8:1000_0000
    sw9:0000_0000

    BR,

    Neo

  • Hi Neo,

    It should have at least shown some log.
    Last time you had some logs showing up.

    Can you redo the procedure once?

    Regards,
    Vishal

  • Hi Vishal,

    the last time have log is just because I DO NOT erase the boot file in bootpartitoon, so before log is print by the boot image in boot partition.

    But our target is boot from uda, so I erase the boot partition this time, and no log print out.

    Thanks!

    Br,

    Neo

  • Hi Neo,

    Here are my commands:

    mmc dev 0 0; 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; fatload mmc 1 ${loadaddr} sysfw.itb; mmc write ${loadaddr} 0x3600 0x800

    Dip switch settings same as yours:

    sw8:1000_0000
    sw9:0000_0000

    I am able to boot to u-boot prompt using the eMMC UDA Partition.

    U-Boot SPL 2020.01-g3c9ebdb87d (Nov 19 2020 - 18:33:21 +0000
                                                                SYSFW ABI: 3.1 (firmware rev 0x0014 '20.8.5--v2020.08b (Terric Lla')
    Trying to boot from MMC1
    Loading Environment from MMC... *** Warning - bad CRC, using default environment

    init_env from device 17 not supported!
    Starting ATF on ARM64 re...

    NOTICE:  BL31: v2.3():07.01.00.004-1-g52c334fc3-dirty
    NOTICE:  BL31: Built : 18:17:14, N 19 2020

    U-Boot SPL 2020.01-g3c9ebdb87d (Nov 19 2020 - 18:29:59 +0000
                                                                SYSFW ABI: 3.1 (firmware rev 0x0014 '20.8.5--v2020.08b (Terric Lla')
    Detected: J7X-BASE-CPB rev E2
    Detected: J7X-INFOTAN-EXP rev E
                                   Detected: J7X-VSC8514-ETH rev E2
    Trying to boot from MMC1


    U-Boot 2020.01-g3c9ebdb87d (Nov 19 2020 - 18:29:59 +0000)
    SoC:   J721E SR1.0
    Model: Texas Instruments K3 J721E SoC
    Board: J72X-PM2-SOM rev E6
    DRAM:  4 GiB
    not found for dev hbmc-mux
    Flash: 0 Bytes
    MMC:   sdhci@4f80000: 0,dhci@4fb0000: 1
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   seria2800000
    Detected: J7X-BASE-CPB rev E2
    Detected: J7X-INFOTAN-EXP rev E
                                   Detected: J7X-VSC8514-ETH rev E2
    Net:   
    Warning: ethernet@46000000 using MAC address om ROM
    eth0: ethernet@46000000
    Hit any key to stop autoboot:  0
    =>



    Best Regards,
    Keerthy