summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Sliwa <dominik.sliwa@toradex.com>2016-05-20 13:53:53 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2016-06-30 13:19:25 +0200
commitf61f878e4c05111edce22097acd9bc5772f750cf (patch)
tree6961059ccd7f2d077076627b1af77fafb75b9dde
parent5297f10980babd64e024a155604cbaf7139c60d5 (diff)
update.sh: write kernel and device tree into static UBI volumes
Use static UBI volumes on Colibri T20. Fix update over ethernet on Colibri Vybrid Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-rw-r--r--recipes/images/files/colibri-t20/colibri-t20_bin/flash_blk.scr15
-rw-r--r--recipes/images/files/colibri-t20/colibri-t20_bin/flash_eth.scr14
-rw-r--r--recipes/images/files/colibri-vf/colibri-vf_bin/flash_eth.scr4
-rwxr-xr-xrecipes/images/files/library/tegra/update.sh9
-rw-r--r--recipes/images/trdx-image-fstype.inc6
5 files changed, 32 insertions, 16 deletions
diff --git a/recipes/images/files/colibri-t20/colibri-t20_bin/flash_blk.scr b/recipes/images/files/colibri-t20/colibri-t20_bin/flash_blk.scr
index f77000d..790c1bb 100644
--- a/recipes/images/files/colibri-t20/colibri-t20_bin/flash_blk.scr
+++ b/recipes/images/files/colibri-t20/colibri-t20_bin/flash_blk.scr
@@ -10,16 +10,25 @@ setenv migrate_3 'nand read $loadaddr 0x7380000 0x40; crc32 -v $toradex_oui_addr
setenv migrate_4 'nand read $loadaddr 0x7900000 0x40; crc32 -v $toradex_oui_addr 3 94305232 && nand erase.part cfgblock && nand write $loadaddr 0x300000 0x64'
setenv migrate_configblock 'setexpr toradex_oui_addr $loadaddr + 8; run migrate_1; run migrate_2; run migrate_3; run migrate_4'
-setenv prepare_rootfs 'ubi part ubi && ubi check rootfs || ubi create rootfs'
+# Migrate to UBI volume based boot schema
+setenv prepare_kernel_dtb 'ubi create kernel 0x800000 static && ubi create dtb 0x20000 static'
+setenv prepare_rootfs 'ubi create rootfs - dynamic'
+setenv prepare_ubi 'ubi part ubi && if ubi check rootfs; then if ubi check kernel; then else ubi remove rootfs && run prepare_kernel_dtb && run prepare_rootfs; fi; else run prepare_kernel_dtb && run prepare_rootfs; fi'
+
setenv update_configblock 'load ${interface} 0:1 ${loadaddr} ${board_name}/configblock.bin && nand erase.part cfgblock && nand write ${loadaddr} cfgblock ${filesize}'
setenv update_uboot 'fatload ${interface} 0:1 ${loadaddr} ${board_name}/${board_name}-${ram-size}-${hw-version}-nand.img && nand erase 0x0 0x300000 && nand write ${loadaddr} 0x0 ${filesize}'
-setenv update_rootfs 'load ${interface} 0:1 ${loadaddr} ${board_name}/ubifs_${leb-size}.img && run prepare_rootfs && ubi write ${loadaddr} rootfs ${filesize}'
+
+setenv update_kernel 'fatload ${interface} 0:1 ${loadaddr} ${board_name}/zImage && ubi write ${loadaddr} kernel ${filesize}'
+#Writting data to invalidate current device tree
+setenv update_dtb 'mw.w ${loadaddr} 0xFF 16 && ubi write ${loadaddr} dtb 16 && fatload ${interface} 0:1 ${loadaddr} ${board_name}/${soc}-colibri-${fdt_board}.dtb &&
+ubi write ${loadaddr} dtb ${filesize}'
+setenv update_rootfs 'fatload ${interface} 0:1 ${loadaddr} ${board_name}/ubifs_${leb-size}.img && ubi write ${loadaddr} rootfs ${filesize}'
setenv echo_v2.3b7 echo "successfully updated U-Boot," \${note} "power-cycle and enter \"run setupdate\; run migrate_v2.3b7\" to complete update"
setenv migrate_v2.3b7 'run migrate_configblock; nand erase.part ubi; run update_new'
setenv update_v2.3b7 'setenv ram-size 256; run update_uboot && setenv note "wait a sec," && run echo_v2.3b7 && md 0x1ffffffc 1 && setenv ram-size 512 && run update_uboot && setenv note && run echo_v2.3b7'
-setenv update_new 'run check_configblock || run migrate_configblock; run update_uboot; run update_rootfs; reset'
+setenv update_new 'run check_configblock || run migrate_configblock; run update_uboot; run prepare_ubi && run update_kernel && run update_rootfs && run update_dtb; reset'
setenv update 'if test -v $ver; then run update_new; else run update_v2.3b7; fi'
echo 'enter "run update" to update the entire module'
diff --git a/recipes/images/files/colibri-t20/colibri-t20_bin/flash_eth.scr b/recipes/images/files/colibri-t20/colibri-t20_bin/flash_eth.scr
index bb2bd85..3beabd1 100644
--- a/recipes/images/files/colibri-t20/colibri-t20_bin/flash_eth.scr
+++ b/recipes/images/files/colibri-t20/colibri-t20_bin/flash_eth.scr
@@ -8,16 +8,26 @@ setenv migrate_3 'nand read $loadaddr 0x7380000 0x40; crc32 -v $toradex_oui_addr
setenv migrate_4 'nand read $loadaddr 0x7900000 0x40; crc32 -v $toradex_oui_addr 3 94305232 && nand erase.part cfgblock && nand write $loadaddr 0x300000 0x64'
setenv migrate_configblock 'setexpr toradex_oui_addr $loadaddr + 8; run migrate_1; run migrate_2; run migrate_3; run migrate_4'
-setenv prepare_rootfs 'ubi part ubi && ubi check rootfs || ubi create rootfs'
+# Migrate to UBI volume based boot schema
+setenv prepare_kernel_dtb 'ubi create kernel 0x800000 static && ubi create dtb 0x20000 static'
+setenv prepare_rootfs 'ubi create rootfs - dynamic'
+setenv prepare_ubi 'ubi part ubi && if ubi check rootfs; then if ubi check kernel; then else ubi remove rootfs && run prepare_kernel_dtb && run prepare_rootfs; fi; else run prepare_kernel_dtb && run prepare_rootfs; fi'
+
setenv update_configblock 'tftpboot ${loadaddr} ${board_name}/configblock.bin && nand erase.part cfgblock && nand write ${loadaddr} cfgblock ${filesize}'
setenv update_uboot 'tftpboot ${loadaddr} ${board_name}/${board_name}-${ram-size}-${hw-version}-nand.img && nand erase 0x0 0x300000 && nand write ${loadaddr} 0x0 ${filesize}'
+
setenv update_rootfs 'tftpboot ${loadaddr} ${board_name}/ubifs_${leb-size}.img && run prepare_rootfs && ubi write ${loadaddr} rootfs ${filesize}'
+setenv update_kernel 'tftpboot ${loadaddr} ${board_name}/zImage && ubi write ${loadaddr} kernel ${filesize}'
+#Writting data to invalidate current device tree
+setenv update_dtb 'mw.w ${loadaddr} 0xFF 16 && ubi write ${loadaddr} dtb 16 && tftpboot ${loadaddr} ${board_name}/${soc}-colibri-${fdt_board}.dtb &&
+ubi write ${loadaddr} dtb ${filesize}'
+setenv update_rootfs 'tftpboot ${loadaddr} ${board_name}/ubifs_${leb-size}.img && ubi write ${loadaddr} rootfs ${filesize}'
setenv echo_v2.3b7 echo "successfully updated U-Boot," \${note} "power-cycle and enter \"run setupdate\; run migrate_v2.3b7\" to complete update"
setenv migrate_v2.3b7 'run migrate_configblock; nand erase.part ubi; run update_new'
setenv update_v2.3b7 'setenv ram-size 256; run update_uboot && setenv note "wait a sec," && run echo_v2.3b7 && md 0x1ffffffc 1 && setenv ram-size 512 && run update_uboot && setenv note && run echo_v2.3b7'
-setenv update_new 'run check_configblock || run migrate_configblock; run update_uboot; run update_rootfs; reset'
+setenv update_new 'run check_configblock || run migrate_configblock; run update_uboot; run prepare_ubi && run update_kernel && run update_rootfs && run update_dtb; reset'
setenv update 'if test -v $ver; then run update_new; else run update_v2.3b7; fi'
echo 'enter "run update" to update the entire module'
diff --git a/recipes/images/files/colibri-vf/colibri-vf_bin/flash_eth.scr b/recipes/images/files/colibri-vf/colibri-vf_bin/flash_eth.scr
index b360987..7e2de81 100644
--- a/recipes/images/files/colibri-vf/colibri-vf_bin/flash_eth.scr
+++ b/recipes/images/files/colibri-vf/colibri-vf_bin/flash_eth.scr
@@ -7,8 +7,8 @@ setenv prepare_rootfs 'ubi create rootfs 0 dynamic'
setenv prepare_ubi 'ubi part ubi && if ubi check rootfs; then if ubi check kernel; then else ubi remove rootfs && run prepare_kernel_dtb && run prepare_rootfs; fi; else run prepare_kernel_dtb && run prepare_rootfs; fi'
setenv update_uboot 'tftpboot ${loadaddr} ${board_name}/u-boot-nand.imx && nand erase.part u-boot && nand erase.part u-boot-env && nand write ${loadaddr} u-boot'
-setenv update_kernel 'tftpboot ${loadaddr} ${loadaddr} ${board_name}/zImage && ubi write ${loadaddr} kernel ${filesize}'
-setenv update_dtb 'tftpboot ${loadaddr} ${loadaddr} ${board_name}/${soc}-colibri-${fdt_board}.dtb && ubi write ${loadaddr} dtb ${filesize}'
+setenv update_kernel 'tftpboot ${loadaddr} ${board_name}/zImage && ubi write ${loadaddr} kernel ${filesize}'
+setenv update_dtb 'tftpboot ${loadaddr} ${board_name}/${soc}-colibri-${fdt_board}.dtb && ubi write ${loadaddr} dtb ${filesize}'
setenv update_rootfs 'tftpboot ${loadaddr} ${board_name}/ubifs.img && ubi write ${loadaddr} rootfs ${filesize}'
setenv update_new 'run update_uboot; run prepare_ubi && run update_kernel && run update_dtb && run update_rootfs; reset'
diff --git a/recipes/images/files/library/tegra/update.sh b/recipes/images/files/library/tegra/update.sh
index 8a2f346..f753c25 100755
--- a/recipes/images/files/library/tegra/update.sh
+++ b/recipes/images/files/library/tegra/update.sh
@@ -152,8 +152,7 @@ else
EMMC_PARTS=""
IMAGEFILE=ubifs
KERNEL_DEVICETREE="tegra20-colibri-eval-v3.dtb"
- # zImage but from rootfs/boot
- KERNEL_IMAGETYPE=""
+ KERNEL_IMAGETYPE="zImage"
LOCPATH="tegra-uboot-flasher"
OUT_DIR="$OUT_DIR/colibri_t20"
U_BOOT_BINARY=u-boot-dtb-tegra.bin
@@ -267,11 +266,7 @@ rm -f ${BINARIES}/versions.txt
touch ${BINARIES}/versions.txt
echo "Component Versions" > ${BINARIES}/versions.txt
basename "`readlink -e ${BINARIES}/${U_BOOT_BINARY}`" >> ${BINARIES}/versions.txt
-if [ "${MODTYPE}" = "colibri-t20" ] ; then
- basename "`readlink -m rootfs/boot/zImage`" >> ${BINARIES}/versions.txt
-else
- basename "`readlink -e ${BINARIES}/${KERNEL_IMAGETYPE}`" >> ${BINARIES}/versions.txt
-fi
+basename "`readlink -e ${BINARIES}/${KERNEL_IMAGETYPE}`" >> ${BINARIES}/versions.txt
ROOTFSVERSION=`grep -i t[2-3]0 rootfs/etc/issue`
echo "Rootfs ${ROOTFSVERSION}" >> ${BINARIES}/versions.txt
diff --git a/recipes/images/trdx-image-fstype.inc b/recipes/images/trdx-image-fstype.inc
index c7b49fe..0f9e68d 100644
--- a/recipes/images/trdx-image-fstype.inc
+++ b/recipes/images/trdx-image-fstype.inc
@@ -101,8 +101,10 @@ imagedeploy_kernel_mx7() {
}
imagedeploy_kernel_tegra2() {
- # Do nothing, we use the kernel from /boot inside root fs
- :
+ # put kernel into the bin directories
+ rm -f ${IMAGE_ROOTFS}/boot/${KERNEL_IMAGETYPE}* ${IMAGE_ROOTFS}/boot/*.dtb
+ cp -pP ${DEPLOY_DIR_IMAGE}/zImage* ${IMAGE_ROOTFS}/../${MACHINE}_bin/
+ mv ${IMAGE_ROOTFS}/../${MACHINE}_bin/zImage-${MACHINE}.bin ${IMAGE_ROOTFS}/../${MACHINE}_bin/zImage
}
imagedeploy_kernel_vf() {