title: BeagleBone Black: Unable to get u-boot prompt
body: <p>I am trying to build u-boot for my BeagleBone Black.</p>
  <p>I have properly compiled the MLO and u-boot.img and loaded into the sd-card.</p>
  <p>However, when i try to boot, i get the following log:</p>
  <blockquote>
  <p>U-Boot SPL 2020.07-00717-gfee68b9 (Jul 17 2020 - 09:36:15) Trying to
  boot from MMC1</p>
  <p>U-Boot 2020.07-00717-gfee68b9 (Jul 17 2020 - 09:36:15)</p>
  <p>CPU  : AM335X-GP rev 2.1 Model: TI AM335x BeagleBone Black DRAM:  512
  MiB WDT:   Started with servicing (60s timeout) NAND:  0 MiB MMC:<br />
  OMAP SD/MMC: 0, OMAP SD/MMC: 1 Loading Environment from FAT... ***
  Warning - bad CRC, using default environment</p>
  <p> not set. Validating first E-fuse MAC Net:   eth2:
  ethernet@4a100000, eth3: usb_ether Hit any key to stop autoboot:  2
  1  0  switch to partitions #0, OK mmc0 is current device SD/MMC
  found on device 0 switch to partitions #0, OK mmc0 is current device
  Scanning mmc 0:1... switch to partitions #0, OK mmc0 is current device
  SD/MMC found on device 0 switch to partitions #0, OK mmc1(part 0) is
  current device Scanning mmc 1:1... switch to partitions #0, OK
  mmc1(part 0) is current device SD/MMC found on device 1 Error:
  &quot;bootcmd_nand0&quot; not defined starting USB... Bus usb@47401800: Port not
  available. ethernet@4a100000 Waiting for PHY auto negotiation to
  complete......... TIMEOUT ! using musb-hdrc, OUT ep1out IN ep1in
  STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS
  ready musb-hdrc: peripheral reset irq lost! high speed config #2: 2
  mA, Ethernet Gadget, using RNDIS USB RNDIS network up!</p>
  <p>BOOTP broadcast 1 BOOTP broadcast 2 . . BOOTP broadcast 29</p>
  <p>Retry time exceeded; starting again missing environment variable:
  pxeuuid Retrieving file: pxelinux.cfg/00000000 using musb-hdrc, OUT
  ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC
  de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq lost!
  high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS
  network up!
  *** ERROR: <code>serverip' not set Retrieving file: pxelinux.cfg/0000000 using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up! *** ERROR: </code>serverip' not set Retrieving file: pxelinux.cfg/000000 using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC
  de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc:
  peripheral reset irq lost! high speed config #2: 2 mA, Ethernet
  Gadget, using RNDIS USB RNDIS network up!
  *** ERROR: <code>serverip' not set Retrieving file: pxelinux.cfg/00000 using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up! *** ERROR: </code>serverip' not set Retrieving file: pxelinux.cfg/0000 using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST
  MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq
  lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB
  RNDIS network up!
  *** ERROR: <code>serverip' not set Retrieving file: pxelinux.cfg/000 using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up! *** ERROR: </code>serverip' not set Retrieving file: pxelinux.cfg/00 using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST
  MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq
  lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB
  RNDIS network up!
  *** ERROR: <code>serverip' not set Retrieving file: pxelinux.cfg/0 using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up! *** ERROR: </code>serverip' not set Retrieving file: pxelinux.cfg/default-arm-am33xx-am335x using musb-hdrc, OUT ep1out IN
  ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00
  RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config
  #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up!
  *** ERROR: <code>serverip' not set Retrieving file: pxelinux.cfg/default-arm-am33xx using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up! *** ERROR: </code>serverip' not set Retrieving file: pxelinux.cfg/default-arm using musb-hdrc, OUT ep1out IN ep1in STATUS
  ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready
  musb-hdrc: peripheral reset irq lost! high speed config #2: 2 mA,
  Ethernet Gadget, using RNDIS USB RNDIS network up!
  *** ERROR: <code>serverip' not set Retrieving file: pxelinux.cfg/default using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00 RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up! *** ERROR: </code>serverip' not set Config file not found starting USB... Bus usb@47401800: Port not available. using musb-hdrc, OUT ep1out IN
  ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00
  RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config
  #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up!</p>
  <p>BOOTP broadcast 1 BOOTP broadcast 2 BOOTP broadcast 3 . . BOOTP
  broadcast 28 BOOTP broadcast 29</p>
  <p>Retry time exceeded; starting again using musb-hdrc, OUT ep1out IN
  ep1in STATUS ep2in MAC de:ad:be:ef:00:01 HOST MAC de:ad:be:ef:00:00
  RNDIS ready musb-hdrc: peripheral reset irq lost! high speed config
  #2: 2 mA, Ethernet Gadget, using RNDIS USB RNDIS network up!</p>
  <p>BOOTP broadcast 1 BOOTP broadcast 2 . . BOOTP broadcast 28 BOOTP
  broadcast 29</p>
  <p>Retry time exceeded; starting again
  =&gt;</p>
  </blockquote>
  <p>I am expected to get the u-boot prompt.</p>
  <p>What can be the issue?</p>
  <p><strong>EDIT-1: Adding the output of printenv as per Frant's suggestion below</strong></p>
  <pre><code>U-Boot SPL 2020.07-00717-gfee68b9 (Jul 17 2020 - 09:36:15)
  Trying to boot from MMC1
  
  
  U-Boot 2020.07-00717-gfee68b9 (Jul 17 2020 - 09:36:15)
  
  CPU  : AM335X-GP rev 2.1
  Model: TI AM335x BeagleBone Black
  DRAM:  512 MiB
  WDT:   Started with servicing (60s timeout)
  NAND:  0 MiB
  MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
  Loading Environment from FAT... *** Warning - bad CRC, using default environment
  
  &lt;ethaddr&gt; not set. Validating first E-fuse MAC
  Net:   eth2: ethernet@4a100000, eth3: usb_ether
  Hit any key to stop autoboot:  2  0 
  =&gt;     prit ntenv
  addr_fit=0x90000000
  arch=arm
  args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
  baudrate=115200
  board=am335x
  board_name=A335BNLT
  board_rev=00C0
  board_serial=2315BBBK4C31
  boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
  boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};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_script_dhcp=boot.scr.uimg
  boot_scripts=boot.scr.uimg boot.scr
  boot_syslinux_conf=extlinux/extlinux.conf
  boot_targets=mmc0 legacy_mmc0 mmc1 legacy_mmc1 nand0 pxe dhcp 
  bootcmd=if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd
  bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z &quot;${fdtfile}&quot; -a -n &quot;${soc}&quot;; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${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_legacy_mmc0=setenv mmcdev 0; setenv bootpart 0:2 ; run mmcboot
  bootcmd_legacy_mmc1=setenv mmcdev 1; setenv bootpart 1:2 ; run mmcboot
  bootcmd_mmc0=devnum=0; run mmc_boot
  bootcmd_mmc1=devnum=1; run mmc_boot
  bootcmd_nand=run nandboot
  bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
  bootcount=1
  bootdelay=2
  bootdir=/boot
  bootenvfile=uEnv.txt
  bootfile=zImage
  bootm_size=0x10000000
  bootpart=0:2
  bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
  console=ttyO0,115200n8
  cpu=armv7
  dfu_alt_info_emmc=rawemmc raw 0 3751936;boot part 1 1;rootfs part 1 2;MLO fat 1 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 0x6900;spl-os-args fat 1 1;spl-os-image fat 1 1;u-boot.img fat 1 1;uEnv.txt fat 1 1
  dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 0x6900;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
  dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.backup3 part 0 4;u-boot part 0 5;u-boot-spl-os part 0 6;kernel part 0 8;rootfs part 0 9
  dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
  distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
  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;
  eth1addr=54:4a:16:b9:a1:8e
  eth2addr=54:4a:16:b9:a1:8c
  eth3addr=de:ad:be:ef:00:01
  ethaddr=54:4a:16:b9:a1:8c
  fdt_addr_r=0x88000000
  fdtaddr=0x88000000
  fdtcontroladdr=9df46c60
  fdtfile=undefined
  findfdt=if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; fi; if test $board_name = A335PBGL; then setenv fdtfile am335x-pocketbeagle.dtb; fi; if test $board_name = BBBW; then setenv fdtfile am335x-boneblack-wireless.dtb; fi; if test $board_name = BBG1; then setenv fdtfile am335x-bonegreen.dtb; fi; if test $board_name = BBGW; then setenv fdtfile am335x-bonegreen-wireless.dtb; fi; if test $board_name = BBBL; then setenv fdtfile am335x-boneblue.dtb; fi; if test $board_name = BBEN; then setenv fdtfile am335x-sancloud-bbe.dtb; fi; if test $board_name = A33515BB; then setenv fdtfile am335x-evm.dtb; fi; if test $board_name = A335X_SK; then setenv fdtfile am335x-evmsk.dtb; fi; if test $board_name = A335_ICE; then setenv fdtfile am335x-icev2.dtb; fi; if test $fdtfile = undefined; then echo WARNING: Could not determine device tree to use; fi; 
  finduuid=part uuid mmc ${bootpart} uuid
  get_overlaystring=for overlay in $name_overlays;do;setenv overlaystring ${overlaystring}'#'${overlay};done;
  importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
  init_console=if test $board_name = A335_ICE; then setenv console ttyO3,115200n8;else setenv console ttyO0,115200n8;fi;
  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}/${fdtfile}
  loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
  loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz
  mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
  mmcboot=mmc dev ${mmcdev}; devnum=${mmcdev}; setenv 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=0
  mmcloados=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=nand0=nand.0
  mtdparts=mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)
  name_fit=fitImage
  nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot} rootfstype=${nandrootfstype}
  nandboot=echo Booting from nand ...; run nandargs; nand read ${fdtaddr} NAND.u-boot-spl-os; nand read ${loadaddr} NAND.kernel; bootz ${loadaddr} - ${fdtaddr}
  nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system,2048
  nandrootfstype=ubifs rootwait=1
  netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
  netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
  netloadfdt=tftp ${fdtaddr} ${fdtfile}
  netloadimage=tftp ${loadaddr} ${bootfile}
  nfsopts=nolock
  partitions=uuid_disk=${uuid_gpt_disk};name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};name=rootfs,start=2688K,size=-,uuid=${uuid_gpt_rootfs}
  pxefile_addr_r=0x80100000
  ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot} rootfstype=${ramrootfstype}
  ramboot=echo Booting from ramdisk ...; run ramargs; bootz ${loadaddr} ${rdaddr} ${fdtaddr}
  ramdisk_addr_r=0x88080000
  ramroot=/dev/ram0 rw
  ramrootfstype=ext2
  rdaddr=0x88080000
  rootpath=/export/rootfs
  run_fit=bootm ${addr_fit}#${fdtfile}${overlaystring}
  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 run scan_dev_for_boot; fi; done; setenv devplist
  scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z &quot;${fdtfile}&quot; -a -n &quot;${soc}&quot;; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.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 SCRIPT 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
  serial#=2315BBBK4C31
  soc=am33xx
  spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype=${spirootfstype}
  spiboot=echo Booting from spi ...; run spiargs; sf probe ${spibusno}:0; sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; bootz ${loadaddr}
  spibusno=0
  spiimgsize=0x362000
  spiroot=/dev/mtdblock4 rw
  spirootfstype=jffs2
  spisrcaddr=0xe0000
  static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
  stderr=serial@44e09000
  stdin=serial@44e09000
  stdout=serial@44e09000
  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
  usbnet_devaddr=de:ad:be:ef:00:01
  vendor=ti
  ver=U-Boot 2020.07-00717-gfee68b9 (Jul 17 2020 - 09:36:15)
  
  Environment size: 9963/131068 bytes
  =&gt; 
  </code></pre>