From 48ab203e20f9a172f0a60a91a5fcc24181141871 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 30 Jan 2017 15:18:33 -0800 Subject: tezi-metadata: use wrapup.sh script for Colibri iMX6 too The wrapup.sh script updates fuses/eMMC settings on-site. The same script can be used for Apalis iMX6 as well as for Colibri iMX6. Signed-off-by: Stefan Agner Acked-by: Max Krummenacher --- .../tezi-metadata/files/apalis-imx6/wrapup.sh | 78 --------------------- recipes-bsp/tezi-metadata/files/mx6/wrapup.sh | 79 ++++++++++++++++++++++ recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb | 2 + 3 files changed, 81 insertions(+), 78 deletions(-) delete mode 100644 recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh create mode 100644 recipes-bsp/tezi-metadata/files/mx6/wrapup.sh diff --git a/recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh b/recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh deleted file mode 100644 index 2588776..0000000 --- a/recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -# -# (c) Toradex AG 2016 -# -# Apalis iMX6 in-field hardware update script -# -# One-time configurations (non-reversible!): -# - Fuse SoC to use eMMC Fast Boot mode -# - Enable eMMC H/W reset capabilities -# Required configurations -# - Configure Boot Bus mode (due to eMMC Fast Boot mode above) -# -# Other configurations -# - Boot from eMMC boot partition (must run as wrapup script) -# - -PRODUCT_ID=$1 -BOARD_REV=$2 -SERIAL=$3 -IMAGE_FOLDER=$4 - -error_exit () { - echo "$1" 1>&2 - exit 1 -} - -# Do a basic validation that we do this on one of our modules -case $PRODUCT_ID in -0027|0028|0029|0035) ;; -*) error_exit "This script is meant to be run on a Apalis iMX6. Aborting..."; -esac - -# Fuse SoC's BOOT_CFG to enable eMMC Fast Boot mode, if necsary -# WARNING: Fusing is a one-time operation, do not change values -# here unless you are absolutely sure what your are doing. -BOOT_CFG=0x5072 -if [ ! -f /sys/fsl_otp/HW_OCOTP_CFG4 ]; then - echo "Fusing not supported." -elif grep -q ${BOOT_CFG} /sys/fsl_otp/HW_OCOTP_CFG4; then - echo "No new value for BOOT_CFG required." -else - echo ${BOOT_CFG} > /sys/fsl_otp/HW_OCOTP_CFG4 - if [ "$?" != "0" ]; then - error_exit "Writing fuse BOOT_CFG failed! Aborting..." - fi - echo "Fuse BOOT_CFG updated to ${BOOT_CFG}." -fi - -# eMMC configurations -MMCDEV=/dev/mmcblk0 - -# Enable eMMC H/W Reset feature. This need to be executed before the other -# eMMC settings, it seems that this command resets all settings. -# Since this is a one-time operation, it will fail the second time. Ignore -# errors and redirect stderr to stdout. -mmc hwreset enable ${MMCDEV} 2>&1 -if [ "$?" == "0" ]; then - echo "H/W Reset permanently enabled on ${MMCDEV}" -fi - -# Set boot bus mode -if ! mmc bootbus set single_hs x1 x8 ${MMCDEV}; then - error_exit "Setting boot bus mode failed" -fi - -# Enable eMMC boot partition 1 (mmcblkXboot0) and boot ack -# Make sure everything hit the eMMC when execute this command. Otherwise -# the eMMC will reset the configuration. -sync -if ! mmc bootpart enable 1 1 ${MMCDEV}; then - error_exit "Setting bootpart failed" -fi - -mmc extcsd read ${MMCDEV} | grep -e BOOT_BUS_CONDITIONS -e PARTITION_CONFIG -e RST_N_FUNCTION - -echo "Apalis iMX6 in-field hardware update script ended successfully." - -exit 0 diff --git a/recipes-bsp/tezi-metadata/files/mx6/wrapup.sh b/recipes-bsp/tezi-metadata/files/mx6/wrapup.sh new file mode 100644 index 0000000..68e4540 --- /dev/null +++ b/recipes-bsp/tezi-metadata/files/mx6/wrapup.sh @@ -0,0 +1,79 @@ +#!/bin/sh +# +# (c) Toradex AG 2016 +# +# Apalis/Colibri iMX6 in-field hardware update script +# +# One-time configurations (non-reversible!): +# - Fuse SoC to use eMMC Fast Boot mode +# - Enable eMMC H/W reset capabilities +# Required configurations +# - Configure Boot Bus mode (due to eMMC Fast Boot mode above) +# +# Other configurations +# - Boot from eMMC boot partition (must run as wrapup script) +# + +PRODUCT_ID=$1 +BOARD_REV=$2 +SERIAL=$3 +IMAGE_FOLDER=$4 + +error_exit () { + echo "$1" 1>&2 + exit 1 +} + +# Do a basic validation that we do this on one of our modules +case $PRODUCT_ID in +0027|0028|0029|0035) ;; +0014|0015|0016|0017) ;; +*) error_exit "This script is meant to be run on a Apalis/Colibri iMX6. Aborting..."; +esac + +# Fuse SoC's BOOT_CFG to enable eMMC Fast Boot mode, if necsary +# WARNING: Fusing is a one-time operation, do not change values +# here unless you are absolutely sure what your are doing. +BOOT_CFG=0x5072 +if [ ! -f /sys/fsl_otp/HW_OCOTP_CFG4 ]; then + echo "Fusing not supported." +elif grep -q ${BOOT_CFG} /sys/fsl_otp/HW_OCOTP_CFG4; then + echo "No new value for BOOT_CFG required." +else + echo ${BOOT_CFG} > /sys/fsl_otp/HW_OCOTP_CFG4 + if [ "$?" != "0" ]; then + error_exit "Writing fuse BOOT_CFG failed! Aborting..." + fi + echo "Fuse BOOT_CFG updated to ${BOOT_CFG}." +fi + +# eMMC configurations +MMCDEV=/dev/mmcblk0 + +# Enable eMMC H/W Reset feature. This need to be executed before the other +# eMMC settings, it seems that this command resets all settings. +# Since this is a one-time operation, it will fail the second time. Ignore +# errors and redirect stderr to stdout. +mmc hwreset enable ${MMCDEV} 2>&1 +if [ "$?" == "0" ]; then + echo "H/W Reset permanently enabled on ${MMCDEV}" +fi + +# Set boot bus mode +if ! mmc bootbus set single_hs x1 x8 ${MMCDEV}; then + error_exit "Setting boot bus mode failed" +fi + +# Enable eMMC boot partition 1 (mmcblkXboot0) and boot ack +# Make sure everything hit the eMMC when execute this command. Otherwise +# the eMMC will reset the configuration. +sync +if ! mmc bootpart enable 1 1 ${MMCDEV}; then + error_exit "Setting bootpart failed" +fi + +mmc extcsd read ${MMCDEV} | grep -e BOOT_BUS_CONDITIONS -e PARTITION_CONFIG -e RST_N_FUNCTION + +echo "Apalis/Colibri iMX6 in-field hardware update script ended successfully." + +exit 0 diff --git a/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb b/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb index d6b8b9f..ca0c3f7 100644 --- a/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb +++ b/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb @@ -18,4 +18,6 @@ do_deploy () { addtask deploy before do_package after do_install +COMPATIBLE_MACHINE = "(apalis-imx6|colibri-imx6)" + PACKAGE_ARCH = "${MACHINE_ARCH}" -- cgit v1.2.3