From e2b8f3d69ab62cf84c87be0a3da8e7b0388c15ab Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 18 Oct 2016 17:46:43 -0700 Subject: tezi-metadata: initial commit of Tezi specific image metadata This adds metadata files required by Toradex Easy Installer. Most notable is the Linux specific migration script which is executed before flashing an image. The script makes sure that hardware specific upgrades such as fuses/eMMC reconfiguration get executed, as our U-Boot based scripts do when using "run update". Signed-off-by: Stefan Agner Acked-by: Marcel Ziswiler --- .../tezi-metadata/files/apalis-imx6/prepare.sh | 67 +++++++++++++++++++++ .../tezi-metadata/files/apalis-imx6/wrapup.sh | 3 + recipes-bsp/tezi-metadata/files/marketing.tar | Bin 0 -> 97792 bytes recipes-bsp/tezi-metadata/files/prepare.sh | 18 ++++++ recipes-bsp/tezi-metadata/files/toradexlinux.png | Bin 0 -> 2434 bytes recipes-bsp/tezi-metadata/files/wrapup.sh | 3 + recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb | 21 +++++++ 7 files changed, 112 insertions(+) create mode 100644 recipes-bsp/tezi-metadata/files/apalis-imx6/prepare.sh create mode 100644 recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh create mode 100644 recipes-bsp/tezi-metadata/files/marketing.tar create mode 100644 recipes-bsp/tezi-metadata/files/prepare.sh create mode 100644 recipes-bsp/tezi-metadata/files/toradexlinux.png create mode 100644 recipes-bsp/tezi-metadata/files/wrapup.sh create mode 100644 recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb (limited to 'recipes-bsp') diff --git a/recipes-bsp/tezi-metadata/files/apalis-imx6/prepare.sh b/recipes-bsp/tezi-metadata/files/apalis-imx6/prepare.sh new file mode 100644 index 0000000..858faab --- /dev/null +++ b/recipes-bsp/tezi-metadata/files/apalis-imx6/prepare.sh @@ -0,0 +1,67 @@ +#!/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 +# + +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. +if [ ! -f /sys/fsl_otp/HW_OCOTP_CFG4 ]; then + echo "Fusing not supported." +elif grep -q 0x5072 /sys/fsl_otp/HW_OCOTP_CFG4; then + echo "No new value for BOOT_CFG required." +else + echo 0x5072 > /sys/fsl_otp/HW_OCOTP_CFG4 + if [ "$?" != "0" ]; then + error_exit "Writing fuse BOOT_CFG failed! Aborting..." + fi +fi + +# eMMC configurations +MMCDEV=/dev/mmcblk0 + +# 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 +if ! mmc bootpart enable 1 1 ${MMCDEV}; then + error_exit "Setting bootpart failed" +fi + +# Enable eMMC H/W Reset feature +# 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 + +echo "Apalis iMX6 in-field hardware update script ended successfully." + +exit 0 diff --git a/recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh b/recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh new file mode 100644 index 0000000..c52d3c2 --- /dev/null +++ b/recipes-bsp/tezi-metadata/files/apalis-imx6/wrapup.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exit 0 diff --git a/recipes-bsp/tezi-metadata/files/marketing.tar b/recipes-bsp/tezi-metadata/files/marketing.tar new file mode 100644 index 0000000..b28aa89 Binary files /dev/null and b/recipes-bsp/tezi-metadata/files/marketing.tar differ diff --git a/recipes-bsp/tezi-metadata/files/prepare.sh b/recipes-bsp/tezi-metadata/files/prepare.sh new file mode 100644 index 0000000..221bbab --- /dev/null +++ b/recipes-bsp/tezi-metadata/files/prepare.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# +# (c) Toradex AG 2016 +# +# Empty in-field hardware update script +# + +PRODUCT_ID=$1 +BOARD_REV=$2 +SERIAL=$3 +IMAGE_FOLDER=$4 + +error_exit () { + echo "$1" 1>&2 + exit 1 +} + +exit 0 diff --git a/recipes-bsp/tezi-metadata/files/toradexlinux.png b/recipes-bsp/tezi-metadata/files/toradexlinux.png new file mode 100644 index 0000000..b9a9ea6 Binary files /dev/null and b/recipes-bsp/tezi-metadata/files/toradexlinux.png differ diff --git a/recipes-bsp/tezi-metadata/files/wrapup.sh b/recipes-bsp/tezi-metadata/files/wrapup.sh new file mode 100644 index 0000000..c52d3c2 --- /dev/null +++ b/recipes-bsp/tezi-metadata/files/wrapup.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exit 0 diff --git a/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb b/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb new file mode 100644 index 0000000..d6b8b9f --- /dev/null +++ b/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Toradex Easy Installer Metadata" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" + +SRC_URI = "file://prepare.sh \ + file://wrapup.sh \ + file://toradexlinux.png \ + file://marketing.tar;unpack=false" + +inherit deploy + +do_deploy () { + install -m 644 ${WORKDIR}/prepare.sh ${DEPLOYDIR} + install -m 644 ${WORKDIR}/wrapup.sh ${DEPLOYDIR} + install -m 644 ${WORKDIR}/toradexlinux.png ${DEPLOYDIR} + install -m 644 ${WORKDIR}/marketing.tar ${DEPLOYDIR} +} + +addtask deploy before do_package after do_install + +PACKAGE_ARCH = "${MACHINE_ARCH}" -- cgit v1.2.3