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