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.

TDA4VMXEVM: U-Boot bootargs for micro-SD

Part Number: TDA4VMXEVM

Hello,
in U-Boot after following modification (to boot from eMMC)

-----
mmc dev 0
setenv bootargs console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 vm.overcommit_ratio=5 vm.overcommit_memory=2 root=/dev/mmcblk0p1 ip=dhcp
setenv bootcmd "setenv autoload no;ext4load mmc 0:1 0x82000000 /boot/Image;ext4load mmc 0:1 0x81200000/boot/k3-j721e-common-proc-board.dtb; booti 0x82000000 - 0x81200000"
saveenv
-----
I'm no longer able to boot from micro-SD.

Would you please provide me a procedure to store the right values to boot again from micro-SD.


How to switch back  

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

U-Boot SPL 2019.01-g66126341c8 (Dec 11 2019 - 21:52:37 +0000)
SYSFW ABI: 2.6 (firmware rev 0x0013 '19.8.1-v2019.08b (Terrific Llam')
Trying to boot from MMC2
Loading Environment from MMC... *** Warning - No MMC card found, using default environment

Remoteproc 2 started successfully
** File not found /lib/firmware/j7-mcu-r5f0_0-fw **
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.1(release):ti2019.02-rc4
NOTICE:  BL31: Built : 21:52:04, Dec 11 2019
I/TC:
I/TC: OP-TEE version: ti2019.02-89-ge5a8779-dev (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 Wed Dec 11 21:52:32 UTC 2019 aarch64
I/TC: Initialized

U-Boot SPL 2019.01-g66126341c8 (Dec 11 2019 - 21:52:51 +0000)
Detected: J7X-BASE-CPB rev E3
Detected: J7X-VSC8514-ETH rev E2
Trying to boot from MMC2
ti_sci_power_domain_on: get_device(91) failed (-19)


U-Boot 2019.01-g66126341c8 (Dec 11 2019 - 21:52:51 +0000)

SoC:   J721E PG 1.0
Model: Texas Instruments K3 J721E SoC
Board: J721EX-PM2-SOM rev E7
DRAM:  4 GiB
Flash: 0 Bytes
MMC:   ti_sci_power_domain_on: get_device(91) failed (-19)
sdhci@4f80000: 0, sdhci@4fb0000: 1
Loading Environment from MMC... OK
In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
Detected: J7X-BASE-CPB rev E3
Detected: J7X-VSC8514-ETH rev E2
Net:   eth0: ethernet@046000000
Hit any key to stop autoboot:  0
** Unrecognized filesystem type **
** Unrecognized filesystem type **
Bad Linux ARM64 Image magic!
=>
=> printenv
arch=arm
args_all=setenv optargs earlycon=ns16550a,mmio32,0x02800000 ${mtdparts}
args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
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
autoload=no
baudrate=115200
board=j721e
board_name=J721EX-PM2-SOM
board_rev=E7
board_serial=0143
board_software_revision=01
boot=mmc
boot_fit=0
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;for i in ${rproc_fw_binaries} ; do if test -z "${rproc_id}" ; then env set rproc_id $i;else env set rproc_fw $i;run rproc_load_and_boot_one;env set rproc_id;env set rproc_fw;fi;done
bootargs=console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 vm.overcommit_ratio=5 vm.overcommit_memory=2 root=/dev/mmcblk0p1 ip=dhcp
bootcmd=setenv autoload no;ext4load mmc 0:1 0x82000000 /boot/Image;ext4load mmc 0:1 0x81200000/boot/k3-j721e-common-proc-board.dtb; booti 0x82000000 - 0x81200000
bootdelay=2
bootdir=/boot
bootenvfile=uEnv.txt
bootpart=1:2
bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
check_android=setenv mmcdev 0; env delete boot_start; part start mmc ${mmcdev} boot boot_start; if test "$boot_start" = ""; then env set is_android 0; else env set is_android 1; fi; env delete boot_start
check_dofastboot=if test ${dofastboot} -eq 1; then echo Boot fastboot requested, resetting dofastboot ...;setenv dofastboot 0; env save; echo Booting into fastboot ...; fastboot 0; fi
console=ttyS2,115200n8
cpu=armv8
dfu_alt_info_emmc=rawemmc raw 0 0x800000 mmcpart 1;rootfs part 0 1 mmcpart 0;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_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_ram=tispl.bin ram 0x80080000 0x100000;u-boot.img ram 0x81000000 0x100000
dfu_bufsiz=0x20000
dorprocboot=0
emmc_android_boot=echo Trying to boot Android from eMMC ...; run update_to_fit; setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 0; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} boot boot_start; part size mmc ${mmcdev} boot boot_size; mmc read ${fit_loadaddr} ${boot_start} ${boot_size}; run get_overlaystring; run run_fit
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;
eth1addr=70:ff:76:1d:98:8a
eth2addr=70:ff:76:1d:98:8b
eth3addr=70:ff:76:1d:98:8c
eth4addr=70:ff:76:1d:98:8d
ethaddr=50:51:a9:fc:83:1e
fdtaddr=0x82000000
fdtcontroladdr=fdec3808
findfdt=if test $board_name = J721EX-PM2-SOM; then setenv fdtfile k3-j721e-common-proc-board.dtb; fi;if test $board_name = J721EX-PM1-SOM; then setenv fdtfile k3-j721e-proc-board-tps65917.dtb; fi;setenv overlay_files ${name_overlays}
finduuid=part uuid mmc ${bootpart} uuid
fit_bootfile=fitImage
fit_loadaddr=0x90000000
get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
get_fdt_ufs=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
get_kern_mmc=load mmc ${bootpart} ${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 $overlay_files;do;load mmc ${bootpart} ${overlayaddr} ${bootdir}/${overlay} && fdt apply ${overlayaddr};done;
get_overlay_ufs=fdt address ${fdtaddr};fdt resize 0x100000;for overlay in $name_overlays;do;load scsi ${bootpart} ${overlayaddr} ${bootdir}/${overlay} && fdt apply ${overlayaddr};done;
get_overlaystring=for overlay in $overlay_files;do;setenv overlaystring ${overlaystring}'#'${overlay};done;
importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
init_mmc=run args_all args_mmc
init_ufs=ufs init; scsi scan; run args_ufs
loadaddr=0x80080000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
loadfit=run args_mmc; run run_fit;
loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
mainr5f0_0fwname=/lib/firmware/j7-main-r5f0_0-fw
mainr5f0_0loadaddr=88000000
mcur5f0_0fwname=/lib/firmware/j7-mcu-r5f0_0-fw
mcur5f0_0loadaddr=89000000
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=1
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
mtdids=nor0=47040000.spi.0,nor0=47034000.hyperbus
mtdparts=mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),128k(ospi.env),128k(ospi.env.backup),1m(ospi.sysfw),-@8m(ospi.rootfs);47034000.hyperbus:512k(hbmc.tiboot3),2m(hbmc.tispl),4m(hbmc.u-boot),256k(hbmc.env),1m(hbmc.sysfw),-@8m(hbmc.rootfs)
name_kern=Image
overlayaddr=0x83000000
partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
partitions_android=uuid_disk=${uuid_gpt_disk};name=bootloader,start=5M,size=8M,uuid=${uuid_gpt_bootloader};name=tiboot3,start=4M,size=1M,uuid=${uuid_gpt_tiboot3};name=boot,start=13M,size=40M,uuid=${uuid_gpt_boot};name=vendor,size=1024M,uuid=${uuid_gpt_vendor};name=system,size=2048M,uuid=${uuid_gpt_system};name=userdata,size=-,uuid=${uuid_gpt_userdata}
rd_spec=-
rproc_fw_binaries=3 /lib/firmware/j7-main-r5f0_1-fw 4 /lib/firmware/j7-main-r5f1_0-fw 6 /lib/firmware/j7-c66_0-fw 7 /lib/firmware/j7-c66_1-fw 8 /lib/firmware/j7-c71_0-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=bootm ${fit_loadaddr}#${fdtfile}${overlaystring}
run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
scsirootfstype=ext4 rootwait
serial#=0000000000000143
soc=k3
stderr=serial@2800000
stdin=serial@2800000
stdout=serial@2800000
ufs_finduuid=part uuid scsi ${bootpart} uuid
update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}
vendor=ti

