diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2018-12-16 10:37:46 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2019-03-06 13:44:33 +0100 |
commit | c73402f49cc0dd0e76cdea25db14ffebf3452104 (patch) | |
tree | c3ed70080b0d02e364a13940014df2cee31ad47f /recipes-images/images/files/colibri-t30/update/colibri-t30_bin/flash_blk.scr | |
parent | 4a9030893315b99967e83f06c815a5120101f44f (diff) |
image-fstype: rework files installation
This adds a new recipe tdx-updater which provides the files needed by
tdx-image-fstype.inc rather than copying them in a non OE way in
tdx-image-fstype.inc.
This required to restructure the layout in files. An additional update
directory is inserted. Also in each of the overrides directories a
symlink to library is created.
This now allows to build legacy update images with a custom machine
configuration if one adds the relevant machine override, e.g. for a
machine targeting a colibri-imx6 module:
MACHINEOVERRIDES .= ":colibri-imx6"
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'recipes-images/images/files/colibri-t30/update/colibri-t30_bin/flash_blk.scr')
-rw-r--r-- | recipes-images/images/files/colibri-t30/update/colibri-t30_bin/flash_blk.scr | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/recipes-images/images/files/colibri-t30/update/colibri-t30_bin/flash_blk.scr b/recipes-images/images/files/colibri-t30/update/colibri-t30_bin/flash_blk.scr new file mode 100644 index 0000000..aefc08f --- /dev/null +++ b/recipes-images/images/files/colibri-t30/update/colibri-t30_bin/flash_blk.scr @@ -0,0 +1,46 @@ +test -n ${interface} || setenv interface mmc +test -n ${drive} || setenv drive 1 + +setenv set_blkcnt 'setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200' +#workaround U-Boot counting in hex and split did in decimal +setenv incr_decimal 'setexpr filenum ${filenum} + 1; setexpr filenrlow1 ${filenum} % 0x100; setexpr filenrlow2 ${filenrlow1} % 0x10; test ${filenrlow1} -eq "9a" && test ${filenrlow2} -ne "9" && setexpr filenum ${filenum} + 0x66; test ${filenrlow1} -ne "9a" && test ${filenrlow2} -eq "a" && setexpr filenum ${filenum} + 0x6; true' +setenv set_nextnum 'run incr_decimal; setexpr blkstart ${blkstart} + ${blkcnt}' + +setenv check_configblock 'setexpr toradex_oui_addr ${fdt_addr_r} + 8; mw.l ${kernel_addr_r} 0x002d1400; mmc dev 0 1; for off in 7ff fff 1fff 3fff 7fff ffff 1ffff; do mmc read ${fdt_addr_r} ${off} 1 && setenv conf_blk_offset $off; done; cmp.b ${kernel_addr_r} ${toradex_oui_addr} 3' + +setenv migrate_1 'setexpr conf_blk_addr ${fdt_addr_r} - 8; mmc dev 0 1; mmc read ${conf_blk_addr} 9 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_2 'mmc dev 0 0; mmc read ${fdt_addr_r} 6000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_3 'mmc dev 0 0; mmc read ${fdt_addr_r} 8000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_4 'mmc dev 0 0; mmc read ${fdt_addr_r} 9000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_5 'mmc dev 0 0; mmc read ${fdt_addr_r} 28000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_6 'mmc dev 0 0; mmc read ${fdt_addr_r} 32000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_7 'mmc dev 0 0; mmc read ${fdt_addr_r} 32400 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_8 'mmc dev 0 0; mmc read ${fdt_addr_r} 34000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_9 'mmc dev 0 0; mmc read ${fdt_addr_r} 34800 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_a 'mmc dev 0 0; mmc read ${fdt_addr_r} 36000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_b 'mmc dev 0 0; mmc read ${fdt_addr_r} 37000 1; crc32 -v ${toradex_oui_addr} 3 94305232 && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' +setenv migrate_configblock 'setexpr toradex_oui_addr ${fdt_addr_r} + 8; run migrate_1; run migrate_2; run migrate_3; run migrate_4; run migrate_5; run migrate_6; run migrate_7; run migrate_8; run migrate_9; run migrate_a; run migrate_b' + +setenv cp_file_chunk 'load ${interface} ${drive}:1 ${fdt_addr_r} ${board_name}/root.ext3-${filenum} || setenv filesize 0; run set_blkcnt; mmc dev 0 0 && mmc write ${fdt_addr_r} ${blkstart} ${blkcnt}' + +setenv update_uboot 'load ${interface} ${drive}:1 ${fdt_addr_r} ${board_name}/${board_name}.img && run set_blkcnt && mmc dev 0 1 && mmc write ${fdt_addr_r} 0x0 ${blkcnt}' + +setenv update_kernel 'load ${interface} ${drive}:1 ${fdt_addr_r} ${board_name}/zImage && fatwrite mmc 0:1 ${fdt_addr_r} zImage ${filesize}' + +setenv update_fdt 'load ${interface} ${drive}:1 ${fdt_addr_r} ${board_name}/${soc}-colibri-${fdt_board}.dtb && fatwrite mmc 0:1 ${fdt_addr_r} ${soc}-colibri-${fdt_board}.dtb ${filesize}' + +setenv update_configblock 'run check_configblock; load ${interface} ${drive}:1 ${fdt_addr_r} ${board_name}/configblock.bin && mmc dev 0 1 && mmc write ${fdt_addr_r} ${conf_blk_offset} 1' + +setenv update_1 'load ${interface} ${drive}:1 ${fdt_addr_r} ${board_name}/mbr.bin && mmc dev 0 0 && mmc write ${fdt_addr_r} 0x0 0x1' +setenv update_2 'load ${interface} ${drive}:1 ${fdt_addr_r} ${board_name}/boot.vfat && run set_blkcnt && mmc dev 0 0 && mmc write ${fdt_addr_r} 0x2000 ${blkcnt}' +#do it in chunks of 64M to fit into DDR RAM of the smallest module +setenv update_3 'setenv filesize 4000000; setenv filenum 100; setenv blkstart a000; while test ${filesize} -eq "4000000"; do run cp_file_chunk; run set_nextnum; done' + +setenv echo_v2.3b1 echo "successfully updated U-Boot, power-cycle and enter \"run setupdate\; run migrate_v2.3b1\" to complete update" +setenv migrate_v2.3b1 'run migrate_configblock; run update_new' +setenv update_v2.3b1 'run update_uboot && run echo_v2.3b1' + +setenv update_new 'run check_configblock || run migrate_configblock; run update_uboot; run update_1; run update_2; run update_kernel; run update_fdt; run update_3; reset' +setenv update 'if test -v ${ver}; then run update_new; else run update_v2.3b1; fi' + +echo 'enter "run update" to update the entire module' |