diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2016-06-08 12:38:29 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2016-06-30 13:28:26 +0200 |
commit | 255715f4826b41fbd8790b6085fbf1bdcf1ac700 (patch) | |
tree | 5c65e6599226c793f6d8c671fabf64f09cacf56f /recipes/images/files/apalis-tk1/apalis-tk1_bin/flash_blk.scr | |
parent | 9b6246484616ce7a512d43ecad2f8a3910ecb9db (diff) |
apalis-tk1: add initial flashing infrastructure
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'recipes/images/files/apalis-tk1/apalis-tk1_bin/flash_blk.scr')
-rw-r--r-- | recipes/images/files/apalis-tk1/apalis-tk1_bin/flash_blk.scr | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/recipes/images/files/apalis-tk1/apalis-tk1_bin/flash_blk.scr b/recipes/images/files/apalis-tk1/apalis-tk1_bin/flash_blk.scr new file mode 100644 index 0000000..994e480 --- /dev/null +++ b/recipes/images/files/apalis-tk1/apalis-tk1_bin/flash_blk.scr @@ -0,0 +1,29 @@ +test -n ${interface} || setenv interface mmc +test -n ${drive} || setenv drive 1 + +setenv set_blkcnt 'setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200' +setenv set_nextpos 'setexpr filepos ${filepos} + ${filesize}; setexpr blkstart ${blkstart} + ${blkcnt}' + +setenv check_1 'setenv conf_blk_offset 0x1fff; mmc read ${loadaddr} ${conf_blk_offset} 1' +setenv check_2 'setenv conf_blk_offset 0xfff; mmc read ${loadaddr} ${conf_blk_offset} 1' +setenv check_3 'setenv conf_blk_offset 0x7ff; mmc read ${loadaddr} ${conf_blk_offset} 1' +setenv check_configblock 'setexpr toradex_oui_addr ${loadaddr} + 8; mmc dev 0 1; run check_1 || run check_2 || run check_3; crc32 -v ${toradex_oui_addr} 3 94305232' + +setenv cp_file_chunk 'load ${interface} ${drive}:1 ${loadaddr} ${board_name}/root.ext3 ${filesize} ${filepos}; run set_blkcnt; mmc dev 0 0 && mmc write ${loadaddr} ${blkstart} ${blkcnt}' + +setenv update_uboot 'load ${interface} ${drive}:1 ${loadaddr} ${board_name}/${board_name}.img && run set_blkcnt && mmc dev 0 1 && mmc write ${loadaddr} 0x0 ${blkcnt}' + +setenv update_kernel 'load ${interface} ${drive}:1 ${loadaddr} ${board_name}/uImage && fatwrite mmc 0:1 ${loadaddr} uImage ${filesize}' + +setenv update_fdt 'load ${interface} ${drive}:1 ${loadaddr} ${board_name}/${soc}-apalis-${fdt_board}.dtb && fatwrite mmc 0:1 ${loadaddr} ${soc}-apalis-${fdt_board}.dtb ${filesize}' + +setenv update_configblock 'run check_configblock; load ${interface} ${drive}:1 ${loadaddr} ${board_name}/configblock.bin && mmc dev 0 1 && mmc write ${loadaddr} ${conf_blk_offset} 1' + +setenv update_1 'load ${interface} ${drive}:1 ${loadaddr} ${board_name}/mbr.bin && mmc dev 0 0 && mmc write ${loadaddr} 0x0 0x1' +setenv update_2 'load ${interface} ${drive}:1 ${loadaddr} ${board_name}/boot.vfat && run set_blkcnt && mmc dev 0 0 && mmc write ${loadaddr} 0x2000 ${blkcnt}' +#do it in chunks of 64M to fit into DDR RAM of the smallest module +setenv update_rootfs 'setenv filesize 4000000; setenv filepos 0; setenv blkstart a000; while test ${filesize} -eq "4000000"; do run cp_file_chunk; run set_nextpos; done' + +setenv update 'run update_uboot; run update_1; run update_2; run update_kernel; run update_fdt; run update_rootfs; reset' + +echo 'enter "run update" to update the entire module' |