Environment size: 7059/131067 bytes
=>

  • Hi Uwe Boehm,

    This is because saveenv step has saved the eMMC bootargs and you printenv command shows exactly
    that::
    bootcmd=setenv autoload no;ext4load mmc 0:1 0x82000000 /boot/Image;ext4load mmc 0:1 0x81200000/boot/k3-j721e-common-proc-board.dtb; booti 0x82000000 - 0x81200000


    So please do the below steps.

    1) env default -a;
    2) saveenv;

    This should reset the bootargs that you had saved for eMMC boot. Now reset the board.

    I believe the SD card that you created was already having uEnv.txt and that should give the right bootargs to boot from SD card.

    Let me know if it gets SD boot working again.

    Thanks,
    Keerthy

  • Hello Keerthy,

    thanks for the support.

    Some related questions:

    1.

    Where the change ( env default -a;  saveenv; ) is stored

    2.

    Would you please also provide an uEnv.txt for eMMC?

    Thanks a lot.

  • Hi Uwe,

    1. They are stored in eMMC.
    2. The answer to it is not the simple. You need to create a FAT partition and make it bootable and then store uEnv.txt there which will
    have essentially the bootargs you used to boot from eMMC.
    So i would recommend giving the bootargs once manually and do a saveenv like before and that will boot from eMMC
    next time as well.

    Hope that resolves your issue.

    Best Regards,
    Keerthy

  • Hi Uwe,

    Could you please resolve this thread if your questions are answered?

    Regards,
    Keerthy