1boot_block_size_r=0x200000
2boot_block_size=0x1000
3bootloader_file=u-boot-dtb-tegra.bin
4spi_size=0x400000
5boot_dev=0
6boot_interface=mmc
7
8flash_uboot=echo Preparing RAM;
9	mw ${kernel_addr_r} 0 ${boot_block_size_r};
10		mw ${ramdisk_addr_r} 0 ${boot_block_size_r};
11		echo Reading BCT;
12		mmc dev 0 1;
13		mmc read ${kernel_addr_r} 0 ${boot_block_size};
14		echo Reading bootloader;
15		if load ${boot_interface} ${boot_dev}:1 ${ramdisk_addr_r} ${bootloader_file};
16		then echo Calculating bootloader size;
17			size ${boot_interface} ${boot_dev}:1 ${bootloader_file};
18			ebtupdate ${kernel_addr_r} ${ramdisk_addr_r} ${filesize};
19			echo Writing bootloader to eMMC;
20			mmc dev 0 1;
21			mmc write ${kernel_addr_r} 0 ${boot_block_size};
22			mmc dev 0 2;
23			mmc write ${ramdisk_addr_r} 0 ${boot_block_size};
24			echo Bootloader written successfully;
25			pause 'Press ANY key to reboot device...'; reset;
26		else echo Reading bootloader failed;
27			pause 'Press ANY key to return to bootmenu...'; bootmenu; fi
28
29update_spi=sf probe 0:1;
30	echo Dumping current SPI flash content ...;
31	sf read ${kernel_addr_r} 0x0 ${spi_size};
32	if fatwrite mmc 1:1 ${kernel_addr_r} spi-flash-backup.bin ${spi_size};
33	then echo SPI flash content was successfully written into spi-flash-backup.bin;
34		echo Reading SPI flash binary;
35		if load mmc 1:1 ${kernel_addr_r} repart-block.bin;
36		then echo Writing bootloader into SPI flash;
37			sf probe 0:1;
38			sf update ${kernel_addr_r} 0x0 ${spi_size};
39			echo Bootloader SUCCESSFULLY written into SPI flash;
40			pause 'Press ANY key to reboot...'; reset;
41		else echo Preparing RAM;
42			mw ${kernel_addr_r} 0 ${boot_block_size_r};
43			mw ${ramdisk_addr_r} 0 ${boot_block_size_r};
44			echo Reading BCT;
45			sf read ${kernel_addr_r} 0x0 ${boot_block_size_r};
46			echo Reading bootloader;
47			if load mmc 1:1 ${ramdisk_addr_r} ${bootloader_file};
48			then echo Calculating bootloader size;
49				size mmc 1:1 ${bootloader_file};
50				ebtupdate ${kernel_addr_r} ${ramdisk_addr_r} ${filesize};
51				echo Writing bootloader into SPI flash;
52				sf probe 0:1;
53				sf update ${kernel_addr_r} 0x0 ${boot_block_size_r};
54				sf update ${ramdisk_addr_r} ${boot_block_size_r} ${boot_block_size_r};
55				echo Bootloader written SUCCESSFULLY;
56				pause 'Press ANY key to reboot...'; reset;
57			else echo Reading bootloader failed;
58				pause 'Press ANY key to reboot...'; reset; fi;
59		fi;
60	else echo SPI flash backup FAILED! Aborting ...;
61		pause 'Press ANY key to reboot...'; reset; fi
62