Force cboot to boot from SD, not from eMMC?

Is there a way to signal cboot that it should try to boot from the SDCARD instead of the eMMC (flash)?

Yes, I know the NORMAL way of doing this is to just use u-boot, but in my case I might have to use cboot, so is there a jumper or something to signal cboot to try?


You can set up an environment variable in U-boot to do this, but I don’t think there is a direct way to do this with a jumper. Are you trying to always boot to SD card by default, or just under some circumstance in which you want to override the default behavior? If you are ok with always rebooting to SD card it won’t be too difficult (you’ll need serial console to set that up if you don’t want to flash).

I would like to recreate the uboot behavior using cboot. If the SDCARD is inserted, and valid, I’d like to boot from it, but if it’s not there, or not valid, fall back to the eMMC.

If you use a serial console and interrupt U-boot you can explore its environment. You will find, after running “printenv”, that there are some environment variables used in determining the boot process. One of those is “bootcmd”, which in turn expands other variables. Of special interest is the variable “boot_targets” (see “printenv boot_targets”). Targets are tested in that order. On my default install I see:

boot_targets=mmc1 mmc0 usb0 pxe dhcp

…if the SD card (mmc1) has extlinux.conf it should boot that, and if not, move on to eMMC (mmc0).

There may also be some influence from variable “cbootargs”. This is the printenv of cbootargs:

cbootargs=<b>root=/dev/mmcblk0p1</b> rw rootwait console=ttyS0,115200n8 console=tty0 OS=l4t fbcon=map:0 net.ifnames=0 memtype=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x03100000 nvdumper_reserved=0x2772e0000 gpt tegraid= tegra_keep_boot_clocks maxcpus=6 androidboot.serialno=0334916010131 bl_prof_dataptr=0x10000@0x277240000 sdhci_tegra.en_boot_part_access=1

In those variables mmcblk0 refers to eMMC, mmcblk1 refers to SD card, and the “p1” is the first partition.

You can edit a variable and test it (see “help setenv” and “help saveenv”). If you don’t save the edit will stay in place for just this one boot. If you saveenv, then the edit will be permanent until you flash or otherwise manually edit.

Once you are done editing just type “boot” to continue boot.

Yes, I’m familiar with uboot. I’m wanting to do this with Nvidia’s Cboot.

I do not believe there is a way to directly edit cboot.

OK, thanks!