From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6652197203295076352 X-Received: by 2002:a2e:8112:: with SMTP id d18-v6mr297060ljg.10.1549367949559; Tue, 05 Feb 2019 03:59:09 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:8551:: with SMTP id u17-v6ls2478748ljj.3.gmail; Tue, 05 Feb 2019 03:59:09 -0800 (PST) X-Google-Smtp-Source: AHgI3Ia9ZrpE/J1n01HMtij5yVUXoTKnsom4RcZNYYvvvRpr5/XgVzwESe/G76uOEgYLedM9uYyA X-Received: by 2002:a2e:860a:: with SMTP id a10-v6mr281282lji.26.1549367949030; Tue, 05 Feb 2019 03:59:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549367949; cv=none; d=google.com; s=arc-20160816; b=tuIM+ZtW1l72zkQJGNr7ccZb1m6D8z2F/BZ8Wkiw/p4sQGCBqYdN3o1gSiF0D0mv5Z /jnaM8wrx8swkmY/BFSefFdR6JcoobR4sN/ICrlGM12I2S3RptauKDZBvfT0fD68Wk+y JnSPQIFNrxcI8SxV+Z9TQ9F5mqugHETIH+5zjLvgLdWtX0MT7COaOmZ1sCLXxe7H8Xf5 YsYudtCb+Uk5kPIWdNHcp5jIsfbr0bEdLXgpjWJI9IDhc/NcdkCRqql+IA5evi1ImRDO y+X+XW/7HL58+JFjjuh4qx3T6R2oxY5e2haatsvqJn1a+tI4+aKsl8tLuPYmSsEYsfQX ivgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=T1dQSSQ08wO6+Bi95Cy4jypMelVqSmYr4K80n3MXHuM=; b=FWIf1/QzVkK6JucMdrNFNqwd6r07/cDBFBHbncfFvkdnjJUcG2U7S1KAix8RZLarAj 7KiM55fOumtCVAfLwnz9I8Urh08wbd5KTsRHAkWD14hQW8v8/syVmSPUiL7rI9Ez50m2 f/LftfToc0cy+pLaMOTDtt5q2loQIJamWBvn0Gpf29uzZvBogfwe56/195vQT0AYG9Vn ookLcOlpe1s+f5SpJm4mHAlE/c2reWONy5yNKoWBtOKKjGteDRVnKgtoNk1vThTOsLA4 mihOW47gqv2pYJovmoKTBdRif9wO9743N0bGXLh5pffCoMnv54QQRLzc8lcBjSFpe616 N9Gg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of claudius.heine.ext@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=claudius.heine.ext@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id q13si190070lfd.2.2019.02.05.03.59.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Feb 2019 03:59:09 -0800 (PST) Received-SPF: pass (google.com: domain of claudius.heine.ext@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of claudius.heine.ext@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=claudius.heine.ext@siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id x15Bx7OT004946 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 5 Feb 2019 12:59:08 +0100 Received: from ring.ppmd.siemens.net (linux-ses-ext02.ppmd.siemens.net [139.25.69.181]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id x15Bx7bJ015872; Tue, 5 Feb 2019 12:59:07 +0100 From: claudius.heine.ext@siemens.com To: isar-users@googlegroups.com Cc: Claudius Heine Subject: [PATCH v4 5/5] meta-isar: added nand-ubi-demo example to demonstrate UBI use Date: Tue, 5 Feb 2019 12:59:06 +0100 Message-Id: <20190205115906.15204-6-claudius.heine.ext@siemens.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190205115906.15204-1-claudius.heine.ext@siemens.com> References: <20190205115906.15204-1-claudius.heine.ext@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: c/tz9n6kdwT+ From: Claudius Heine Signed-off-by: Claudius Heine --- meta-isar/classes/ubi-ubifs-img.bbclass | 10 ++++ meta-isar/conf/local.conf.sample | 1 + meta-isar/conf/machine/nand-ubi-demo.conf | 13 +++++ .../multiconfig/nand-ubi-demo-buster.conf | 13 +++++ .../images/files/fitimage.its.tmpl | 58 +++++++++++++++++++ .../images/files/ubinize.cfg.tmpl | 17 ++++++ .../recipes-core/images/isar-image-ubi.bb | 26 +++++++++ meta/classes/image.bbclass | 14 ++++- scripts/ci_build.sh | 1 + 9 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 meta-isar/classes/ubi-ubifs-img.bbclass create mode 100644 meta-isar/conf/machine/nand-ubi-demo.conf create mode 100644 meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf create mode 100644 meta-isar/recipes-core/images/files/fitimage.its.tmpl create mode 100644 meta-isar/recipes-core/images/files/ubinize.cfg.tmpl create mode 100644 meta-isar/recipes-core/images/isar-image-ubi.bb diff --git a/meta-isar/classes/ubi-ubifs-img.bbclass b/meta-isar/classes/ubi-ubifs-img.bbclass new file mode 100644 index 0000000..095719a --- /dev/null +++ b/meta-isar/classes/ubi-ubifs-img.bbclass @@ -0,0 +1,10 @@ +# UBI with UBIFS image recipe +# +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2019 +# +# SPDX-License-Identifier: MIT + +inherit ubi-img ubifs-img fit-img +addtask do_ubi_image after do_ubifs_image +addtask do_ubi_image after do_fit_image diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample index a671b20..519a15d 100644 --- a/meta-isar/conf/local.conf.sample +++ b/meta-isar/conf/local.conf.sample @@ -53,6 +53,7 @@ BBMULTICONFIG = " \ hikey-stretch \ qemuamd64-buster \ qemuamd64-buster-tgz \ + nand-ubi-demo-buster \ rpi-jessie \ " diff --git a/meta-isar/conf/machine/nand-ubi-demo.conf b/meta-isar/conf/machine/nand-ubi-demo.conf new file mode 100644 index 0000000..e207d40 --- /dev/null +++ b/meta-isar/conf/machine/nand-ubi-demo.conf @@ -0,0 +1,13 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2019 +# +# SPDX-License-Identifier: MIT + +MACHINE_SERIAL ?= "ttymxc0" +BAUDRATE_TTY ?= "115200" + +MKUBIFS_ARGS := "-m 0x1000 -e 0x3e000 -c 1500" +UBINIZE_ARGS = "-vv -m 0x1000 -p 0x40000" +IMAGE_TYPE ?= "ubi-ubifs-img" + +DTB_FILE = "imx6q-sabrelite.dtb" diff --git a/meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf b/meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf new file mode 100644 index 0000000..1c88f00 --- /dev/null +++ b/meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf @@ -0,0 +1,13 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2019 +# +# SPDX-License-Identifier: MIT + +MACHINE ?= "nand-ubi-demo" + +DISTRO ?= "debian-buster" +DISTRO_ARCH ?= "armhf" + +KERNEL_NAME ?= "armmp" + +IMAGE_INSTALL += "sshd-regen-keys" diff --git a/meta-isar/recipes-core/images/files/fitimage.its.tmpl b/meta-isar/recipes-core/images/files/fitimage.its.tmpl new file mode 100644 index 0000000..ca50f8f --- /dev/null +++ b/meta-isar/recipes-core/images/files/fitimage.its.tmpl @@ -0,0 +1,58 @@ +/dts-v1/; + +/ { + description = "Configuration to of a fitimage"; + + images { + kernel { + description = "Linux kernel"; + data = /incbin/("${KERNEL_IMG}"); + type = "kernel"; + arch = "arm"; + os = "linux"; + compression = "none"; + load = <0x8000>; + entry = <0x8000>; + hash-1 { + algo = "sha256"; + }; + }; + + fdt { + description = "Device Tree"; + data = /incbin/("${DTB_IMG}"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash-1 { + algo = "sha256"; + }; + }; + + initrd { + description = "Initial ram disk"; + data = /incbin/("${INITRD_IMG}"); + type = "ramdisk"; + arch = "arm"; + os = "linux"; + compression = "none"; + hash-1 { + algo = "sha256"; + }; + }; + }; + + configurations { + default = "config-1"; + + config-1 { + description = "System boot configuration"; + fdt = "fdt"; + kernel = "kernel"; + ramdisk = "initrd"; + hash { + algo = "sha256"; + }; + }; + }; +}; diff --git a/meta-isar/recipes-core/images/files/ubinize.cfg.tmpl b/meta-isar/recipes-core/images/files/ubinize.cfg.tmpl new file mode 100644 index 0000000..005c1ae --- /dev/null +++ b/meta-isar/recipes-core/images/files/ubinize.cfg.tmpl @@ -0,0 +1,17 @@ +[fitimage] +mode=ubi +image=${FIT_IMG} +vol_id=1 +vol_type=static +vol_name=fitimage +vol_size=64MiB +vol_alignment=1 + +[rootfs] +mode=ubi +image=${UBIFS_IMG} +vol_id=2 +vol_type=dynamic +vol_name=rootfs +vol_size=300MiB +vol_alignment=1 diff --git a/meta-isar/recipes-core/images/isar-image-ubi.bb b/meta-isar/recipes-core/images/isar-image-ubi.bb new file mode 100644 index 0000000..4b7e109 --- /dev/null +++ b/meta-isar/recipes-core/images/isar-image-ubi.bb @@ -0,0 +1,26 @@ +# UBI image recipe +# +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2019 +# +# SPDX-License-Identifier: MIT + +DESCRIPTION = "UBI Isar image" + +LICENSE = "gpl-2.0" +LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" + +inherit isar-image + +SRC_URI += "file://ubinize.cfg.tmpl \ + file://fitimage.its.tmpl" + +TEMPLATE_VARS = "KERNEL_IMG INITRD_IMG DTB_IMG UBIFS_IMG FIT_IMG" +TEMPLATE_FILES = "ubinize.cfg.tmpl fitimage.its.tmpl" + +KERNEL_IMG = "${PP_DEPLOY}/${KERNEL_IMAGE}" +INITRD_IMG = "${PP_DEPLOY}/${INITRD_IMAGE}" +DTB_IMG = "${PP_DEPLOY}/${DTB_FILE}" + +UBIFS_IMG = "${PP_DEPLOY}/${UBIFS_IMAGE_FILE}" +FIT_IMG = "${PP_DEPLOY}/${FIT_IMAGE_FILE}" diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index d8fbfd5..3eafc0c 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -81,7 +81,7 @@ do_mark_rootfs() { "${IMAGE_ROOTFS}" } -addtask mark_rootfs before do_copy_boot_files after do_rootfs +addtask mark_rootfs before do_copy_boot_files do_transform_template after do_rootfs do_copy_boot_files() { KERNEL_IMAGE=${@get_image_name(d, 'vmlinuz')[1]} @@ -93,6 +93,18 @@ do_copy_boot_files() { if [ -n "${INITRD_IMAGE}" ]; then sudo cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'initrd.img')[0]} ${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE} fi + + # Check DTB_FILE via inline python to handle unset case: + if [ -n "${@d.getVar('DTB_FILE', True) or ""}" ]; then + dtb="$(find '${IMAGE_ROOTFS}/usr/lib' -type f \ + -iwholename '*linux-image-*/${DTB_FILE}' | head -1)" + + if [ -z "$dtb" -o ! -e "$dtb" ]; then + die "${DTB_FILE} not found" + fi + + cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/${DTB_FILE}" + fi } addtask copy_boot_files before do_build after do_rootfs diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh index f3523e8..abb638e 100755 --- a/scripts/ci_build.sh +++ b/scripts/ci_build.sh @@ -115,6 +115,7 @@ else multiconfig:qemuamd64-stretch:isar-image-base \ multiconfig:qemuamd64-buster:isar-image-base \ multiconfig:qemuamd64-buster-tgz:isar-image-base \ + multiconfig:nand-ubi-demo-buster:isar-image-ubi \ multiconfig:rpi-jessie:isar-image-base # qemu-user-static of <= buster too old to build that #multiconfig:qemuarm64-buster:isar-image-base -- 2.20.1