From e262caa33892eb61b23725cfa6d0f0c624f8b02b Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Fri, 18 Oct 2019 09:47:38 +0200 Subject: [PATCH] swu-images: add support for ccimx8mn platform https://jira.digi.com/browse/DEL-6806 Signed-off-by: Arturo Buzarra --- .../files/ccimx8mn/preinstall_swu.sh | 83 +++++++++++++++++++ .../swu-images/files/ccimx8mn/sw-description | 20 +++++ meta-digi-dey/recipes-digi/swu-images/swu.inc | 4 +- 3 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/preinstall_swu.sh create mode 100644 meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/sw-description diff --git a/meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/preinstall_swu.sh b/meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/preinstall_swu.sh new file mode 100644 index 000000000..ddd61b789 --- /dev/null +++ b/meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/preinstall_swu.sh @@ -0,0 +1,83 @@ +#!/bin/sh +#=============================================================================== +# +# preinstall_swu.sh +# +# Copyright (C) 2018 by Digi International Inc. +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. +# +# !Description: SWUpdate pre-install script to open the virtual mapped device +# +# SWUpdate calls this script before installing the image. +# +#=============================================================================== + +# Functions. +#------------------------------------------------------------------------------ +# Function - psplash_message +# +# Shows the given message in the psplash screen. +# +# @param ${1} - Message to show. +#------------------------------------------------------------------------------ +psplash_message() { + echo "MSG ${1}" > /tmp/psplash_fifo + sleep 0.2 +} + +#------------------------------------------------------------------------------ +# Function - psplash_progress +# +# Sets the psplash progress bar percentage to the given one. +# +# @param ${1} - Progress percentage. +#------------------------------------------------------------------------------ +psplash_progress() { + echo "PROGRESS ${1}" > /tmp/psplash_fifo + sleep 0.2 +} + +#------------------------------------------------------------------------------ +# Function - log +# +# Prints the given text in the console. +# +# @param ${1} - Text to print. +#------------------------------------------------------------------------------ +log() { + echo "[FW UPDATE] ${1}" +} + +#------------------------------------------------------------------------------ +# Function - log_error +# +# Prints the given text in the console as an error. +# +# @param ${1} - Error text to print. +#------------------------------------------------------------------------------ +log_error() { + log "[ERROR] ${1}" + psplash_message "ERROR: ${1}" + psplash_progress "0" +} + +# Main +#------------------------------------------------------------------------------ +# Check if encrypted device is already open. +if [ -b /dev/mapper/cryptroot ]; then + exit 0 +fi + +rootfs_block="/dev/mmcblk0p$(fdisk -l /dev/mmcblk0 | sed -ne "s,^[^0-9]*\([0-9]\+\).*\.*,\1,g;T;p")" + +# Open LUKS encrypted device +trustfence-tool ${rootfs_block} cryptroot +if [ "$?" != "0" ]; then + log_error "Error executing the firmware update, cannot open virtual device" + exit 1 +fi + diff --git a/meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/sw-description b/meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/sw-description new file mode 100644 index 000000000..cde521bf2 --- /dev/null +++ b/meta-digi-dey/recipes-digi/swu-images/files/ccimx8mn/sw-description @@ -0,0 +1,20 @@ +software = +{ + version = "##SW_VERSION##"; + + images: ( + { + filename = "##BOOTIMG_NAME##"; + device = "##BOOT_DEV##"; + type = "raw"; + sha256 = "@##BOOTIMG_NAME##"; + }, + { + filename = "##ROOTIMG_NAME##"; + device = "##ROOTFS_DEV##"; + type = "raw"; + sha256 = "@##ROOTIMG_NAME##"; + } + ); + ##PREINSTALL_SCRIPT## +} diff --git a/meta-digi-dey/recipes-digi/swu-images/swu.inc b/meta-digi-dey/recipes-digi/swu-images/swu.inc index 391bc4685..48bd622d1 100644 --- a/meta-digi-dey/recipes-digi/swu-images/swu.inc +++ b/meta-digi-dey/recipes-digi/swu-images/swu.inc @@ -1,4 +1,4 @@ -# Copyright (C) 2016, 2017 Digi International Inc. +# Copyright (C) 2016-2020 Digi International Inc. SUMMARY = "Generate update package for SWUpdate" SECTION = "base" LICENSE = "GPL-2.0" @@ -8,6 +8,7 @@ SRC_URI = "file://sw-description" SRC_URI_append_ccimx6 = " ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), 'file://preinstall_swu.sh', '')}" SRC_URI_append_ccimx6ul = " ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), '', 'file://preinstall_swu.sh')}" SRC_URI_append_ccimx8x = " ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), 'file://preinstall_swu.sh', '')}" +SRC_URI_append_ccimx8m = " ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), 'file://preinstall_swu.sh', '')}" inherit swupdate @@ -36,6 +37,7 @@ PREINST_SCRIPT_DESC = "" PREINST_SCRIPT_DESC_ccimx6 = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), '${PREINST_SCRIPT_TEMPLATE}', '')}" PREINST_SCRIPT_DESC_ccimx6ul = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), '', '${PREINST_SCRIPT_TEMPLATE}')}" PREINST_SCRIPT_DESC_ccimx8x = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), '${PREINST_SCRIPT_TEMPLATE}', '')}" +PREINST_SCRIPT_DESC_ccimx8m = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_INITRAMFS_IMAGE', True), '${PREINST_SCRIPT_TEMPLATE}', '')}" python () { img_fstypes = d.getVar('BOOTFS_EXT', True) + " " + d.getVar('ROOTFS_EXT', True)