From patchwork Tue Mar 11 11:15:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luca Miccio X-Patchwork-Id: 14011514 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 64EB6C28B30 for ; Tue, 11 Mar 2025 11:16:24 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.907848.1315035 (Exim 4.92) (envelope-from ) id 1trxab-00061h-Rf; Tue, 11 Mar 2025 11:16:01 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 907848.1315035; Tue, 11 Mar 2025 11:16:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1trxab-00061a-Op; Tue, 11 Mar 2025 11:16:01 +0000 Received: by outflank-mailman (input) for mailman id 907848; Tue, 11 Mar 2025 11:15:59 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1trxaZ-00061U-Pn for xen-devel@lists.xenproject.org; Tue, 11 Mar 2025 11:15:59 +0000 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on20614.outbound.protection.outlook.com [2a01:111:f403:2414::614]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 3205fc32-fe6a-11ef-9898-31a8f345e629; Tue, 11 Mar 2025 12:15:54 +0100 (CET) Received: from BN9P221CA0030.NAMP221.PROD.OUTLOOK.COM (2603:10b6:408:10a::29) by PH8PR12MB7232.namprd12.prod.outlook.com (2603:10b6:510:224::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Tue, 11 Mar 2025 11:15:49 +0000 Received: from BL6PEPF0001AB59.namprd02.prod.outlook.com (2603:10b6:408:10a:cafe::d7) by BN9P221CA0030.outlook.office365.com (2603:10b6:408:10a::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.21 via Frontend Transport; Tue, 11 Mar 2025 11:15:49 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF0001AB59.mail.protection.outlook.com (10.167.241.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Tue, 11 Mar 2025 11:15:49 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 11 Mar 2025 06:15:48 -0500 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 11 Mar 2025 06:15:48 -0500 Received: from xsjstefanos51.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 11 Mar 2025 06:15:48 -0500 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 3205fc32-fe6a-11ef-9898-31a8f345e629 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VS+AfzYU7oSEqNYiW2DxmvY1hTOUqc9LXy3u7KT5W0kncGjlsMrBE+NdM1ZNH9Wi+AgueOwwsBypFQcPcRBrdcUoY6UvreQROzCgEhT/cNyI9jP+9/84JTHz7cL9D1b9xGL39guJOkGn2MBrisN/tGpUnpG9rT6G0cwCy5hjPQNhIYbwLmrS0Pv+uZVIlAyjUBuvvvzwWyl6KPADDJ/c+dvXlSy2PrNqpRMfy/K673KabS3d+NJiQeauEjcDVWOgRze3uVDL+6KKXxgSQtkAQgJ50D1G4W7aluOCcESzdyaH1JeqyrGr85UDmBg/mJRrpgcFX71PMlzQgLBxIMLJjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7bOrbxElBQUFEUmULX+wor0Ego3z9F5Xqr1SL2zMeko=; b=ls2+XuWCug2DwwqUtd+OEMFYZEuLGjQSBO39JSRoHsTjeHjm0ASO+OtbZaElJ5yO7osSlIodvP5Xj3HTZNm5mbiBjjzo+cLoZznyY6LjqJIbW/gQk153CQDkCWTvU9hfpXozgH9zBaXsFUzYu2iS4FPn+P8JZ3DEJMLT/+HpXMZzQH/WEAdNirSXOvIyvVvC6gWAASiRZgrgpjXuCqi8Shd/3entH2PBi5ZKBb6rkNi33Rn3hB2qCcqPKqNTxIa/wGw8jrgzOotB3cTs7zycIR3usoh5J0o+HCmYZaxrywyTN/xfpHRe4+IFdAx4IK901hUaqWzIE4gBZzHM9fXcOg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7bOrbxElBQUFEUmULX+wor0Ego3z9F5Xqr1SL2zMeko=; b=p0618K/w/m3Fy+dqZMrVfe0dhj6QN3RDdfzUnJaxzviMPLl4uCAdV0wzb4X0+ndMzWCJp+fPifTAbf0h0DQeVe2e3sr6WTj8DnDnp+KQzN8hOQ3Ytpgfn4o7WrsvjQTuX0SLr5/nnPb1e0uqrMrcu9nGh7gxoJD5wUWFgOrD3H0= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C From: Luca Miccio To: CC: Subject: [ImageBuilder][PATCH v2] uboot-script-gen: handle reserved memory regions Date: Tue, 11 Mar 2025 04:15:48 -0700 Message-ID: <20250311111548.3696851-1-luca.miccio@amd.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: luca.miccio@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB59:EE_|PH8PR12MB7232:EE_ X-MS-Office365-Filtering-Correlation-Id: fe29296a-0a91-4674-80eb-08dd608e13f1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: VshcLKHJhyrQlbNTFocgjyJwExa9euBceNqoilaRs7SHWXlcdHTvoWMFmx/neFwMpw5y1X2xkOWK/s9g/xlCsZC3+rx8mAzg8zo3jtTRnK9Me6TbfOIwWOeD6XiflguidfQcQ5xc8OFc8zkC1S34KnuLyK1+FZBhSOVwZ4KydRrw0UJMRvOXGwyUOVG+gUfiurkWccP+kOXcSQbraOSO803gyaiQ2V3hbGtXHhLZwJ8J0wOKKAuvASGZSXxz78f4hcu3lUpR8l83QpeCxF7+Mb43Lzqib6rZyJGBvkZmJkKzt6tB11BUqICDyNHpff16ed3m3wdfFblF1TGU2e+PEmfGMBRslCkjyCx3o3bL6RH3kiOAvB490wwSO4AKGRQW/fHJ7dfMrL4oeG5FgVb3OvkltrxeIYwhb9saD5Gx6WuAxfpKvZVdun2v2nWw+75e8PlSMcG6UBzqyc2kmJynwwsEhCBgTNQdun9b0WthjyhV1188WikmIF5hg+6BMXQVBopQdem9SdqDPT2A6qtrb5066etXvL/ZwBcilcHA2z/DhogNRh75mm8XEEdSEvY9xaHM98bqDRlJ4mG8FGd3R6X/yQexfeBqsRtKPoUNxJlM8c3CJ+D2+calhAb2ArrgCr3+5YMmhz6ez6AL80yXvIiciuyRgkDsSNBHsP7ls4KvR0QwCy5iL28vyp3Wg/sOemeBzUL1uveBMsuPW4lBFZsNVku8Ln4iaJ7id4RF0GKPZ8oKrXyVaPWvo0KDKTYRKzDkQqv0Io0k3yW2Z2R8HMIpRLp5aaMdaY8hvCrYfTZIu9G7pC90WEdg4KsHIcYMsCD/YvI0LLp3dRNWh0pboqAh2fugPXFdzsjO4ilpXXSgOGddT7WdSTY+HWav77o9B3LERx/FKCImUvItOrHIJV1l7fZjD0/MOcro4bx+cJYBoiyEpYnFSlcBmbmTd3ut3dexoFl8xpAvJ+v4fBOoJtGh3P+PMohOAL3kmo2L8U8Co8QMOSjhkEmucJTx3knsBeUPo63vkGLcC2u0gnrzegJhkhpaWe42zfPgWoHUas3EQHkKuYf9DVZHVBfRBFo23OSkjnhX+U81V6EpAafrOYycClsafzJTr76m2G7YlIlFKib4C7/WwRvSHocIeKh3sGdCvLe/U19JAEmXXmwVisINlBzispiWPI8nu5S8orGCxzNfXB1vViuwYhS7iEWGyvb0ZGRvWvVxxLQNO08tR9QVo+aj6J5gGiPwpK3SOh5jBh+Iffn/YCYiMkRBM2knRu0fe1Is6aCTGr+mOiWOI1G019CX7seIwZliX6stJr9fBN1FLl2ZmO0guvrU0eCaCSdVlLxAsnJ7ADfIytAFev27nXpkjLr+19lQqMEPUbpBUuzCG7taVcBoMWsJQmQ4l/++/+mo//WFKa3fPeKkb/TbWWGS5N+w8F3KKdtfcOOtELiHdN4rkGJrttPlYxS+L0ZbiSc+Lr1QjViXJWTJvFk/ZTF/LGdF+nmYiABLVmM= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2025 11:15:49.2226 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fe29296a-0a91-4674-80eb-08dd608e13f1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB59.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7232 Currently, the uboot-script-gen does not account for reserved memory regions in the device tree. This oversight can lead to scenarios where one or more boot modules overlap with a reserved region. As a result, Xen will always crash upon detecting this overlap. However, the crash will be silent (without output) if earlyprintk is not enabled, which is the default setting at the moment. To address this issue, add a function that iterates over the reserved-memory nodes if any and populates an array. This array will be used later to calculate the load address for any given file. Signed-off-by: Luca Miccio Reviewed-by: Stefano Stabellini --- v1->v2 - added local - check if reserved node exists - handle fdtget errors - use numeric check for duplicates --- scripts/uboot-script-gen | 84 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 3 deletions(-) diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen index db2c011..edc6a4c 100755 --- a/scripts/uboot-script-gen +++ b/scripts/uboot-script-gen @@ -468,6 +468,67 @@ function device_tree_editing() fi } +function fill_reserved_spaces_from_dtb() +{ + if [ ! -f $DEVICE_TREE ] + then + echo "File $DEVICE_TREE doesn't exist, exiting"; + cleanup_and_return_err + fi + + # Check if reserved-memory node exists + if ! fdtget -l $DEVICE_TREE /reserved-memory &> /dev/null + then + return + fi + + local addr_cells=$(fdtget -t x $DEVICE_TREE /reserved-memory '#address-cells' 2> /dev/null\ + || fdtget -t x $DEVICE_TREE / '#address-cells' 2> /dev/null) + local size_cells=$(fdtget -t x $DEVICE_TREE /reserved-memory '#size-cells' 2> /dev/null\ + || fdtget -t x $DEVICE_TREE / '#size-cells' 2> /dev/null) + + if [ -z "$addr_cells" ] || [ -z "$size_cells" ]; then + echo "Could not find #address-cells or #size-cells properties for reserved-memory node in $DEVICE_TREE" + cleanup_and_return_err + fi + + for node in $(fdtget -l $DEVICE_TREE /reserved-memory); do + local reg_values=($(fdtget -t x $DEVICE_TREE /reserved-memory/$node reg)) + local i=0 + for ((i=0; i<${#reg_values[@]}; i+=addr_cells+size_cells)); do + local addr=0 + local size=0 + local j=0 + + for ((j=0; j