title: U-Boot bootcmd (auto vs manual)
body: <p>I'm running into an issue where when I power up my device, it hangs at </p>
  
  <pre><code>Starting kernel ...
  </code></pre>
  
  <p>Or it loops with </p>
  
  <pre><code>Starting kernel ...
  
  resetting ...
  </code></pre>
  
  <p>However, if I interrupt the boot process and manually run boot, ie:</p>
  
  <pre><code>=&gt; run bootcmd
  or
  =&gt; boot
  </code></pre>
  
  <p>then the kernel loads fine.</p>
  
  <p>According to DENX (5.9.6.5) this is equivalent to what Uboot should be doing automatically.</p>
  
  <p>Does anyone know if there is a difference between letting uboot run on it's own and interrupting and running boot manually? Otherwise, how do I start debugging this?</p>
  
  <p>ENVIRONMENT</p>
  
  <pre><code>=&gt; printenv
  autoload=no
  baudrate=115200
  board_name=EVK
  board_rev=pilot
  boot_fdt=try
  bootcmd=echo Booting from network ...; usb start; setenv ethact asx0; if dhcp &amp;&amp; tftp $loadaddr $bootfile &amp;&amp; tftp $f
  dt_addr $fdt_file; then run nfsboot; else echo WARN: Issue with TFTP.; run sdboot; fi;
  bootdelay=3
  bootfile=zImage
  bootscript=echo Running bootscript from mmc ...; source
  console=ttymxc1
  ethact=asx0
  ethprime=FEC
  fdt_addr=0x83000000
  fdt_file=imx6ul-pilot-v1-evk.dtb
  fdt_high=0xffffffff
  image=zImage
  initrd_high=0xffffffff
  ip_dyn=yes
  loadaddr=0x80800000
  loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
  loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
  loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
  mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
  mmcautodetect=yes
  mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
  mmcdev=1
  mmcpart=1
  mmcroot=/dev/mmcblk1p2 rootwait rw
  netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
  nfsboot=run netargs; bootz $loadaddr - $fdt_addr
  nfsroot=/nfs/rootfs
  script=boot.scr
  sdboot=echo Booting from mmc ...; mmc dev ${mmcdev}; mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else echo ERROR: Cannot run loadimage; fi; fi; else run ERROR: Cannot run mmc rescan; fi;
  serverip=192.168.0.219
  
  Environment size: 1714/8188 bytes
  </code></pre>