From patchwork Mon Nov 17 16:12:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-loup GOSSE X-Patchwork-Id: 74814 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C5D5CE8D6B for ; Mon, 17 Nov 2025 16:13:04 +0000 (UTC) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.13368.1763395970410613046 for ; Mon, 17 Nov 2025 08:13:00 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@smile.fr header.s=google header.b=CInePm3v; spf=pass (domain: smile.fr, ip: 209.85.221.48, mailfrom: pierre-loup.gosse@smile.fr) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-42b32a5494dso2660658f8f.2 for ; Mon, 17 Nov 2025 08:12:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smile.fr; s=google; t=1763395969; x=1764000769; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=3V2GalqepYVn8DhqAnEPVtpasO54/rCDa4y6ODQykbg=; b=CInePm3v+Oyzs930JsWIiJb1eY6xoWj+XYsm+Fv2joXUmH9K0KcBzyCX+sRu2Vczsl 7Eo2lIs8BbKDdqj9HKrRmb8L3JHl3APBpWbrzsm0xbREl4wh81mVZzY2uJVtHHTwcFwE Ys966Qk60W681+LPqWDp8PPSAe8OLfobxHsrY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763395969; x=1764000769; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3V2GalqepYVn8DhqAnEPVtpasO54/rCDa4y6ODQykbg=; b=UjI//5rFpdQ5lpifWbmXs0qAEuL5zkLhJKKNlSlu16Ah3KIxxYBZoLbWhmQRbg5neF w4k54BxJGQZ/44CfBCve32Ait8uOKyN3Qh5WSKuCE2Xouk5rXwMdiNZYCjRQ2lRgx0Uq raRYOSVkcBmK834/EREkXqcr0xhJF9j2ZhLC/1CGa8rCdW9YESyBXYgIZS+RPVWjjYfj PLVFHIHahzbDfUkgmPehVP1OxIU9kCeayP/BMlQxuVxt/qiHs1GwYNBTi2LBf5/KUwHB IMZjCq+UC20RkR2oD/DWYBhczlBcfibpzx0qXXWVXaJ+pV1obPq5qc8SH3gMN0gcClCP K8pA== X-Gm-Message-State: AOJu0YzjeKas7d4jd6IZER9k6m18mRe+GeWrRrm8+rzZe3vfXYWqIM/o FZd7hXpJYi8FmX0e85jPs9SliMlfMRIDt+Tkq2MPDPaG9ESQGR9QYM1F/H579wbpL+VnYC6i0rx dHv0q X-Gm-Gg: ASbGnctj7rtT70vEddfb5fX+c7uyV9wrjJX7j/SUUSQfr2ifmrod5MjnWHwPiF80aEZ Ecpro9gTUj0NRrWZfS9AXT4BYBg+VQmLd1YpshMLgbReTEbaPcBtdlwSSS7zuN5Y00r7biUB7W5 RWf5ptIl+5x6IKpB5m+CBtEZ1TIDwsDbdH1YzSS6zKH5t7n7em7+TILtWdcsaASh8TcguvKzr9b WifILi84KP2vHQZBCHgxSeAemo9wxsWZF76MWsqA4fVi40skqRDY++3ag3bj/g5QtaqkmOg+P7s MfwDjnxGtdgHAH/UMVps8yaPFYz4f5tC68h7/ZVqQwzK+FUCkj4AWYNsSfIsMhVHTYZNEEoqy2+ LXTJ3quHhPNDJUmT2kfS5qLGnYfWDueU0XxMh7fHmWtu+LkGrCygFJPvC9G7CSg3Nb/xLGmN1AS LymdJKn6usMPnIDV4DbR6iuumzKZ4FA36xawcxgK/2FDhEaiDi2XKt1CKN X-Google-Smtp-Source: AGHT+IGZZxPnLnLXYGL4nch/fuydmQrnH0atySXqKJMyMTo2KmJkiGn1EfpPWMDPXDt9e+EJPjWlXw== X-Received: by 2002:a05:6000:2509:b0:42b:3978:158e with SMTP id ffacd0b85a97d-42b5936c71cmr11204085f8f.30.1763395968214; Mon, 17 Nov 2025 08:12:48 -0800 (PST) Received: from FRSMI24-BLUE.example.com ([195.68.54.115]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42b53f174afsm26431181f8f.33.2025.11.17.08.12.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Nov 2025 08:12:47 -0800 (PST) From: pierre-loup.gosse@smile.fr To: openembedded-core@lists.openembedded.org Cc: Pierre-Loup GOSSE , Ross Burton Subject: [PATCH v2 1/2] u-boot: make initial environment binary image Date: Mon, 17 Nov 2025 17:12:38 +0100 Message-Id: <20251117161239.1227164-1-pierre-loup.gosse@smile.fr> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 17 Nov 2025 16:13:04 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226503 From: Pierre-Loup GOSSE Build the U-Boot initial environment binary image if UBOOT_INITIAL_ENV_BINARY is set to "1". The environment partition size (in bytes, hexadecimal or decimal) must be defined using UBOOT_INITIAL_ENV_BINARY_SIZE. If U-Boot environment redundancy is enabled, UBOOT_INITIAL_ENV_BINARY_REDUND must be set to "1". The resulting binary can be flashed using WIC at the environment offset, overriding any existing environment if present, for example: part --source rawcopy --sourceparams="file=u-boot-initial-env-sd.bin" --ondisk sda --no-table --offset 4096 Signed-off-by: Pierre-Loup GOSSE Cc: Ross Burton --- Note: Once merged, a patch with the new variables will be submitted to the documentation mailing list. changes in v2: - fix uboot_deploy_config (builddir was missing) --- meta/classes-recipe/uboot-config.bbclass | 11 +++++++++ meta/recipes-bsp/u-boot/u-boot.inc | 30 ++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/meta/classes-recipe/uboot-config.bbclass b/meta/classes-recipe/uboot-config.bbclass index fd6c045142..81057b5cad 100644 --- a/meta/classes-recipe/uboot-config.bbclass +++ b/meta/classes-recipe/uboot-config.bbclass @@ -71,6 +71,14 @@ UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}" UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${UBOOT_VERSION}.${UBOOT_ENV_SUFFIX}" UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}" +# Enable the build of the U-Boot initial env binary image. The binary size is +# required (i.e. the U-Boot partition environment size). Since the environment +# layout with multiple copies is different, set UBOOT_INITIAL_ENV_BINARY_REDUND +# to "1" if the U-Boot environment redundancy is enabled. +UBOOT_INITIAL_ENV_BINARY ?= "0" +UBOOT_INITIAL_ENV_BINARY_SIZE ?= "" +UBOOT_INITIAL_ENV_BINARY_REDUND ?= "0" + # U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf # to find EXTLINUX conf file. UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux" @@ -100,6 +108,9 @@ UBOOT_DTB_BINARY ??= "" UBOOT_FIT_CHECK_SIGN ?= "uboot-fit_check_sign" python () { + if bb.utils.to_boolean(d.getVar('UBOOT_INITIAL_ENV_BINARY')) and d.getVar('UBOOT_INITIAL_ENV_BINARY_SIZE') == "": + bb.fatal("UBOOT_INITIAL_ENV_BINARY requires setting the U-Boot partition environment size with the UBOOT_INITIAL_ENV_BINARY_SIZE variable") + ubootmachine = d.getVar("UBOOT_MACHINE") ubootconfigflags = d.getVarFlags('UBOOT_CONFIG') ubootbinary = d.getVar('UBOOT_BINARY') diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc index 16c9836508..ffa9ef2d59 100644 --- a/meta/recipes-bsp/u-boot/u-boot.inc +++ b/meta/recipes-bsp/u-boot/u-boot.inc @@ -4,6 +4,7 @@ PROVIDES = "virtual/bootloader" PACKAGE_ARCH = "${MACHINE_ARCH}" DEPENDS += "${@bb.utils.contains('UBOOT_ENV_SUFFIX', 'scr', 'u-boot-mkimage-native', '', d)}" +DEPENDS += "${@ 'u-boot-mkenvimage-native' if bb.utils.to_boolean(d.getVar('UBOOT_INITIAL_ENV_BINARY')) else ''}" inherit uboot-config uboot-extlinux-config uboot-sign deploy python3native kernel-arch @@ -104,6 +105,10 @@ uboot_compile_config () { if [ -n "${UBOOT_INITIAL_ENV}" ]; then oe_runmake -C ${S} O=${B}/${builddir} u-boot-initial-env cp ${B}/${builddir}/u-boot-initial-env ${B}/${builddir}/u-boot-initial-env-${type} + if [ "${UBOOT_INITIAL_ENV_BINARY}" = "1" ] ; then + uboot_compile_initial_env_binary + cp ${B}/${builddir}/u-boot-initial-env.bin ${B}/${builddir}/u-boot-initial-env-${type}.bin + fi fi } @@ -123,7 +128,18 @@ uboot_compile () { # Generate the uboot-initial-env if [ -n "${UBOOT_INITIAL_ENV}" ]; then oe_runmake -C ${S} O=${B} u-boot-initial-env + if [ "${UBOOT_INITIAL_ENV_BINARY}" = "1" ] ; then + uboot_compile_initial_env_binary + fi + fi +} + +uboot_compile_initial_env_binary() { + redund="" + if [ "${UBOOT_INITIAL_ENV_BINARY_REDUND}" = "1" ] ; then + redund="-r" fi + uboot-mkenvimage -s ${UBOOT_INITIAL_ENV_BINARY_SIZE} ${redund} -o ${B}/${builddir}/u-boot-initial-env.bin ${B}/${builddir}/u-boot-initial-env } do_install () { @@ -388,9 +404,16 @@ uboot_deploy_config () { # Deploy the uboot-initial-env if [ -n "${UBOOT_INITIAL_ENV}" ]; then install -D -m 644 ${B}/${builddir}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} + if [ "${UBOOT_INITIAL_ENV_BINARY}" = "1" ]; then + install -D -m 644 ${B}/${builddir}/u-boot-initial-env-${type}.bin ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}.bin + fi cd ${DEPLOYDIR} ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type} ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${type} + if [ "${UBOOT_INITIAL_ENV_BINARY}" = "1" ]; then + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}.bin ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}.bin + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}.bin ${UBOOT_INITIAL_ENV}-${type}.bin + fi fi } @@ -405,9 +428,16 @@ uboot_deploy () { # Deploy the uboot-initial-env if [ -n "${UBOOT_INITIAL_ENV}" ]; then install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} + if [ "${UBOOT_INITIAL_ENV_BINARY}" = "1" ]; then + install -D -m 644 ${B}/u-boot-initial-env.bin ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}.bin + fi cd ${DEPLOYDIR} ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE} ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV} + if [ "${UBOOT_INITIAL_ENV_BINARY}" = "1" ]; then + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}.bin ${UBOOT_INITIAL_ENV}-${MACHINE}.bin + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}.bin ${UBOOT_INITIAL_ENV}.bin + fi fi } From patchwork Mon Nov 17 16:12:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-loup GOSSE X-Patchwork-Id: 74813 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B712CE8D6B for ; Mon, 17 Nov 2025 16:12:54 +0000 (UTC) Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.13149.1763395971648755854 for ; Mon, 17 Nov 2025 08:12:51 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@smile.fr header.s=google header.b=ydLKOvHC; spf=pass (domain: smile.fr, ip: 209.85.128.44, mailfrom: pierre-loup.gosse@smile.fr) Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-47755de027eso31626775e9.0 for ; Mon, 17 Nov 2025 08:12:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smile.fr; s=google; t=1763395970; x=1764000770; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vvuIh/GzumCpLYYkXGMqs5xA12hR/pH8thHq4Hj18Pc=; b=ydLKOvHCfBdqdrz56CmgaRod99hfmE+E2/T1qO0UswWbv7mhXAGA60MeZAY+xNd/l4 3UYh1d9vQkve2b51WY+dxK88Jc2ZMl2Tf2l3GvTotkTEl4IEqnsMP5C6QyA3wxQrdcGm UqquzDMzXyq92N+jb164i9A/7uOd6tqNRt0yo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763395970; x=1764000770; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vvuIh/GzumCpLYYkXGMqs5xA12hR/pH8thHq4Hj18Pc=; b=rY1A3yTlzPML99zX+gy3a9dFWWzONlw0cdAo7Q2V4MYsYMhQWY+YVijnUh+FMWKiNY r/UdTozrsIcxhFZr24641nq/KE5ZU4VN8VPdFwGe4aChh6I9dRx1h5a8rKiSWKMOIL8J LYTmmF4BwkQWRQcmCB0aXy46JIfpJSo3WgP3SgzAQnD8AsEnmM7itovaF7nYVZTZNWc1 fFgtXn3USqAANg9u9mNqoYma6nJb7ckNwOLCn/ope118RuCXf98G37IFghoeQSUEAqyR iuEEH9DslHeMrEbnla438nncPct3QmKJYmo9LYRUq3feJkL5h1qOOB6t+hCTHTRCwwKZ kVjQ== X-Gm-Message-State: AOJu0YyHtN0RI2o6wcf4M6YVFdDVOU9kwvwc71SKOOqFqK1mXLFgRvqg z3lrzMhEhwJe+Tml3WjTRNNceQQmiZHwiIeQYg6SbtXhygqdFtcCVOlX0UNE/dh/B+MlY8g+P0b JVDtG X-Gm-Gg: ASbGncu6NKC5bEGN139KpT/IFp3/c/ZTul1p8C1j1+AlNDmvzTD8qW3uRr4QU7soxTA pHQYDimIA45KHDzAtp3ScOJeOmyZGcXDAinkG6O0+jb4i3JDsZ/lTvcqhuIFCMK0AZP9CCv+7gv H1T+18pMe8RJ2pt/24oNSxb13bN95XQvH5wUYUCf3dGXCkWYcJnja/YNYwsC7FckOHjU9svT6Cx KOlbzuhRlgJqBla3P/hRGjBxt9BRjZ+DXzYu7zuysCbOmRk1Fsi383x6ZyctlCg1Gpkhm+/mL6r afie9S3Z3jhW1Ib2URBpTspwCkqV8YZVI1acBPs1zgyakk0+xfQWfqSUwWoYs/D22bmlRtWa0Wg dNmuTJSR6MmaqpXuc52hCK8fhgf7Ck37mViu7koTPWX0KR/YuLKc5WVAWAJaFF3CShgGpZmpoVH h2YkuYQL1FeHSoI1RJGNyZ263HpidOYqvuqgs= X-Google-Smtp-Source: AGHT+IFld3IknOjG6jmc8OP+EOuitKjVT3WzX+jQZTjVAAQbsUBR2+ruU7icKcWeuHSj+cY+BdBYag== X-Received: by 2002:a05:600c:8b4b:b0:477:1af2:f40a with SMTP id 5b1f17b1804b1-4778fe504abmr127710815e9.17.1763395969926; Mon, 17 Nov 2025 08:12:49 -0800 (PST) Received: from FRSMI24-BLUE.example.com ([195.68.54.115]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42b53f174afsm26431181f8f.33.2025.11.17.08.12.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Nov 2025 08:12:49 -0800 (PST) From: pierre-loup.gosse@smile.fr To: openembedded-core@lists.openembedded.org Cc: Pierre-Loup GOSSE , Ross Burton Subject: [PATCH v2 2/2] oe-selftest: uboot: add test for building U-Boot initial env binary Date: Mon, 17 Nov 2025 17:12:39 +0100 Message-Id: <20251117161239.1227164-2-pierre-loup.gosse@smile.fr> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251117161239.1227164-1-pierre-loup.gosse@smile.fr> References: <20251117161239.1227164-1-pierre-loup.gosse@smile.fr> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 17 Nov 2025 16:12:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226502 From: Pierre-Loup GOSSE This adds two new selftest cases `test_uboot_initial_env_binary` and `test_uboot_config_initial_env_binary` to verify the build of the U-Boot initial env binary with the mkimage tool. Signed-off-by: Pierre-Loup GOSSE Cc: Ross Burton --- changes in v2: - add tests --- meta/lib/oeqa/selftest/cases/uboot.py | 52 +++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/meta/lib/oeqa/selftest/cases/uboot.py b/meta/lib/oeqa/selftest/cases/uboot.py index 980ea327f0..e2478d3dfd 100644 --- a/meta/lib/oeqa/selftest/cases/uboot.py +++ b/meta/lib/oeqa/selftest/cases/uboot.py @@ -5,6 +5,9 @@ # SPDX-License-Identifier: MIT # +import os +import textwrap + from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake, runqemu, get_bb_var, get_bb_vars, runCmd from oeqa.core.decorator.data import skipIfNotArch, skipIfNotBuildArch @@ -96,3 +99,52 @@ QB_DRIVE_TYPE = "/dev/vd" self.assertTrue("Machine model: linux,dummy-virt" in output, msg=output) # with KVM enabled self.assertTrue("KVM: hypervisor services detected" in output, msg=output) + + def test_uboot_initial_env_binary(self): + """ + Tests building the initial U-Boot environment in binary format with + the U-Boot mkimage tool. + We assume that the uboot-mkenvimage tool generates a correct binary. + """ + + self.write_config(textwrap.dedent(""" + UBOOT_INITIAL_ENV_BINARY = "1" + UBOOT_INITIAL_ENV_BINARY_SIZE = "0x4000" + UBOOT_INITIAL_ENV_BINARY_REDUND = "1" + """)) + + bitbake("u-boot") + + bb_vars = get_bb_vars(["DEPLOYDIR", "UBOOT_INITIAL_ENV"], "u-boot") + + uboot_initial_env_binary_path = os.path.realpath(os.path.join( + bb_vars["DEPLOYDIR"], "%s.bin" % bb_vars["UBOOT_INITIAL_ENV"] + )) + + self.assertExists(uboot_initial_env_binary_path) + + def test_uboot_config_initial_env_binary(self): + """ + Tests building the initial U-Boot environment in binary format with + the U-Boot mkimage tool for a U-Boot config. + We assume that the uboot-mkenvimage tool generates a correct binary. + """ + + self.write_config(textwrap.dedent(""" + UBOOT_MACHINE = "" + UBOOT_CONFIG = "test" + UBOOT_CONFIG[test] = "qemu-x86_64_defconfig" + UBOOT_INITIAL_ENV_BINARY = "1" + UBOOT_INITIAL_ENV_BINARY_SIZE = "0x4000" + UBOOT_INITIAL_ENV_BINARY_REDUND = "1" + """)) + + bitbake("u-boot") + + bb_vars = get_bb_vars(["DEPLOYDIR", "UBOOT_INITIAL_ENV"], "u-boot") + + uboot_initial_env_binary_path = os.path.realpath(os.path.join( + bb_vars["DEPLOYDIR"], "%s-test.bin" % bb_vars["UBOOT_INITIAL_ENV"] + )) + + self.assertExists(uboot_initial_env_binary_path)