--- /dev/null
+#include <env/ti/ti_common.env>
+#include <env/ti/mmc.env>
+#include <env/ti/dfu.env>
+
+bootpart=0:2
+bootdir=/boot
+get_name_kern=
+ if test $boot_fit -eq 1; then
+ setenv bootfile fitImage;
+ else
+ setenv bootfile zImage;
+ fi
+get_fit_config=setenv name_fit_config ${fdtfile}
+console=ttyS2,115200n8
+fdtfile=undefined
+finduuid=part uuid mmc 0:2 uuid
+usbtty=cdc_acm
+vram=16M
+
+#if CONFIG_CMD_AVB
+avb_verify=avb init 1; avb verify $slot_suffix;
+#endif
+
+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}
+ partitions_android=
+ uuid_disk=${uuid_gpt_disk};
+ name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};
+ name=bootloader,size=2048K,uuid=${uuid_gpt_bootloader};
+ name=uboot-env,start=2432K,size=256K,uuid=${uuid_gpt_reserved};
+ name=misc,size=128K,uuid=${uuid_gpt_misc};
+ name=boot_a,size=20M,uuid=${uuid_gpt_boot_a};
+ name=boot_b,size=20M,uuid=${uuid_gpt_boot_b};
+ name=dtbo_a,size=8M,uuid=${uuid_gpt_dtbo_a};
+ name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};
+ name=vbmeta_a,size=64K,uuid=${uuid_gpt_vbmeta_a};
+ name=vbmeta_b,size=64K,uuid=${uuid_gpt_vbmeta_b};
+ name=recovery,size=64M,uuid=${uuid_gpt_recovery};
+ name=super,size=2560M,uuid=${uuid_gpt_super};
+ name=metadata,size=16M,uuid=${uuid_gpt_metadata};
+ name=userdata,size=-,uuid=${uuid_gpt_userdata}
+optargs=
+dofastboot=0
+emmc_android_boot=
+ setenv mmcdev 1;
+ mmc dev $mmcdev;
+ mmc rescan;
+#if CONFIG_CMD_BCB
+#if CONFIG_ANDROID_AB
+ if part number mmc 1 misc control_part_number; then
+ echo "misc partition number:${control_part_number};"
+ bcb ab_select slot_name mmc ${mmcdev}:${control_part_number};
+ else
+ echo "misc partition not found;"
+ exit;
+ fi;
+ setenv slot_suffix _${slot_name};
+#endif
+#endif
+if bcb load CONFIG_FASTBOOT_FLASH_MMC_DEV misc; then
+ setenv ardaddr -;
+ if bcb test command = bootonce-bootloader; then
+ echo "Android: Bootloader boot...";
+ bcb clear command; bcb store;
+ fastboot 1;
+ exit;
+ elif bcb test command = boot-recovery; then
+ echo "Android: Recovery boot...";
+ setenv ardaddr $loadaddr;
+ setenv apart recovery;
+ else
+ echo "Android: Normal boot...";
+ setenv ardaddr $loadaddr;
+ setenv apart boot${slot_suffix};
+ fi;
+else
+ echo "Warning: BCB is corrupted or does not exist";
+ echo "Android: Normal boot...";
+fi;
+setenv eval_bootargs setenv bootargs $bootargs;
+run eval_bootargs;
+setenv machid fe6;
+#if CONFIG_CMD_AVB
+if run avb_verify; then
+ echo "AVB verification OK.";
+ set bootargs $bootargs $avb_bootargs;
+else
+ echo "AVB verification failed.";
+ exit;
+fi;
+#endif
+#if CONFIG_CMD_BCB
+#if CONFIG_ANDROID_AB
+setenv bootargs_ab androidboot.slot_suffix=${slot_suffix};
+echo "A/B cmdline addition: ${bootargs_ab}";
+setenv bootargs ${bootargs} ${bootargs_ab};
+#endif
+#endif
+if part start mmc $mmcdev $apart boot_start; then
+ part size mmc $mmcdev $apart boot_size;
+ mmc read $loadaddr $boot_start $boot_size;
+ echo "Preparing FDT...";
+ if test $board_name = am57xx_evm_reva3; then
+ echo " Reading DTBO partition...";
+ part start mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_start;
+ part size mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_size;
+ mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size};
+ echo " Reading DTB for AM57x EVM RevA3...";
+ abootimg get dtb --index=0 dtb_start dtb_size;
+ cp.b $dtb_start $fdtaddr $dtb_size;
+ fdt addr $fdtaddr 0x80000;
+ echo " Applying DTBOs for AM57x EVM RevA3...";
+ adtimg addr $dtboaddr;
+ adtimg get dt --index=0 dtbo0_addr dtbo0_size;
+ fdt apply $dtbo0_addr;
+ adtimg get dt --index=1 dtbo1_addr dtbo1_size;
+ fdt apply $dtbo1_addr;
+ elif test $board_name = beagle_x15_revc; then
+ echo " Reading DTB for Beagle X15 RevC...";
+ abootimg get dtb --index=0 dtb_start dtb_size;
+ cp.b $dtb_start $fdtaddr $dtb_size;
+ fdt addr $fdtaddr 0x80000;
+ else
+ echo "Error: Android boot is not supported for $board_name";
+ exit;
+ fi;
+ bootm $loadaddr $ardaddr $fdtaddr;
+else
+ echo "$apart partition not found";
+ exit;
+fi;
+get_overlay_mmc=
+ fdt address ${fdtaddr};
+ fdt resize 0x100000;
+ for overlay in $name_overlays;
+ do;
+ load mmc ${bootpart} ${dtboaddr} ${bootdir}/dtb/${overlay};
+ fdt apply ${dtboaddr};
+ done;
+#if CONFIG_CMD_NET
+static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
+nfsopts=nolock
+rootpath=/export/rootfs
+netloadimage=tftp ${loadaddr} ${bootfile}
+netloadfdt=tftp ${fdtaddr} ${fdtfile}
+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}
+#endif
+#if CONFIG_MTD_RAW_NAND
+#include <env/ti/nand.env>
+#endif
+dfu_bufsiz=0x10000