From patchwork Fri Nov 6 14:49:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viswanath Kraleti X-Patchwork-Id: 103303 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.7493.1793976618052062584 for ; Fri, 06 Nov 2026 06:50:18 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=ehym9llM; dkim=pass header.i=@oss.qualcomm.com header.s=google header.b=Nev+UzFY; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: viswanath.kraleti@oss.qualcomm.com) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6A6EQ6mJ3647683 for ; Fri, 6 Nov 2026 14:50:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=1rus0I1umTo W12SMAHZGGuydeX48PyAnlsE2vaZ6wMU=; b=ehym9llM9HPplC3M5sgbS5MFhGx KLLQ2LYNPwBEphp/+ymV6HfpZD8z4A/v3g22I9SPMD820ndybH2oVQZYHu1M8A6N 2q8BOCi1imsMXotRHO8yoh4oC3PbvApAsrwwHkrlGRCnSIqa45mKq5pLprrBjzVX 1bVoVMhdHm+2g7Ry/hn9UcvFjlq9jp3oD2ggTB6aMGZ6RxtWtz0L4noj04L7GLqz ktvpuYp7KgCMZ8H5mL39wsKUZiGaUnJtXYaGOrMTq3Hn7s1yWfrLquEmMIfR228y dsg9a5MMa2ffb20sQ/f0b2k6yNJajgn4UMm9hPgqwWIWHgyiC7ij58y31/A== Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hs3p9k68m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 06 Nov 2026 14:50:17 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-33713e5e6daso1035282eec.0 for ; Fri, 06 Nov 2026 06:50:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1793976617; x=1794581417; 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:content-type; bh=1rus0I1umToW12SMAHZGGuydeX48PyAnlsE2vaZ6wMU=; b=Nev+UzFYrW5TXZdipsYl8YL3tDX54eNm9WkIXzM4K5XgBjx+6JXt9Lpmsh2cd7d3Z6 i7ViTEDt9Pzj4YJvlBa8qIe6Cvo2FYHmUOA8jjdo2ZWlVf0KUNRZwr+Xz+UZ1Wr5Ki50 N0nnsExsPYa8agQJnwhMBxYcEvB+/raEkV2jmXd7jwbSFpQgCNcG+ZJFJZVw5bJyg9nn HzwwAEwGSCaaYLEC+AbFTEXaGGrCWujAmyKGRmteHdU6/hcDm9o2nJ5/c9EOgKhYyrt4 DDOqhnU3QF8sjYF4j1J0lQh7zHuBr1XLy2W8FkLeUnUfUHFBmd8NRHDzNFSauMTgjX/3 YCrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793976617; x=1794581417; 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:content-type; bh=1rus0I1umToW12SMAHZGGuydeX48PyAnlsE2vaZ6wMU=; b=V8Of9zZATj5GSHg5rlVj8ErdUSWk1Bm6Hy9/xNGJqisauHwG3qL6fCCnZOf+BA5YYf q1IreK2kw4cZKJVo+7zWdLz8OL3f/pzo1+LDzVS2eYYyQzCGwzsab4NjokDequTFdvnN Ey3j57l4RzqaMiYbEXTVJPRzXsv/FHu/W6O9y83WUAtTHFb0O1qJJ9eeKNPzR1nb8w0y FrwT9+Be6WpRGu9oPaTF1ZeB8h1Pee30kI3v4EJZociM6/OQhW1mmquNKf/8KxvwKshz EMB+dirKVk3rKIBT/K7Wy+p3zWP2mn4UidtNWLejiiwwQfqWIqT03MvXJkjWvW+p9o77 BbkA== X-Gm-Message-State: APuU4Z8Oab4QPmDIrlr1m7jOh6STJXA9wSfOXiWtqe3AiBZYEH3Hgr7J 7fSun1vnYqSnfuK7AhVE2EWKdC2xys/04Btcyt3kFz++DuztOm+YKto8HuUMEB7qm4D7Vs/ZX3B FwIvto1X0g3guMiHCf/H2Ewy2Zad1dcVt9hhBSHSRR5jRatPHaNQseEXmCs59JrvxpRWcgFff0f f44fcGBi7/DEW+MIg= X-Gm-Gg: AYBFou1d0LgdzjS2iTu4tLPKcrLQ+cJEi+U5c347dHgvMoBLUKDlwvZrPMqphxCn0TN 7OKX6esjEcHmoZMnaTjrQ/No8GhfYivuEkQjxHB0GnqYkIgImPnf5cu+9h7HVsIMyv/5w9CvCsR CKWFgcP7iA+bu+I6MKnhzJLeI76jpVOn6ev2L4uPH4/mA4FT3x9D5LtwqPtGVz7+MQNWEV3eVjw ewaXKMXVjLuv53GX223TODYBnrKHXRScaiM/ch5tSiIm5iWa0aOcV5V3P8AxfvAfuoabtJHDxkG u7ojdk9W1FmEmgwmqiR4xZQGfDcwV4WYi6fGF1dyfFxV8Q1EJbz0ndUMmDXg0ZJaL47Pf2u+Ecd Kf1xMW+bGhUc0ZedLHBNRin0r3qUo2z1kAppoA4SwP9YAL+Of4vtaD4fL+YNz0mr88M1vZYxFLL eoZgNR7DAIsOpIUgUHR0chJieubHUq0GiKEFrcPunnI34= X-Received: by 2002:a05:693c:68c3:b0:36a:32ac:ad89 with SMTP id 5a478bee46e88-36f722e7fd7mr3821422eec.2.1793976616197; Fri, 06 Nov 2026 06:50:16 -0800 (PST) X-Received: by 2002:a05:693c:68c3:b0:36a:32ac:ad89 with SMTP id 5a478bee46e88-36f722e7fd7mr3821355eec.2.1793976615316; Fri, 06 Nov 2026 06:50:15 -0800 (PST) Received: from hu-vkraleti-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36fa9be7077sm7466502eec.17.2026.11.06.06.50.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Nov 2026 06:50:14 -0800 (PST) From: Viswanath Kraleti To: openembedded-core@lists.openembedded.org Cc: Ricardo Salveti , Viswanath Kraleti Subject: [OE-core][PATCH 1/4] uboot-sign: make the type of the tee image node configurable Date: Fri, 6 Nov 2026 20:19:54 +0530 Message-Id: <20261106144957.3818987-2-viswanath.kraleti@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> References: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: 8VEvojvb3bTdeJ3uxL5aD7UdEuGwjMqP X-Proofpoint-GUID: 8VEvojvb3bTdeJ3uxL5aD7UdEuGwjMqP X-Proofpoint-Spam-Info: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX2e/PGrdW+05R YH7gw27f8T4vIsP7HD8neoPTdEe/o1flaBj//pK/cW2Ix9wT/rBO+hFg31FzIhq5CffRP20hedO P51/wjEQpZG7UC5Uai+5m+lx5WCdbJk= X-Authority-Analysis: v=2.4 cv=XvNvqlF9 c=1 sm=1 tr=0 ts=6aede929 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=zJRp6_cAMcgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=zzEQe1jJQc36kTSQPKoA:9 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX/r2ldzisqj9I PdZxZ8O2u/kSbKdQwF9rvkYXTIeOSRXnV8JmrOeOCT6zxjHKlqkrw3h1GiWyZ/DyKCFe0KStI2B peDxvkYeZOnPjglI9DfHRe3oYDKAb0OTxAcntXrfVCy8Z8WiWiFGRrSOfU2BuI75fP1hNfXVbsg bLU7mxQmDqDFJkuzrJyBg5UjQbQD/uynGz5eV8qQj7xw0uU2IoZzKhuI5hURKhYOb3/kNbKWir9 PBvBSMIxfdjrv9VFmkMD2+Wf18HQVUBp/8p7jlFSYZORKQJWuKTw3GaFHZwblJLo9MRgkpZ3wDC bZM0JLV3J7W1adupIkrLe+aFddRTG/kTbLKcgh8irxPc697PsK2t16Q5gBetHOfAkvOorb/JpHV uXRqBX0LtqVC2NelMMsmAtQ99BFR9Ix1+JTENSWcZtIGVuiwI7JHBf7RPEtnbItyERwrBZLS60V jfDBcKH+R+IP1XVvV6w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-06_04,2026-11-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 adultscore=0 malwarescore=0 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611060059 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Fri, 06 Nov 2026 14:50:22 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/249692 The tee image node is always typed "tee", but some SPLs, such as the Qualcomm one, expect OP-TEE in a "firmware" typed node. Add UBOOT_FIT_TEE_TYPE, defaulting to "tee", to set the node type. Signed-off-by: Viswanath Kraleti --- meta/classes-recipe/uboot-sign.bbclass | 5 ++++- meta/lib/oeqa/selftest/cases/fitimage.py | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/meta/classes-recipe/uboot-sign.bbclass b/meta/classes-recipe/uboot-sign.bbclass index 409f6376b1..82ecba108b 100644 --- a/meta/classes-recipe/uboot-sign.bbclass +++ b/meta/classes-recipe/uboot-sign.bbclass @@ -112,6 +112,9 @@ UBOOT_FIT_ARM_TRUSTED_FIRMWARE_IMAGE ?= "bl31.bin" # management of that surrounding environment. UBOOT_FIT_TEE ?= "0" UBOOT_FIT_TEE_IMAGE ?= "tee-raw.bin" +# FIT image type of the tee node, e.g. "firmware" for an SPL that loads +# OP-TEE as a plain firmware image +UBOOT_FIT_TEE_TYPE ?= "tee" # User specific settings UBOOT_FIT_USER_SETTINGS ?= "" @@ -388,7 +391,7 @@ uboot_fitimage_tee() { tee { description = "Trusted Execution Environment"; data = /incbin/("${UBOOT_FIT_TEE_IMAGE}"); - type = "tee"; + type = "${UBOOT_FIT_TEE_TYPE}"; arch = "${UBOOT_ARCH}"; os = "tee"; load = <${UBOOT_FIT_TEE_LOADADDRESS}>; diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py index 1fad53b16c..15b3de04d8 100644 --- a/meta/lib/oeqa/selftest/cases/fitimage.py +++ b/meta/lib/oeqa/selftest/cases/fitimage.py @@ -1713,6 +1713,7 @@ class UBootFitImageTests(FitImageTestCase): 'UBOOT_FIT_TEE_ENTRYPOINT', 'UBOOT_FIT_TEE_IMAGE', 'UBOOT_FIT_TEE_LOADADDRESS', + 'UBOOT_FIT_TEE_TYPE', 'UBOOT_FIT_TEE', 'UBOOT_FIT_UBOOT_ENTRYPOINT', 'UBOOT_FIT_UBOOT_LOADADDRESS', @@ -1815,7 +1816,7 @@ class UBootFitImageTests(FitImageTestCase): its_field_check += [ 'description = "Trusted Execution Environment";', 'data = /incbin/("%s");' % bb_vars['UBOOT_FIT_TEE_IMAGE'], - 'type = "tee";', + 'type = "%s";' % bb_vars['UBOOT_FIT_TEE_TYPE'], 'arch = "%s";' % bb_vars['UBOOT_ARCH'], 'os = "tee";', 'load = <%s>;' % bb_vars['UBOOT_FIT_TEE_LOADADDRESS'], @@ -1882,8 +1883,12 @@ class UBootFitImageTests(FitImageTestCase): } if bb_vars['UBOOT_FIT_TEE'] == "1": loadables.append("tee") + tee_types = { + "tee": "Trusted Execution Environment Image", + "firmware": "Firmware", + } req_sections['tee'] = { - "Type": "Trusted Execution Environment Image", + "Type": tee_types[bb_vars['UBOOT_FIT_TEE_TYPE']], # "Load Address": bb_vars['UBOOT_FIT_TEE_LOADADDRESS'], not printed by mkimage? # "Entry Point": bb_vars['UBOOT_FIT_TEE_ENTRYPOINT'], not printed by mkimage? } From patchwork Fri Nov 6 14:49:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viswanath Kraleti X-Patchwork-Id: 103304 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.7700.1793976622603708685 for ; Fri, 06 Nov 2026 06:50:22 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=Ppxqd3O2; dkim=pass header.i=@oss.qualcomm.com header.s=google header.b=Vwfubj/2; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: viswanath.kraleti@oss.qualcomm.com) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6A6EPvHd1046827 for ; Fri, 6 Nov 2026 14:50:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=dsBZr4aPIrM WwaWZq+fEOPXbU1MONnMbsXBHzRvyt/c=; b=Ppxqd3O2ocL4+HNhNDEHIn2ztI2 arh9wywrU6bBYOjuDBv9zTB/fc0/vuSywpcUhkiV/LV4HWn/ToHgnTReIrZktQYY E/R0Q58UF7NZTJIZ0tywcrIoETuXXWsayFpIa8ClHr6okI2wy1KicEbAr3m33UTD y4MycrqZ/G0U2zTqCxHtOaze9w5HNjYUy4fdFGxIjI5FBqW8XwcIaFjiGeDZiPSt ojll+l0PBRZ0r7D0JuFZoY+u3woR9gCgJQFsB/u3B9+p3jHPqm08Ss9KJ7M/yS4r R8ZWlm+wMeanmqdMKCP1Kz0qnjXBQJK5YomsmoF6df6CQsyitx2JTb/Ps6Q== Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hs3p9u7cx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 06 Nov 2026 14:50:20 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-36a3451ea93so1097767eec.1 for ; Fri, 06 Nov 2026 06:50:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1793976620; x=1794581420; 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:content-type; bh=dsBZr4aPIrMWwaWZq+fEOPXbU1MONnMbsXBHzRvyt/c=; b=Vwfubj/2hz2cGgsCngC5Fkjb+gkXTs42AqvWUe8HQWFIqGwiBK7L4k+hb/RzpYr31w SUv+f4rlZOZPhGNKOQxjBjX8qChVy1TIqUdYdVPTLEZvwovyPF1y4UF6+Ipv30ab8qXO fahkhSAG3hV5/piJ5LedN8abtniCYc7yeDT7tdttc7fbcI2m3+ul3+nesPBJkSyPW/3Z O9BsGJqVPk4zn4RcEpf7SrOlcPd2rUN/q3++mlhrjfwFhotSzid22emoKQYWKa6Rl6GI y9eHj8g1SCoDKftDqnYQnpV1hFmuuK3FVbO8Zd5DSyviN5Lv0C4yV8nHPFG0/gIuu8li 3aww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793976620; x=1794581420; 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:content-type; bh=dsBZr4aPIrMWwaWZq+fEOPXbU1MONnMbsXBHzRvyt/c=; b=CYhDx7E9bK66uZU+RHAeGPMuLiKltmJvln9bdWXUd92d8rEYWdFACJp94be7BgwILk +RBrqW5/ifAtxVNaHCqeaI2rTiilrMQXg/8RELk9c6Q08endmmqxICp97sBGFIOh4CJd SCSXbYhtHewvLV5mqrEvGa2KWoZLF8ziXaduqB/515zZu2K7J+tSbBCTESCShv8u/gIQ /za3Z2x5rK2Tm8PGpbljpp8LrUHMD9/vRqIBcDOD5ZhHqLlSaNd70OZ2z1WO+zbm/gDb uiy6ebgwyZa9x3/ssfucD3pl94dVH2mtS6d97OLu95CIUQpNWC9qOXJSVEcHjQoDyGvq ncYg== X-Gm-Message-State: APuU4Z/YurF2XsN95q5Cc3OQIWXg8kzI2wTG+bD0INGZ3PDlCgMc0A6F uVuJjTaYNFaL8eXpxdiYFWqVilldJkybzTEbmYEGZv34tvuIw7JXGSvHdRfvyoXoXnQ4m7kElyw 2kwFpCtnCJmJP2Apjvo9cjhzO9KWsNL/VUkP+cMwck6MyiEKN9FmSuyCKyzbf594fe+umhhyikN EgCqfE/z3SOoHWHTQ= X-Gm-Gg: AYBFou0ab41Ws/DWlAS43FjkfOqzJnTkkU0Ql6gwZ4ATU14AuIkn20G/FeXRZbU+cSJ Rq4iP2f9IipucYi9ruXaC73dFR7/IDsQ0T5HI7d4Y9EKvqypGtwHAhnBfT3M/SXSvAbnKZo31/y vLdiVj/8ctSPCuWTTyTztBD8vew36BoGAhq7egsD184DvrKwJYS5c6I7NkTGzMNkt+MAKpIdj9W oSlDBKiFyC861PEbVJW8LbfcJ+jM6omXf6GdSFsRq92db0jTpgYifU96c8V9glwoa5zaqDL+VeP HLFtbn4RxIy6oD5uCgRVPWD1j1zDW85XNUH/73PEleTiz5tkFkWA7gHzio/+4/Lp1Q2mhx0N9bj wLWIMcM+pvSh2QIDRnt/cOFnXd37Dh5Eg+hJjTRTrI7CqyEqfHomVMR2IypiQVbnfk79PYHv0/6 EZx2MhErr/yg6+0pfTUFh+E4s6btUBU0fK6tdaCPk8l+w= X-Received: by 2002:a05:693c:884b:b0:351:7e5d:2de9 with SMTP id 5a478bee46e88-36f723e73cfmr1823eec.1.1793976619895; Fri, 06 Nov 2026 06:50:19 -0800 (PST) X-Received: by 2002:a05:693c:884b:b0:351:7e5d:2de9 with SMTP id 5a478bee46e88-36f723e73cfmr1741eec.1.1793976618730; Fri, 06 Nov 2026 06:50:18 -0800 (PST) Received: from hu-vkraleti-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36fa9be7077sm7466502eec.17.2026.11.06.06.50.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Nov 2026 06:50:18 -0800 (PST) From: Viswanath Kraleti To: openembedded-core@lists.openembedded.org Cc: Ricardo Salveti , Viswanath Kraleti Subject: [OE-core][PATCH 2/4] uboot-sign: add SPL_MKIMAGE_ARGS for the U-Boot fitImage Date: Fri, 6 Nov 2026 20:19:55 +0530 Message-Id: <20261106144957.3818987-3-viswanath.kraleti@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> References: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Info: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX82y7TvrSPXz0 w3ppFHDdrd3/995XgmgdEOvtfCkzCkHfNeW1rN6uiOIwGNFmQsZGS+87pp69z4NtvdlA7XZg86g +lgIOF8ud3whfcB+BqeeUZOlGWrrkI4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX/7IAdQ7tsfUG bkh9VL/Ontk3t2tzy4nqYgIQ1fcy6B2X7jx+b9iLhUdO74UD+soezVg3FrqNhox5d51ExmNeGPw 97wfcGv6VlPUXxMTcvc+t0wuttHpoTFxlgEp+EjT9z7aU64L5oaEoBbX2CLWyl+Via42i4OkgPn YAM2Gh3GXk024Xejz8MfxKF7+pk/dNOG08rl/7WOo2bgaZBLNKDwtwlLOMxD/aCVDf4d+YnQt9u No1Pc2J8js6vM+sZl3SjqAeMNQqqHhUsvN2dQPbZQov7FJxKWqoyjZTDM8okPRE5vU0rFKhaVqe /yUwrfTWgwuEBAyEIyGb3GudPFAQE4zBYeW4GqxwZhWZV+RmL28MLZIk+w3hXBMZABAd8Hg1WlY kDsQQQXjrdbWLZLfPSq7ux/RUhIUW1ru8oi0qIyCXZqjdN0PKPnWYxPKw+k3fFsrJK87fUy/fea rXCLDLoY5MGN4Wg7bVw== X-Proofpoint-ORIG-GUID: 2vc5ZCWFbkXuBQn6eBenkACp7ulbOIvQ X-Authority-Analysis: v=2.4 cv=f6Pdl+yM c=1 sm=1 tr=0 ts=6aede92c cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=zJRp6_cAMcgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=Yq3IalCRE6alaCmtRBEA:9 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-GUID: 2vc5ZCWFbkXuBQn6eBenkACp7ulbOIvQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-06_04,2026-11-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611060059 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Fri, 06 Nov 2026 14:50:32 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/249693 There is no way to pass options such as -E, which places the image data after the FIT structure, to the mkimage call creating the U-Boot fitImage. Such an option also has to be repeated when signing, since mkimage -F moves external data back into the FIT unless -E is given again. Add SPL_MKIMAGE_ARGS and pass it to the mkimage calls that create and sign the U-Boot fitImage. Signed-off-by: Viswanath Kraleti --- meta/classes-recipe/uboot-sign.bbclass | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meta/classes-recipe/uboot-sign.bbclass b/meta/classes-recipe/uboot-sign.bbclass index 82ecba108b..368888707d 100644 --- a/meta/classes-recipe/uboot-sign.bbclass +++ b/meta/classes-recipe/uboot-sign.bbclass @@ -72,6 +72,10 @@ SPL_NODTB_SYMLINK ?= "u-boot-spl-nodtb-${MACHINE}.bin" # padding it adds behind BSS for SPLs built without SPL_SEPARATE_BSS. SPL_WITH_DTB_BINARY ?= "" +# Arguments passed to mkimage both when creating and when signing the +# U-Boot fitImage, e.g. "-E" to place the image data after the FIT structure +SPL_MKIMAGE_ARGS ?= "" + # U-Boot fitImage description UBOOT_FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}" @@ -563,6 +567,7 @@ EOF # ${UBOOT_MKIMAGE} \ ${@'-D "${SPL_MKIMAGE_DTCOPTS}"' if len('${SPL_MKIMAGE_DTCOPTS}') else ''} \ + ${SPL_MKIMAGE_ARGS} \ -f ${UBOOT_ITS} \ ${UBOOT_FITIMAGE_BINARY} @@ -591,6 +596,7 @@ EOF cp ${SPL_DIR}/${SPL_DTB_BINARY} ${SPL_DIR}/${SPL_DTB_SIGNED} ${UBOOT_MKIMAGE_SIGN} \ ${@'-D "${SPL_MKIMAGE_DTCOPTS}"' if len('${SPL_MKIMAGE_DTCOPTS}') else ''} \ + ${SPL_MKIMAGE_ARGS} \ -F -k "${SPL_SIGN_KEYDIR}" \ -K "${SPL_DIR}/${SPL_DTB_SIGNED}" \ -r ${UBOOT_FITIMAGE_BINARY} \ @@ -604,6 +610,7 @@ EOF # Sign the U-boot FIT image ${UBOOT_MKIMAGE_SIGN} \ ${@'-D "${SPL_MKIMAGE_DTCOPTS}"' if len('${SPL_MKIMAGE_DTCOPTS}') else ''} \ + ${SPL_MKIMAGE_ARGS} \ -F -k "${SPL_SIGN_KEYDIR}" \ -r ${UBOOT_FITIMAGE_BINARY} \ ${SPL_MKIMAGE_SIGN_ARGS} From patchwork Fri Nov 6 14:49:56 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viswanath Kraleti X-Patchwork-Id: 103305 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.7702.1793976624997595716 for ; Fri, 06 Nov 2026 06:50:25 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=gRmKzjVZ; dkim=pass header.i=@oss.qualcomm.com header.s=google header.b=d18bpzef; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: viswanath.kraleti@oss.qualcomm.com) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6A6EQ9431047899 for ; Fri, 6 Nov 2026 14:50:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=yqfzYIV+Dpu xq1lxWNrFTFpTz/7AHF5Y6p1fDE2xtmo=; b=gRmKzjVZcHOrH9d4hwSN1XsE3Ma WsL1BK3eMvu8bPhfViMBc+c0YcGS5orfAwtG8CgGl8RRwblN1+YX86tlZGGnuw+N TQQd5qxJGUuxGcEZDLgHcsfyhdlTjwM9dxyHkBCDF8TB4hhKTMdTsg+Q3m+rudNk bhEwX1mR+D2p6no95TR3denA6R8zPfBfTgH9nvVe/m0fiaBLQikWkX3V1sRuWkW5 6zKog/oi1W0d/euDJNI3/6V0iU/e0P22SdG+udkwSG+fBj6eJv3FkIaJ7y6oAUGc zrFpl8DE0IBBg0/F5coON5zGDJEVNQURlrgAysWKFl3YxqWuNhCBuaNcoNw== Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hs3p9u7d9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 06 Nov 2026 14:50:23 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-36d1353fdcdso67293eec.0 for ; Fri, 06 Nov 2026 06:50:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1793976623; x=1794581423; 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:content-type; bh=yqfzYIV+Dpuxq1lxWNrFTFpTz/7AHF5Y6p1fDE2xtmo=; b=d18bpzefkr3T6SMbJYvUdzkBe1iAjSf2a0Ee23LMyRuf0vUu8unKxubO2T0p/85cSf 5PnJ6R2iCESryW5oEzx/iE+0sv2HuPBkkdUYgSh5GpoPMgEwp47WpHAfXvuymy3Fom4M UcnEdaVgM4MDYnLrqPor9oVzgHiqHOKIvUaSmiR1a9xvrIYcKgGqDNtycCWzrMhfFBXZ P5mkiZ9nE/1aF/V47AdVOhNRRtv8/avdpQslPmRedJg1rMdxcPe0FKdzFakeFoqWwQ5u fC8gMIfe0WMrVCgCpQ0M8NSfDC/zA1wPB9tVW5HEQg8qakBhPCUwkjhpeDtVOi694Syu XsSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793976623; x=1794581423; 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:content-type; bh=yqfzYIV+Dpuxq1lxWNrFTFpTz/7AHF5Y6p1fDE2xtmo=; b=ytucmuYEv3kk+sfJi/vfJWEVgCoSLcOFgA2c3s8eN5gNkgk+H/kXu9WSeD4/wGi22u 1YXs0NuXsCdhWioQZ0ObB3P57avo46sIIm5p1ua9H8Cnaj1/dpQJgtrsC9tEePvElCXU g5zvBWOp+Pzog/Jj+IXe05N9ll380xhEgVR9RdhOJtk997TCxTzme7oTt0HDKW+Jbfis H7OleOFxqbCq+UETHSIxY5GgXC7JlvM8ZuwE1MnpkC9rzlX/3zR2vqp9oNTUj3ZYgBJR 7/pOONAYzb+8RMI2gr/AoW91LFMFmU9CkA1mvGn1vsdXyg44NOHBtJZ3QLsSS07vx7r2 oZ6A== X-Gm-Message-State: APuU4Z9K+JOtIM6IvQAbGz3qjlsFzQWl4z9FaXpYgFrLKkiA7nGBdSx0 Y715f2CNIsjxgEeyu8yvRb8O+BTNXt3VgNY8hm+Pd1MJv89hMsPp6SsIzLpJ44ql9MyqmJtdYHi kPJrnEjZeNeEvn13pXSxMeNe9z+cMOafw2ksT2t9rsW6oAIwsglE0heTtVuYpxJ5et7F6sUsTUS 7ey9fdjFs5W9Zx0eA= X-Gm-Gg: AYBFou39yyOKEe/kd83j8WzFR51GNLKlVzcX4qbS/r9kRYZn5nVwhoqb1yj9bRA63T2 rlvNmeWT6ith8jvdMq8BJ2XDb90DY8IJccupNPMUkA6emdBzAEzPI4Sfh0htVWP5qX9OJdeJdD4 +M8af9cF7ZX9uv9rNzPyuMIoiCSlZWgZzBgnelPYC6CbaVTaZRTCRFVGlLMJuW7OfrdwBIZBWBP Sm2eNM8cGKH966cpEfjo+2Y8sLdOs99hE189n/zJrhJnWSA/k2deBKJx5nPNgnhyTM1J3qrI7xx XnkUoZYbrD6/cRXRYktfzVuImFKc0PnQ5VNHQFCFAVQXMLTFXEoBhT/DA7/j+udtL+6k0BeUCdc E/holrjqa4Q8fR0FkBw1D9zTVOtMbiZ1adiHG1p3mdoM4SeL6SP8ObeNnmbXN4DUM9h9Q8y93cH 1SZckN76kM5PTvNtZUpaGCWfdbvVKbJiQ9LyDqJGOKcCA= X-Received: by 2002:a05:7301:dc2:b0:368:2548:c08b with SMTP id 5a478bee46e88-36f76023a8bmr3954238eec.21.1793976622778; Fri, 06 Nov 2026 06:50:22 -0800 (PST) X-Received: by 2002:a05:7301:dc2:b0:368:2548:c08b with SMTP id 5a478bee46e88-36f76023a8bmr3954187eec.21.1793976621836; Fri, 06 Nov 2026 06:50:21 -0800 (PST) Received: from hu-vkraleti-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36fa9be7077sm7466502eec.17.2026.11.06.06.50.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Nov 2026 06:50:21 -0800 (PST) From: Viswanath Kraleti To: openembedded-core@lists.openembedded.org Cc: Ricardo Salveti , Viswanath Kraleti Subject: [OE-core][PATCH 3/4] uboot-sign: make the separate fdt image optional Date: Fri, 6 Nov 2026 20:19:56 +0530 Message-Id: <20261106144957.3818987-4-viswanath.kraleti@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> References: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Info: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX7veB02MapgWa eojwLUTq1Uqh4f17ziqNG1GJITwIVQZdUv31Us5PYg/Oo+WVMU2AH7TGPsI/zyd2b0PHfdvtiD4 2nnyK3aDeX+p4PWwTTe7/cQ+Tz1bxRI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX1WAvdF7Py3MN oMXxnkz4J4qQKsY3r6beMM082pOWCDQgLqH6Y96a1dXAwDKGroFSrILC2TZ3+D9voVslooqK5RU +PZpSNITEuKI+SJQ0wBvRkG88KQegx54KeesGcKnjME7EZK2GZTclV157JdCHGRnlKhRQrrPLGZ 9iSuxcncNSs5B3XR+FLJJTKPcFEocTDZI+sDBNfOgZcvZEMobcC4K6RY9q6QpqViEz94hD+TVz8 uCYsq1jc3WnZV7M88GxqVhoBq6Rwh6baranwWHyVwHetd33eSTi/P7dbgJroKfKgKl5oxCrKnvE fZs3SuAbsohurOiX7SslyNeHjT3pRlD50QGWs7vdZorrLXMipfMClT5zPqsE1YE+CPT7JDseIUx 4tqeVWnJbBmPKVwV/n71P9Hcz8CezVI7EitQMUfn0f84+Y09AgOozpUjEZzEF++t5YytbwsHAVo i6rCD5G+j8pvi8CSwAg== X-Proofpoint-ORIG-GUID: -jFZ-ugYfD_E3W5qIsrF89W6ixDQk4yu X-Authority-Analysis: v=2.4 cv=f6Pdl+yM c=1 sm=1 tr=0 ts=6aede92f cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=zJRp6_cAMcgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=tfjGJdk0KLHn_bEoCD4A:9 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-GUID: -jFZ-ugYfD_E3W5qIsrF89W6ixDQk4yu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-06_04,2026-11-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611060059 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Fri, 06 Nov 2026 14:50:32 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/249694 The U-Boot FIT always carries the U-Boot device tree as an "fdt" image next to u-boot-nodtb.bin, and its configuration points at it. An SPL that loads U-Boot with the device tree already appended, as the Qualcomm one does, has no use for the extra image. Add UBOOT_FIT_FDT, defaulting to "1". With "0" the fdt image, the configuration's fdt property and its entry in sign-images are left out, and the uboot image defaults to ${UBOOT_BINARY}. The new UBOOT_FIT_UBOOT_IMAGE sets the uboot image data explicitly. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Viswanath Kraleti --- meta/classes-recipe/uboot-sign.bbclass | 35 +++++++++++++++------- meta/lib/oeqa/selftest/cases/fitimage.py | 38 ++++++++++++++++-------- 2 files changed, 51 insertions(+), 22 deletions(-) diff --git a/meta/classes-recipe/uboot-sign.bbclass b/meta/classes-recipe/uboot-sign.bbclass index 368888707d..4a7872074a 100644 --- a/meta/classes-recipe/uboot-sign.bbclass +++ b/meta/classes-recipe/uboot-sign.bbclass @@ -137,6 +137,11 @@ UBOOT_FIT_CONF_USER_LOADABLES ?= '' UBOOT_FIT_UBOOT_LOADADDRESS ?= "${UBOOT_LOADADDRESS}" UBOOT_FIT_UBOOT_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}" +# Add the U-Boot device tree as a separate "fdt" image and point the +# configuration at it. Set to "0" for an SPL that expects U-Boot with its +# device tree appended in the uboot image. +UBOOT_FIT_FDT ?= "1" +UBOOT_FIT_UBOOT_IMAGE ?= "${@'${UBOOT_NODTB_BINARY}' if d.getVar('UBOOT_FIT_FDT') == '1' else '${UBOOT_BINARY}'}" DEPENDS:append = " ${@'kernel-signing-keys-native' if d.getVar('FIT_GENERATE_KEYS') == '1' else ''}" @@ -429,6 +434,7 @@ EOF uboot_fitimage_assemble() { conf_loadables="\"uboot\"" conf_firmware="" + conf_fdt="" rm -f ${UBOOT_ITS} ${UBOOT_FITIMAGE_BINARY} # First we create the ITS script @@ -442,7 +448,7 @@ uboot_fitimage_assemble() { images { uboot { description = "U-Boot image"; - data = /incbin/("${UBOOT_NODTB_BINARY}"); + data = /incbin/("${UBOOT_FIT_UBOOT_IMAGE}"); type = "standalone"; os = "u-boot"; arch = "${UBOOT_ARCH}"; @@ -470,6 +476,11 @@ EOF cat << EOF >> ${UBOOT_ITS} }; +EOF + + if [ "${UBOOT_FIT_FDT}" = "1" ] ; then + conf_fdt="fdt = \"fdt\";" + cat << EOF >> ${UBOOT_ITS} fdt { description = "U-Boot FDT"; data = /incbin/("${UBOOT_DTB_BINARY}"); @@ -478,26 +489,28 @@ EOF compression = "none"; EOF - if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ "${SPL_SIGN_CONF}" = "1" ] ; then - cat << EOF >> ${UBOOT_ITS} + if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ "${SPL_SIGN_CONF}" = "1" ] ; then + cat << EOF >> ${UBOOT_ITS} hash-1 { algo = "${UBOOT_FIT_HASH_ALG}"; }; EOF - fi + fi - if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ "${SPL_SIGN_INDIVIDUAL}" = "1" ] ; then - cat << EOF >> ${UBOOT_ITS} + if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ "${SPL_SIGN_INDIVIDUAL}" = "1" ] ; then + cat << EOF >> ${UBOOT_ITS} signature { algo = "${UBOOT_FIT_HASH_ALG},${UBOOT_FIT_SIGN_ALG}"; key-name-hint = "${SPL_SIGN_KEYNAME}"; }; EOF - fi + fi - cat << EOF >> ${UBOOT_ITS} + cat << EOF >> ${UBOOT_ITS} }; EOF + fi + if [ "${UBOOT_FIT_TEE}" = "1" ] ; then # Listed behind U-Boot: an SPL handing off to the ARM Trusted # Firmware only describes the images it loaded to the next stage @@ -532,7 +545,9 @@ EOF conf_sign_images="${conf_sign_images}${conf_sign_images_sep}\"loadables\"" conf_sign_images_sep=", " fi - conf_sign_images="${conf_sign_images}${conf_sign_images_sep}\"fdt\"" + if [ -n "${conf_fdt}" ] ; then + conf_sign_images="${conf_sign_images}${conf_sign_images_sep}\"fdt\"" + fi cat << EOF >> ${UBOOT_ITS} }; @@ -543,7 +558,7 @@ EOF description = "${UBOOT_FIT_CONF_DESC}"; ${conf_firmware} loadables = ${conf_loadables}; - fdt = "fdt"; + ${conf_fdt} EOF if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ "${SPL_SIGN_CONF}" = "1" ] ; then diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py index 15b3de04d8..b17e84f765 100644 --- a/meta/lib/oeqa/selftest/cases/fitimage.py +++ b/meta/lib/oeqa/selftest/cases/fitimage.py @@ -1708,6 +1708,7 @@ class UBootFitImageTests(FitImageTestCase): 'UBOOT_FIT_CONF_FIRMWARE', 'UBOOT_FIT_CONF_USER_LOADABLES', 'UBOOT_FIT_DESC', + 'UBOOT_FIT_FDT', 'UBOOT_FIT_HASH_ALG', 'UBOOT_FIT_SIGN_ALG', 'UBOOT_FIT_TEE_ENTRYPOINT', @@ -1716,6 +1717,7 @@ class UBootFitImageTests(FitImageTestCase): 'UBOOT_FIT_TEE_TYPE', 'UBOOT_FIT_TEE', 'UBOOT_FIT_UBOOT_ENTRYPOINT', + 'UBOOT_FIT_UBOOT_IMAGE', 'UBOOT_FIT_UBOOT_LOADADDRESS', 'UBOOT_FIT_USER_SETTINGS', 'UBOOT_FITIMAGE_ENABLE', @@ -1759,7 +1761,9 @@ class UBootFitImageTests(FitImageTestCase): def _get_req_its_paths(self, bb_vars): # image nodes - images = [ 'uboot', 'fdt', ] + images = [ 'uboot' ] + if bb_vars['UBOOT_FIT_FDT'] == "1": + images.append('fdt') if bb_vars['UBOOT_FIT_TEE'] == "1": images.append('tee') if bb_vars['UBOOT_FIT_ARM_TRUSTED_FIRMWARE'] == "1": @@ -1776,6 +1780,8 @@ class UBootFitImageTests(FitImageTestCase): # Create a list of paths for all image and configuration nodes req_its_paths = [] not_req_its_paths = [] + if bb_vars['UBOOT_FIT_FDT'] != "1": + not_req_its_paths.append(['/', 'images', 'fdt']) for image in images: req_its_paths.append(['/', 'images', image]) if spl_sign_individual: @@ -1799,19 +1805,22 @@ class UBootFitImageTests(FitImageTestCase): its_field_check = [ 'description = "%s";' % bb_vars['UBOOT_FIT_DESC'], 'description = "U-Boot image";', - 'data = /incbin/("%s");' % bb_vars['UBOOT_NODTB_BINARY'], + 'data = /incbin/("%s");' % bb_vars['UBOOT_FIT_UBOOT_IMAGE'], 'type = "standalone";', 'os = "u-boot";', 'arch = "%s";' % bb_vars['UBOOT_ARCH'], 'compression = "none";', 'load = <%s>;' % bb_vars['UBOOT_FIT_UBOOT_LOADADDRESS'], 'entry = <%s>;' % bb_vars['UBOOT_FIT_UBOOT_ENTRYPOINT'], - 'description = "U-Boot FDT";', - 'data = /incbin/("%s");' % bb_vars['UBOOT_DTB_BINARY'], - 'type = "flat_dt";', - 'arch = "%s";' % bb_vars['UBOOT_ARCH'], - 'compression = "none";', ] + if bb_vars['UBOOT_FIT_FDT'] == "1": + its_field_check += [ + 'description = "U-Boot FDT";', + 'data = /incbin/("%s");' % bb_vars['UBOOT_DTB_BINARY'], + 'type = "flat_dt";', + 'arch = "%s";' % bb_vars['UBOOT_ARCH'], + 'compression = "none";', + ] if bb_vars['UBOOT_FIT_TEE'] == "1": its_field_check += [ 'description = "Trusted Execution Environment";', @@ -1840,13 +1849,16 @@ class UBootFitImageTests(FitImageTestCase): 'default = "conf";', 'description = "%s";' % bb_vars['UBOOT_FIT_CONF_DESC'], 'loadables = "%s";' % '", "'.join(loadables), - 'fdt = "fdt";', ] + if bb_vars['UBOOT_FIT_FDT'] == "1": + its_field_check.append('fdt = "fdt";') if bb_vars['SPL_SIGN_ENABLE'] == "1" and bb_vars['SPL_SIGN_CONF'] == "1": sign_images = [] if bb_vars.get('UBOOT_FIT_CONF_FIRMWARE'): sign_images.append("firmware") - sign_images += ["loadables", "fdt"] + sign_images.append("loadables") + if bb_vars['UBOOT_FIT_FDT'] == "1": + sign_images.append("fdt") its_field_check.append('sign-images = "%s";' % '", "'.join(sign_images)) return its_field_check @@ -1877,10 +1889,11 @@ class UBootFitImageTests(FitImageTestCase): "Load Address": bb_vars['UBOOT_FIT_UBOOT_LOADADDRESS'], "Entry Point": bb_vars['UBOOT_FIT_UBOOT_ENTRYPOINT'], }, - "fdt": { + } + if bb_vars['UBOOT_FIT_FDT'] == "1": + req_sections['fdt'] = { "Type": "Flat Device Tree", } - } if bb_vars['UBOOT_FIT_TEE'] == "1": loadables.append("tee") tee_types = { @@ -1901,9 +1914,10 @@ class UBootFitImageTests(FitImageTestCase): } req_sections["conf"] = { "Kernel": "unavailable", - "FDT": "fdt", "Loadables": ','.join(loadables), } + if bb_vars['UBOOT_FIT_FDT'] == "1": + req_sections["conf"]["FDT"] = "fdt" # Add signing related properties if needed uboot_fit_hash_alg = bb_vars['UBOOT_FIT_HASH_ALG'] From patchwork Fri Nov 6 14:49:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viswanath Kraleti X-Patchwork-Id: 103306 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.7497.1793976627115587496 for ; Fri, 06 Nov 2026 06:50:27 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=eRHPueSE; dkim=pass header.i=@oss.qualcomm.com header.s=google header.b=HHnz5u9s; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: viswanath.kraleti@oss.qualcomm.com) Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6A6EQ50J2596745 for ; Fri, 6 Nov 2026 14:50:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=C+ti+nPJSDD bx58RrRLDKX3yqqEOI0vuooBKXkUWI1s=; b=eRHPueSEw9A+bvXRckUi/IRTpMW 3BPwDY77LCChXfZYKbYq8LF7AjYdiZ62HUETqjOsLDySgDrLVxPdIFnQP8LnU3vK NWsncn1gKOmn6Ekshn4X9eJa5U7UANQ460DGVZShRvvlDUyV+BB4UhXAEGMCcFoP YEaqUiQ7GniZ9vv+vSV0z5N8wqa5oYIkDClSXrYAigcUzS0q65WNyV4RB7ap5AvY 1lZEmsv4vvhxmh7RIOPS+3QW+mZoGKvBa+T1axBz/fjsbkr1QFnElIwYZ7hwuKHT dKOTNbrjFZECCZcdghJ5QgKHGmqS5UFVORxXqsMDdzAFIX6WXA60w0+2fsg== Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hs3pcb73h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 06 Nov 2026 14:50:26 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-33713e5e6daso1035558eec.0 for ; Fri, 06 Nov 2026 06:50:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1793976626; x=1794581426; 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:content-type; bh=C+ti+nPJSDDbx58RrRLDKX3yqqEOI0vuooBKXkUWI1s=; b=HHnz5u9sWKJByQV0TAnZPdXgs12491eIvHM2NPPhKOj5ZQW0ds53bXhqddtSBp2bQe 4klM54WgXs1HrpMcZgWtUqRKlWwvqNnU7ASjmUSb84nDDSYKYnmrrqyar8nC5U51v5mF fIuNUbG1k99U2jbnJAq/fEszkQC5v/SvSOt4B0KErLhYfaL/T0IktJNoYcnbQpyC5AOe +ZmKnLDmo+C+wYrvcggCu+ONcrOsezrwEnjeaDA1emXSS7Rbwu9DZWckET2C37s5Kvrz ASd5GyXwMVdbmFAYrA3/8GBKLm9pBIfIPUUDciw2xRz+kH+x8YzsyU0u5Lf5CmfgRFQg hb0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793976626; x=1794581426; 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:content-type; bh=C+ti+nPJSDDbx58RrRLDKX3yqqEOI0vuooBKXkUWI1s=; b=o0MfpfSgv3/0uB3jPI/tRV8kW64eHZqfA1zSrWVjr+IFLGcnmlAN+v2O/d/O1ZLptb LWF4OngRoZ4tZ4LqRATOoOtbLl9eSUqxMp3qLATxfDt+VBxQc7YrreFRNNxiQodHQ06z sp6h0rYpDvr28hu9MzwNd/WIfKRWxLIhsKKQE1DTwGbIIwPGvGHqsb8SvySazGee2xNL Rbmc+U+20ry2zUaeHW4y1sg1RH8KWJ4zqd13sGOfm9BP2X6xE1Zs6ERlFjNVU4y1yuc3 GTyB08kCwHgrMVVr+DXjZJU4LnEjwp6dJXTfp/OhGWM4QXUvjE14SOekeY9Oj4s3Obke nDkQ== X-Gm-Message-State: APuU4Z+wJwaBbFOpUOqpYfAX2Vz4Vs+DEpMAozQ75WZAksHdzG3IZ7uy BOz1IZzpjuCJFq0zemPIHgmN35ma8+LlBjgi8VUNGIT4QTKCFwlU44veE/THBPAlnvFQs0lVjDQ VcikXg0jwWYUierf+sRyWY8ti76M3DezEkzA9z1hOA9J1+lU7kwGbba7JWTL5JaKWchFVBQIK2z ObXRLE97yhVzo2Gpo= X-Gm-Gg: AYBFou2Nvfl5+g6NNqFWiF39+9QoncqpCQ9I/L7TWVaUXIEzdbpGXRPau62CG3AM1O+ I0QJ+Ye+hhg7E0b8Q/YmeE9Y2oaMr+jeiDnigOAPw4jvfTAiBwXziETPKQHprlj/zNZelpVLlhH EV7ImV651+LWMLx+8DYZGgRR8iq2PqntvTqNBsdG4OYopGuNJGbiUfhtNsje/g7+qT2dgjFnJ83 H4y8h4/yvf054yNo4Av2o2TdNKIk7asjDtmIHAUIQow94QgLttZCvFA5rIWGPW+b0KVNvG5Zo+k 2ZrXwZGzSAqQL8tpFJuVCxgRe2+GuFzBcmAEqIuxrO4wT4RWzLmdhi+8QRHTKTiUF5PAZUJZ65G qYmwq/2riBczlOYxTvXb+gExWZ27333oaj4S2F5Wf/5C9eMcSgvVASb7rojjk0ExBXsKHWh4tiG YaK3VjeEUvEpUheUCdaqW8X93ZhAflDiDmvfnCNRGaSdY= X-Received: by 2002:a05:7300:dd05:b0:36a:1f:9b74 with SMTP id 5a478bee46e88-36f75b30488mr3553998eec.27.1793976625831; Fri, 06 Nov 2026 06:50:25 -0800 (PST) X-Received: by 2002:a05:7300:dd05:b0:36a:1f:9b74 with SMTP id 5a478bee46e88-36f75b30488mr3553964eec.27.1793976625210; Fri, 06 Nov 2026 06:50:25 -0800 (PST) Received: from hu-vkraleti-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36fa9be7077sm7466502eec.17.2026.11.06.06.50.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Nov 2026 06:50:24 -0800 (PST) From: Viswanath Kraleti To: openembedded-core@lists.openembedded.org Cc: Ricardo Salveti , Viswanath Kraleti Subject: [OE-core][PATCH 4/4] uboot-sign: add UBOOT_FIT_USER_CONFIGURATIONS Date: Fri, 6 Nov 2026 20:19:57 +0530 Message-Id: <20261106144957.3818987-5-viswanath.kraleti@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> References: <20261106144957.3818987-1-viswanath.kraleti@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: 0uulv6lAgPl_iwPjNxm8_uvzGUqrMuEA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX+JcT8zJOtkMy KBT6CwOd3KL9OoOCgGu3STSpK3KSr0N4xBT1KrDXYbh7ckYxKlwMFhz9jwFKwUNu/dg0mGmQFj7 1S6AcQovPre3A9mbXU8f6lLhfFbxODf/nrNypiY6TbsOPB1G5ylHl2BSrzsNRxpmMCrb1WFBbjv OukWQwvcA5rtC9Ry7mHQAtdl5yMdJ1O5hsszvUq7/vvoYHD17RcuycGaxAWXQdBlWqlofOa15oG GuAzEu8ncCLciiWRWvguqvSyCxJaCl4GSOa+v9Akhw4SlYK38ww6Y6axSh4g+QXeDN+AW1kWcDk ciFuNR2ihgGGfsNSMTKolVA2KHrT68eu2ZeH1b0XMLuurXoTmUvKaMqy8ZVz1Q3ni7pAC1+SJsV Sdnxl7yiV6UrgC3WiazW45wQiGj2hFxlywkVvIwNMgVebtalSIWwrjSsniFfURXDtihUf4iZyv1 g405oa+crQZpzWo/WLw== X-Proofpoint-GUID: 0uulv6lAgPl_iwPjNxm8_uvzGUqrMuEA X-Authority-Analysis: v=2.4 cv=TI3Q2Fla c=1 sm=1 tr=0 ts=6aede932 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=zJRp6_cAMcgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=A7cOQzBelK9jzjY8NncA:9 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Spam-Info: AW1haW4tMjYxMTA2MDA1OSBTYWx0ZWRfX9kOQnT+n1oEQ XAzEpALk399jOaojVdr1m213M6NUBKt1yJ9VazTId78xya0dGjK2+T+YTVozGKDU0eZzlThT9Rs CGg0/GLxBcu2gI0TMhPwtxyhlCMrLR4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-06_04,2026-11-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 phishscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611060059 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Fri, 06 Nov 2026 14:50:32 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/249695 UBOOT_FIT_USER_SETTINGS lets a user add image nodes to the U-Boot FIT, but the configurations node only ever holds the class's "conf". An SPL that selects a configuration by name, such as one loading firmware ahead of DDR init from a "pre-ddr" configuration, has no way to get it into the FIT. Add UBOOT_FIT_USER_CONFIGURATIONS, written after "conf" the same way UBOOT_FIT_USER_SETTINGS is written after the image nodes, and UBOOT_FIT_CONF_NAME to give "conf" a name matching the others. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Viswanath Kraleti --- meta/classes-recipe/uboot-sign.bbclass | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/uboot-sign.bbclass b/meta/classes-recipe/uboot-sign.bbclass index 4a7872074a..e711a36c38 100644 --- a/meta/classes-recipe/uboot-sign.bbclass +++ b/meta/classes-recipe/uboot-sign.bbclass @@ -123,6 +123,13 @@ UBOOT_FIT_TEE_TYPE ?= "tee" # User specific settings UBOOT_FIT_USER_SETTINGS ?= "" +# User specific configuration nodes, added next to the class one, e.g. +# for an SPL that picks a configuration other than the default one +UBOOT_FIT_USER_CONFIGURATIONS ?= "" + +# U-Boot fitImage configuration node name, also the default configuration +UBOOT_FIT_CONF_NAME ?= "conf" + # U-Boot fitImage configuration description UBOOT_FIT_CONF_DESC ?= "Boot with signed U-Boot FIT" @@ -553,8 +560,8 @@ EOF }; configurations { - default = "conf"; - conf { + default = "${UBOOT_FIT_CONF_NAME}"; + ${UBOOT_FIT_CONF_NAME} { description = "${UBOOT_FIT_CONF_DESC}"; ${conf_firmware} loadables = ${conf_loadables}; @@ -573,6 +580,13 @@ EOF cat << EOF >> ${UBOOT_ITS} }; +EOF + + if [ -n "${UBOOT_FIT_USER_CONFIGURATIONS}" ] ; then + printf "%b" "${UBOOT_FIT_USER_CONFIGURATIONS}" >> ${UBOOT_ITS} + fi + + cat << EOF >> ${UBOOT_ITS} }; }; EOF