From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595925; cv=pass; d=zohomail.com; s=zohoarc; b=Ka2c+aZBTpWYxyj6Dq16b6boqFJI+7N0WEiV9LnlE1pRtRszIYRn7xTHpXO0d8QVGXKjmKLiO1E8wR0PVc4E2Oi18UJEX/IporpadRXoL2n0Sfkqq/8jsVu6Euex1tWCvkgiA1+f0g5TpesGwASVlrMu0BsgXvsXHMa/DNMyWyw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595925; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=f408STOBncJgS8ZDv0NrBLgzhGTNsAeRGLbK/S80H9s=; b=CbIcKJSq/MyZxVvcl8lkTjhpRy88mBSS3IHO6nUV8yh0+ZVHSGgaknjztiIwmMeTpkNlj5gFMW7pYQRDhq5N3FVgblBdBYPiyBEspd1kHwyI0FiJ9UfRL/ZptxF3Y6m8lUgd9kSTdBDMWqlYDRa+NW4SlfmmjjUkfasTaqrooXA= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595925966290.0879556445203; Tue, 15 Jul 2025 09:12:05 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044527.1414633 (Exim 4.92) (envelope-from ) id 1ubiFr-0006PL-RF; Tue, 15 Jul 2025 16:11:43 +0000 Received: by outflank-mailman (output) from mailman id 1044527.1414633; Tue, 15 Jul 2025 16:11:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFr-0006Oz-JN; Tue, 15 Jul 2025 16:11:43 +0000 Received: by outflank-mailman (input) for mailman id 1044527; Tue, 15 Jul 2025 16:11:42 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFq-00067r-D7 for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:42 +0000 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on20604.outbound.protection.outlook.com [2a01:111:f403:2413::604]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 63ffe503-6196-11f0-a319-13f23c93f187; Tue, 15 Jul 2025 18:11:41 +0200 (CEST) Received: from SJ0PR05CA0098.namprd05.prod.outlook.com (2603:10b6:a03:334::13) by CYXPR12MB9443.namprd12.prod.outlook.com (2603:10b6:930:db::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.33; Tue, 15 Jul 2025 16:11:34 +0000 Received: from CO1PEPF000075F4.namprd03.prod.outlook.com (2603:10b6:a03:334:cafe::4) by SJ0PR05CA0098.outlook.office365.com (2603:10b6:a03:334::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.17 via Frontend Transport; Tue, 15 Jul 2025 16:11:33 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F4.mail.protection.outlook.com (10.167.249.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:32 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:30 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 63ffe503-6196-11f0-a319-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qrXzaQZjPV4jjvDKWNTozZ7alKRrxmYCSn2a6Md9FBbddVhgE+W1mOxOM1/AgrRRmD7qX7p7kryL8pbpNyx8FxjuRH/hBMQqVN35ABudy86ioSXHzs6Igg78bbYuHcdGMyNwTY4dbH1VF8dY11hVGxW6zHhXHA33H5xg53MMg1VeRIIKKHUJHk56RkngCWyLk7RvnSbntufrnK9P6OlblOO9snbDqNbF327Vk5p0JvrYvrFCE7AsTZIvptrYw91OmNSU/4DI0oOWrvJYZhuSK7/jf44Bqe876xF7mTqNM6XufQ5cojKcN2pTg8YCSsSJCc3zf1lnu3dsxziOQpETVQ== 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=f408STOBncJgS8ZDv0NrBLgzhGTNsAeRGLbK/S80H9s=; b=ZpHUHipQ1dBXp8T3knbCbjFPi3f/mGKf7VKPNpMSwqSQEbYdh8/9sbdF+EmNVQHPsmw2R+Y5tbqG1AyB5wnipwA02BpK3Eo/4WW1yPaGFamC5djDnFMHZ0VFQQqzi/aFJWH8RoEMFnV7IXXu+hahjmS6ItZE4AD3j0aLISpNj5YBka2AobAHGswvw+B9GGBCUUq3swLNZUmk279I3SslMA2l5SsvT3mguqei6mftpU2dXvduf+jM2dsDps93TUQ1oYucYXni5yeeEoyP6doVLKrAS1xplzOKtoWYFDYTtHvVrn+W6RqhrCRu3Eo6AO6tyk4LaP3jSYnZfmu4sG0tRg== 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=f408STOBncJgS8ZDv0NrBLgzhGTNsAeRGLbK/S80H9s=; b=kszsiI2oS3QhWCUhqVfe2QVE3fE1YYhMfLGpI9sJFM2XOpRcQI94x7ECFDvq0CYKW95BlVVdDGemU/Gxv15oCPa898qET8+V6z/2B9uaCDzhMceqoGeYbIZ2MxFuuBPL0NUl5jXBvx9af8s3j6QQ2iN8IDhmHIwRUjpZu3TdPE8= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , "Stefano Stabellini" , Julien Grall , "Bertrand Marquis" , Michal Orzel , "Daniel P. Smith" Subject: [PATCH v7 01/11] x86: Replace arch-specific boot_module with common one Date: Tue, 15 Jul 2025 18:10:56 +0200 Message-ID: <20250715161108.141126-2-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F4:EE_|CYXPR12MB9443:EE_ X-MS-Office365-Filtering-Correlation-Id: 126db67b-9ba9-44aa-9465-08ddc3ba4411 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Nrd/BKhCgCtZuJIsXGhK9Sm1VQZfMk1//5esnUe/+9gfV9H9EFrYZWdEZw0J?= =?us-ascii?Q?rIxFC1BP/21I/7EuEPeSRjUcyXSzsbgqDJn5dq0Mm1SQtDX4jG9sZ9LZdN8t?= =?us-ascii?Q?gf5d97+wzSYly7RmXMLh3wcLoOfVah128O9HJ/dp79Xxvg/h91+xsHAGtT98?= =?us-ascii?Q?gfdFqIulsW6FJtEAHRlFtmpoAqfH9zqbuFUuxa5N57u/XsYg8Obklw924yby?= =?us-ascii?Q?OwsQGr++KmWDU4/4oCqZjtJO3yS/eD0ffvrlXHY23CAfta3tAAWxVv3GMwC6?= =?us-ascii?Q?1bzNKmK2TiZMUO3cviEMQqQHoY4Zy/LIZAVzPLFM8Vc5UAyE6JA5WmdDsCO5?= =?us-ascii?Q?mGLANY+Z/GTy9e6bAghZP0bqBiOoappmnq5RM4wrRL3oYIA/a9sbs1l+xnTa?= =?us-ascii?Q?DyA2giaBwJuiDLoDv5pjmgQOrHpDWRG7kdYR8LdWggLodqpcUXMjbOwE0+5K?= =?us-ascii?Q?IX++EtJzeg1QYtByMlf+rG6NJ+uNk01leEd46tfX59ZPBpQF7sEw4mlI+7i8?= =?us-ascii?Q?p67+2gW0a3T7z+JPW7qzsfx9bjwqSJwreT9tWm+0l19o4BRpwi6FubUmfMJ7?= =?us-ascii?Q?yPZpJHPeQk6NY2Kn4SqmzUNilGEzpjvK6M+h+jRi8Z+myfgZ2lInFN4ZO2Rl?= =?us-ascii?Q?hX2ATdvyNA1+MxJqbyFGCaIhDfjWGRZgSQTZM129iMTW5RWISbb0G5bnYg20?= =?us-ascii?Q?YGyDe9dyvky3xCxbhV7geg0aIKV7MpO8mkdOTaxkjhEZCPfIaANczFruiUNx?= =?us-ascii?Q?JSaw+vxEbppeXgM0vjYefzH/4v9ySPcCKU/08XRAhdSoEYH9m1IrVsxUKsVM?= =?us-ascii?Q?+1eUv1vz4m+V6C7yxD9gePZziZakXAWCo2R/I9DWr0lC7gEiM2WMsbTH6rhY?= =?us-ascii?Q?uC2i0zU1rPNwVANwfVEkkEqJyfh+QoBNkdSMelkT5DxbJaPSi1PMFxTvQhje?= =?us-ascii?Q?Zvfit1jEDBm1gwlsc46KzEmEazgx+By58AuiS/uT+WsVtl6vQQbseLxX+skz?= =?us-ascii?Q?t+/v0bPSz3upjLRTUP+YYGBpECKee4U/oXs42TrghO9kK/wyTD5kdEqPahSC?= =?us-ascii?Q?cINJGCc3y42gBGIpHjPs26eYOgDm9ZfC3XS8ldpRR0hhBe3PzfxxWVWMeDs1?= =?us-ascii?Q?pjzesxbb1B+1mvWQwmZ82Chtlbbx2Gbhd3rxN73jtIsZculAM5E7jHlnykNv?= =?us-ascii?Q?d2sL8cd7dp6Y7eAXmPLQJ+RBsnnzSXcKaC9q1oKNyEpzHmwObxNIgYgkkvO4?= =?us-ascii?Q?sgcxZMr95Z71OV3r8wVT6oc4REJXwVBw1fkIz92A5SGyOtSbf3KdXSJoNEAh?= =?us-ascii?Q?lzPZOl/flJM/rWWq71xpIAi+Ug1rIv3pnIQ63f4MG3A1MJNIzjA1nv51gZaj?= =?us-ascii?Q?J3FtfsKUhLL1RsQm7g7tTj4c88cGt3d8Xt0iBPmZOsUW/B8YvifU4O0EJReh?= =?us-ascii?Q?Z19LvOTRbp4kiunjPT95r0oiavTz20o4MYMtDSoA2Yp3zuvXJ9AfSIkvORls?= =?us-ascii?Q?A/JMpCoY77tKUbz68TBWSS0ulqCv8S9wi56P?= 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)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:32.8402 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 126db67b-9ba9-44aa-9465-08ddc3ba4411 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: CO1PEPF000075F4.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9443 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595926881116600 Content-Type: text/plain; charset="utf-8" These types resemble each other very closely in layout and intent, and with "struct boot_module" already in common code it makes perfect sense to merge them. In order to do so, rename identical fields with conflicting names. No functional change intended. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini Acked-by: Jan Beulich --- xen/arch/x86/cpu/microcode/core.c | 7 ++-- xen/arch/x86/hvm/dom0_build.c | 6 ++-- xen/arch/x86/include/asm/bootfdt.h | 50 ++++++++++++++++++++++++++ xen/arch/x86/include/asm/bootinfo.h | 56 +++-------------------------- xen/arch/x86/pv/dom0_build.c | 4 +-- xen/arch/x86/setup.c | 43 +++++++++++----------- xen/include/xen/bootfdt.h | 8 +++++ xen/xsm/xsm_policy.c | 2 +- 8 files changed, 93 insertions(+), 83 deletions(-) create mode 100644 xen/arch/x86/include/asm/bootfdt.h diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode= /core.c index 34a94cd25b..816e9bfe40 100644 --- a/xen/arch/x86/cpu/microcode/core.c +++ b/xen/arch/x86/cpu/microcode/core.c @@ -764,8 +764,7 @@ static int __init early_microcode_load(struct boot_info= *bi) struct cpio_data cd; =20 /* Search anything unclaimed or likely to be a CPIO archive. */ - if ( bm->type !=3D BOOTMOD_UNKNOWN && - bm->type !=3D BOOTMOD_RAMDISK ) + if ( bm->kind !=3D BOOTMOD_UNKNOWN && bm->kind !=3D BOOTMOD_RA= MDISK ) continue; =20 size =3D bm->size; @@ -815,12 +814,12 @@ static int __init early_microcode_load(struct boot_in= fo *bi) return -ENODEV; } =20 - if ( bi->mods[idx].type !=3D BOOTMOD_UNKNOWN ) + if ( bi->mods[idx].kind !=3D BOOTMOD_UNKNOWN ) { printk(XENLOG_WARNING "Microcode: Chosen module %d already use= d\n", idx); return -ENODEV; } - bi->mods[idx].type =3D BOOTMOD_MICROCODE; + bi->mods[idx].kind =3D BOOTMOD_MICROCODE; =20 size =3D bi->mods[idx].size; data =3D bootstrap_map_bm(&bi->mods[idx]); diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index a038e58c11..2bb8ef355c 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -650,7 +650,7 @@ static int __init pvh_load_kernel( struct boot_module *image =3D bd->kernel; struct boot_module *initrd =3D bd->module; void *image_base =3D bootstrap_map_bm(image); - void *image_start =3D image_base + image->headroom; + void *image_start =3D image_base + image->arch.headroom; unsigned long image_len =3D image->size; unsigned long initrd_len =3D initrd ? initrd->size : 0; size_t cmdline_len =3D bd->cmdline ? strlen(bd->cmdline) + 1 : 0; @@ -721,9 +721,9 @@ static int __init pvh_load_kernel( { size_t initrd_space =3D elf_round_up(&elf, initrd_len); =20 - if ( initrd->cmdline_pa ) + if ( initrd->arch.cmdline_pa ) { - initrd_cmdline =3D __va(initrd->cmdline_pa); + initrd_cmdline =3D __va(initrd->arch.cmdline_pa); if ( !*initrd_cmdline ) initrd_cmdline =3D NULL; } diff --git a/xen/arch/x86/include/asm/bootfdt.h b/xen/arch/x86/include/asm/= bootfdt.h new file mode 100644 index 0000000000..a4c4bf30b9 --- /dev/null +++ b/xen/arch/x86/include/asm/bootfdt.h @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef X86_BOOTFDT_H +#define X86_BOOTFDT_H + +#include + +struct arch_boot_module +{ + /* + * Module State Flags: + * relocated: indicates module has been relocated in memory. + * released: indicates module's pages have been freed. + */ + bool relocated:1; + bool released:1; + + /* + * A boot module may need decompressing by Xen. Headroom is an estima= te of + * the additional space required to decompress the module. + * + * Headroom is accounted for at the start of the module. Decompressin= g is + * done in-place with input=3Dstart, output=3Dstart-headroom, expectin= g the + * pointers to become equal (give or take some rounding) when decompre= ssion + * is complete. + * + * Memory layout at boot: + * + * start ----+ + * v + * |<-----headroom------>|<------size------->| + * +-------------------+ + * | Compressed Module | + * +---------------------+-------------------+ + * | Decompressed Module | + * +-----------------------------------------+ + */ + unsigned long headroom; + paddr_t cmdline_pa; +}; + +#endif /* X86_BOOTFDT_H */ + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm= /bootinfo.h index 3afc214c17..d33b100e04 100644 --- a/xen/arch/x86/include/asm/bootinfo.h +++ b/xen/arch/x86/include/asm/bootinfo.h @@ -8,6 +8,7 @@ #ifndef X86_BOOTINFO_H #define X86_BOOTINFO_H =20 +#include #include #include #include @@ -19,55 +20,6 @@ /* Max number of boot domains that Xen can construct */ #define MAX_NR_BOOTDOMS 1 =20 -/* Boot module binary type / purpose */ -enum bootmod_type { - BOOTMOD_UNKNOWN, - BOOTMOD_XEN, - BOOTMOD_KERNEL, - BOOTMOD_RAMDISK, - BOOTMOD_MICROCODE, - BOOTMOD_XSM_POLICY, -}; - -struct boot_module { - enum bootmod_type type; - - /* - * Module State Flags: - * relocated: indicates module has been relocated in memory. - * released: indicates module's pages have been freed. - */ - bool relocated:1; - bool released:1; - - /* - * A boot module may need decompressing by Xen. Headroom is an estima= te of - * the additional space required to decompress the module. - * - * Headroom is accounted for at the start of the module. Decompressin= g is - * done in-place with input=3Dstart, output=3Dstart-headroom, expectin= g the - * pointers to become equal (give or take some rounding) when decompre= ssion - * is complete. - * - * Memory layout at boot: - * - * start ----+ - * v - * |<-----headroom------>|<------size------->| - * +-------------------+ - * | Compressed Module | - * +---------------------+-------------------+ - * | Decompressed Module | - * +-----------------------------------------+ - */ - unsigned long headroom; - - paddr_t cmdline_pa; - - paddr_t start; - size_t size; -}; - /* * Xen internal representation of information provided by the * bootloader/environment, or derived from the information. @@ -94,16 +46,16 @@ struct boot_info { * Failure - a value greater than MAX_NR_BOOTMODS */ static inline unsigned int __init next_boot_module_index( - const struct boot_info *bi, enum bootmod_type t, unsigned int start) + const struct boot_info *bi, boot_module_kind k, unsigned int start) { unsigned int i; =20 - if ( t =3D=3D BOOTMOD_XEN ) + if ( k =3D=3D BOOTMOD_XEN ) return bi->nr_modules; =20 for ( i =3D start; i < bi->nr_modules; i++ ) { - if ( bi->mods[i].type =3D=3D t ) + if ( bi->mods[i].kind =3D=3D k ) return i; } =20 diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c index e1b78d47c2..a4b5362357 100644 --- a/xen/arch/x86/pv/dom0_build.c +++ b/xen/arch/x86/pv/dom0_build.c @@ -422,7 +422,7 @@ static int __init dom0_construct(const struct boot_doma= in *bd) =20 image_base =3D bootstrap_map_bm(image); image_len =3D image->size; - image_start =3D image_base + image->headroom; + image_start =3D image_base + image->arch.headroom; =20 d->max_pages =3D ~0U; =20 @@ -659,7 +659,7 @@ static int __init dom0_construct(const struct boot_doma= in *bd) * pages. Tell the boot_module handling that we've freed it, s= o the * memory is left alone. */ - initrd->released =3D true; + initrd->arch.released =3D true; } =20 iommu_memory_setup(d, "initrd", mfn_to_page(_mfn(initrd_mfn)), diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 24e4f5ac7f..7e70b46332 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -303,7 +303,7 @@ struct boot_info __initdata xen_boot_info =3D { * * The extra entry exists to be able to add the Xen image as a module. */ - .mods =3D { [0 ... MAX_NR_BOOTMODS] =3D { .type =3D BOOTMOD_UNKNOWN } = }, + .mods =3D { [0 ... MAX_NR_BOOTMODS] =3D { .kind =3D BOOTMOD_UNKNOWN } = }, }; =20 static struct boot_info *__init multiboot_fill_boot_info( @@ -338,7 +338,7 @@ static struct boot_info *__init multiboot_fill_boot_inf= o( */ for ( i =3D 0; i < MAX_NR_BOOTMODS && i < bi->nr_modules; i++ ) { - bi->mods[i].cmdline_pa =3D mods[i].string; + bi->mods[i].arch.cmdline_pa =3D mods[i].string; =20 if ( efi_enabled(EFI_LOADER) ) { @@ -361,7 +361,7 @@ static struct boot_info *__init multiboot_fill_boot_inf= o( } =20 /* Variable 'i' should be one entry past the last module. */ - bi->mods[i].type =3D BOOTMOD_XEN; + bi->mods[i].kind =3D BOOTMOD_XEN; =20 return bi; } @@ -388,11 +388,11 @@ unsigned long __init initial_images_nrpages(nodeid_t = node) =20 void __init release_boot_module(struct boot_module *bm) { - ASSERT(!bm->released); + ASSERT(!bm->arch.released); =20 init_domheap_pages(bm->start, bm->start + PAGE_ALIGN(bm->size)); =20 - bm->released =3D true; + bm->arch.released =3D true; } =20 void __init free_boot_modules(void) @@ -402,7 +402,7 @@ void __init free_boot_modules(void) =20 for ( i =3D 0; i < bi->nr_modules; ++i ) { - if ( bi->mods[i].released ) + if ( bi->mods[i].arch.released ) continue; =20 release_boot_module(&bi->mods[i]); @@ -997,8 +997,8 @@ static size_t __init domain_cmdline_size(const struct b= oot_info *bi, { size_t s =3D 0; =20 - if ( bd->kernel->cmdline_pa ) - s +=3D strlen(__va(bd->kernel->cmdline_pa)); + if ( bd->kernel->arch.cmdline_pa ) + s +=3D strlen(__va(bd->kernel->arch.cmdline_pa)); =20 if ( bi->kextra ) s +=3D strlen(bi->kextra); @@ -1065,9 +1065,10 @@ static struct domain *__init create_dom0(struct boot= _info *bi) if ( !(cmdline =3D xzalloc_array(char, cmdline_size)) ) panic("Error allocating cmdline buffer for %pd\n", d); =20 - if ( bd->kernel->cmdline_pa ) + if ( bd->kernel->arch.cmdline_pa ) strlcpy(cmdline, - cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader), + cmdline_cook(__va(bd->kernel->arch.cmdline_pa), + bi->loader), cmdline_size); =20 if ( bi->kextra ) @@ -1089,7 +1090,7 @@ static struct domain *__init create_dom0(struct boot_= info *bi) strlcat(cmdline, " acpi=3D", cmdline_size); strlcat(cmdline, acpi_param, cmdline_size); } - bd->kernel->cmdline_pa =3D 0; + bd->kernel->arch.cmdline_pa =3D 0; bd->cmdline =3D cmdline; } =20 @@ -1302,7 +1303,7 @@ void asmlinkage __init noreturn __start_xen(void) } =20 /* Dom0 kernel is always first */ - bi->mods[0].type =3D BOOTMOD_KERNEL; + bi->mods[0].kind =3D BOOTMOD_KERNEL; bi->domains[0].kernel =3D &bi->mods[0]; =20 if ( pvh_boot ) @@ -1486,7 +1487,7 @@ void asmlinkage __init noreturn __start_xen(void) xen->size =3D __2M_rwdata_end - _stext; } =20 - bi->mods[0].headroom =3D + bi->mods[0].arch.headroom =3D bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].size); bootstrap_unmap(); =20 @@ -1568,9 +1569,9 @@ void asmlinkage __init noreturn __start_xen(void) for ( j =3D bi->nr_modules - 1; j >=3D 0; j-- ) { struct boot_module *bm =3D &bi->mods[j]; - unsigned long size =3D PAGE_ALIGN(bm->headroom + bm->size); + unsigned long size =3D PAGE_ALIGN(bm->arch.headroom + bm->size= ); =20 - if ( bm->relocated ) + if ( bm->arch.relocated ) continue; =20 /* Don't overlap with other modules (or Xen itself). */ @@ -1580,12 +1581,12 @@ void asmlinkage __init noreturn __start_xen(void) if ( highmem_start && end > highmem_start ) continue; =20 - if ( s < end && (bm->headroom || (end - size) > bm->start) ) + if ( s < end && (bm->arch.headroom || (end - size) > bm->start= ) ) { - move_memory(end - size + bm->headroom, bm->start, bm->size= ); + move_memory(end - size + bm->arch.headroom, bm->start, bm-= >size); bm->start =3D (end - size); - bm->size +=3D bm->headroom; - bm->relocated =3D true; + bm->size +=3D bm->arch.headroom; + bm->arch.relocated =3D true; } } =20 @@ -1611,7 +1612,7 @@ void asmlinkage __init noreturn __start_xen(void) #endif } =20 - if ( bi->mods[0].headroom && !bi->mods[0].relocated ) + if ( bi->mods[0].arch.headroom && !bi->mods[0].arch.relocated ) panic("Not enough memory to relocate the dom0 kernel image\n"); for ( i =3D 0; i < bi->nr_modules; ++i ) { @@ -2169,7 +2170,7 @@ void asmlinkage __init noreturn __start_xen(void) initrdidx =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN); if ( initrdidx < MAX_NR_BOOTMODS ) { - bi->mods[initrdidx].type =3D BOOTMOD_RAMDISK; + bi->mods[initrdidx].kind =3D BOOTMOD_RAMDISK; bi->domains[0].module =3D &bi->mods[initrdidx]; if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMOD= S ) printk(XENLOG_WARNING diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h index 7f49d0ccdd..1b19069833 100644 --- a/xen/include/xen/bootfdt.h +++ b/xen/include/xen/bootfdt.h @@ -7,6 +7,10 @@ #include #include =20 +#if __has_include() +#include +#endif + #define MIN_FDT_ALIGN 8 =20 #define NR_MEM_BANKS 256 @@ -110,6 +114,10 @@ struct boot_module { #endif paddr_t start; paddr_t size; + +#if __has_include() + struct arch_boot_module arch; +#endif }; =20 /* DT_MAX_NAME is the node name max length according the DT spec */ diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c index 1f88b4fc5a..1b4030edb4 100644 --- a/xen/xsm/xsm_policy.c +++ b/xen/xsm/xsm_policy.c @@ -53,7 +53,7 @@ int __init xsm_multiboot_policy_init( printk("Policy len %#lx, start at %p.\n", _policy_len,_policy_start); =20 - bm->type =3D BOOTMOD_XSM_POLICY; + bm->kind =3D BOOTMOD_XSM; break; =20 } --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595919; cv=pass; d=zohomail.com; s=zohoarc; b=d1fn2VVCymwlnuvGkFq6QDEA6jkAT6csqNZxW4MXvklD0uhv9Jj/e4lP3ctDLIOod67qcdQVp8VlNPdDfNBzZoXlWlpnfrwTu1NZ8VLj5eDmwM3RYoj2e6FMZM79/3zmBZQoFvQw5+N42dI/gs26X8C0XV723tyz8cCtOZmrN3o= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595919; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Cj9ecfRi3wea8GYLDn4MfPfXO+gyvn4szkN32kHXyzE=; b=jm8b8ybwEOI7pojj/Hy2xHP25BsDs6AACfAb6OllOjYhZP2A/5K8PD5kM+/cU1bmyObv3MqXLwRPXUqa9LaRNFoqW4le2gfCwR8+UMKk8MwB4/2dH+a4cwTDJTSoTBm7N6ved5R0THe6P1GKU17UqZ5iLNv5sUMN/jDzmrU2viU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595919965323.6849762126973; Tue, 15 Jul 2025 09:11:59 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044526.1414627 (Exim 4.92) (envelope-from ) id 1ubiFr-0006M0-E5; Tue, 15 Jul 2025 16:11:43 +0000 Received: by outflank-mailman (output) from mailman id 1044526.1414627; Tue, 15 Jul 2025 16:11:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFr-0006Lr-A6; Tue, 15 Jul 2025 16:11:43 +0000 Received: by outflank-mailman (input) for mailman id 1044526; Tue, 15 Jul 2025 16:11:41 +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 1ubiFp-0005t5-Nv for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:41 +0000 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2062b.outbound.protection.outlook.com [2a01:111:f403:2418::62b]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 634235fb-6196-11f0-b894-0df219b8e170; Tue, 15 Jul 2025 18:11:39 +0200 (CEST) Received: from SJ0P220CA0014.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:41b::22) by BN3PR12MB9570.namprd12.prod.outlook.com (2603:10b6:408:2ca::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.32; Tue, 15 Jul 2025 16:11:36 +0000 Received: from CO1PEPF000075F1.namprd03.prod.outlook.com (2603:10b6:a03:41b:cafe::d2) by SJ0P220CA0014.outlook.office365.com (2603:10b6:a03:41b::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.17 via Frontend Transport; Tue, 15 Jul 2025 16:11:35 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:34 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:32 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 634235fb-6196-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EyFBYbcvr+IaY2UZUG9TdXvXOJrNUTVCUpz3J/wWtJyU0z525MlutNKFLv4tu3UJUIi2oCWRR3TNg1ATvHRuy5zkgAZ8qU1xQB0En0GlbqdhhfaLtxbD8Uoa7mclsyCVXHe87d1Wt7Vaws99LVWwQVQsxYOYjeDvXLuyWhx7n+NJbo259IIJDpd6EDAl8HWtH+74fUQyl4nOLQpAQGE9tSDr0G9U3g4+Qn2pUjSmxWsbpX8dS2R+0dfdspwVTcLp0soQe/6vJpqHrqdFY0gh31qmMsNhxSqmYsZVulZngpseDxB+D3ibRR6lExonTiU/Oh74UlqLHpzyd+S0eys4iQ== 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=Cj9ecfRi3wea8GYLDn4MfPfXO+gyvn4szkN32kHXyzE=; b=gtgyGbARM4wWULgEqgXZziF4VIww8aoNc4JlpNQiT0ejnJD6befjkPhPnIQf6KwHnA3OyRuJbsZ1UJJVuaxal66g5V6sBb1Ycg9ZfPa4X8FGGC1R8bWYiilY4ReL/O1uQ4VMlK6eiD7sxlvAtkFeSRKNlFfQ6HslTB2I0e88tHYf5k/6qoq+SUcjL3MI3Olt5G44IDxNj+ywyDhpOXeTa9eOxQWSJ+kzt/uX6RBUYkPF9KGMUreB/EMZwZud3pwfKwht1etXHs50FyM3J2KyDwfoHuX5YLqKduX0rDTcmDZnSN+oeioPGDz4j3X0CPLC3kLDTcVbA9RYqDAH4cNutw== 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=Cj9ecfRi3wea8GYLDn4MfPfXO+gyvn4szkN32kHXyzE=; b=QDDk5lDvod32jewDF0SxQxWnmz2+6YaPcnEHIr+2Svzas2wPDBOuoHkX9P1WT0xppMMHdmo6nES6HI/3e7WM9Vxt6N/MaHj0ZxLenN/fj7zWpU6vDlSEtUFLzVAo+ZF/6motSyGphhkLcMcwZoRNDPlICWzxeeed2l2m0cHeZ0Q= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" , Andrew Cooper , Anthony PERARD , "Jan Beulich" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , "Daniel P. Smith" Subject: [PATCH v7 02/11] xen: Refactor kernel_info to have a header like boot_domain Date: Tue, 15 Jul 2025 18:10:57 +0200 Message-ID: <20250715161108.141126-3-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F1:EE_|BN3PR12MB9570:EE_ X-MS-Office365-Filtering-Correlation-Id: 9793de5e-bc43-4241-2c83-08ddc3ba4556 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bVTdgv/R8jzoYI1/FWSX5zjBQnZi3QJl2cr3ep2cBB6+19ZD4/XOdUz2jONs?= =?us-ascii?Q?TB9Kdhrzg9c3WdnSrUKacxP5S3DghRb0ALKuQFsI50X7dn/EWnV3bUJ8sxLz?= =?us-ascii?Q?6OIk8+LYc2Wp4Qiw3K1yNh+1CeEmLBvGZ9oAXfEwfkinQUWPjwZBmDhdNzxv?= =?us-ascii?Q?uFYPRHhVtOvJFKKvvMFhXP20FukVguSxL6pHphxXFaOBSa7qTNgZEK3n481y?= =?us-ascii?Q?M66ffax4jrgIAqvh31NZoFnv0Fghos2iB10SorASA6QpayyS3gio4/9KO6gR?= =?us-ascii?Q?Nmks7c5YmxFZGPNSTC1act9vD6ZPYR4nwVkPQjtt2lCePJVNJ1RE4rexj6fu?= =?us-ascii?Q?p8JU0nmgg6EXU5gxexlcKSYTzWeG/B0gduep6I9P40jEhGl3UhzAmTYB/vnO?= =?us-ascii?Q?lBsMR9pEKMEEzqccqRBF6vMznPbfPDqw9U8CS1oreg+oS7JUEWBNnB7nSTBq?= =?us-ascii?Q?73oUDH7CKqevQdskHc+PQmBQlNow9K9xjJjQm/Jv3zjpTG75dF+5JqF0UFGF?= =?us-ascii?Q?hgmIexziEaxUZs08rQIbM0lSL3gJwOTQMSiCPKKTzny1MBDRMAXarxgADRBM?= =?us-ascii?Q?hwhFAazUIBH1v2EhEhgpzQ2zbMZ8oWovq7BAwRVWiU+aWoCr8d0+GBk5ZgJl?= =?us-ascii?Q?fsTpzxqvG1MZNJMWZU8wiM6ZpnB6aeHIab66F6FlD4gbaR+lXtwMXT4IcG6U?= =?us-ascii?Q?W6BW4LEzTemATnfJzFG3Z12r0tUhvh6pJMLBWSyKD7xKCikLU7CJuOClGW8W?= =?us-ascii?Q?L7QiKP+std2P7KUd0T/FXGK7wUfyZdH3T2pt2pSatvvIbvkDppUuLgfRqKf3?= =?us-ascii?Q?THafZLR5SQf9KEH0hptilVQdzUwtjCziXTmYVFcavGQemd7gOP8eUlniinMi?= =?us-ascii?Q?BTxzIKIWn/ZFSf2Z6Tve0CVD9fbZ0NNQq6TiNMlGJIGqpbtkLCQeEFTE4UTg?= =?us-ascii?Q?RoKaQIHlJPt2WoGQDQW9C+0KBI4J+wwFkIJnJjk9A3Nrt5KC70cBi2YiVGHi?= =?us-ascii?Q?m/9kY67cmiPzuzXhjtF244fwTure/V1yoRKmaeA55HWv45OqRb/+AGJYX5X8?= =?us-ascii?Q?CLq4Nk2u6z9glWgotRF0bvoDGQiYZVfaOFlYQI9CxoPjTsrnPR69pQhR6OgK?= =?us-ascii?Q?Y/wOhzwoNFH9kZR6GlQI0K70RExdVq6U/qmJDradQ9f9LyL0bj0s8HS0HwPA?= =?us-ascii?Q?uNB247tpn1GMsv8TS5zzfeJgqRnbrblzzXmihB6Fn7OxK2+kedjVBL9rGacW?= =?us-ascii?Q?cTvbNcNbR6Ma+ch7s3cnoQcNnzCZsKZAGZr0C0hamCM8vWoddQvKAYfrWrlR?= =?us-ascii?Q?jMgznMGGeei9NdsFBwtZwJArYQb21KVYlDnLJpYbyY/UhcbiM/uDC+IIgEmM?= =?us-ascii?Q?xfK7CAUs/Vmahy35PYI880OQYtlpvRzFSXOkAGvUYtYlNINOeWn+pQ4jGE4/?= =?us-ascii?Q?bE1hL0glUL/xQd9yu23onHPBV8563Ts15z5afnAJmmho/jxqK0DJrwK9+Pc7?= =?us-ascii?Q?xbovBF6W64g6wD3Rku6RY3CSBmWliX4YBlMe?= 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)(376014)(7416014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:34.9625 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9793de5e-bc43-4241-2c83-08ddc3ba4556 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: CO1PEPF000075F1.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR12MB9570 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595921194116600 Content-Type: text/plain; charset="utf-8" Create a struct field within kernel_info with the contents common to kernel_info and boot_domain, and define that field in common code. This enables x86 to use that field as-is and drop x86's boot_domain. Note that x86 mutates the module when releasing it, calculating headroom, etc. So they must be made non-const on move. Not a functional change. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini Acked-by: Jan Beulich --- xen/arch/arm/dom0less-build.c | 8 ++++---- xen/arch/arm/domain_build.c | 20 ++++++++++---------- xen/arch/arm/kernel.c | 8 ++++---- xen/common/device-tree/dom0less-build.c | 18 +++++++++--------- xen/common/device-tree/domain-build.c | 20 ++++++++++---------- xen/common/device-tree/kernel.c | 20 ++++++++++---------- xen/include/xen/bootfdt.h | 9 +++++++++ xen/include/xen/fdt-kernel.h | 5 ++--- 8 files changed, 58 insertions(+), 50 deletions(-) diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c index 4b285cff5e..69b9ea22ce 100644 --- a/xen/arch/arm/dom0less-build.c +++ b/xen/arch/arm/dom0less-build.c @@ -32,7 +32,7 @@ static int __init make_gicv2_domU_node(struct kernel_info= *kinfo) int res =3D 0; __be32 reg[(GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) * 2]; __be32 *cells; - const struct domain *d =3D kinfo->d; + const struct domain *d =3D kinfo->bd.d; =20 res =3D domain_fdt_begin_node(fdt, "interrupt-controller", vgic_dist_base(&d->arch.vgic)); @@ -85,7 +85,7 @@ static int __init make_gicv3_domU_node(struct kernel_info= *kinfo) void *fdt =3D kinfo->fdt; int res =3D 0; __be32 *reg, *cells; - const struct domain *d =3D kinfo->d; + const struct domain *d =3D kinfo->bd.d; unsigned int i, len =3D 0; =20 res =3D domain_fdt_begin_node(fdt, "interrupt-controller", @@ -152,7 +152,7 @@ static int __init make_gicv3_domU_node(struct kernel_in= fo *kinfo) =20 int __init make_intc_domU_node(struct kernel_info *kinfo) { - switch ( kinfo->d->arch.vgic.version ) + switch ( kinfo->bd.d->arch.vgic.version ) { #ifdef CONFIG_GICV3 case GIC_V3: @@ -175,7 +175,7 @@ static int __init make_vpl011_uart_node(struct kernel_i= nfo *kinfo) gic_interrupt_t intr; __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS]; __be32 *cells; - struct domain *d =3D kinfo->d; + struct domain *d =3D kinfo->bd.d; =20 res =3D domain_fdt_begin_node(fdt, "sbsa-uart", d->arch.vpl011.base_ad= dr); if ( res ) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 04d3dca38a..edc9a82c15 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -464,8 +464,8 @@ static int __init write_properties(struct domain *d, st= ruct kernel_info *kinfo, int had_dom0_bootargs =3D 0; struct dt_device_node *iommu_node; =20 - if ( kinfo->cmdline && kinfo->cmdline[0] ) - bootargs =3D &kinfo->cmdline[0]; + if ( kinfo->bd.cmdline && kinfo->bd.cmdline[0] ) + bootargs =3D &kinfo->bd.cmdline[0]; =20 /* * We always skip the IOMMU device when creating DT for hwdom if there= is @@ -579,7 +579,7 @@ static int __init write_properties(struct domain *d, st= ruct kernel_info *kinfo, =20 if ( dt_node_path_is_equal(node, "/chosen") ) { - const struct boot_module *initrd =3D kinfo->initrd; + const struct boot_module *initrd =3D kinfo->bd.initrd; =20 if ( bootargs ) { @@ -1461,7 +1461,7 @@ int __init make_timer_node(const struct kernel_info *= kinfo) if ( res ) return res; =20 - if ( !is_64bit_domain(kinfo->d) ) + if ( !is_64bit_domain(kinfo->bd.d) ) res =3D fdt_property_string(fdt, "compatible", "arm,armv7-timer"); else res =3D fdt_property_string(fdt, "compatible", "arm,armv8-timer"); @@ -1473,7 +1473,7 @@ int __init make_timer_node(const struct kernel_info *= kinfo) * It always exposes an active-low level-sensitive interrupt. */ =20 - if ( is_hardware_domain(kinfo->d) ) + if ( is_hardware_domain(kinfo->bd.d) ) { irq[TIMER_PHYS_SECURE_PPI] =3D timer_get_irq(TIMER_PHYS_SECURE_PPI= ); irq[TIMER_PHYS_NONSECURE_PPI] =3D @@ -1522,7 +1522,7 @@ int __init make_chosen_node(const struct kernel_info = *kinfo) { int res; const char *bootargs =3D NULL; - const struct boot_module *initrd =3D kinfo->initrd; + const struct boot_module *initrd =3D kinfo->bd.initrd; void *fdt =3D kinfo->fdt; =20 dt_dprintk("Create chosen node\n"); @@ -1530,9 +1530,9 @@ int __init make_chosen_node(const struct kernel_info = *kinfo) if ( res ) return res; =20 - if ( kinfo->cmdline && kinfo->cmdline[0] ) + if ( kinfo->bd.cmdline && kinfo->bd.cmdline[0] ) { - bootargs =3D &kinfo->cmdline[0]; + bootargs =3D &kinfo->bd.cmdline[0]; res =3D fdt_property(fdt, "bootargs", bootargs, strlen(bootargs) += 1); if ( res ) return res; @@ -1981,7 +1981,7 @@ static int __init construct_dom0(struct domain *d) d->max_pages =3D dom0_mem >> PAGE_SHIFT; =20 kinfo.unassigned_mem =3D dom0_mem; - kinfo.d =3D d; + kinfo.bd.d =3D d; =20 rc =3D kernel_probe(&kinfo, NULL); if ( rc < 0 ) @@ -1993,7 +1993,7 @@ static int __init construct_dom0(struct domain *d) int __init construct_hwdom(struct kernel_info *kinfo, const struct dt_device_node *node) { - struct domain *d =3D kinfo->d; + struct domain *d =3D kinfo->bd.d; int rc; =20 iommu_hwdom_init(d); diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c index e734ec5c1e..48f4b56d0c 100644 --- a/xen/arch/arm/kernel.c +++ b/xen/arch/arm/kernel.c @@ -46,7 +46,7 @@ static void __init place_modules(struct kernel_info *info, paddr_t kernbase, paddr_t kernend) { /* Align DTB and initrd size to 2Mb. Linux only requires 4 byte alignm= ent */ - const struct boot_module *mod =3D info->initrd; + const struct boot_module *mod =3D info->bd.initrd; const struct membanks *mem =3D kernel_info_get_mem(info); const paddr_t initrd_len =3D ROUNDUP(mod ? mod->size : 0, MB(2)); const paddr_t dtb_len =3D ROUNDUP(fdt_totalsize(info->fdt), MB(2)); @@ -152,12 +152,12 @@ static void __init kernel_zimage_load(struct kernel_i= nfo *info) =20 kernel =3D ioremap_wc(paddr, len); if ( !kernel ) - panic("Unable to map the %pd kernel\n", info->d); + panic("Unable to map the %pd kernel\n", info->bd.d); =20 - rc =3D copy_to_guest_phys_flush_dcache(info->d, load_addr, + rc =3D copy_to_guest_phys_flush_dcache(info->bd.d, load_addr, kernel, len); if ( rc !=3D 0 ) - panic("Unable to copy the kernel in the %pd memory\n", info->d); + panic("Unable to copy the kernel in the %pd memory\n", info->bd.d); =20 iounmap(kernel); } diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr= ee/dom0less-build.c index 221b875a2f..e950691d1e 100644 --- a/xen/common/device-tree/dom0less-build.c +++ b/xen/common/device-tree/dom0less-build.c @@ -167,18 +167,18 @@ static int __init handle_passthrough_prop(struct kern= el_info *kinfo, return -EINVAL; } =20 - res =3D iomem_permit_access(kinfo->d, paddr_to_pfn(mstart), + res =3D iomem_permit_access(kinfo->bd.d, paddr_to_pfn(mstart), paddr_to_pfn(PAGE_ALIGN(mstart + size - = 1))); if ( res ) { printk(XENLOG_ERR "Unable to permit to dom%d access to" " 0x%"PRIpaddr" - 0x%"PRIpaddr"\n", - kinfo->d->domain_id, + kinfo->bd.d->domain_id, mstart & PAGE_MASK, PAGE_ALIGN(mstart + size) - 1); return res; } =20 - res =3D map_regions_p2mt(kinfo->d, + res =3D map_regions_p2mt(kinfo->bd.d, gaddr_to_gfn(gstart), PFN_DOWN(size), maddr_to_mfn(mstart), @@ -217,7 +217,7 @@ static int __init handle_passthrough_prop(struct kernel= _info *kinfo, return -EINVAL; } =20 - res =3D map_device_irqs_to_domain(kinfo->d, node, true, NULL); + res =3D map_device_irqs_to_domain(kinfo->bd.d, node, true, NULL); if ( res < 0 ) return res; =20 @@ -229,7 +229,7 @@ static int __init handle_passthrough_prop(struct kernel= _info *kinfo, if ( xen_force && !dt_device_is_protected(node) ) return 0; =20 - return iommu_assign_dt_device(kinfo->d, node); + return iommu_assign_dt_device(kinfo->bd.d, node); } =20 static int __init handle_prop_pfdt(struct kernel_info *kinfo, @@ -296,14 +296,14 @@ static int __init handle_prop_pfdt(struct kernel_info= *kinfo, address_cells, size_cells); if ( res < 0 ) { - printk(XENLOG_ERR "Failed to assign device to %pd\n", kinfo->d= ); + printk(XENLOG_ERR "Failed to assign device to %pd\n", kinfo->b= d.d); return res; } } else if ( (xen_path && !xen_reg) || (xen_reg && !xen_path && !xen_forc= e) ) { printk(XENLOG_ERR "xen,reg or xen,path missing for %pd\n", - kinfo->d); + kinfo->bd.d); return -EINVAL; } =20 @@ -605,7 +605,7 @@ static int __init alloc_xenstore_page(struct domain *d) =20 static int __init alloc_xenstore_params(struct kernel_info *kinfo) { - struct domain *d =3D kinfo->d; + struct domain *d =3D kinfo->bd.d; int rc =3D 0; =20 #ifdef CONFIG_HVM @@ -773,7 +773,7 @@ static int __init construct_domU(struct domain *d, =20 d->max_pages =3D ((paddr_t)mem * SZ_1K) >> PAGE_SHIFT; =20 - kinfo.d =3D d; + kinfo.bd.d =3D d; =20 rc =3D kernel_probe(&kinfo, node); if ( rc < 0 ) diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree= /domain-build.c index 4eea095e49..2fdea6624a 100644 --- a/xen/common/device-tree/domain-build.c +++ b/xen/common/device-tree/domain-build.c @@ -76,7 +76,7 @@ bool __init allocate_bank_memory(struct kernel_info *kinf= o, gfn_t sgfn, paddr_t tot_size) { struct membanks *mem =3D kernel_info_get_mem(kinfo); - struct domain *d =3D kinfo->d; + struct domain *d =3D kinfo->bd.d; struct membank *bank; =20 /* @@ -170,7 +170,7 @@ int __init find_unallocated_memory(const struct kernel_= info *kinfo, unsigned int i, j; int res; =20 - ASSERT(domain_use_host_layout(kinfo->d)); + ASSERT(domain_use_host_layout(kinfo->bd.d)); =20 unalloc_mem =3D rangeset_new(NULL, NULL, 0); if ( !unalloc_mem ) @@ -341,23 +341,23 @@ void __init dtb_load(struct kernel_info *kinfo, unsigned long left; =20 printk("Loading %pd DTB to 0x%"PRIpaddr"-0x%"PRIpaddr"\n", - kinfo->d, kinfo->dtb_paddr, + kinfo->bd.d, kinfo->dtb_paddr, kinfo->dtb_paddr + fdt_totalsize(kinfo->fdt)); =20 - left =3D cb(kinfo->d, kinfo->dtb_paddr, + left =3D cb(kinfo->bd.d, kinfo->dtb_paddr, kinfo->fdt, fdt_totalsize(kinfo->fdt)); =20 if ( left !=3D 0 ) panic("Unable to copy the DTB to %pd memory (left =3D %lu bytes)\n= ", - kinfo->d, left); + kinfo->bd.d, left); xfree(kinfo->fdt); } =20 void __init initrd_load(struct kernel_info *kinfo, copy_to_guest_phys_cb cb) { - const struct boot_module *mod =3D kinfo->initrd; + const struct boot_module *mod =3D kinfo->bd.initrd; paddr_t load_addr =3D kinfo->initrd_paddr; paddr_t paddr, len; int node; @@ -373,7 +373,7 @@ void __init initrd_load(struct kernel_info *kinfo, len =3D mod->size; =20 printk("Loading %pd initrd from %"PRIpaddr" to 0x%"PRIpaddr"-0x%"PRIpa= ddr"\n", - kinfo->d, paddr, load_addr, load_addr + len); + kinfo->bd.d, paddr, load_addr, load_addr + len); =20 /* Fix up linux,initrd-start and linux,initrd-end in /chosen */ node =3D fdt_path_offset(kinfo->fdt, "/chosen"); @@ -396,11 +396,11 @@ void __init initrd_load(struct kernel_info *kinfo, =20 initrd =3D ioremap_wc(paddr, len); if ( !initrd ) - panic("Unable to map the %pd initrd\n", kinfo->d); + panic("Unable to map the %pd initrd\n", kinfo->bd.d); =20 - res =3D cb(kinfo->d, load_addr, initrd, len); + res =3D cb(kinfo->bd.d, load_addr, initrd, len); if ( res !=3D 0 ) - panic("Unable to copy the initrd in the %pd memory\n", kinfo->d); + panic("Unable to copy the initrd in the %pd memory\n", kinfo->bd.d= ); =20 iounmap(initrd); } diff --git a/xen/common/device-tree/kernel.c b/xen/common/device-tree/kerne= l.c index e1b22dc1c7..6de2334dbe 100644 --- a/xen/common/device-tree/kernel.c +++ b/xen/common/device-tree/kernel.c @@ -136,16 +136,16 @@ int __init kernel_probe(struct kernel_info *info, /* domain is NULL only for the hardware domain */ if ( domain =3D=3D NULL ) { - ASSERT(is_hardware_domain(info->d)); + ASSERT(is_hardware_domain(info->bd.d)); =20 mod =3D boot_module_find_by_kind(BOOTMOD_KERNEL); =20 - info->kernel =3D mod; - info->initrd =3D boot_module_find_by_kind(BOOTMOD_RAMDISK); + info->bd.kernel =3D mod; + info->bd.initrd =3D boot_module_find_by_kind(BOOTMOD_RAMDISK); =20 cmd =3D boot_cmdline_find_by_kind(BOOTMOD_KERNEL); if ( cmd ) - info->cmdline =3D &cmd->cmdline[0]; + info->bd.cmdline =3D &cmd->cmdline[0]; } else { @@ -162,7 +162,7 @@ int __init kernel_probe(struct kernel_info *info, dt_get_range(&val, node, &kernel_addr, &size); mod =3D boot_module_find_by_addr_and_kind( BOOTMOD_KERNEL, kernel_addr); - info->kernel =3D mod; + info->bd.kernel =3D mod; } else if ( dt_device_is_compatible(node, "multiboot,ramdisk") ) { @@ -171,7 +171,7 @@ int __init kernel_probe(struct kernel_info *info, =20 val =3D dt_get_property(node, "reg", &len); dt_get_range(&val, node, &initrd_addr, &size); - info->initrd =3D boot_module_find_by_addr_and_kind( + info->bd.initrd =3D boot_module_find_by_addr_and_kind( BOOTMOD_RAMDISK, initrd_addr); } else if ( dt_device_is_compatible(node, "multiboot,device-tree= ") ) @@ -192,7 +192,7 @@ int __init kernel_probe(struct kernel_info *info, name =3D dt_node_name(domain); cmd =3D boot_cmdline_find_by_name(name); if ( cmd ) - info->cmdline =3D &cmd->cmdline[0]; + info->bd.cmdline =3D &cmd->cmdline[0]; } if ( !mod || !mod->size ) { @@ -201,10 +201,10 @@ int __init kernel_probe(struct kernel_info *info, } =20 printk("Loading %pd kernel from boot module @ %"PRIpaddr"\n", - info->d, info->kernel->start); - if ( info->initrd ) + info->bd.d, info->bd.kernel->start); + if ( info->bd.initrd ) printk("Loading ramdisk from boot module @ %"PRIpaddr"\n", - info->initrd->start); + info->bd.initrd->start); =20 /* * uImage isn't really used nowadays thereby leave kernel_uimage_probe= () diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h index 1b19069833..28f7d18262 100644 --- a/xen/include/xen/bootfdt.h +++ b/xen/include/xen/bootfdt.h @@ -100,6 +100,15 @@ struct shared_meminfo { struct shmem_membank_extra extra[NR_SHMEM_BANKS]; }; =20 +struct boot_domain { + struct domain *d; + + struct boot_module *kernel; + struct boot_module *initrd; + + const char *cmdline; +}; + #define BOOTMOD_MAX_CMDLINE 1024 struct boot_module { boot_module_kind kind; diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h index 12a0b42d17..8363865282 100644 --- a/xen/include/xen/fdt-kernel.h +++ b/xen/include/xen/fdt-kernel.h @@ -16,7 +16,7 @@ #endif =20 struct kernel_info { - struct domain *d; + struct boot_domain bd; =20 void *fdt; /* flat device tree */ paddr_t unassigned_mem; /* RAM not (yet) assigned to a bank */ @@ -34,8 +34,7 @@ struct kernel_info { paddr_t gnttab_size; =20 /* boot blob load addresses */ - const struct boot_module *kernel, *initrd, *dtb; - const char* cmdline; + const struct boot_module *dtb; paddr_t dtb_paddr; paddr_t initrd_paddr; =20 --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595925; cv=pass; d=zohomail.com; s=zohoarc; b=mRXmmX5vvhSnUj0ggVhEk8dZ6eQPXKjw9iuV0i3qIZxozZ88sg8RBsbD3NcRlEl7nBiwePV3zGmTXex2+T7Tqkr8+k3zi3bp7vFvCS3zZvvjjy7WIndxiSwNkyyyfvb0lNe0mQ9fNfoEh/4Wl/6rO6j2W9+caXGpJmTV1wHn2Cs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595925; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BRfjV0nJ6OYwrZoEaylt/o5NVgGYETJ/z9gInJPgBiY=; b=CC3emueI8STE75Ng/oVI2SM88GEWeyufYDcHCkhs58Mm0z641rOpXyxTvTMtaA5AsklohnUQe50hUFx9y5ahulxRbr579CrGMZA63IWTbWv/OdVZkcCj/ZsqCnckRli25shVA8shnB4FOC2KUZXJ4AWlsMCc2QtfNckoHO6jJ74= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595924991198.0754943346202; Tue, 15 Jul 2025 09:12:04 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044529.1414657 (Exim 4.92) (envelope-from ) id 1ubiFu-00076q-IS; Tue, 15 Jul 2025 16:11:46 +0000 Received: by outflank-mailman (output) from mailman id 1044529.1414657; Tue, 15 Jul 2025 16:11:46 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFu-00076c-Em; Tue, 15 Jul 2025 16:11:46 +0000 Received: by outflank-mailman (input) for mailman id 1044529; Tue, 15 Jul 2025 16:11:45 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFt-00067r-6y for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:45 +0000 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2060d.outbound.protection.outlook.com [2a01:111:f403:2415::60d]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 65999c5a-6196-11f0-a319-13f23c93f187; Tue, 15 Jul 2025 18:11:44 +0200 (CEST) Received: from MW4PR03CA0195.namprd03.prod.outlook.com (2603:10b6:303:b8::20) by IA4PR12MB9787.namprd12.prod.outlook.com (2603:10b6:208:54d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.27; Tue, 15 Jul 2025 16:11:39 +0000 Received: from CO1PEPF000075ED.namprd03.prod.outlook.com (2603:10b6:303:b8:cafe::f1) by MW4PR03CA0195.outlook.office365.com (2603:10b6:303:b8::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.19 via Frontend Transport; Tue, 15 Jul 2025 16:11:39 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075ED.mail.protection.outlook.com (10.167.249.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:37 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:34 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 65999c5a-6196-11f0-a319-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CAyxonhK4xq4sLU9B7AZNXROo54Qry2aR+lk5S7NcoDLecx/l9b4vQzVGekf4NGadZQj76My/1zwj8/9PfBQBPWhYy9uIF2dPtyi8i423dT9M/lEjv9uMh84iIqGCY5aSzAeKSyY04YcdTVwYUJ680YVyUt4WMHxFPzTuhIPrJNZj+mGszTsSfJu/z7keQiBo1xoHtRkYTCXNTEiTqPKTPRe5YG6/HAUt8Mzw8D9AAND91q3vpzv3/w86vcvjTz7xBOG9uKGQaaxvgbTSViKcHG+zYE3YjuTWF2VIX4MYYGY0m9AjgleRe7fWElWwX/691pPgv6J4aHyEKzdoBQ2BQ== 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=BRfjV0nJ6OYwrZoEaylt/o5NVgGYETJ/z9gInJPgBiY=; b=uHer0XNnBwHEbwbt0nZpy3txc8YG2fkQX4BkMlFt3bPRSyMAkpQY2WdASYpfETkXJDfp4wMK3yaVYmqSVUm2qxi9tU3GLNmmsMosdzVO/qMUJQ5OtNEufTaMK/j8uSS09DGTaxiWI5gqyyplRzr4+es2NnME6dyzVMuhtPmz7zvkmScaNTAgQpMeIyVcvIBEnY6f55PW3+JRg8sQJ4Ucjrh8/ewNzFI1w++tC2umrUOuyW86dkpIz6S3MI2F/ZAys16HLsDNwmx7m4dnSeHLSuoZ8epXA7zhOnuFxRisJ849p8dc6/Q1G+XZd1lp81bBr5kgrpDUSdDttXSr2V+1MA== 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=BRfjV0nJ6OYwrZoEaylt/o5NVgGYETJ/z9gInJPgBiY=; b=nwAwrwogpUKGQhYriVtVmFxThpR2XLsEiDrJeDwbIeb6z3bZyJnK8C7s7DOfRPdS6fCbCILC5a2Gbcr/bSvX7AvgBCn/6yJ4flOtjcSz9ybAf/fyknYmOarTxXIrGBgHHojjPqODLQ6fgcHXvsTk+Y9HZmgtCPNtDwz3JsAJEws= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , "Stefano Stabellini" , Julien Grall , "Bertrand Marquis" , Michal Orzel , "Daniel P. Smith" Subject: [PATCH v7 03/11] x86: Replace arch-specific boot_domain with the common one Date: Tue, 15 Jul 2025 18:10:58 +0200 Message-ID: <20250715161108.141126-4-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075ED:EE_|IA4PR12MB9787:EE_ X-MS-Office365-Filtering-Correlation-Id: eb98a2f2-2f53-46fb-ef21-08ddc3ba468d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Ae7Z0QZiKJlI4PmZjl1RAmzANXx2Bv3okGPnvCk2+c95HK2dG3bMnAIi3p2o?= =?us-ascii?Q?wfYQYW8JR/jMbfMeDZTfpmE1VI/lLUA2I1bRx5CQX4Y/mfW5VpvMJ4Ps/3BM?= =?us-ascii?Q?IfovGi69zrV8+ZPYfvCzO2bjNCO+IuO9WirBUWX7NvKEnECGOhTcE8kWMZor?= =?us-ascii?Q?JOnPH4oK2MHCU2WD/bZpBuq/2fUq/ZWTMuPUGNi63rU2nmijDhwEzHdgM/we?= =?us-ascii?Q?3wxxze9HN75WXAKMTnQgHBYPtIt9REGfn1vz+m9dXXC94FZNcrJKxfvHLI+5?= =?us-ascii?Q?beZo1xQeDLnOM+yAMM5/w9ixXibGThLVMXX7GwRVxvtmrkjXBdrEkJL9yo80?= =?us-ascii?Q?sxvqtgBLqs6QHWkVVqtkG3cHCGzYKE0GDCAR/ZyOtwZEJMI4+ARrWTErOnYk?= =?us-ascii?Q?lPand404ywGgGZ+nFRlEh+/OYj3YQbX7MVlCFGL+BlqlGgpUjrQXOTXz/8Xa?= =?us-ascii?Q?r+wq06XV3AO6FtTg1oN14mYF9SEmsudoVhNz2bmRXrIJ05GU9DXlUfU5WASg?= =?us-ascii?Q?UIo2hRrMFXt0TOb0LT303KbJvaZPUw5XLY1P9AHoswg6QYYE3Qg4aLVGuhxN?= =?us-ascii?Q?8A+J2+ezk24VoNeNxslo0qqG1luYFmGZM6E2AeXipXD+3tGqxtlkCYhpRgTI?= =?us-ascii?Q?Y4W4gG8q0LkYK7sDR138tpB5mmgic4fuuppezx4vK1QARXfAUiir0EDAxuUv?= =?us-ascii?Q?TNoT7gZQzEZBwdfI294pv0O/NJXeoCF/f/9HtWAmfBUcmU9DeiB7ft0EhaKq?= =?us-ascii?Q?ueea/UyM4JaOEW9p/1fEh8NeUGR7SjMpTJIDddLmmwrFlDN2Zixi02K+1TS5?= =?us-ascii?Q?7pxVxIJRcbbcXTpThbPtRe7/aI0MEnYgXlTv7X98cM05d7HYKPMIhPmQRrYj?= =?us-ascii?Q?gAF+R5t3DoDlMccQKiYxn0MhW6FCyaDieZP1GSkdjFJPTw1jhCm+A2KILAsi?= =?us-ascii?Q?csuG93eLaLC+R7GZGFodtNWtJ+1BxzRLDmgwEPpR6yc1X/P/uzKn6hXneebg?= =?us-ascii?Q?COoEHF1X2RN2n/N8XTe00nSsy9flQih7bUu3npZMTBWWV2Is+H6q/CgVdImP?= =?us-ascii?Q?LhM7u3eMg2abv4Hbd0LnV8WPb/YdRHfSoi4LGdAloQjRLTnrqBkVcNXb8zpn?= =?us-ascii?Q?0K6fb2Sxd1vIc6QvDpZKnoXh6GyZ/sySn2tM7wJvoYIMCFmWVeSR57W1iRqG?= =?us-ascii?Q?muz7XgDYZ2pqwgO7e/uX1aQ/kvU+iIVyws6hISQOqO1F0WykUjR6OggoTHch?= =?us-ascii?Q?cRdSkEnt5J9CN8nHRX3SiftGPh63T6o7nF35SniuYa6O/Mwqo3OCqMof5c+X?= =?us-ascii?Q?m+qlwahMNLmuijimkFtr8zyli2Ye02qsQPDBtPmg6hAZgGL1QPKj/Zb3uu/f?= =?us-ascii?Q?9Af//6yTMpeDEUaBENfBI7o7bArmLRPgDcH8V4jg3qGlhGaiJKS2HeFsDX0h?= =?us-ascii?Q?l7PfZ/hbOMhShz8I6rZCd+pRYPtgk4jpSK8ENqHKhsiYjkQplktSRuF4bDx5?= =?us-ascii?Q?pC5qngtg2wJZ7pudGKRDPyt3xIVLy4shBmA6?= 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)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:37.0110 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eb98a2f2-2f53-46fb-ef21-08ddc3ba468d 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: CO1PEPF000075ED.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9787 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595926753116600 Content-Type: text/plain; charset="utf-8" No functional change intended. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini Acked-by: Jan Beulich --- xen/arch/x86/hvm/dom0_build.c | 2 +- xen/arch/x86/include/asm/boot-domain.h | 33 -------------------------- xen/arch/x86/include/asm/bootinfo.h | 1 - xen/arch/x86/pv/dom0_build.c | 2 +- xen/arch/x86/setup.c | 2 +- xen/include/xen/bootfdt.h | 4 ++++ 6 files changed, 7 insertions(+), 37 deletions(-) delete mode 100644 xen/arch/x86/include/asm/boot-domain.h diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index 2bb8ef355c..8d2734f2b5 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -648,7 +648,7 @@ static int __init pvh_load_kernel( { struct domain *d =3D bd->d; struct boot_module *image =3D bd->kernel; - struct boot_module *initrd =3D bd->module; + struct boot_module *initrd =3D bd->initrd; void *image_base =3D bootstrap_map_bm(image); void *image_start =3D image_base + image->arch.headroom; unsigned long image_len =3D image->size; diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/= asm/boot-domain.h deleted file mode 100644 index d7c6042e25..0000000000 --- a/xen/arch/x86/include/asm/boot-domain.h +++ /dev/null @@ -1,33 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * Copyright (c) 2024 Apertus Solutions, LLC - * Author: Daniel P. Smith - * Copyright (c) 2024 Christopher Clark - */ - -#ifndef __XEN_X86_BOOTDOMAIN_H__ -#define __XEN_X86_BOOTDOMAIN_H__ - -#include - -struct boot_domain { - domid_t domid; - - struct boot_module *kernel; - struct boot_module *module; - const char *cmdline; - - struct domain *d; -}; - -#endif - -/* - * Local variables: - * mode: C - * c-file-style: "BSD" - * c-basic-offset: 4 - * tab-width: 4 - * indent-tabs-mode: nil - * End: - */ diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm= /bootinfo.h index d33b100e04..4f2cc5906e 100644 --- a/xen/arch/x86/include/asm/bootinfo.h +++ b/xen/arch/x86/include/asm/bootinfo.h @@ -12,7 +12,6 @@ #include #include #include -#include =20 /* Max number of boot modules a bootloader can provide in addition to Xen = */ #define MAX_NR_BOOTMODS 63 diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c index a4b5362357..c37bea9454 100644 --- a/xen/arch/x86/pv/dom0_build.c +++ b/xen/arch/x86/pv/dom0_build.c @@ -375,7 +375,7 @@ static int __init dom0_construct(const struct boot_doma= in *bd) struct vcpu *v =3D d->vcpu[0]; =20 struct boot_module *image =3D bd->kernel; - struct boot_module *initrd =3D bd->module; + struct boot_module *initrd =3D bd->initrd; void *image_base; unsigned long image_len; void *image_start; diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 7e70b46332..7380f1053f 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -2171,7 +2171,7 @@ void asmlinkage __init noreturn __start_xen(void) if ( initrdidx < MAX_NR_BOOTMODS ) { bi->mods[initrdidx].kind =3D BOOTMOD_RAMDISK; - bi->domains[0].module =3D &bi->mods[initrdidx]; + bi->domains[0].initrd =3D &bi->mods[initrdidx]; if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMOD= S ) printk(XENLOG_WARNING "Multiple initrd candidates, picking module #%u\n", diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h index 28f7d18262..ac2a79b59b 100644 --- a/xen/include/xen/bootfdt.h +++ b/xen/include/xen/bootfdt.h @@ -103,6 +103,10 @@ struct shared_meminfo { struct boot_domain { struct domain *d; =20 +#ifdef CONFIG_X86 + domid_t domid; +#endif + struct boot_module *kernel; struct boot_module *initrd; =20 --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595926; cv=pass; d=zohomail.com; s=zohoarc; b=P+lUDy8M/rlQacgJ163B4qknIuHKH+8bjf+wMu94qvBwSE4vudYXawf2IzlVbEFCzjnIzLxkyI6Wwj8VXtuqWcfVP0eiy7Rmq8fUOHvPW8RAxjOPHMJqs2pjZvNhR1D5ZZXvbymMR79f7mOLnJ6X5GX+PWzEEoDVRWTKpHfxB/Y= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595926; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TmyL3Z1tAEuMNG2iHkpZSy+SVqBDLv6+yGWI/26HnBc=; b=ZjKtHAPr7zjEAzvwj50uqyP90Wy2W939l7i63DX8rK/IfWn9SeFpJJ6hZ0jtNbhXmmSL/izORHNnJKH05ho7d8HIsOnK0IMcKn5Q+yw23Ow+CKbf4wDtUjiQfXl8deeoqQePFRdhjZ5XJ/imoDDo+9amPJ8iKyN2hv+r2x5S2u8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595926398158.90481521450977; Tue, 15 Jul 2025 09:12:06 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044528.1414647 (Exim 4.92) (envelope-from ) id 1ubiFt-0006qf-AD; Tue, 15 Jul 2025 16:11:45 +0000 Received: by outflank-mailman (output) from mailman id 1044528.1414647; Tue, 15 Jul 2025 16:11:45 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFt-0006pj-4l; Tue, 15 Jul 2025 16:11:45 +0000 Received: by outflank-mailman (input) for mailman id 1044528; Tue, 15 Jul 2025 16:11:44 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFs-00067r-AQ for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:44 +0000 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on20606.outbound.protection.outlook.com [2a01:111:f403:2408::606]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 65a4c68e-6196-11f0-a319-13f23c93f187; Tue, 15 Jul 2025 18:11:43 +0200 (CEST) Received: from SJ0PR05CA0093.namprd05.prod.outlook.com (2603:10b6:a03:334::8) by DM6PR12MB4233.namprd12.prod.outlook.com (2603:10b6:5:210::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.32; Tue, 15 Jul 2025 16:11:40 +0000 Received: from CO1PEPF000075F4.namprd03.prod.outlook.com (2603:10b6:a03:334:cafe::bb) by SJ0PR05CA0093.outlook.office365.com (2603:10b6:a03:334::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.17 via Frontend Transport; Tue, 15 Jul 2025 16:11:39 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F4.mail.protection.outlook.com (10.167.249.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:39 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:36 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 65a4c68e-6196-11f0-a319-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rNltdQffOva6ssEvF4/Yk4o4mKj0Mvcsa7awxkFExe9tM+x5EG0kkGulCVRszfuAEwoUJ80z94z6YKguWANUP+5cEViQ8d3nt2ZVsnNB8lawyM08E9F7+gfB2hgHFt+Ss7Uk0CtDSECtGcOcupOi1sU7+eLBF3X0SscthKI1Vdxq87W4n1iLuigrmL3Rvk3l14TAg8kfovAQE7JcDIXGnSH4mm0rGAzaQhTpebTFgKrE90GQFHwbf2LNkSEdodaxPY84VM8uZu9x19qT0pAPrCXhYYkoNXvUYR0GKM8eyeIMyLAjEVcRjtY+ekTSoaKAwOqFXicasAY9jqn02aSryg== 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=TmyL3Z1tAEuMNG2iHkpZSy+SVqBDLv6+yGWI/26HnBc=; b=dewlOo8oMefkAQyHR9woz63atwjFjM4JMF3MGCN4Kr356TAsf4k4u9RedFSYCfy0h5mSeFhUU5qIPsuGO2228I87IfzEYPzM8QSi4YhOMIYdFO/HIXa9lpw1XnuydBEmG7V/e5SjWpO2+rZsDkquY4KR8ZlZCEl6JEn3Re+yEqHjwoSG4nxcZlvA0R13FVIHEd6W9ZYktuEBhycSZgip3REfo2rYu/ys3QDuLGIURAFNBh5Hia1uB3R25lhdvUYUQSSi3nBc0RQy+nUNpghLg5w9M1bmStE2KtRXV1XZXSkHcs9hdyhA5NqFXaFroozh7zOVq1dEcmN3JdZzCDayXQ== 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=TmyL3Z1tAEuMNG2iHkpZSy+SVqBDLv6+yGWI/26HnBc=; b=m13s1GTylCAsya0FsmrSh6SPlVrPztWB4NqlC/aE7MIE3LCDf2LL2U86gLNjihromkGDzBEaf3RZ+hkuuL049gnuR3/Pa652meg2TNdrdDyaDJvrCfWngGrthvyKh1rS7f6rKifwzC4tpc510gyvqLAJUxzEXx0P2y9TtG7S0+U= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Alistair Francis , Bob Eshleman , "Connor Davis" , Oleksii Kurochko , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Dario Faggioli , Juergen Gross , George Dunlap , "Daniel P. Smith" Subject: [PATCH v7 04/11] xen/dt: Move bootfdt functions to xen/bootfdt.h Date: Tue, 15 Jul 2025 18:10:59 +0200 Message-ID: <20250715161108.141126-5-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F4:EE_|DM6PR12MB4233:EE_ X-MS-Office365-Filtering-Correlation-Id: b5a34131-e184-4e29-bf94-08ddc3ba480d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YEC86SyAdIjWwD2dE6gp7DgfQivCJJp9hpk4nJ5QR6GswOwmKT8UKuIlQexH?= =?us-ascii?Q?2sjwAzsqjxwXGASKJusCwkRUG2YaTfT5XFicu6TkciNNofTpsC2fKFpFcRH4?= =?us-ascii?Q?NaDotLfQIz523mNDpnVFe8y8P62KB69OoAB5bpBVIl7oArwi4EwB6UV3+pyZ?= =?us-ascii?Q?YCK1hOWw1HMlrVD/82bNj9g6Vtk31OWjFquLIyfDlBrQJaQLntUPAIseLdUM?= =?us-ascii?Q?FP1mPnzzcENejPrahH3bjoKADU2buAU7IoOdFwl+WAVTXvRSvCBkBi3bI240?= =?us-ascii?Q?XfNUShi9k2YenQ4bpldFIFxiO2pvDUrCK/GBFatuolBXmKU2QrytRgOGDCnR?= =?us-ascii?Q?e+fxCvnARcfmmLNV/cpYdnjL+qhz1/5xWQiukPtqD5cEe7+7PsMmau/1re5N?= =?us-ascii?Q?Ge/aHfVuht7MU5k6B8tPF1+NFbNtvzgzVPG1D2cksminKJ4VA6SjJ/QAaRfZ?= =?us-ascii?Q?jnkD2Q6ArwgHK6BZfrBY5trMJhZNo3A4YlMa+esRhxzFdDxUfBTdfNWVJknb?= =?us-ascii?Q?JhTUn/KRK20ahpiQ2Swd4kg6U+JTQROtQPk3QloWqgr0F4RxYMXA+6nyc7Io?= =?us-ascii?Q?9NHfXL9b0WFnMCP9XybiXwzaIpuIgotIyZ9eU4ykRQdOySefq+wPgkp5NtMS?= =?us-ascii?Q?+4bmRo1Jo44IHgZK905yDsQuBvGJz7O6SwRBjfxGFEiYIZiOnwgyqxg8NYeQ?= =?us-ascii?Q?lbdqatVU3mDxehbPKY1gVntOMzCZJadbIcx+Jrto4EKM/qw6YCNOs67u9nuQ?= =?us-ascii?Q?dPvQynmzHScPd4yrZYCmZd3M4bET1jT8930krh357gyFCZcFuVQBw5xBruCv?= =?us-ascii?Q?fZRXyBdXEIMUOweJAv5St6kcJ3jNxjzq7AuAHewiiDhbKi4n4xxCkYma2jqM?= =?us-ascii?Q?rT9GgrvxcLwaoO7tPyYDEJj5bR8dGWHYd6sMGQx2eSG9j3TWNTw59AgokBek?= =?us-ascii?Q?Lg+EeJn+UNR+54tNY+k6IbPyhnl39MfuqsMrkijEdVtaDZQ43Em2bSNEhgwQ?= =?us-ascii?Q?51nlZsEW5W3Tej8U9smXKGC4H7lMpJTNAPXl5I2K1QBet4GpD/DBPvtLOPT8?= =?us-ascii?Q?anLXR3oBf7lhCmwBd6G8W5DvDb3qIYQ64lTc7tp3buD1HsGEEUiRjdm5qLEW?= =?us-ascii?Q?YGFv+dhTPaA364DAaKkOt4Tg/Z7EXcLL/yaI7arp2hB/76nyeVeFltHVu6wb?= =?us-ascii?Q?NfDYbaB0fb8s/iQax83B0w+GFy8LJSfoQwBb8d6gShiLlL4qsw5wmIswM83t?= =?us-ascii?Q?BjRP4otrco5/1XgFKPZdNdJd1OgduiBcbLpBx1iaEmgU1+cP1KVd7a8BRe5X?= =?us-ascii?Q?wnmWjgcSd/G+XhHFN/adyZ2RleIEokBR9i4h3rHMXtFS2XlhQlml4sRRRlN8?= =?us-ascii?Q?RUR/1v8nkmkXCqxgYBddWDg7mrKlRI6Q8l11AH2n/n5fI5G5o32emjD9v0ej?= =?us-ascii?Q?53p6YA3tdtPS85cUM1E6zJam7yUX4uLBx8x9Ov1/4MbxWOqBsWEakGE6/P38?= =?us-ascii?Q?yzykMWouW+teLtzkvDSDBJSrrSoPSmOm3DEC?= 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)(376014)(1800799024)(7416014)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:39.5257 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b5a34131-e184-4e29-bf94-08ddc3ba480d 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: CO1PEPF000075F4.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4233 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595928873116601 Content-Type: text/plain; charset="utf-8" Part of an unpicking process to extract bootfdt contents independent of boo= tinfo to a separate file for x86 to take. Move functions required for early FDT parsing from device_tree.h and arm's setup.h onto bootfdt.h Declaration motion only. Not a functional change. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini --- v7: * v6 was misrebased, and dt_read_number()'s refactor was lost. v7 ensures it's preserved in the code motion --- xen/arch/riscv/cpufeature.c | 1 + xen/arch/riscv/smpboot.c | 1 + xen/common/device-tree/bootfdt.c | 12 --- xen/common/device-tree/device-tree.c | 1 + xen/common/device-tree/static-evtchn.c | 1 + xen/common/sched/boot-cpupool.c | 1 + xen/include/xen/bootfdt.h | 103 +++++++++++++++++++++++++ xen/include/xen/device_tree.h | 78 ------------------- 8 files changed, 108 insertions(+), 90 deletions(-) diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c index b7d5ec6580..b846a106a3 100644 --- a/xen/arch/riscv/cpufeature.c +++ b/xen/arch/riscv/cpufeature.c @@ -8,6 +8,7 @@ */ =20 #include +#include #include #include #include diff --git a/xen/arch/riscv/smpboot.c b/xen/arch/riscv/smpboot.c index 470f6d1311..3b8bf98e20 100644 --- a/xen/arch/riscv/smpboot.c +++ b/xen/arch/riscv/smpboot.c @@ -1,3 +1,4 @@ +#include #include #include #include diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/boot= fdt.c index 08d919aba6..67fe5c3cc3 100644 --- a/xen/common/device-tree/bootfdt.c +++ b/xen/common/device-tree/bootfdt.c @@ -215,18 +215,6 @@ u32 __init device_tree_get_u32(const void *fdt, int no= de, return fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data)); } =20 -/** - * device_tree_for_each_node - iterate over all device tree sub-nodes - * @fdt: flat device tree. - * @node: parent node to start the search from - * @func: function to call for each sub-node. - * @data: data to pass to @func. - * - * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored. - * - * Returns 0 if all nodes were iterated over successfully. If @func - * returns a value different from 0, that value is returned immediately. - */ int __init device_tree_for_each_node(const void *fdt, int node, device_tree_node_func func, void *data) diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/= device-tree.c index 7bede20fa6..4ebdb2e52e 100644 --- a/xen/common/device-tree/device-tree.c +++ b/xen/common/device-tree/device-tree.c @@ -8,6 +8,7 @@ */ =20 #include +#include #include #include #include diff --git a/xen/common/device-tree/static-evtchn.c b/xen/common/device-tre= e/static-evtchn.c index 8b82e6b3d8..88342b44a1 100644 --- a/xen/common/device-tree/static-evtchn.c +++ b/xen/common/device-tree/static-evtchn.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ =20 +#include #include #include =20 diff --git a/xen/common/sched/boot-cpupool.c b/xen/common/sched/boot-cpupoo= l.c index 641f3495cb..03be73efdd 100644 --- a/xen/common/sched/boot-cpupool.c +++ b/xen/common/sched/boot-cpupool.c @@ -7,6 +7,7 @@ * Copyright (C) 2022 Arm Ltd. */ =20 +#include #include #include =20 diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h index ac2a79b59b..a5dfaa5c1d 100644 --- a/xen/include/xen/bootfdt.h +++ b/xen/include/xen/bootfdt.h @@ -2,8 +2,11 @@ #ifndef XEN_BOOTFDT_H #define XEN_BOOTFDT_H =20 +#include +#include #include #include +#include #include #include =20 @@ -16,8 +19,92 @@ #define NR_MEM_BANKS 256 #define NR_SHMEM_BANKS 32 =20 +/* Default #address and #size cells */ +#define DT_ROOT_NODE_ADDR_CELLS_DEFAULT 2 +#define DT_ROOT_NODE_SIZE_CELLS_DEFAULT 1 + #define MAX_MODULES 32 /* Current maximum useful modules */ =20 +#define DEVICE_TREE_MAX_DEPTH 16 + +/* Helper to read a big number; size is in cells (not bytes) */ +static inline u64 dt_read_number(const __be32 *cell, int size) +{ + u64 r =3D be32_to_cpu(*cell); + + switch ( size ) + { + case 1: + break; + case 2: + r =3D (r << 32) | be32_to_cpu(cell[1]); + break; + default: + /* Nonsensical size. default to 1 */ + printk(XENLOG_ERR "dt_read_number(,%d) bad size\n", size); + ASSERT_UNREACHABLE(); + break; + }; + + return r; +} + +/* Wrapper for dt_read_number() to return paddr_t (instead of uint64_t) */ +static inline paddr_t dt_read_paddr(const __be32 *cell, int size) +{ + uint64_t dt_r; + paddr_t r; + + /* + * dt_read_number will return uint64_t whereas paddr_t may not be 64-b= it. + * Thus, there is an implicit cast from uint64_t to paddr_t. + */ + dt_r =3D dt_read_number(cell, size); + + if ( dt_r !=3D (paddr_t)dt_r ) + { + printk("Physical address greater than max width supported\n"); + WARN(); + } + + /* + * Xen will truncate the address/size if it is greater than the maximum + * supported width and it will give an appropriate warning. + */ + r =3D dt_r; + + return r; +} + +static inline u64 dt_next_cell(int s, const __be32 **cellp) +{ + const __be32 *p =3D *cellp; + + *cellp =3D p + s; + return dt_read_number(p, s); +} + +typedef int (*device_tree_node_func)(const void *fdt, + int node, const char *name, int depth, + u32 address_cells, u32 size_cells, + void *data); + +/** + * device_tree_for_each_node - iterate over all device tree sub-nodes + * @fdt: flat device tree. + * @node: parent node to start the search from + * @func: function to call for each sub-node. + * @data: data to pass to @func. + * + * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored. + * + * Returns 0 if all nodes were iterated over successfully. If @func + * returns a value different from 0, that value is returned immediately. + */ +int device_tree_for_each_node(const void *fdt, int node, + device_tree_node_func func, + void *data); + typedef enum { BOOTMOD_XEN, BOOTMOD_FDT, @@ -261,4 +348,20 @@ static inline struct membanks *membanks_xzalloc(unsign= ed int nr, return banks; } =20 +/* + * Interpret the property `prop_name` of `node` as a u32. + * + * Returns the property value on success; otherwise returns `dflt`. + */ +u32 device_tree_get_u32(const void *fdt, int node, + const char *prop_name, u32 dflt); + +/* + * Interpret the property `prop_name` of `node` as a "reg". + * + * Returns outputs in `start` and `size`. + */ +void device_tree_get_reg(const __be32 **cell, uint32_t address_cells, + uint32_t size_cells, paddr_t *start, paddr_t *siz= e); + #endif /* XEN_BOOTFDT_H */ diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h index a7cc092d05..8a39a60c54 100644 --- a/xen/include/xen/device_tree.h +++ b/xen/include/xen/device_tree.h @@ -22,8 +22,6 @@ #include #include =20 -#define DEVICE_TREE_MAX_DEPTH 16 - /* * Struct used for matching a device */ @@ -164,17 +162,8 @@ struct dt_raw_irq { u32 specifier[DT_MAX_IRQ_SPEC]; }; =20 -typedef int (*device_tree_node_func)(const void *fdt, - int node, const char *name, int depth, - u32 address_cells, u32 size_cells, - void *data); - extern const void *device_tree_flattened; =20 -int device_tree_for_each_node(const void *fdt, int node, - device_tree_node_func func, - void *data); - /** * dt_unflatten_host_device_tree - Unflatten the host device tree * @@ -245,10 +234,6 @@ void intc_dt_preinit(void); #define dt_node_cmp(s1, s2) strcasecmp((s1), (s2)) #define dt_compat_cmp(s1, s2) strcasecmp((s1), (s2)) =20 -/* Default #address and #size cells */ -#define DT_ROOT_NODE_ADDR_CELLS_DEFAULT 2 -#define DT_ROOT_NODE_SIZE_CELLS_DEFAULT 1 - #define dt_for_each_property_node(dn, pp) \ for ( pp =3D (dn)->properties; (pp) !=3D NULL; pp =3D (pp)->next ) =20 @@ -258,55 +243,6 @@ void intc_dt_preinit(void); #define dt_for_each_child_node(dt, dn) \ for ( dn =3D (dt)->child; (dn) !=3D NULL; dn =3D (dn)->sibling ) =20 -/* Helper to read a big number; size is in cells (not bytes) */ -static inline u64 dt_read_number(const __be32 *cell, int size) -{ - u64 r =3D be32_to_cpu(*cell); - - switch ( size ) - { - case 1: - break; - case 2: - r =3D (r << 32) | be32_to_cpu(cell[1]); - break; - default: - /* Nonsensical size. default to 1 */ - printk(XENLOG_ERR "dt_read_number(,%d) bad size\n", size); - ASSERT_UNREACHABLE(); - break; - }; - - return r; -} - -/* Wrapper for dt_read_number() to return paddr_t (instead of uint64_t) */ -static inline paddr_t dt_read_paddr(const __be32 *cell, int size) -{ - uint64_t dt_r; - paddr_t r; - - /* - * dt_read_number will return uint64_t whereas paddr_t may not be 64-b= it. - * Thus, there is an implicit cast from uint64_t to paddr_t. - */ - dt_r =3D dt_read_number(cell, size); - - if ( dt_r !=3D (paddr_t)dt_r ) - { - printk("Physical address greater than max width supported\n"); - WARN(); - } - - /* - * Xen will truncate the address/size if it is greater than the maximum - * supported width and it will give an appropriate warning. - */ - r =3D dt_r; - - return r; -} - /* Helper to convert a number of cells to bytes */ static inline int dt_cells_to_size(int size) { @@ -319,14 +255,6 @@ static inline int dt_size_to_cells(int bytes) return (bytes / sizeof(u32)); } =20 -static inline u64 dt_next_cell(int s, const __be32 **cellp) -{ - const __be32 *p =3D *cellp; - - *cellp =3D p + s; - return dt_read_number(p, s); -} - static inline const char *dt_node_full_name(const struct dt_device_node *n= p) { return (np && np->full_name) ? np->full_name : ""; @@ -984,12 +912,6 @@ int dt_map_id(const struct dt_device_node *np, uint32_= t id, =20 struct dt_device_node *dt_find_node_by_phandle(dt_phandle handle); =20 -void device_tree_get_reg(const __be32 **cell, uint32_t address_cells, - uint32_t size_cells, paddr_t *start, paddr_t *siz= e); - -u32 device_tree_get_u32(const void *fdt, int node, - const char *prop_name, u32 dflt); - #ifdef CONFIG_DEVICE_TREE_DEBUG #define dt_dprintk(fmt, args...) \ printk(XENLOG_DEBUG fmt, ## args) --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595928; cv=pass; d=zohomail.com; s=zohoarc; b=IZs1V5iS2w7uUwmzayl88rm0Df4i6Z+CbH3eeWA7D7Rqw3OnOqLUtFPlr9btbFgJVNQ53KXcYeWMe7K69D2++z35DXjNOWW/FEJeN6r0tMVcwReVHaO5GMv00U7Bk8wzPrTD5vWxUWVcCpbt038onwJCPaJGLJSXZ+toIpXR8UQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595928; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qW0HaFmO+sMfG2h14to+XE0GAZnJX3kmGormlEBSmOo=; b=BUxygNSweNdAombxZQIynxjdhDWTrNlnBM/EqtYaqgmLR5g81X1XUzuYhhwKZOMzPWROwrhnboknxcAtP/ztNClo999HG8xVS3X9KdPhE2Mn7+F/py0qqDyXIURK6nEMN/sk9WuqWeVYlTYyQk9jhXDRT0wwwaO4t16NlxKcVpM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595928133127.17367373797242; Tue, 15 Jul 2025 09:12:08 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044532.1414672 (Exim 4.92) (envelope-from ) id 1ubiFz-0007bG-Eo; Tue, 15 Jul 2025 16:11:51 +0000 Received: by outflank-mailman (output) from mailman id 1044532.1414672; Tue, 15 Jul 2025 16:11:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFz-0007aG-8o; Tue, 15 Jul 2025 16:11:51 +0000 Received: by outflank-mailman (input) for mailman id 1044532; Tue, 15 Jul 2025 16:11:50 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFx-00067r-RY for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:49 +0000 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on20608.outbound.protection.outlook.com [2a01:111:f403:2416::608]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 684ca101-6196-11f0-a319-13f23c93f187; Tue, 15 Jul 2025 18:11:49 +0200 (CEST) Received: from MW4PR03CA0209.namprd03.prod.outlook.com (2603:10b6:303:b8::34) by IA1PR12MB6579.namprd12.prod.outlook.com (2603:10b6:208:3a1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.26; Tue, 15 Jul 2025 16:11:43 +0000 Received: from CO1PEPF000075ED.namprd03.prod.outlook.com (2603:10b6:303:b8:cafe::25) by MW4PR03CA0209.outlook.office365.com (2603:10b6:303:b8::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.17 via Frontend Transport; Tue, 15 Jul 2025 16:11:42 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075ED.mail.protection.outlook.com (10.167.249.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:42 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:39 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 684ca101-6196-11f0-a319-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=X1/4pdp4RLULE3HX+OkUsCrF6sbhbqlAzwyGGtMISvnqWoJ5DbMZdLOtCtdbJNYMFsbYsS10gz+GuIjeM7oV6goP3BqvpMUaFXqz93Ase/TXjXWVc7d9nmR+AB9Y6oIvy933ZUthU2hZ1/W5Z6O5jUNjM6+27akR/u09gcrnh2i58KDRkwyaEwkHTv1Fkc2NqGb1/38bCcNKNvXhgaD2uZfA3MtHMBW7o/8Lq3811AYtehlaOgtPmUQKjb1+v83E9MNnZ9aTtuvKobyCjE0NNTZUQauwHmF5Ux+QT3FJ9why1PKfxwLp+vJbQKWKEeig2zJidrjEgk5ZiFj8eETRtQ== 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=qW0HaFmO+sMfG2h14to+XE0GAZnJX3kmGormlEBSmOo=; b=jQI1v/qpDMqTu+8LutuyXunwtre+sp7gU2cnyDLgpNGBPLiaTdf6SVZg6N1No8hmIKdwjngRTBX3eonC3vfUrTlaOuTpIW4hooxX1Pm4nkVKnkqsvxnCGTbP+i6X8/L9ITu3LbaWwsu205rxtQzDzGwfgr7cr7vhZpIlD+qcLIe26fIBbhlDbzjUTL5pxU+9tnvh4oiTruHv5hhVTUFFt76ETdHkryZccbTlJxsq2pY1dRmTJsMKMefoTdsJjpsW9ZNpd1yBFTs73oUxsHgQiunTSarQUWuuepV9WV5IAef1lhbhVngdU8+BUCnNSAvQ+bUWaXIpDmiH9fyyjOPVCg== 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=qW0HaFmO+sMfG2h14to+XE0GAZnJX3kmGormlEBSmOo=; b=PEV5MrlEidp6tnL0Ono4F2NRfmJfsI0fm0Bac2MsR5H2iTQj/nPU0GNT1mY1k97sESGoYWaa6eAQc0b+CsKOm/NGek3+KlGUBRKsWSC2LBtk2Q0IRjb7f0FkxaDPWDisX7x5ZhlWhwO2ObmdKXNRzV8yCddzf/pn6Eulmf13nqY= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" , Andrew Cooper , Anthony PERARD , "Jan Beulich" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Alistair Francis , "Bob Eshleman" , Connor Davis , Oleksii Kurochko , "Daniel P. Smith" Subject: [PATCH v7 05/11] xen/dt: Move bootinfo functions to a new bootinfo.h Date: Tue, 15 Jul 2025 18:11:00 +0200 Message-ID: <20250715161108.141126-6-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075ED:EE_|IA1PR12MB6579:EE_ X-MS-Office365-Filtering-Correlation-Id: 425902a0-53f5-48c7-3c98-08ddc3ba49bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700013|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?j66X5kXpGBu1B7LG+pyHBshMaDXyhAt3NuLnUzIaiCp3l219/JP3drTUPl1d?= =?us-ascii?Q?kmS48jXp0BKC9c1jvMqVPzl7t8j1ZCQCQtrJwjTf3THf1ugXgSnEYJkYaSgW?= =?us-ascii?Q?Vm48BJv2mtsygJHeCxV3YHkMo7OK7KrfFsKCMevCZB2PMpmuBYdCvkEPyPKg?= =?us-ascii?Q?XXzkyPCN2Ru5gIJs2dXkAR90iNvsq+atZM2NYzh1QSxT7dlEMJkqJYj33vzv?= =?us-ascii?Q?BgPCZJHterOLDJ2wSGNNEg2J2sZPp0zoxHtNNhwiXfHiT7ptGhfl/jV6pam5?= =?us-ascii?Q?lk3W5xhZWjBuUZSALgoWtg44QROTKp7JBP5eqcwm5Azkp2e/CJmMh2BlJXuN?= =?us-ascii?Q?4Iys795uCkCp8IiN6EefBnm/D2q4LBrATQzD4Hsu57EotwETkuQ9inJ7AkWQ?= =?us-ascii?Q?OeeAEhpbu+uMLgXQBDIvf0rOfv/VOhDOiCmZAF+BxnTOMZe3Lws7VcceiJwQ?= =?us-ascii?Q?KOdByfNmLtFgehLAI4cetgHr2hLeiWGfhqjf6Klb5RnMdAxoaZ7gEPEPwDJ4?= =?us-ascii?Q?WMI331cTINits+2yOHf/GfEhG87DUEsYPpfySld1kVfgy0nJ62qUZtuZ3kPE?= =?us-ascii?Q?BkSGqLSWYH8GdJq/rvlzJKp+jTXXRXPsBbwqGbNcxagv0yCRY+gnRpt1nh33?= =?us-ascii?Q?N4VCEKTU7D51Za6CRKdSE9KUDDj5l+CjMOP9MU9K20ZbEEfUEviXzZ0fEH/I?= =?us-ascii?Q?dHyCaxUbuLDkiAfvF0VJnve2XnFBqUBLibI99HW5WXxwYKJjZEjmGPNeJ5KB?= =?us-ascii?Q?xIVR9RKA3U/v9TfC3j4GWRc9qUsFXvdelONO2YwDQLcif76JL7NpkJPCVi/7?= =?us-ascii?Q?0SryOqkmEJxke7Cv/WGWkq3VloZRndNaIjI4G2dJwEsE0rlMAPw2X10U1M+6?= =?us-ascii?Q?2f2dHuKPFHAE1qgcLOKFNjfqK65FpMXLozvCEafPHg61BGCuUu70lOz2/ycZ?= =?us-ascii?Q?t24qxWcLsD7zHZdVWvz5LmqUrOR7Q647bSGRKVj3CT3PKAKl0e2AP/ELfB44?= =?us-ascii?Q?HfzOS5SE/WlKDevd36tlYYeW+yMq2X/R//ntBSve4Iw/55E/UZ3eTFKbkgK5?= =?us-ascii?Q?6OvkrMBqwcw/L80Y6gffsc8VIFnZBwAnCpBuYzQMYBVt/qmzV1hZhWrnlVhU?= =?us-ascii?Q?q4Lyvb1zmbpzfSBKR1UMCy+QCYNLXMu0740UVEJ/Ko20nKw5hK6NTXYWTL9b?= =?us-ascii?Q?PFQ5qKeQUCg00bhWHAAVCVPz+2pveb+DzFpHVA9QBlE//yNNNBIpAtHEeBzq?= =?us-ascii?Q?4Tcp/I0dqRuylYMKiss6Q8xqNyShVqWSfkCAuc/HZXx4lYVuI+k0MmreGibn?= =?us-ascii?Q?BrGYaf4sXuzHvg0RAsTw421re4piLIIMh1JbRktjlBpKmffmg22wCC0sTTAe?= =?us-ascii?Q?vg0lNplKAOyEiA2PcYgj8QA77d7v/JNEsQHrxC8abRJ3sSS0opyRLisp9U59?= =?us-ascii?Q?3ICsTgKqoKHn9hgvJDssESfOqT8yj7PIpGQ8UyCMRoh5Wk66VuIY97JGhUuX?= =?us-ascii?Q?xRq5ZUOMt/s04ojbxgvmMiHafgco6N1VTfX0?= 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)(376014)(82310400026)(36860700013)(7416014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:42.3473 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 425902a0-53f5-48c7-3c98-08ddc3ba49bc 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: CO1PEPF000075ED.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6579 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595928873116600 Content-Type: text/plain; charset="utf-8" Part of an unpicking process to extract bootfdt contents independent of bootinfo to a separate file for x86 to take. With this, bootfdt.h can be cleanly included from x86. A later patch extracts the definitions so the functions may be called too. Not a functional change. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini --- xen/arch/arm/domain_build.c | 1 + xen/arch/arm/include/asm/setup.h | 2 +- xen/arch/arm/setup.c | 1 + xen/arch/riscv/mm.c | 2 +- xen/arch/riscv/setup.c | 2 +- xen/common/device-tree/bootfdt.c | 2 +- xen/common/device-tree/bootinfo.c | 2 +- xen/common/device-tree/dom0less-build.c | 2 +- xen/common/device-tree/domain-build.c | 2 +- xen/common/device-tree/kernel.c | 2 +- xen/include/xen/bootfdt.h | 207 ----------------------- xen/include/xen/bootinfo.h | 213 ++++++++++++++++++++++++ xen/include/xen/fdt-domain-build.h | 2 +- xen/include/xen/fdt-kernel.h | 2 +- 14 files changed, 225 insertions(+), 217 deletions(-) create mode 100644 xen/include/xen/bootinfo.h diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index edc9a82c15..b66a172eb8 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include +#include #include #include #include diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/se= tup.h index b199d92a42..1eaf13bd66 100644 --- a/xen/arch/arm/include/asm/setup.h +++ b/xen/arch/arm/include/asm/setup.h @@ -3,7 +3,7 @@ =20 #include #include -#include +#include #include =20 #if defined(CONFIG_MMU) diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index 12b76a0a98..8abc1d641d 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -8,6 +8,7 @@ * Copyright (c) 2011 Citrix Systems. */ =20 +#include #include #include #include diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c index 774ea42f2d..1ef015f179 100644 --- a/xen/arch/riscv/mm.c +++ b/xen/arch/riscv/mm.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ =20 -#include +#include #include #include #include diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c index a17096bf02..483cdd7e17 100644 --- a/xen/arch/riscv/setup.c +++ b/xen/arch/riscv/setup.c @@ -2,7 +2,7 @@ =20 #include #include -#include +#include #include #include #include diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/boot= fdt.c index 67fe5c3cc3..e372096b19 100644 --- a/xen/common/device-tree/bootfdt.c +++ b/xen/common/device-tree/bootfdt.c @@ -5,7 +5,7 @@ * Copyright (C) 2012-2014 Citrix Systems, Inc. */ =20 -#include +#include #include #include #include diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/boo= tinfo.c index 2a27d1318b..00a43fb358 100644 --- a/xen/common/device-tree/bootinfo.c +++ b/xen/common/device-tree/bootinfo.c @@ -10,7 +10,7 @@ */ =20 #include -#include +#include #include #include #include diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr= ee/dom0less-build.c index e950691d1e..93734e0ea8 100644 --- a/xen/common/device-tree/dom0less-build.c +++ b/xen/common/device-tree/dom0less-build.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ =20 -#include +#include #include #include #include diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree= /domain-build.c index 2fdea6624a..95b383e00f 100644 --- a/xen/common/device-tree/domain-build.c +++ b/xen/common/device-tree/domain-build.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ =20 -#include +#include #include #include #include diff --git a/xen/common/device-tree/kernel.c b/xen/common/device-tree/kerne= l.c index 6de2334dbe..ef393182b6 100644 --- a/xen/common/device-tree/kernel.c +++ b/xen/common/device-tree/kernel.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ =20 -#include +#include #include #include #include diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h index a5dfaa5c1d..b22d7b39c2 100644 --- a/xen/include/xen/bootfdt.h +++ b/xen/include/xen/bootfdt.h @@ -5,10 +5,7 @@ #include #include #include -#include #include -#include -#include =20 #if __has_include() #include @@ -16,15 +13,10 @@ =20 #define MIN_FDT_ALIGN 8 =20 -#define NR_MEM_BANKS 256 -#define NR_SHMEM_BANKS 32 - /* Default #address and #size cells */ #define DT_ROOT_NODE_ADDR_CELLS_DEFAULT 2 #define DT_ROOT_NODE_SIZE_CELLS_DEFAULT 1 =20 -#define MAX_MODULES 32 /* Current maximum useful modules */ - #define DEVICE_TREE_MAX_DEPTH 16 =20 /* Helper to read a big number; size is in cells (not bytes) */ @@ -116,77 +108,6 @@ typedef enum { BOOTMOD_UNKNOWN } boot_module_kind; =20 -enum membank_type { - /* - * The MEMBANK_DEFAULT type refers to either reserved memory for the - * device/firmware (when the bank is in 'reserved_mem') or any RAM (wh= en - * the bank is in 'mem'). - */ - MEMBANK_DEFAULT, - /* - * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memo= ry - * bank is bound to a static Xen domain. It is only valid when the bank - * is in reserved_mem. - */ - MEMBANK_STATIC_DOMAIN, - /* - * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory - * bank is reserved as static heap. It is only valid when the bank is - * in reserved_mem. - */ - MEMBANK_STATIC_HEAP, - /* - * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory - * bank is from the FDT reserve map. - */ - MEMBANK_FDT_RESVMEM, -}; - -enum region_type { - MEMORY, - RESERVED_MEMORY, - STATIC_SHARED_MEMORY -}; - -/* Indicates the maximum number of characters(\0 included) for shm_id */ -#define MAX_SHM_ID_LENGTH 16 - -struct shmem_membank_extra { - char shm_id[MAX_SHM_ID_LENGTH]; - unsigned int nr_shm_borrowers; -}; - -struct membank { - paddr_t start; - paddr_t size; - union { - enum membank_type type; -#ifdef CONFIG_STATIC_SHM - struct shmem_membank_extra *shmem_extra; -#endif - }; -}; - -struct membanks { - __struct_group(membanks_hdr, common, , - unsigned int nr_banks; - unsigned int max_banks; - enum region_type type; - ); - struct membank bank[]; -}; - -struct meminfo { - struct membanks_hdr common; - struct membank bank[NR_MEM_BANKS]; -}; - -struct shared_meminfo { - struct membanks_hdr common; - struct membank bank[NR_SHMEM_BANKS]; - struct shmem_membank_extra extra[NR_SHMEM_BANKS]; -}; - struct boot_domain { struct domain *d; =20 @@ -220,134 +141,6 @@ struct boot_module { #endif }; =20 -/* DT_MAX_NAME is the node name max length according the DT spec */ -#define DT_MAX_NAME 41 -struct bootcmdline { - boot_module_kind kind; - bool domU; - paddr_t start; - char dt_name[DT_MAX_NAME]; - char cmdline[BOOTMOD_MAX_CMDLINE]; -}; - -struct boot_modules { - int nr_mods; - struct boot_module module[MAX_MODULES]; -}; - -struct bootcmdlines { - unsigned int nr_mods; - struct bootcmdline cmdline[MAX_MODULES]; -}; - -struct bootinfo { - struct meminfo mem; - /* The reserved regions are only used when booting using Device-Tree */ - struct meminfo reserved_mem; - struct boot_modules modules; - struct bootcmdlines cmdlines; -#ifdef CONFIG_ACPI - struct meminfo acpi; -#endif -#ifdef CONFIG_STATIC_SHM - struct shared_meminfo shmem; -#endif -}; - -#ifdef CONFIG_ACPI -#define BOOTINFO_ACPI_INIT \ - .acpi.common.max_banks =3D NR_MEM_BANKS, \ - .acpi.common.type =3D MEMORY, -#else -#define BOOTINFO_ACPI_INIT -#endif - -#ifdef CONFIG_STATIC_SHM -#define BOOTINFO_SHMEM_INIT \ - .shmem.common.max_banks =3D NR_SHMEM_BANKS, \ - .shmem.common.type =3D STATIC_SHARED_MEMORY, -#else -#define BOOTINFO_SHMEM_INIT -#endif - -#define BOOTINFO_INIT \ -{ \ - .mem.common.max_banks =3D NR_MEM_BANKS, \ - .mem.common.type =3D MEMORY, \ - .reserved_mem.common.max_banks =3D NR_MEM_BANKS, \ - .reserved_mem.common.type =3D RESERVED_MEMORY, \ - BOOTINFO_ACPI_INIT \ - BOOTINFO_SHMEM_INIT \ -} - -extern struct bootinfo bootinfo; - -bool check_reserved_regions_overlap(paddr_t region_start, - paddr_t region_size, - bool allow_memreserve_overlap); - -struct boot_module *add_boot_module(boot_module_kind kind, - paddr_t start, paddr_t size, bool domU); -struct boot_module *boot_module_find_by_kind(boot_module_kind kind); -struct boot_module * boot_module_find_by_addr_and_kind(boot_module_kind ki= nd, - paddr_t start= ); -void add_boot_cmdline(const char *name, const char *cmdline, - boot_module_kind kind, paddr_t start, bool domU); -struct bootcmdline *boot_cmdline_find_by_kind(boot_module_kind kind); -struct bootcmdline * boot_cmdline_find_by_name(const char *name); -const char *boot_module_kind_as_string(boot_module_kind kind); - -void populate_boot_allocator(void); - -size_t boot_fdt_info(const void *fdt, paddr_t paddr); - -const char *boot_fdt_cmdline(const void *fdt); -int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit); - -static inline struct membanks *bootinfo_get_reserved_mem(void) -{ - return container_of(&bootinfo.reserved_mem.common, struct membanks, co= mmon); -} - -static inline struct membanks *bootinfo_get_mem(void) -{ - return container_of(&bootinfo.mem.common, struct membanks, common); -} - -#ifdef CONFIG_ACPI -static inline struct membanks *bootinfo_get_acpi(void) -{ - return container_of(&bootinfo.acpi.common, struct membanks, common); -} -#endif - -#ifdef CONFIG_STATIC_SHM -static inline struct membanks *bootinfo_get_shmem(void) -{ - return container_of(&bootinfo.shmem.common, struct membanks, common); -} - -static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void) -{ - return bootinfo.shmem.extra; -} -#endif - -static inline struct membanks *membanks_xzalloc(unsigned int nr, - enum region_type type) -{ - struct membanks *banks =3D xzalloc_flex_struct(struct membanks, bank, = nr); - - if ( !banks ) - goto out; - - banks->max_banks =3D nr; - banks->type =3D type; - - out: - return banks; -} - /* * Interpret the property `prop_name` of `node` as a u32. * diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h new file mode 100644 index 0000000000..f834f19571 --- /dev/null +++ b/xen/include/xen/bootinfo.h @@ -0,0 +1,213 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef XEN_BOOTINFO_H +#define XEN_BOOTINFO_H + +#include +#include +#include +#include + +#define NR_MEM_BANKS 256 +#define NR_SHMEM_BANKS 32 + +#define MAX_MODULES 32 /* Current maximum useful modules */ + +enum membank_type { + /* + * The MEMBANK_DEFAULT type refers to either reserved memory for the + * device/firmware (when the bank is in 'reserved_mem') or any RAM (wh= en + * the bank is in 'mem'). + */ + MEMBANK_DEFAULT, + /* + * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memo= ry + * bank is bound to a static Xen domain. It is only valid when the bank + * is in reserved_mem. + */ + MEMBANK_STATIC_DOMAIN, + /* + * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory + * bank is reserved as static heap. It is only valid when the bank is + * in reserved_mem. + */ + MEMBANK_STATIC_HEAP, + /* + * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory + * bank is from the FDT reserve map. + */ + MEMBANK_FDT_RESVMEM, +}; + +enum region_type { + MEMORY, + RESERVED_MEMORY, + STATIC_SHARED_MEMORY +}; + +/* Indicates the maximum number of characters(\0 included) for shm_id */ +#define MAX_SHM_ID_LENGTH 16 + +struct shmem_membank_extra { + char shm_id[MAX_SHM_ID_LENGTH]; + unsigned int nr_shm_borrowers; +}; + +struct membank { + paddr_t start; + paddr_t size; + union { + enum membank_type type; +#ifdef CONFIG_STATIC_SHM + struct shmem_membank_extra *shmem_extra; +#endif + }; +}; + +struct membanks { + __struct_group(membanks_hdr, common, , + unsigned int nr_banks; + unsigned int max_banks; + enum region_type type; + ); + struct membank bank[]; +}; + +struct meminfo { + struct membanks_hdr common; + struct membank bank[NR_MEM_BANKS]; +}; + +struct shared_meminfo { + struct membanks_hdr common; + struct membank bank[NR_SHMEM_BANKS]; + struct shmem_membank_extra extra[NR_SHMEM_BANKS]; +}; + +/* DT_MAX_NAME is the node name max length according the DT spec */ +#define DT_MAX_NAME 41 +struct bootcmdline { + boot_module_kind kind; + bool domU; + paddr_t start; + char dt_name[DT_MAX_NAME]; + char cmdline[BOOTMOD_MAX_CMDLINE]; +}; + +struct boot_modules { + int nr_mods; + struct boot_module module[MAX_MODULES]; +}; + +struct bootcmdlines { + unsigned int nr_mods; + struct bootcmdline cmdline[MAX_MODULES]; +}; + +struct bootinfo { + struct meminfo mem; + /* The reserved regions are only used when booting using Device-Tree */ + struct meminfo reserved_mem; + struct boot_modules modules; + struct bootcmdlines cmdlines; +#ifdef CONFIG_ACPI + struct meminfo acpi; +#endif +#ifdef CONFIG_STATIC_SHM + struct shared_meminfo shmem; +#endif +}; + +#ifdef CONFIG_ACPI +#define BOOTINFO_ACPI_INIT \ + .acpi.common.max_banks =3D NR_MEM_BANKS, \ + .acpi.common.type =3D MEMORY, +#else +#define BOOTINFO_ACPI_INIT +#endif + +#ifdef CONFIG_STATIC_SHM +#define BOOTINFO_SHMEM_INIT \ + .shmem.common.max_banks =3D NR_SHMEM_BANKS, \ + .shmem.common.type =3D STATIC_SHARED_MEMORY, +#else +#define BOOTINFO_SHMEM_INIT +#endif + +#define BOOTINFO_INIT \ +{ \ + .mem.common.max_banks =3D NR_MEM_BANKS, \ + .mem.common.type =3D MEMORY, \ + .reserved_mem.common.max_banks =3D NR_MEM_BANKS, \ + .reserved_mem.common.type =3D RESERVED_MEMORY, \ + BOOTINFO_ACPI_INIT \ + BOOTINFO_SHMEM_INIT \ +} + +extern struct bootinfo bootinfo; + +bool check_reserved_regions_overlap(paddr_t region_start, + paddr_t region_size, + bool allow_memreserve_overlap); + +struct boot_module *add_boot_module(boot_module_kind kind, + paddr_t start, paddr_t size, bool domU= ); +struct boot_module *boot_module_find_by_kind(boot_module_kind kind); +struct boot_module * boot_module_find_by_addr_and_kind(boot_module_kind ki= nd, + paddr_t start= ); +void add_boot_cmdline(const char *name, const char *cmdline, + boot_module_kind kind, paddr_t start, bool domU); +struct bootcmdline *boot_cmdline_find_by_kind(boot_module_kind kind); +struct bootcmdline * boot_cmdline_find_by_name(const char *name); +const char *boot_module_kind_as_string(boot_module_kind kind); + +void populate_boot_allocator(void); + +size_t boot_fdt_info(const void *fdt, paddr_t paddr); +const char *boot_fdt_cmdline(const void *fdt); +int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit); + +static inline struct membanks *bootinfo_get_reserved_mem(void) +{ + return container_of(&bootinfo.reserved_mem.common, struct membanks, co= mmon); +} + +static inline struct membanks *bootinfo_get_mem(void) +{ + return container_of(&bootinfo.mem.common, struct membanks, common); +} + +#ifdef CONFIG_ACPI +static inline struct membanks *bootinfo_get_acpi(void) +{ + return container_of(&bootinfo.acpi.common, struct membanks, common); +} +#endif + +#ifdef CONFIG_STATIC_SHM +static inline struct membanks *bootinfo_get_shmem(void) +{ + return container_of(&bootinfo.shmem.common, struct membanks, common); +} + +static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void) +{ + return bootinfo.shmem.extra; +} +#endif + +static inline struct membanks *membanks_xzalloc(unsigned int nr, + enum region_type type) +{ + struct membanks *banks =3D xzalloc_flex_struct(struct membanks, bank, = nr); + + if ( !banks ) + goto out; + + banks->max_banks =3D nr; + banks->type =3D type; + + out: + return banks; +} + +#endif /* XEN_BOOTINFO_H */ diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domai= n-build.h index 3a20623cf5..886a853816 100644 --- a/xen/include/xen/fdt-domain-build.h +++ b/xen/include/xen/fdt-domain-build.h @@ -3,7 +3,7 @@ #ifndef __XEN_FDT_DOMAIN_BUILD_H__ #define __XEN_FDT_DOMAIN_BUILD_H__ =20 -#include +#include #include #include #include diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h index 8363865282..33a60597bb 100644 --- a/xen/include/xen/fdt-kernel.h +++ b/xen/include/xen/fdt-kernel.h @@ -7,7 +7,7 @@ #ifndef __XEN_FDT_KERNEL_H__ #define __XEN_FDT_KERNEL_H__ =20 -#include +#include #include #include =20 --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595931; cv=pass; d=zohomail.com; s=zohoarc; b=XZNzrArEhGNOoKclT2UC7Bga90Jwd5Jr8ili7+rp0jRrKH2tZ/Kb7Idu29JhiYp8FWB7DhV/k6toe/pKEVeEsJi6WVNrX2wwxKIEtFNoJBG3CrsbH+7TCiQ9f7KfoRT0NWARsb5u5/asIvOmrBGfizfsMpA4m7u8ZVDMRokdzsk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595931; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tpq1itb7C1yqjdxsKRw25pFQUaO19wAGvasS2MZJbQo=; b=Y4X8dqVAIjp3pDnWGeHlZmvmfXAKZgyySkWMuUa+kPfYSCRJZK3HJPlaCCpsXG7ku1xyYpVsUP2vq/Ib57W0nziq5kxEAPh3DOfA7DU1PFM9ZV1rHjxnKKnSFHEVRpzDATymUEsCBIEpEPuvPjJJnxt6tyBHBdNIunuqmHnOLAY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595931302234.4735504593209; Tue, 15 Jul 2025 09:12:11 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044531.1414667 (Exim 4.92) (envelope-from ) id 1ubiFz-0007WW-1m; Tue, 15 Jul 2025 16:11:51 +0000 Received: by outflank-mailman (output) from mailman id 1044531.1414667; Tue, 15 Jul 2025 16:11:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiFy-0007WE-Sd; Tue, 15 Jul 2025 16:11:50 +0000 Received: by outflank-mailman (input) for mailman id 1044531; Tue, 15 Jul 2025 16:11:49 +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 1ubiFx-0005t5-QT for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:49 +0000 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2060d.outbound.protection.outlook.com [2a01:111:f403:2415::60d]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 68ef83b0-6196-11f0-b894-0df219b8e170; Tue, 15 Jul 2025 18:11:48 +0200 (CEST) Received: from MW4P220CA0004.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::9) by SN7PR12MB6792.namprd12.prod.outlook.com (2603:10b6:806:267::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.23; Tue, 15 Jul 2025 16:11:45 +0000 Received: from CO1PEPF000075F3.namprd03.prod.outlook.com (2603:10b6:303:115:cafe::d7) by MW4P220CA0004.outlook.office365.com (2603:10b6:303:115::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8922.28 via Frontend Transport; Tue, 15 Jul 2025 16:11:45 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F3.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:43 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:42 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 68ef83b0-6196-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fh78ROGblvtyZZQmpWO3+SANezQEy7tMP+mj3xMPyssu3WEpplzBDlyyC121xXdWg1W+yycbjSV9ddDwaZB+VrfhCbyoBVwNxIVN8K/Q3B7Qx9Fa6Yv8IHwS/k0B/HyvgQkp4OAhYNEAaf/WkBuECDX9mDq2DM0Dcrx+Wq9Kv7agkrj2REYfusCtlkiW3pQ5BdUQltcWx8Day22ekZkoAAtymt0RCC/DiHfaH017Veqm6bKuTNqupuYlW4nnECKhhuEtIbhLXn34qlqKur8VXFpMSi/mxIo9S13IBgbYo0Je6OzapjuX5LJ/DcFd6jgH+YKZbDQ1F5g2D90B0NbNkQ== 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=tpq1itb7C1yqjdxsKRw25pFQUaO19wAGvasS2MZJbQo=; b=pjHufkZUgo9KI5eKUkPwZLwDpWt7KlsyY/qw2D9UGjNi6N1fypa/SuiNML+XEBTP8922ifDbX+LZ7H3VqV2xe4RsqrcJgSYS6sCQpmo5LYwcrIInukfOz+RWtWpjDLz5dkqymxtCDbkXLFq0gSJ44Trxfay+Bhti+hKJaBrQ3QTIJZvvbVvYYopQETeEyLSJz6NW0l/CPaJN6bkcMmLGjMekaO5FYyVrlVgBR3UuDGxW/YfSjKlSrOdrR/GMdzQHfzLAsKyfRV4YzJEDj8odlXfMR3d/yWPbaMl/bgv3Iu9ZPN/GZGR6KKWpfvrPCRNvk2GtiU0FUVhEmsLjDnfKfw== 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=tpq1itb7C1yqjdxsKRw25pFQUaO19wAGvasS2MZJbQo=; b=3TqNOMQ7Ke2euhKiyiNfpIAiN9BVlmEzcWyrpitA3ZUNqvPpNMSl1TIG976o+TAb8uI70d8XtnFXU1UOTTfPUIdBduRvYUJebIiFZlp8w0DpJMZ6Va1MADgR8HCfAhKosUgUN2wSYJT/ctPnWYGiaf/FrGIxSLBJQYpsvpYz2sA= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Daniel P. Smith" Subject: [PATCH v7 06/11] xen/dt: Rename bootfdt.c -> bootinfo-fdt.c Date: Tue, 15 Jul 2025 18:11:01 +0200 Message-ID: <20250715161108.141126-7-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F3:EE_|SN7PR12MB6792:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e087ddf-08a7-46ec-9149-08ddc3ba4ab7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Nqhx6kPxplHw22MDNy6R4/IHbBs5GoR1uXj1HW6Cafkgi30ahK5liMaQ68w+?= =?us-ascii?Q?PTDrqSAUQj8LDG1JfrSwP6gzBs/BsZ8aMvl1MPdOKYnPURmqf8/PlGCnCnba?= =?us-ascii?Q?5qxovTCvO5RQZdWeEWaz3ufzTBMwt78MM6o9GBbQ4ZAxxo1lcq/BWFB+0bTI?= =?us-ascii?Q?7sjif3Szio1971R+PTdvMZ3d8aofmoADFqZPAXlDzeNPWtzJEhzuqaQiLDg9?= =?us-ascii?Q?4SkBVwDXzjGylQqeD04T0ErIitZ/Ltr8jCqzbSbBH3n7Np5YYVXI1WLGqUaj?= =?us-ascii?Q?ReRhhTzacSeDi1PZA0rI3qA5ouZqUFN2bueHbA3ZokZ7joHzbBF1guAe2nXG?= =?us-ascii?Q?m+fq+SH+SSk6N697yj7iJypp/mZponUfYbuNuOPZDrptl05EItihorsKKeOj?= =?us-ascii?Q?necnAYKF23NwNRSmPP1DazCqDZHh3HEIae0u7bswnIWTU09wD76yrXaPT6PG?= =?us-ascii?Q?3xLL1t+SNcy7uFIBclNKla2DPIAZ8uJjhaq4FVjqE/M/Znrngqm8QD5PehhE?= =?us-ascii?Q?l4gYO+6Fw1Ed49c6SHIYS3A8xjjcmcDXSpSaSd3oxPNd4Ce4Fpah9FacG/gi?= =?us-ascii?Q?JY0mb4ccInEoeGt9sEc4M0Ey80znPoE6y62j1+CjGtGsO5Ah977TdQLCh3rG?= =?us-ascii?Q?hxSOfcc/lhPpD4KwAxjMWqwUFNLcp0rPWnV9iR/qwi3xA1x8la/CdzA2zSuP?= =?us-ascii?Q?cup7XErLZiu2sMzAT4iIpmTTrI3+I91DQlOEp1GFT2P+4bmmd8GVX8+rNmvF?= =?us-ascii?Q?UxagRNrgJQ/Hu0esWewZgBCRN65T2Xdc6bSZ7rbtqcZdGQAdBeQ8CaTbjqUh?= =?us-ascii?Q?PnGEzWi2k+meRqeyE0ewIwdqJvlszTUyhBMsSzrR+WIfejuQNKt8c5OXXU3H?= =?us-ascii?Q?tY5HzJvK2H5b2CuGLoVFUEhI/NNOdZclNIbBKgCfv92JPEGA051EZ1xxAZVM?= =?us-ascii?Q?S9i1eTfdH1OF5MCvvJV0iWIhaEts+Gi+8Jx77AlNrWo1+bC28xWuRa93h7PZ?= =?us-ascii?Q?fLgY4IFN55AI4GGDVYNPeEz6VxZEexpZwFZgg9jVrJzHZRCdhLx1MrsblzfB?= =?us-ascii?Q?N2XvAnXJM54yHt0pEtZCM1hGFx5ikYT8Q7pO0uobF9x/HSUxft8LzNxKo/6/?= =?us-ascii?Q?l5CB2WWc5tNqQWHZdQjKsdViL4OgMOYFz8XEEPtOgC9X51GHPN8paIgKpAVx?= =?us-ascii?Q?tu2aav163meby8J8wfk2KAbp9x/e47WKdUgcQiE3NtHLJWsUjbHFLaopozM4?= =?us-ascii?Q?HuBIKaKV6QZuKp0nBOEomGhjtIxVbfcATMqlMeFn/q9LSsBN0u0O6YyhJdSC?= =?us-ascii?Q?hKxDWketIaq66n2AU26kUCadyPpjoar+sJpjq5C309sYLI2QZEkSD9Al/ewR?= =?us-ascii?Q?7JE9q2bb8CISLrNBe4ac8QE/Owo1jTktaxwDepMFDaSmcRZJpJocsSyMVzO6?= =?us-ascii?Q?VK2MfwU52xdc1TcEopU+0wsMmrOjR3PV2HXLb7W8G5BIRcQirO7rZWgJ3bRP?= =?us-ascii?Q?m4QMZZ7W5dRrNsrK0KNqN4FCOq0ekK8hJTHR?= 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)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:43.9924 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e087ddf-08a7-46ec-9149-08ddc3ba4ab7 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: CO1PEPF000075F3.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6792 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595932815116600 Content-Type: text/plain; charset="utf-8" bootinfo-fdt.c will eventually contain bootfdt helpers that make heavy use of bootinfo. To simplify git history do the rename here explicitly. A later patch extracts bootinfo-independent helpers into bootfdt.c. Doing so here would needlessly pollute the diffs. Not a functional change. Signed-off-by: Alejandro Vallejo Reviewed-by: Michal Orzel --- Dropped R-by because since v2, this patch and the one following it were squashed unintionally. v7 brings things back to a cleaner history. --- xen/common/device-tree/Makefile | 2 +- xen/common/device-tree/{bootfdt.c =3D> bootinfo-fdt.c} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename xen/common/device-tree/{bootfdt.c =3D> bootinfo-fdt.c} (100%) diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makef= ile index 13127296cb..8a3f2be89e 100644 --- a/xen/common/device-tree/Makefile +++ b/xen/common/device-tree/Makefile @@ -1,4 +1,4 @@ -obj-y +=3D bootfdt.init.o +obj-y +=3D bootinfo-fdt.init.o obj-y +=3D bootinfo.init.o obj-y +=3D device-tree.o obj-$(CONFIG_DOMAIN_BUILD_HELPERS) +=3D domain-build.init.o diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/boot= info-fdt.c similarity index 100% rename from xen/common/device-tree/bootfdt.c rename to xen/common/device-tree/bootinfo-fdt.c --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595937; cv=pass; d=zohomail.com; s=zohoarc; b=aZjOYmQxziL5iAhls2EZDDTNsUROCCbmsn2huiHexjopBUHqf9kpOPnc/LQkrkYUA+IKaI591FDUjmNqsyeq04FKGiXZx8yhVD1d8h5CN4xpEAt5SdthzRDdYT70iuNjazD6Rn9830kK35+H3reFQ64ipxWJCPNX/hklQtZepqY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595937; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WRxILgw0uxuS/h3umxIdhY8WxYfPe8hCl5WODaKq6xc=; b=Ng8EZqTT53ZoJXdv2x49zYtOZUPkOMOr2+0A/ObdYyTiwbT5w2wzarDxQuQy9CFDo2mGaMJNbXn9PcpTFEaOvwcdCV1qKHLKyuGBX6zKLGbYNnTfXPRuomdXgkLhkifs7oh4Rce9w3X/XeiJEAj83bzmRGDKQK9rHPZnwADR29k= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595937541702.0127167820257; Tue, 15 Jul 2025 09:12:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044536.1414687 (Exim 4.92) (envelope-from ) id 1ubiG2-00087x-5B; Tue, 15 Jul 2025 16:11:54 +0000 Received: by outflank-mailman (output) from mailman id 1044536.1414687; Tue, 15 Jul 2025 16:11:54 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiG1-00087e-U0; Tue, 15 Jul 2025 16:11:53 +0000 Received: by outflank-mailman (input) for mailman id 1044536; Tue, 15 Jul 2025 16:11:53 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiG0-00067r-SD for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:52 +0000 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on20621.outbound.protection.outlook.com [2a01:111:f403:2413::621]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 69ded3d0-6196-11f0-a319-13f23c93f187; Tue, 15 Jul 2025 18:11:50 +0200 (CEST) Received: from BYAPR02CA0024.namprd02.prod.outlook.com (2603:10b6:a02:ee::37) by DS0PR12MB9398.namprd12.prod.outlook.com (2603:10b6:8:1b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.35; Tue, 15 Jul 2025 16:11:47 +0000 Received: from CO1PEPF000075EE.namprd03.prod.outlook.com (2603:10b6:a02:ee:cafe::66) by BYAPR02CA0024.outlook.office365.com (2603:10b6:a02:ee::37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.17 via Frontend Transport; Tue, 15 Jul 2025 16:11:46 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075EE.mail.protection.outlook.com (10.167.249.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:45 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:43 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 69ded3d0-6196-11f0-a319-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ngUgPv7ZXmtM7wF1zs8sJ6XZtLx30kqQKTZdApdrzGoc//bOm4/aUfCw35fpSw4xfrorpxAg6OX6bFfYIbmriM/phusTJtZ3Ng7QiGlmrEp/9ONq3Anh79s7jpduQsr2hXG22Vz5wLahEsEzAfoGagbku/HqIun1lQbuVMhDoQ/pGJD91Tm7hWrQvx+xBf8rUnEJYpDXIUwcSjIBXuKDlwn+q3HKnzwlsvfzZ+nS7W7p7DFhU/l5azEjmrx0s3IkjU08aKKV4juPF8T9ktaT3W2baMWw4glD/HSXO08TkjYxMAtSK5RBmwe/vVr4TTzT8hVMjLQQJbWW558hd+3zlQ== 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=WRxILgw0uxuS/h3umxIdhY8WxYfPe8hCl5WODaKq6xc=; b=u+1L+NOvRhEsB6CvszWa/fykx2i5BVrHbn+eza85a5GrcJ0nIXJryoiNJDVpSoroIAMfSJiftbDSUX5I3UA4zbOl6j/YyW+f7o+ema/k6tZTLvq6duwvehvx+YcIwIwgSCc/RgqA40lMFpybEWRUVXvj6NjKLGm+d5xmx+ZMbaXbC1W7GlBzUtiyI2FTg9RmIoREYHlk1Lhf8GelAsgjlPxVcgVN1mIo58EjwCGmn4DcfjiqpwItTH+PhciKb1vRfzEZnfQbjhpOm+0/ZTl+I2q471EuDbTd5n0oN/zAw+zvlPsNSIteN36v0+jW64kFogbL3gIaMdn0zhPWFmWrRw== 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=WRxILgw0uxuS/h3umxIdhY8WxYfPe8hCl5WODaKq6xc=; b=Tn7Q1YWrmgJMTPshyPp8gGDyKoc7Zy6b0EA6P95vtAtbP0bmnnpkyXGDAalMne4qJRCh550TkTYcrODx2omtnZWq3tl8z67Oa/gpbUPBMaNZ9U2jGAIZIfXuw88rAwI57z/kGA/1xLsPmbWtm9QGwyq6DR7OyDgvC6xPo5kx8Ec= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Daniel P. Smith" Subject: [PATCH v7 07/11] xen/dt: Extract bootinfo-independent functions to bootfdt.c Date: Tue, 15 Jul 2025 18:11:02 +0200 Message-ID: <20250715161108.141126-8-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075EE:EE_|DS0PR12MB9398:EE_ X-MS-Office365-Filtering-Correlation-Id: b8b787a8-6b2b-4cf1-5c0c-08ddc3ba4bac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZdwA/ag17XCDqnDJSwl9xTnBChmTz56zzgNIfCoCCgQJEVijMCjRVId5rmqS?= =?us-ascii?Q?iAo3KLjDHWEJc0j60VYbq0VxLxOw9U0lES5Hw+4fqevQABglgRu/Db/EO0OD?= =?us-ascii?Q?5lmCKqdHkE3Rvqa2n0sNMKdEYkMi+ZsTpXXf7sBIDaPon2jFhNJptOCywflX?= =?us-ascii?Q?CVzccFLgjruYEp2CRVSbLg5g9sliVv+idU5WOz/4uGZO3pdan7GiFUDm4Kg9?= =?us-ascii?Q?UqzQTmaDhCn86udiM2QuF9SyhW6blbdrfqiy81K7kLb3b1JXH3jKjr12gVqb?= =?us-ascii?Q?tFvCGvUGNY5iPgPVhQ1vPEMVMnAXJTpqSOy5gGQt0V1K07G9ShbunPXBcpHA?= =?us-ascii?Q?WZlmhd1oXmBrAcI4jCk+nlq9y+VGQbOp5ohq4ZwnNPyBkFgomAbX3iZHaIJU?= =?us-ascii?Q?hMbSeGsObWDGPm9WjnhHAfyJAzIlYaHkIaE9mhguOLQ463kcUXrJ4HzIkl+f?= =?us-ascii?Q?8NIi1mkz7K0epwWpbltm1rDRJ11pp2e04j+PO0t41Ubf41Gl/AxREUho9kAY?= =?us-ascii?Q?hsn87v0TRuav9EN0YIPeq4zbWo7i5KDZT06+qDaR33VI15XRUvqIYj2SoSYy?= =?us-ascii?Q?6xgPVot6qMABKCsacf0h7aZln5GW2UalkIHnqwfn6zn072r3xCdMC5WuFecV?= =?us-ascii?Q?R/rH7/HjCPWWFHuNG4VttqtObTxZ2vSZsmL8mZgp6Pd/8yAfgV8YuP/2C+D7?= =?us-ascii?Q?WkIe5ngtKLoH/428x1uVXDl9yyl6/i7eYyhHXn3FmKUsNzGOSgNoEbjYEDA9?= =?us-ascii?Q?MpqgrpZxDwrEbMsrwLbIg2jP4MqGSrwH2j71sI6LEa8LsCo1hqDe6yFtB0X2?= =?us-ascii?Q?8ETtcrm7WBVx2q8mSYLbbiqsTzU7yCCdgHlPZTCJBelU6FEJyN7LVWWLr/Pr?= =?us-ascii?Q?rDLpBLvkNMBfN7EVobGuDEiLhI7XSoK7iG3G7k9VFW7aKOsM1wtNoHVgOeKW?= =?us-ascii?Q?ceYahr/FUCYuc8hnLEZJpQUoQDW5CfwTlfca2JYkw6nJ/ZKxSJuUfn3F5i0r?= =?us-ascii?Q?fLbxf/iQBabB+796OV167MEVOb7xkFIwngpNPPSeeQHGIKwlH+VOBdCRIDAM?= =?us-ascii?Q?bZeRGjFKjmWq1KsnYFnQ0KF48IXGB0dOEJ/1HJso4TSey3Quv3MdsV3ASSKw?= =?us-ascii?Q?jJ6v34p8ieH52LLLvummKcmWv0iKOASZE4XMPQ9wcOEIS9h6Ndjvxu+NLHvp?= =?us-ascii?Q?10jJecqHcrudmQtb5ZHU3naRGX5Ar8GRIdfYhCbpZBNnCsQja5o5x+DSE/gH?= =?us-ascii?Q?Ts8NdWm61tKmmoBwaKaS4AM8C9xgARZ/OP4PrF7vcmu1lcLI6eA7VR0P3FGA?= =?us-ascii?Q?9BNQIL3Toj0BT5h5Bd/63tKv6CPcxo7YGjAw9C9yvvggArEZ10BphavazOwA?= =?us-ascii?Q?p4SyP11y7b+S4PyujV5AG8CyKZ1KPRkfg6Pk2NfmMMcSp9+jwOkLrSP53EKc?= =?us-ascii?Q?qOyOQkNNOp7pdDxD/a3tGhjihO930DAdQyv06ZE1CgRfdmv++FwXOLV/Xlj3?= =?us-ascii?Q?aHqHxYD1Kh6s9VxMZ6PGkyDvK/xayqrqudZl?= 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)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:45.5989 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8b787a8-6b2b-4cf1-5c0c-08ddc3ba4bac 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: CO1PEPF000075EE.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9398 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595938903116600 Content-Type: text/plain; charset="utf-8" Move all functions independent of "struct bootinfo" back to bootfdt.c Not a functional change. Signed-off-by: Alejandro Vallejo Reviewed-by: Michal Orzel --- xen/common/device-tree/Makefile | 1 + xen/common/device-tree/bootfdt.c | 99 +++++++++++++++++++++++++++ xen/common/device-tree/bootinfo-fdt.c | 94 +------------------------ 3 files changed, 101 insertions(+), 93 deletions(-) create mode 100644 xen/common/device-tree/bootfdt.c diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makef= ile index 8a3f2be89e..8abc069c4b 100644 --- a/xen/common/device-tree/Makefile +++ b/xen/common/device-tree/Makefile @@ -1,3 +1,4 @@ +obj-y +=3D bootfdt.init.o obj-y +=3D bootinfo-fdt.init.o obj-y +=3D bootinfo.init.o obj-y +=3D device-tree.o diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/boot= fdt.c new file mode 100644 index 0000000000..84520eed30 --- /dev/null +++ b/xen/common/device-tree/bootfdt.c @@ -0,0 +1,99 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#include +#include +#include +#include +#include + +void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cell= s, + uint32_t size_cells, paddr_t *start, + paddr_t *size) +{ + uint64_t dt_start, dt_size; + + /* + * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit. + * Thus, there is an implicit cast from uint64_t to paddr_t. + */ + dt_start =3D dt_next_cell(address_cells, cell); + dt_size =3D dt_next_cell(size_cells, cell); + + if ( dt_start !=3D (paddr_t)dt_start ) + { + printk("Physical address greater than max width supported\n"); + WARN(); + } + + if ( dt_size !=3D (paddr_t)dt_size ) + { + printk("Physical size greater than max width supported\n"); + WARN(); + } + + /* + * Xen will truncate the address/size if it is greater than the maximum + * supported width and it will give an appropriate warning. + */ + *start =3D dt_start; + *size =3D dt_size; +} + +u32 __init device_tree_get_u32(const void *fdt, int node, + const char *prop_name, u32 dflt) +{ + const struct fdt_property *prop; + + prop =3D fdt_get_property(fdt, node, prop_name, NULL); + if ( !prop || prop->len < sizeof(u32) ) + return dflt; + + return fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data)); +} + +int __init device_tree_for_each_node(const void *fdt, int node, + device_tree_node_func func, + void *data) +{ + /* + * We only care about relative depth increments, assume depth of + * node is 0 for simplicity. + */ + int depth =3D 0; + const int first_node =3D node; + u32 address_cells[DEVICE_TREE_MAX_DEPTH]; + u32 size_cells[DEVICE_TREE_MAX_DEPTH]; + int ret; + + do { + const char *name =3D fdt_get_name(fdt, node, NULL); + u32 as, ss; + + if ( depth >=3D DEVICE_TREE_MAX_DEPTH ) + { + printk("Warning: device tree node `%s' is nested too deep\n", + name); + continue; + } + + as =3D depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELL= S_DEFAULT; + ss =3D depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_D= EFAULT; + + address_cells[depth] =3D device_tree_get_u32(fdt, node, + "#address-cells", as); + size_cells[depth] =3D device_tree_get_u32(fdt, node, + "#size-cells", ss); + + /* skip the first node */ + if ( node !=3D first_node ) + { + ret =3D func(fdt, node, name, depth, as, ss, data); + if ( ret !=3D 0 ) + return ret; + } + + node =3D fdt_next_node(fdt, node, &depth); + } while ( node >=3D 0 && depth > 0 ); + + return 0; +} + diff --git a/xen/common/device-tree/bootinfo-fdt.c b/xen/common/device-tree= /bootinfo-fdt.c index e372096b19..a0e20d91af 100644 --- a/xen/common/device-tree/bootinfo-fdt.c +++ b/xen/common/device-tree/bootinfo-fdt.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Early Device Tree + * Early Device Tree with bootinfo hooks * * Copyright (C) 2012-2014 Citrix Systems, Inc. */ @@ -110,39 +110,6 @@ static bool __init device_tree_is_memory_node(const vo= id *fdt, int node, return true; } =20 -void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cell= s, - uint32_t size_cells, paddr_t *start, - paddr_t *size) -{ - uint64_t dt_start, dt_size; - - /* - * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit. - * Thus, there is an implicit cast from uint64_t to paddr_t. - */ - dt_start =3D dt_next_cell(address_cells, cell); - dt_size =3D dt_next_cell(size_cells, cell); - - if ( dt_start !=3D (paddr_t)dt_start ) - { - printk("Physical address greater than max width supported\n"); - WARN(); - } - - if ( dt_size !=3D (paddr_t)dt_size ) - { - printk("Physical size greater than max width supported\n"); - WARN(); - } - - /* - * Xen will truncate the address/size if it is greater than the maximum - * supported width and it will give an appropriate warning. - */ - *start =3D dt_start; - *size =3D dt_size; -} - static int __init device_tree_get_meminfo(const void *fdt, int node, const char *prop_name, u32 address_cells, u32 size_cell= s, @@ -203,65 +170,6 @@ static int __init device_tree_get_meminfo(const void *= fdt, int node, return 0; } =20 -u32 __init device_tree_get_u32(const void *fdt, int node, - const char *prop_name, u32 dflt) -{ - const struct fdt_property *prop; - - prop =3D fdt_get_property(fdt, node, prop_name, NULL); - if ( !prop || prop->len < sizeof(u32) ) - return dflt; - - return fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data)); -} - -int __init device_tree_for_each_node(const void *fdt, int node, - device_tree_node_func func, - void *data) -{ - /* - * We only care about relative depth increments, assume depth of - * node is 0 for simplicity. - */ - int depth =3D 0; - const int first_node =3D node; - u32 address_cells[DEVICE_TREE_MAX_DEPTH]; - u32 size_cells[DEVICE_TREE_MAX_DEPTH]; - int ret; - - do { - const char *name =3D fdt_get_name(fdt, node, NULL); - u32 as, ss; - - if ( depth >=3D DEVICE_TREE_MAX_DEPTH ) - { - printk("Warning: device tree node `%s' is nested too deep\n", - name); - continue; - } - - as =3D depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELL= S_DEFAULT; - ss =3D depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_D= EFAULT; - - address_cells[depth] =3D device_tree_get_u32(fdt, node, - "#address-cells", as); - size_cells[depth] =3D device_tree_get_u32(fdt, node, - "#size-cells", ss); - - /* skip the first node */ - if ( node !=3D first_node ) - { - ret =3D func(fdt, node, name, depth, as, ss, data); - if ( ret !=3D 0 ) - return ret; - } - - node =3D fdt_next_node(fdt, node, &depth); - } while ( node >=3D 0 && depth > 0 ); - - return 0; -} - static int __init process_memory_node(const void *fdt, int node, const char *name, int depth, u32 address_cells, u32 size_cells, --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595930; cv=pass; d=zohomail.com; s=zohoarc; b=IOZvfjK0JfBWN/15D4ijI6q5TSp2JHJezZZKPy62KXAZqmf/NL9n70Egb4WyH8PYStGR3kyqxT5tsE7XqR/9XOWpsibs2HnTaUdEPS7y/D/EHRTcLTuV9feNokF4vjC5nC2uONsR++IiZcmPfoEb1yAQqunrHA4y0EdjoZ18HEg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595930; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TB6ZnUukYGXcHJNYwJCX+hPhi5hoUVNF9lKYMk2ENRQ=; b=LfJrjSOgVw/Kn7/Dehf001cVCP7lyMczMrKAb2nTqFXLQz15LHPtLgG4dYGKeDrKgqvvsYpCcA2HdhHfxEOto7CfeaHyPqBYwmS/fxGj2yiuBLYdNjTyh5JQVZL9FhnkXVXHFGi0J2GIt3JwSFHtTkgFFnmNrMMW2vCXN7GCmPM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595930746344.38438112038216; Tue, 15 Jul 2025 09:12:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044537.1414696 (Exim 4.92) (envelope-from ) id 1ubiG3-0008OY-G7; Tue, 15 Jul 2025 16:11:55 +0000 Received: by outflank-mailman (output) from mailman id 1044537.1414696; Tue, 15 Jul 2025 16:11:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiG3-0008N9-9V; Tue, 15 Jul 2025 16:11:55 +0000 Received: by outflank-mailman (input) for mailman id 1044537; Tue, 15 Jul 2025 16:11:53 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiG1-00067r-SA for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:11:53 +0000 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on20608.outbound.protection.outlook.com [2a01:111:f403:2409::608]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 69d4acfd-6196-11f0-a319-13f23c93f187; Tue, 15 Jul 2025 18:11:50 +0200 (CEST) Received: from MW4P220CA0007.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::12) by PH0PR12MB7470.namprd12.prod.outlook.com (2603:10b6:510:1e9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.35; Tue, 15 Jul 2025 16:11:47 +0000 Received: from CO1PEPF000075F3.namprd03.prod.outlook.com (2603:10b6:303:115:cafe::5) by MW4P220CA0007.outlook.office365.com (2603:10b6:303:115::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8922.30 via Frontend Transport; Tue, 15 Jul 2025 16:11:47 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F3.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:46 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:45 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 69d4acfd-6196-11f0-a319-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gTWD5MVuVHV0eVXaHcQP0gg9uU+MKwaUdzssSr0cvC2A6Kgpr9ccOYoKzLk8PkrfuOIgRs5SHfiph3MvfjhPdOm8dul5beWlfwxryf1IyuV9IjuwrKd0D67Lb7Wz4RFgxLNTd7KuOJtiOt/MfZ2t7hSDf8peH5CYQ4sf1z07Gp/kXhSuSaSNAftJT4vGLSTyOFzJyaLkXFWJPsmu117MVMW3UDWx9bk7ZFX8zm9rAt3EDP7CvIPqeQ0i+jCmn+g/5oBMbNyUs+u6N5TKnqBsGZxr0J1IEcz+Q34IAKvPOS4HiZI+YRUkKAT455w64d51kDxT4rtCxY0s0eEx1vbWHQ== 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=TB6ZnUukYGXcHJNYwJCX+hPhi5hoUVNF9lKYMk2ENRQ=; b=CGZ2EbKzfoncdmRVuNadmDv+23iuncGezEz2G2uqR+ocKvrZ+EvnumkOYxgx8yp+osE3yFPVV1WdKLrKsEuK3tjPJkzqaJHQPbNNKfsapa5YBxlXgjyxSmZGiph+BGTpNMFsMF4H++kMQguvoRVWQOVIRbHnBcIoaw7W1Wp5i39QTTWzwBIdu9JtTskITxIzzvXGWAQD8GxIO6ZXq0okjN5ieVyurQdSJhTJO5DDQd82flG/zpksejkSkRtIUXz6/4kgUOrm/JQM7F5Rvssr0T+XdHovi3Af1a+nSlVz6HaIPiB/FtR25KDau4Rnqa7zzGiwg4NfQ9gUo87/tooizA== 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=TB6ZnUukYGXcHJNYwJCX+hPhi5hoUVNF9lKYMk2ENRQ=; b=EYpyrsaCP3Kr1VNW8QXK7BtkKygqTQj8Mrv+Rppm7BY6B1T9iIfackJDiAFkTiHZrXttWd8W2OCWBbiBIYGnZzZfpf54HNAhiI4GhXjGBDxxFj6nbfXbYcM8MtLUfduPK4avkyyRMUj5zd7JTcN02vaX+5Yh4n2/FgBH5Tmt2+A= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Daniel P. Smith" Subject: [PATCH v7 08/11] xen/dt: Extract helper to map nodes to module kinds Date: Tue, 15 Jul 2025 18:11:03 +0200 Message-ID: <20250715161108.141126-9-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F3:EE_|PH0PR12MB7470:EE_ X-MS-Office365-Filtering-Correlation-Id: 470af048-867a-4414-a924-08ddc3ba4c78 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RWsA1r9jRGOZjp9PlHQCK/VV60FWvuvop0UDSlydfcasMVocmYoHV/UW4VAg?= =?us-ascii?Q?w/YrpKT8YbX5PWAQdXCHg0K1xVAfyo4qIxvhY94IGYLpWtUefxRXU6ViwHUP?= =?us-ascii?Q?/obPcLU+XM9I+xCi8fM205AgH3i0Y4M0iZSfwy4qI5++lFhF2LWZfHuPYBDi?= =?us-ascii?Q?lmOlVlp40dyM/QzxUZ/1ty5GGPkRLfGtazUyXvm5EvFzxDo4GQgZgHqOyld8?= =?us-ascii?Q?dlnLscDw+RqQHmf1kuqjpZy27KY8aCjVFW0PfWTd7utSkrhmXKUYDfkQTr6k?= =?us-ascii?Q?ZTuZDclIUamFb22fen59W08NME5J0viWXVFrZTbRJ6hPgpNGcoI4Fb8xEbUp?= =?us-ascii?Q?un/g+tjleVghvgfXRbAxTIaZLuMw9J4mA141SbZhbY1Yc9wIx/BWspckVZkt?= =?us-ascii?Q?z1rPLrOa/l0eM0/LkkFDUlamSDSQT2qMhWoMBmjJBq7OJOeXRss5xE/DZzBz?= =?us-ascii?Q?jncVgFtvTO/yQoCB8b+XKYSUcxBlCQ1tkPVwBnoAIJB0SSXvBeJ2x4NOJs9K?= =?us-ascii?Q?18cr1ByU3INjhm55nr6121rUq1yb570htGdd4Zo2Q/cX6KjmXRQF5Zg+VwDz?= =?us-ascii?Q?UYlIDZYVeX/bwSAyjrCTtqBd2PW4c03FvjnzgVFA54iPW5DhFvrkFeHmJsH1?= =?us-ascii?Q?WtI09gB0pHQnZHGLj7s/Oy+96MPYGOPsZPkcEHM4sAKb4iUrR7Y8PcKUc9XF?= =?us-ascii?Q?6xlWZRbClTP+GrGj0pyeZZI5QRDDL5aRrcHs04UeAxTc/kC6Y6ghPUCRFPie?= =?us-ascii?Q?mhItOirJJZn3aQxyKLdQ5tYbsAtMPaGRUOgHq+dIe3dvQhqOUkB4AyYzCsO2?= =?us-ascii?Q?2K7ZFwJccjQIqnoF6/dBdJFDZOwD3gKqBFbkrQWttc/ONE/25ppOpoBz8EZm?= =?us-ascii?Q?mXWtheWpgyeaJkUROqt+wg1C4KH6j3nm+p9dEgJoiPu1vroUngVPj7+nNBNz?= =?us-ascii?Q?qHfNwdmdYqbhWxdAJGM5gXcayCh+lRn5mkztI9Qu6swOhpsQAQzmDZIN9QQA?= =?us-ascii?Q?V+OnXF4JHA3bdVs+etEB0JAoz1pD3mx2w81h/9AkqHXq6xSl5ePMnkjQ+Q2v?= =?us-ascii?Q?6dq7hyvIP7muF+DPlj6YfJGQZSCFA3xRuR3oqYjn1AaDdGTWkSiQCnEF4TmE?= =?us-ascii?Q?R38nde5SYunM7tQrNRa2Uf5f1ZOTH0+X3PK5QpN4LCtPe9foMjEsGCf+XiSG?= =?us-ascii?Q?txL2YeKzDCD2kBCd1/jf1N8UtYXeFQ0CFJ2ZGS2WCG+soqunkZJlns+OseUt?= =?us-ascii?Q?icu9l7ABgup/FIVOZ2aD8wrEyX09T8kJks93hVkUUBT80CdwUG01sKo8dooD?= =?us-ascii?Q?9Urc8ZUDwCikJSHclRsaIUlDl+xWSXcMWR+px2bIvOybfbkH/ROhJdteZujE?= =?us-ascii?Q?2LEHJMpKAuMetDcHN7sZhrGe9jOG1njh5mm1MuAtCRFecOtzrqn5iE4vPb/Y?= =?us-ascii?Q?zWmNjuLw1sByqz8+40QSk8WXASEm32VCVe0DAdxu+uSXzFc/vS3Ra8dpJB0+?= =?us-ascii?Q?1deFgotF0VdSXXRlq79jXMvl8K+IttDglf4Z?= 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)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:46.9365 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 470af048-867a-4414-a924-08ddc3ba4c78 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: CO1PEPF000075F3.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7470 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595932874116600 Content-Type: text/plain; charset="utf-8" This will be required later by x86 code in order to do early identification of boot modules when booting off a DTB. Not a functional change. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini --- xen/common/device-tree/bootfdt.c | 18 ++++++++++++++++++ xen/common/device-tree/bootinfo-fdt.c | 16 +--------------- xen/include/xen/bootfdt.h | 7 +++++++ 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/boot= fdt.c index 84520eed30..7ef158dd7a 100644 --- a/xen/common/device-tree/bootfdt.c +++ b/xen/common/device-tree/bootfdt.c @@ -5,6 +5,24 @@ #include #include =20 +boot_module_kind __init fdt_node_to_kind(const void *fdt, int node) +{ + if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") =3D=3D 0= || + fdt_node_check_compatible(fdt, node, "multiboot,kernel") =3D=3D 0= ) + return BOOTMOD_KERNEL; + if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") =3D=3D 0= || + fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") =3D=3D = 0 ) + return BOOTMOD_RAMDISK; + if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") =3D=3D 0 ) + return BOOTMOD_XSM; + if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree") =3D= =3D 0 ) + return BOOTMOD_GUEST_DTB; + if ( fdt_node_check_compatible(fdt, node, "multiboot,microcode") =3D= =3D 0 ) + return BOOTMOD_MICROCODE; + + return BOOTMOD_UNKNOWN; +} + void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cell= s, uint32_t size_cells, paddr_t *start, paddr_t *size) diff --git a/xen/common/device-tree/bootinfo-fdt.c b/xen/common/device-tree= /bootinfo-fdt.c index a0e20d91af..6499b57960 100644 --- a/xen/common/device-tree/bootinfo-fdt.c +++ b/xen/common/device-tree/bootinfo-fdt.c @@ -237,21 +237,7 @@ static void __init process_multiboot_node(const void *= fdt, int node, =20 cell =3D (const __be32 *)prop->data; device_tree_get_reg(&cell, address_cells, size_cells, &start, &size); - - if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") =3D=3D 0= || - fdt_node_check_compatible(fdt, node, "multiboot,kernel") =3D=3D 0= ) - kind =3D BOOTMOD_KERNEL; - else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") =3D= =3D 0 || - fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") = =3D=3D 0 ) - kind =3D BOOTMOD_RAMDISK; - else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") =3D= =3D 0 ) - kind =3D BOOTMOD_XSM; - else if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree"= ) =3D=3D 0 ) - kind =3D BOOTMOD_GUEST_DTB; - else if ( fdt_node_check_compatible(fdt, node, "multiboot,microcode") = =3D=3D 0 ) - kind =3D BOOTMOD_MICROCODE; - else - kind =3D BOOTMOD_UNKNOWN; + kind =3D fdt_node_to_kind(fdt, node); =20 /** * Guess the kind of these first two unknowns respectively: diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h index b22d7b39c2..7cee3e811a 100644 --- a/xen/include/xen/bootfdt.h +++ b/xen/include/xen/bootfdt.h @@ -157,4 +157,11 @@ u32 device_tree_get_u32(const void *fdt, int node, void device_tree_get_reg(const __be32 **cell, uint32_t address_cells, uint32_t size_cells, paddr_t *start, paddr_t *siz= e); =20 +/* + * Probe an FDT node thought to be a boot module to identify its kind. + * + * If correctly identified, returns the detected kind, otherwise BOOTMOD_U= NKNOWN + */ +boot_module_kind fdt_node_to_kind(const void *fdt, int node); + #endif /* XEN_BOOTFDT_H */ --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752597757; cv=pass; d=zohomail.com; s=zohoarc; b=SjW3rh47Yvm4dewb+Ja6Fp7TaPFVyO/kNEUQBV9fOQcI5BoGt5uKuULe1qqkCs6TjnOQkzD1cLAJnDD1CLB3LvpRIoSe/DEv8SF8HXOUA0J5rlMnYCQFAGIifnKziwarQjo6OHvWDUBBknZ4+K4D0+etZR7f9oDFA2hxSjh24zM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752597757; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=W09inC3TMIsxvKa6XhIrbrJCVtJ3wn72EVHr8n2Mdkg=; b=kx7DGKzAb/XOejlZAaxatPh2R7WL7hvRf4scaVXUAMdUX68VwVLXM2TvGFVE3naRC0RyvQuP0h8zKNaZezKgaj64JI2ovht3yhG1ldbPqs11bHLst8V+SoswrOGBlKllN+sUo6j92TcJ8DB+mFeh2f5zE61mr5SRtJrmnhTap78= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752597757436959.5879168238222; Tue, 15 Jul 2025 09:42:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044622.1414727 (Exim 4.92) (envelope-from ) id 1ubijS-0000bW-AN; Tue, 15 Jul 2025 16:42:18 +0000 Received: by outflank-mailman (output) from mailman id 1044622.1414727; Tue, 15 Jul 2025 16:42:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubijS-0000bP-6j; Tue, 15 Jul 2025 16:42:18 +0000 Received: by outflank-mailman (input) for mailman id 1044622; Tue, 15 Jul 2025 16:42:16 +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 1ubiGL-0005t5-BX for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:12:13 +0000 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on20625.outbound.protection.outlook.com [2a01:111:f403:2405::625]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 72055733-6196-11f0-b894-0df219b8e170; Tue, 15 Jul 2025 18:12:05 +0200 (CEST) Received: from SJ0P220CA0027.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:41b::18) by CYXPR12MB9320.namprd12.prod.outlook.com (2603:10b6:930:e6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.35; Tue, 15 Jul 2025 16:11:51 +0000 Received: from CO1PEPF000075F1.namprd03.prod.outlook.com (2603:10b6:a03:41b:cafe::14) by SJ0P220CA0027.outlook.office365.com (2603:10b6:a03:41b::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.17 via Frontend Transport; Tue, 15 Jul 2025 16:11:50 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:50 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:46 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 72055733-6196-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IcSy5+qoe9eJVrPDx5PVzPdqTLNISbzE76Prqc5eqr/GcFoDH5Vi+jDZDaqVHos2oIamAjthqi4GEMKOmT8vW5HEo75csz2i7JLhEma782ElC7KM/ped/k7Yb5zUiS2XP/HuYXQ/49i0HiQ7LnUR/M8H0N2puYDTXQut/N3xYR64dTd8F9DGirogZGfhnDERrRqUzTiXamON+yVTHx26nOjK5f6ZTy6oOjMLnl7vLCxpOvs0MUtlZgA758akMqbZYg0TrEqr79oZQfOcvhIiUtQa/u7ImL0mX19DT1nmWET+J10R72VGTSIWUk4tit7wvUeVup7VD/LG2phvwBZW3Q== 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=W09inC3TMIsxvKa6XhIrbrJCVtJ3wn72EVHr8n2Mdkg=; b=dtrftCZd2Nx7FyRrgg3ADn7m0FlNfvEbXjyzmGNjDQoFJIEdheaG3csVvJSDGapPOcw/6gkwIrkdYwNT0dxNtAChe2quihajVsZJftvMq+wem2gSdagiGVBJcshgFrHrm5iZ8ZfhfTXGSxw2omELbvDtFDPWgrVBhln+FIkG9rWzn//fFeKnSWjnT5pAYGXRYv3Uzd4yCF/y6Qc2VssyXCca+qtvIeZ3o2zuN76TrQXFsbevn99WvY8vx8YnBBKMiyHNQv1uma9Wws9+MqoQQaFU6TVThzHpscge2vd/3qL/m4xuScB9z3zwlXTyu63H/xJUbXx9kq9HzPKl6QcBHQ== 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=W09inC3TMIsxvKa6XhIrbrJCVtJ3wn72EVHr8n2Mdkg=; b=wBd/Xp8Yg3B3m85/OYOrwXSgZ9sW3266Ebv3lSvP3O6dKquU8ozupnJ91XOF9qUkdH0dRNNWMaXZIwDf197ljpWD6leHodhHhBB9r9kEfTxWyDp+GytV1j7Qw/WeQzKWGpYzQeKmo2pSf93BPkky8X7Hx7G6QAzGC4D2W0bqa+8= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , "Julien Grall" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , "Bertrand Marquis" , Volodymyr Babchuk , Shawn Anastasio , Alistair Francis , Bob Eshleman , "Connor Davis" , Oleksii Kurochko , =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Dario Faggioli , Juergen Gross , George Dunlap , "Daniel P. Smith" Subject: [PATCH v7 09/11] xen: Split HAS_DEVICE_TREE in two Date: Tue, 15 Jul 2025 18:11:04 +0200 Message-ID: <20250715161108.141126-10-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F1:EE_|CYXPR12MB9320:EE_ X-MS-Office365-Filtering-Correlation-Id: f039c830-2306-4243-7000-08ddc3ba4e71 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DWUAD9dLm2O8J2+r2BxFUwtlPrsRqmIgYesJSlEdcB9dWeKLHo+Cf+w3W/mV?= =?us-ascii?Q?zImCjdi7IuaIUDnphTf0zHrj3DLVhWmvVezwRzkrKYGYpChMhhG53mGLCovg?= =?us-ascii?Q?1ZcNTw7hXgj91JrB2P+cOt5J9PKKoPDThgopDKo05fBI8VzjfVQRj3xn9CUb?= =?us-ascii?Q?6pdED6BkzkRnZglwHhy0u2qF7nQR8fTb3QyGjA7KFsgEHM7nXH7eWVBfGVFy?= =?us-ascii?Q?RkMrwOz8FTcuVw8Yhx65qHB4CE3ySTb4ziNezsv0kTxAxfjnhVvdgAxb9du6?= =?us-ascii?Q?zYI9QBukw6yLz/G3rLbT8xmprzmglqMeg6roHBEXu8QL9/+amAu3FQWiJ3V9?= =?us-ascii?Q?CCI9UqRzCqfSHv3qVITsslLnwBn2Rw6ss33Aq5iM4OJjoakp+pa9Cxd0YuKm?= =?us-ascii?Q?XRdUOfV3Gdwji1t0rFQ14htpmYW/lESujkrv6bMTQs72m6IIVG6BYOALdK42?= =?us-ascii?Q?cd+wq1KH2IVzFgqccrhJHgVqSpU6nXdoBgW1sDmst/2Zj/oGEAHoy8RpI/0C?= =?us-ascii?Q?+l5fc9hAUQI0ftzECrL5tCuEftxF3VJ7x6J38z/Iuicfzs1QWZ1HifGyK9u5?= =?us-ascii?Q?heA7xOtviHLJvP2/derqGeBVwT/aS1W+dT08pfUVrxWmGGmVhGx4LVUfxvg3?= =?us-ascii?Q?Ua2fkTb13fsUiXbQ9InMkduoZ1IW3tPv43Sl7Je+o0tS8TLo4kbr+FOgGIqM?= =?us-ascii?Q?dDkoC4IaGIcZ6GiJDwRZBS9wCb23zcjhP2L6XD0YHNrjexU/sbhVN8RELsM0?= =?us-ascii?Q?AhKY+Csryk6Q/QHYFBzmSlcoWRO7pF3ClDTbM5i0+kQU7YHrEU5yBZRynR4d?= =?us-ascii?Q?tZC1VqVVf7S/k6vjaUS+E7CPtm8ADyqob+IW5niE8OqV0IlfYlFqXURjJS+5?= =?us-ascii?Q?29R3gR3ngvtO9wO8js5W9iaBo48Xwzy9JQGOFtyiES6ojn/kHrMCTmrUB/39?= =?us-ascii?Q?w2O0gclXhtdH1bcBKOEEEoJbBDENhGidCzPbg5LzGWFoZu/V3xYMRiUyachW?= =?us-ascii?Q?ub8fBVAaoM9EaOgjDO/AV3VJrkMmAq53wcwlVXfdOdERDR/klDuICTytWALv?= =?us-ascii?Q?sX5az0tow6L6YlC0UDVTCcR9GXOVI1Q1WfC2tYrWsV/u8H3AaMakj9G0CFkX?= =?us-ascii?Q?8ow8aA6b2WEVKqzaJWCFX3ikrniHhAb4WgW4sKRyugj+8qQ4KrYygm1uKX0s?= =?us-ascii?Q?g2briMxWLfTIbT97jaPB81T4ef8VVoQAs9dP/zvqxHVM6S3ktES4PZoS6gHM?= =?us-ascii?Q?805XI+S9v0up7/RtYc5YdpgBhtux6BColqy+EKqJo28lPP4xAP8np6EDiJPJ?= =?us-ascii?Q?a6VxUODdgUYw06m2/7TOD8WV1OCFYGLL/VLhyXnLS9H0JkqsStG31hjPOO3y?= =?us-ascii?Q?bqoydD+WMdwv7SRzoPSiVZbe/9CJklZQpwliD4ObyLUF8l7jwPh5WYuUYYD9?= =?us-ascii?Q?B0wF+dahk1IY1/OGSZPaF0+Kop5OFA3tuhsjY43UD1GZ9ZJzaqqVoyKaVnB1?= =?us-ascii?Q?d0FfPS2bC20ZnfJewR6eamwBU1MAKPRMjpNr?= 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)(1800799024)(7416014)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:50.2463 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f039c830-2306-4243-7000-08ddc3ba4e71 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: CO1PEPF000075F1.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9320 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752597758620116600 Content-Type: text/plain; charset="utf-8" Moving forward the idea is for there to be: 1. Basic DT support: used by dom0less/hyperlaunch. 2. Full DT support: used for device discovery and HW setup. Rename HAS_DEVICE_TREE to HAS_DEVICE_TREE_DISCOVERY to describe (2) and create a new DEVICE_TREE_PARSE to describe (1). Have DEVICE_TREE_PARSE selected by both HAS_DEVICE_TREE_DISCOVERY and DOM0LESS_BOOT. Add a dependency on STATIC_MEMORY for discovery, as it relies on the memory map itself being described on the DTB. Signed-off-by: Alejandro Vallejo Acked-by: Jan Beulich #iommu Acked-by: Daniel P. Smith --- xen/Kconfig.debug | 2 +- xen/arch/arm/Kconfig | 2 +- xen/arch/ppc/Kconfig | 2 +- xen/arch/riscv/Kconfig | 2 +- xen/common/Kconfig | 15 ++++++++++----- xen/common/Makefile | 4 ++-- xen/common/device.c | 4 ++-- xen/common/efi/boot.c | 2 +- xen/common/sched/Kconfig | 2 +- xen/drivers/char/ns16550.c | 6 +++--- xen/drivers/passthrough/Makefile | 2 +- xen/drivers/passthrough/iommu.c | 2 +- xen/include/asm-generic/device.h | 10 +++++----- xen/include/xen/iommu.h | 8 ++++---- xen/include/xsm/dummy.h | 4 ++-- xen/include/xsm/xsm.h | 12 ++++++------ xen/xsm/dummy.c | 2 +- xen/xsm/flask/hooks.c | 6 +++--- xen/xsm/xsm_core.c | 4 ++-- xen/xsm/xsm_policy.c | 4 ++-- 20 files changed, 50 insertions(+), 45 deletions(-) diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug index 38a134fa3b..d900d926c5 100644 --- a/xen/Kconfig.debug +++ b/xen/Kconfig.debug @@ -92,7 +92,7 @@ config VERBOSE_DEBUG =20 config DEVICE_TREE_DEBUG bool "Device tree debug messages" - depends on HAS_DEVICE_TREE + depends on DEVICE_TREE_PARSE help Device tree parsing and DOM0 device tree building messages are logged in the Xen ring buffer. diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 95a2cd3d00..ce15bf22d0 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -17,7 +17,7 @@ config ARM select FUNCTION_ALIGNMENT_4B select GENERIC_UART_INIT select HAS_ALTERNATIVE if HAS_VMAP - select HAS_DEVICE_TREE + select HAS_DEVICE_TREE_DISCOVERY select HAS_DOM0LESS select HAS_GRANT_CACHE_FLUSH if GRANT_TABLE select HAS_STACK_PROTECTOR diff --git a/xen/arch/ppc/Kconfig b/xen/arch/ppc/Kconfig index 917f5d53a6..5bedf6055e 100644 --- a/xen/arch/ppc/Kconfig +++ b/xen/arch/ppc/Kconfig @@ -1,7 +1,7 @@ config PPC def_bool y select FUNCTION_ALIGNMENT_4B - select HAS_DEVICE_TREE + select HAS_DEVICE_TREE_DISCOVERY select HAS_UBSAN select HAS_VMAP =20 diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig index 96bef90751..89876b3217 100644 --- a/xen/arch/riscv/Kconfig +++ b/xen/arch/riscv/Kconfig @@ -3,7 +3,7 @@ config RISCV select FUNCTION_ALIGNMENT_16B select GENERIC_BUG_FRAME select GENERIC_UART_INIT - select HAS_DEVICE_TREE + select HAS_DEVICE_TREE_DISCOVERY select HAS_PMAP select HAS_UBSAN select HAS_VMAP diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 65f07289dd..fb3845c197 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -12,9 +12,14 @@ config CORE_PARKING bool depends on NR_CPUS > 1 =20 +config DEVICE_TREE_PARSE + bool + select LIBFDT + config DOM0LESS_BOOT bool "Dom0less boot support" if EXPERT - depends on HAS_DOM0LESS && HAS_DEVICE_TREE && DOMAIN_BUILD_HELPERS + depends on HAS_DOM0LESS && DOMAIN_BUILD_HELPERS + select DEVICE_TREE_PARSE default y help Dom0less boot support enables Xen to create and start domU guests during @@ -85,9 +90,9 @@ config HAS_ALTERNATIVE config HAS_COMPAT bool =20 -config HAS_DEVICE_TREE +config HAS_DEVICE_TREE_DISCOVERY bool - select LIBFDT + select DEVICE_TREE_PARSE =20 config HAS_DOM0LESS bool @@ -154,7 +159,7 @@ config NUMA =20 config STATIC_MEMORY bool "Static Allocation Support (UNSUPPORTED)" if UNSUPPORTED - depends on DOM0LESS_BOOT + depends on DOM0LESS_BOOT && HAS_DEVICE_TREE_DISCOVERY help Static Allocation refers to system or sub-system(domains) for which memory areas are pre-defined by configuration using physical @@ -553,7 +558,7 @@ config DOM0_MEM =20 config DTB_FILE string "Absolute path to device tree blob" - depends on HAS_DEVICE_TREE + depends on HAS_DEVICE_TREE_DISCOVERY help When using a bootloader that has no device tree support or when there is no bootloader at all, use this option to specify the absolute path diff --git a/xen/common/Makefile b/xen/common/Makefile index 98f0873056..d541fbcf49 100644 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -6,9 +6,9 @@ obj-$(CONFIG_HYPFS_CONFIG) +=3D config_data.o obj-$(CONFIG_CORE_PARKING) +=3D core_parking.o obj-y +=3D cpu.o obj-$(CONFIG_DEBUG_TRACE) +=3D debugtrace.o -obj-$(CONFIG_HAS_DEVICE_TREE) +=3D device.o +obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D device.o obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D device.o -obj-$(CONFIG_HAS_DEVICE_TREE) +=3D device-tree/ +obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D device-tree/ obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o obj-y +=3D domain.o obj-y +=3D event_2l.o diff --git a/xen/common/device.c b/xen/common/device.c index 33e0d58f2f..0c0afad49f 100644 --- a/xen/common/device.c +++ b/xen/common/device.c @@ -11,7 +11,7 @@ =20 #include =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY =20 extern const struct device_desc _sdevice[], _edevice[]; =20 @@ -56,7 +56,7 @@ enum device_class device_get_class(const struct dt_device= _node *dev) return DEVICE_UNKNOWN; } =20 -#endif +#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */ =20 #ifdef CONFIG_ACPI =20 diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c index 9306dc8953..31b4039049 100644 --- a/xen/common/efi/boot.c +++ b/xen/common/efi/boot.c @@ -623,7 +623,7 @@ static int __init __maybe_unused set_color(uint32_t mas= k, int bpp, return max(*pos + *sz, bpp); } =20 -#ifndef CONFIG_HAS_DEVICE_TREE +#ifndef CONFIG_HAS_DEVICE_TREE_DISCOVERY static int __init efi_check_dt_boot(const EFI_LOADED_IMAGE *loaded_image) { return 0; diff --git a/xen/common/sched/Kconfig b/xen/common/sched/Kconfig index 18ca1ce7ab..1fb622e6cf 100644 --- a/xen/common/sched/Kconfig +++ b/xen/common/sched/Kconfig @@ -67,7 +67,7 @@ endmenu =20 config BOOT_TIME_CPUPOOLS bool "Create cpupools at boot time" - depends on HAS_DEVICE_TREE + depends on HAS_DEVICE_TREE_DISCOVERY help Creates cpupools during boot time and assigns cpus to them. Cpupools options can be specified in the device tree. diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index 6b4fb4ad31..c1c08b235e 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -34,7 +34,7 @@ #include #include #include -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY #include #endif #ifdef CONFIG_X86 @@ -1766,7 +1766,7 @@ void __init ns16550_init(int index, struct ns16550_de= faults *defaults) =20 #endif /* CONFIG_X86 */ =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY static int __init ns16550_uart_dt_init(struct dt_device_node *dev, const void *data) { @@ -1845,7 +1845,7 @@ DT_DEVICE_START(ns16550, "NS16550 UART", DEVICE_SERIA= L) .init =3D ns16550_uart_dt_init, DT_DEVICE_END =20 -#endif /* HAS_DEVICE_TREE */ +#endif /* HAS_DEVICE_TREE_DISCOVERY */ =20 #if defined(CONFIG_ACPI) && defined(CONFIG_ARM) #include diff --git a/xen/drivers/passthrough/Makefile b/xen/drivers/passthrough/Mak= efile index a1621540b7..eb4aeafb42 100644 --- a/xen/drivers/passthrough/Makefile +++ b/xen/drivers/passthrough/Makefile @@ -5,6 +5,6 @@ obj-$(CONFIG_ARM) +=3D arm/ =20 obj-y +=3D iommu.o obj-$(CONFIG_HAS_PCI) +=3D pci.o -obj-$(CONFIG_HAS_DEVICE_TREE) +=3D device_tree.o +obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D device_tree.o obj-$(CONFIG_HAS_PCI) +=3D ats.o obj-$(CONFIG_HAS_PCI_MSI) +=3D msi.o diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iomm= u.c index 16aad86973..c9425d6971 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -638,7 +638,7 @@ int iommu_do_domctl( ret =3D iommu_do_pci_domctl(domctl, d, u_domctl); #endif =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY if ( ret =3D=3D -ENODEV ) ret =3D iommu_do_dt_domctl(domctl, d, u_domctl); #endif diff --git a/xen/include/asm-generic/device.h b/xen/include/asm-generic/dev= ice.h index 1acd1ba1d8..3bd97e33c5 100644 --- a/xen/include/asm-generic/device.h +++ b/xen/include/asm-generic/device.h @@ -6,7 +6,7 @@ =20 enum device_type { -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY DEV_DT, #endif DEV_PCI @@ -26,7 +26,7 @@ enum device_class struct device { enum device_type type; -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY struct dt_device_node *of_node; /* Used by drivers imported from Linux= */ #endif #ifdef CONFIG_HAS_PASSTHROUGH @@ -37,7 +37,7 @@ struct device =20 typedef struct device device_t; =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY =20 #include =20 @@ -87,9 +87,9 @@ struct device_desc { int (*init)(struct dt_device_node *dev, const void *data); }; =20 -#else /* !CONFIG_HAS_DEVICE_TREE */ +#else /* !CONFIG_HAS_DEVICE_TREE_DISCOVERY */ #define dev_is_dt(dev) ((void)(dev), false) -#endif /* CONFIG_HAS_DEVICE_TREE */ +#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */ =20 #define dev_is_pci(dev) ((dev)->type =3D=3D DEV_PCI) =20 diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h index 57f338e2a0..37c4a1dc82 100644 --- a/xen/include/xen/iommu.h +++ b/xen/include/xen/iommu.h @@ -232,7 +232,7 @@ struct msi_msg; #define PT_IRQ_TIME_OUT MILLISECS(8) #endif /* HAS_PCI */ =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY #include =20 #ifdef CONFIG_HAS_PASSTHROUGH @@ -309,7 +309,7 @@ static inline int iommu_add_dt_pci_sideband_ids(struct = pci_dev *pdev) =20 #endif /* HAS_PASSTHROUGH */ =20 -#endif /* HAS_DEVICE_TREE */ +#endif /* HAS_DEVICE_TREE_DISCOVERY */ =20 struct page_info; =20 @@ -376,7 +376,7 @@ struct iommu_ops { int (*get_reserved_device_memory)(iommu_grdm_t *func, void *ctxt); void (*dump_page_tables)(struct domain *d); =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY /* * All IOMMU drivers which support generic IOMMU DT bindings should use * this callback. This is a way for the framework to provide the driver @@ -424,7 +424,7 @@ struct domain_iommu { /* iommu_ops */ const struct iommu_ops *platform_ops; =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY /* List of DT devices assigned to this domain */ struct list_head dt_devices; #endif diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h index 9227205fcd..12792c3a43 100644 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -423,7 +423,7 @@ static XSM_INLINE int cf_check xsm_deassign_device( =20 #endif /* HAS_PASSTHROUGH && HAS_PCI */ =20 -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE) +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISC= OVERY) static XSM_INLINE int cf_check xsm_assign_dtdevice( XSM_DEFAULT_ARG struct domain *d, const char *dtpath) { @@ -438,7 +438,7 @@ static XSM_INLINE int cf_check xsm_deassign_dtdevice( return xsm_default_action(action, current->domain, d); } =20 -#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE */ +#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */ =20 static XSM_INLINE int cf_check xsm_resource_plug_core(XSM_DEFAULT_VOID) { diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h index 24acc16125..abeb4b04ad 100644 --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -125,7 +125,7 @@ struct xsm_ops { int (*deassign_device)(struct domain *d, uint32_t machine_bdf); #endif =20 -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE) +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISC= OVERY) int (*assign_dtdevice)(struct domain *d, const char *dtpath); int (*deassign_dtdevice)(struct domain *d, const char *dtpath); #endif @@ -535,7 +535,7 @@ static inline int xsm_deassign_device( } #endif /* HAS_PASSTHROUGH && HAS_PCI) */ =20 -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE) +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISC= OVERY) static inline int xsm_assign_dtdevice( xsm_default_t def, struct domain *d, const char *dtpath) { @@ -548,7 +548,7 @@ static inline int xsm_deassign_dtdevice( return alternative_call(xsm_ops.deassign_dtdevice, d, dtpath); } =20 -#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE */ +#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */ =20 static inline int xsm_resource_plug_pci(xsm_default_t def, uint32_t machin= e_bdf) { @@ -789,7 +789,7 @@ int xsm_multiboot_policy_init( struct boot_info *bi, void **policy_buffer, size_t *policy_size); #endif =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY /* * Initialize XSM * @@ -839,7 +839,7 @@ static inline int xsm_multiboot_init(struct boot_info *= bi) } #endif =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY static inline int xsm_dt_init(void) { return 0; @@ -849,7 +849,7 @@ static inline bool has_xsm_magic(paddr_t start) { return false; } -#endif /* CONFIG_HAS_DEVICE_TREE */ +#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */ =20 #endif /* CONFIG_XSM */ =20 diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c index 93fbfc43cc..7f67683839 100644 --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -81,7 +81,7 @@ static const struct xsm_ops __initconst_cf_clobber dummy_= ops =3D { .deassign_device =3D xsm_deassign_device, #endif =20 -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE) +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISC= OVERY) .assign_dtdevice =3D xsm_assign_dtdevice, .deassign_dtdevice =3D xsm_deassign_dtdevice, #endif diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index 6a53487ea4..78bad6e56b 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1456,7 +1456,7 @@ static int cf_check flask_deassign_device( } #endif /* HAS_PASSTHROUGH && HAS_PCI */ =20 -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE) +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISC= OVERY) static int flask_test_assign_dtdevice(const char *dtpath) { uint32_t rsid; @@ -1517,7 +1517,7 @@ static int cf_check flask_deassign_dtdevice( return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_= DEVICE, NULL); } -#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE */ +#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */ =20 static int cf_check flask_platform_op(uint32_t op) { @@ -1981,7 +1981,7 @@ static const struct xsm_ops __initconst_cf_clobber fl= ask_ops =3D { .deassign_device =3D flask_deassign_device, #endif =20 -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE) +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISC= OVERY) .assign_dtdevice =3D flask_assign_dtdevice, .deassign_dtdevice =3D flask_deassign_dtdevice, #endif diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c index f255fb63bf..b7e864a874 100644 --- a/xen/xsm/xsm_core.c +++ b/xen/xsm/xsm_core.c @@ -25,7 +25,7 @@ #include #endif =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY #include #endif =20 @@ -166,7 +166,7 @@ int __init xsm_multiboot_init(struct boot_info *bi) } #endif =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY int __init xsm_dt_init(void) { int ret =3D 0; diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c index 1b4030edb4..3f04375347 100644 --- a/xen/xsm/xsm_policy.c +++ b/xen/xsm/xsm_policy.c @@ -24,7 +24,7 @@ #include #endif #include -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY # include # include #endif @@ -65,7 +65,7 @@ int __init xsm_multiboot_policy_init( } #endif =20 -#ifdef CONFIG_HAS_DEVICE_TREE +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY int __init xsm_dt_policy_init(void **policy_buffer, size_t *policy_size) { struct boot_module *mod =3D boot_module_find_by_kind(BOOTMOD_XSM); --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752595941; cv=pass; d=zohomail.com; s=zohoarc; b=Z7FLmg/ZNlAJ8zxe1ug3gpDTZhKYWazNXYE+Pk4tWVydptyqKZQc1fAJGdQOsRDQsMo+inXpEBR+JgHcfHgYVb0LNuA7Ff+DdZ52ZzFqMsILb2oUWapOS6LMjKWGL8UBrdl+08XT5JWvE5z8wGrbpvy+GwmOSM7il0z4Ir5mMzw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752595941; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=olMgXBZZBVPXG3tpGWy4AbjtlnK0U3v7Xn2F33nMav0=; b=IVY7K5hENQpuCj5lEp9hO9jZzvm93KRvF5t6bZZ7xXev5mqkI/QBAVwM5gDHYfkdgilv/r+GVuFBodpv5y9/ZhL8P8TyVX/2m5XhqdU0gG8kjY+JQdp5iVtiBhygLOls6GwgUNySYSXZg9dInKSMk4wmRsBU/trUnCAEjvQy2jY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752595941506152.65940386580712; Tue, 15 Jul 2025 09:12:21 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044544.1414707 (Exim 4.92) (envelope-from ) id 1ubiG9-0000hN-MX; Tue, 15 Jul 2025 16:12:01 +0000 Received: by outflank-mailman (output) from mailman id 1044544.1414707; Tue, 15 Jul 2025 16:12: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 1ubiG9-0000hA-Hr; Tue, 15 Jul 2025 16:12:01 +0000 Received: by outflank-mailman (input) for mailman id 1044544; Tue, 15 Jul 2025 16:12:00 +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 1ubiG8-0005t5-AD for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:12:00 +0000 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on20620.outbound.protection.outlook.com [2a01:111:f403:2413::620]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 6da09987-6196-11f0-b894-0df219b8e170; Tue, 15 Jul 2025 18:11:57 +0200 (CEST) Received: from MW4P220CA0007.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::12) by PH7PR12MB6466.namprd12.prod.outlook.com (2603:10b6:510:1f6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.33; Tue, 15 Jul 2025 16:11:52 +0000 Received: from CO1PEPF000075F3.namprd03.prod.outlook.com (2603:10b6:303:115:cafe::48) by MW4P220CA0007.outlook.office365.com (2603:10b6:303:115::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8922.30 via Frontend Transport; Tue, 15 Jul 2025 16:11:52 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F3.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:51 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:50 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 6da09987-6196-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hEL4YFL5w4DgN+h+HjCjMDUxvHBL8OViR8P5OGH5jWz6pEDn+jZR6krSHTGY+FI349EWpwMm2+vFhGMMXNxmmTd7im91s2d5xiH8Dud52LnkI1jDKY/5iEYwIf03g8eDm4+En8qNZT8eP6fj7hNGOg2ofoEiDXdYhFCt/idHBH6GXrOtoyjC0A7zEDXYkiwaAPASJrSPVYAYWFgts6H8NC60JEgWINUgKQfUCXT+TUdpyI0142kCM0NYK0crjn4bLe/7dQ4ATzZ0C9LFNsD9KV2zH67TZUYx8IblXC1ypQORrOGakN9YjTJIG/Y8gBs51Rtz79A4SmSwfX1Sw/62XA== 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=olMgXBZZBVPXG3tpGWy4AbjtlnK0U3v7Xn2F33nMav0=; b=S45iLuZOWzq1+vHsT17iRYxJgPk8LM1vAI6G+b31LM3055/JLeErJDq8KwsUY+YLRf0E/jy2PtzQjcSJneQCWbcLcrm6yLTAfN0HoEyeRuFjuZrphEZKwpz870juETd6wyjyzQEl6qw0K+BGObk2WZYkULyfwTkr9INmXPa/J/tqHztaGbPrq9Xni8wE5THm3zJSCzd3Na0Y9sKJH6MNZGV6MVezi6wOVvS916K48jtJ2+EAn7xKB3rx6mViWCxI2N7Row8j7lHG4fWIRV4OUXrpamGI17p/cuxQEk2SRWJdXQQRdxOt2QqFu/LxOIgsN2i6vnIZlq5YPdTaf4737g== 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=olMgXBZZBVPXG3tpGWy4AbjtlnK0U3v7Xn2F33nMav0=; b=dcBs9EJpJztG7F0iWGrcFdMsm2Xxqk0mGwlrSRPfb48kYLjIgE/Di/Zdh8SD2q7nm/wsNHDDAfzS8CO+NA1QE/ChukUrfUzVLQ9S8SUVMpdajaIDuZwsNbRPNUpXKRDfiHBuA1aCHYpGtwZfblsaY2tZmHdjrus1ihd5cUwPhjg= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Daniel P. Smith" Subject: [PATCH v7 10/11] xen/dt: ifdef out DEV_DT-related bits from device_tree.{c,h} Date: Tue, 15 Jul 2025 18:11:05 +0200 Message-ID: <20250715161108.141126-11-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F3:EE_|PH7PR12MB6466:EE_ X-MS-Office365-Filtering-Correlation-Id: 152c03d7-7e9d-466d-7eec-08ddc3ba4f77 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: =?us-ascii?Q?qO50V0t30OPf57ImkchnWsnSiCrT9KUSdJe5s85Ar5yAbdJprMbSjNjihWX4?= =?us-ascii?Q?euQadtoVN/dHvcIgRYKrKdJcE/lRqkgjO9P+L6BqkEToxLxVxtVOTeVcEPOV?= =?us-ascii?Q?XXdm0ytF2GoDsEZuamkidzwKYLWOSF6erDFyGOYLUSu9CxJY1KDEG0Yyhr5Y?= =?us-ascii?Q?2Fa/MYo+pI4XK0Ur5OX2Sd1cSXnw1hljpvC5bCg++YYMLxOPdZrCNv7530Gn?= =?us-ascii?Q?pLyKdRtZcNA+eqhMxLYP9ODzYbuomjC7r7FNEUhkTZHjB1jSSKZQ0RWtWNiC?= =?us-ascii?Q?yAa4V8Bq1iLNBeTkG+mVcoG5i8lZMB1/t5i/8AQ544Blsz4AznLCTnUisY3Z?= =?us-ascii?Q?XfSW69Xb37sn4HKcSxQz2plYDOfYr7DdIrXjehHCS/aN2vuUHKeR/BC3obFk?= =?us-ascii?Q?ZGXWpKbMYcSg5iFBs47ifhVDuBWYw1JgCL/Rh/fxLRciBddvbYmwuLgRwg5f?= =?us-ascii?Q?jT0Pa0qxcdI2UQvSZ8cgRkHuGyk0nxtQPeaSRFxpFI/YTuWlmwh6+ZWhMMVd?= =?us-ascii?Q?/ol9jhyqQqLSeaL0m9xT8q7eMEpVbRbXsghlENQnQ4/TKlNMWMyxJ3CFNBvt?= =?us-ascii?Q?aUtQ/fjTHY9UnbtccFtGqb5/TTw+M9rdVItPRk0AY/I/zmV52en4moTxvT1a?= =?us-ascii?Q?2X5mFYDF/d79Tp3pCYYk1o2q/bbr6dlihwFHRNVVlSkG8FOwsPYKYSSFOOWl?= =?us-ascii?Q?38zJLg8DSUty7yJmvBKyszt8jfV/fFfme2Rfz0jQctyUrefAhkbji0nb9WK5?= =?us-ascii?Q?7yCf8Q927rgnlVFvf1fvKbYifJ+VY6PnRGA8S03HuKJK52Z8y5WtSukBCRhe?= =?us-ascii?Q?SzM1x4A/Qbr8ydlrs7pFPQ7POb/H67d+TLPA2hsEMItp/ymrbUhk2/L0WqYX?= =?us-ascii?Q?DjIUXKRo5piKPqomM0gjet9SQZozx4W7CCpcdj8fCQwdl8T2C7/PFDMbgsbw?= =?us-ascii?Q?7EhM9TXtj43aOknLXVQc2QZM0qo2uud24DgEj68XyV2ewUyQII5kOddbcMXZ?= =?us-ascii?Q?oG/UZyYNkc4gwHXcI0h9Y1Vp28ErPPnr+awZEsZIytge5hrtC4oBwrYHLeZ8?= =?us-ascii?Q?5vwWo6RYpJxjlqkZVUXuAJCeBcJxBwT80shFXs/cC0VSeVlHrjcA/h5iBccQ?= =?us-ascii?Q?UWoYuSc3HeKsnrMsw4fALesd+BW/hfQVBgS36dbIYF+BI11zzkVrEegdpPFj?= =?us-ascii?Q?VlQCY9KyEXhzU5Y9s7jV0TEAdLkPLXuiwLpX2HSoXasjMtu8NO1Ogw2h1O7y?= =?us-ascii?Q?J0fuEnazc9/AIfrMF02IPUnCoSt9zePjIrPqwliov0tzoLBEu3yVDXLJxI3h?= =?us-ascii?Q?x9EyE9PGtQe+Yhn/R8m91eGRyq7T5ngRm0oLFmX+77PjgRnT8F1Zod8z/UJe?= =?us-ascii?Q?DrWsRy1aqI9Yf0A2+Oog6uAn6qvfjXHOprGLw5IYLa+bcQaI9Tm9RLIcqWnL?= =?us-ascii?Q?qNDq69SAvYc+VTDEfxkoU6qmNBY9ARcO2/IZxDlou8tvse/+X81EWoZBugc5?= =?us-ascii?Q?06d8tkLRfzdqVzXNax9NJmZcYuiWzb3LMiCB?= 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: 15 Jul 2025 16:11:51.9628 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 152c03d7-7e9d-466d-7eec-08ddc3ba4f77 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: CO1PEPF000075F3.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6466 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752595942781116600 Content-Type: text/plain; charset="utf-8" Architectures that don't discover devices via DT may skip anything to do with device_t during the DT unflattening phase. Make device-tree.c stop requiring CONFIG_HAS_DEVICE_TREE_DISCOVERY so it may function with CONFIG_DEVICE_TREE_PARSE alone. This allows CONFIG_DEVICE_TREE_PARSE to unflatten a DT ignoring its devices if CONFIG_HAS_DEVICE_TREE_DISCOVERY is not selected. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini --- xen/common/device-tree/device-tree.c | 2 ++ xen/include/xen/device_tree.h | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/= device-tree.c index 4ebdb2e52e..84daa3f0ed 100644 --- a/xen/common/device-tree/device-tree.c +++ b/xen/common/device-tree/device-tree.c @@ -2030,9 +2030,11 @@ static unsigned long unflatten_dt_node(const void *f= dt, ((char *)pp->value)[sz - 1] =3D 0; dt_dprintk("fixed up name for %s -> %s\n", pathp, (char *)pp->value); +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY /* Generic device initialization */ np->dev.type =3D DEV_DT; np->dev.of_node =3D np; +#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */ } } if ( allnextpp ) diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h index 8a39a60c54..06d7643622 100644 --- a/xen/include/xen/device_tree.h +++ b/xen/include/xen/device_tree.h @@ -108,9 +108,12 @@ struct dt_device_node { */ struct list_head domain_list; =20 +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY struct device dev; +#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */ }; =20 +#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY #define dt_to_dev(dt_node) (&(dt_node)->dev) =20 static inline struct dt_device_node *dev_to_dt(struct device *dev) @@ -119,6 +122,7 @@ static inline struct dt_device_node *dev_to_dt(struct d= evice *dev) =20 return container_of(dev, struct dt_device_node, dev); } +#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */ =20 #define MAX_PHANDLE_ARGS 16 struct dt_phandle_args { --=20 2.43.0 From nobody Thu Oct 30 22:58:56 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1752597210; cv=pass; d=zohomail.com; s=zohoarc; b=U24WnMZigscHWuOw+JEKxaLihHNaanpjGnIk06OQwyetaMB68XezLIwPN35VsAN49D/RFvpjbK7KZSsuxOXvFzs521Y1DmIjkYPRBDoJdl7oZCX9MSqfZuEUuBtPKpWebls2JA6Gthpb6Wbyqsy6cOIKAlK3e4wYUaKTXbqjvaQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752597210; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oNVDBZczNBRoqWRYyqps8aS4iDKHYKUWvTxtQixG1P8=; b=aQwdqXy3vGcawbYHBb8wcC+mXinDhv00ObC+m/+5Vg2MEe3NL3PUUG4uxV/76jIVdQbZGQmF723jYogEzhoATcu9NI7RBIW3ShzklxJAZ9LoHiZKmjCook2EYhZM3u4CnPCee2J14BI5FPTyE1Z/G6pi1BCh9SXIM5wYJqPXN+w= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1752597210379947.8563857534509; Tue, 15 Jul 2025 09:33:30 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1044597.1414717 (Exim 4.92) (envelope-from ) id 1ubiae-0006Go-G0; Tue, 15 Jul 2025 16:33:12 +0000 Received: by outflank-mailman (output) from mailman id 1044597.1414717; Tue, 15 Jul 2025 16:33:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ubiae-0006Gh-DB; Tue, 15 Jul 2025 16:33:12 +0000 Received: by outflank-mailman (input) for mailman id 1044597; Tue, 15 Jul 2025 16:33:11 +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 1ubiG9-0005t5-AI for xen-devel@lists.xenproject.org; Tue, 15 Jul 2025 16:12:01 +0000 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2060c.outbound.protection.outlook.com [2a01:111:f403:2414::60c]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 6df8c794-6196-11f0-b894-0df219b8e170; Tue, 15 Jul 2025 18:11:57 +0200 (CEST) Received: from MW4P220CA0017.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::22) by IA4PR12MB9785.namprd12.prod.outlook.com (2603:10b6:208:55b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.32; Tue, 15 Jul 2025 16:11:55 +0000 Received: from CO1PEPF000075F3.namprd03.prod.outlook.com (2603:10b6:303:115:cafe::64) by MW4P220CA0017.outlook.office365.com (2603:10b6:303:115::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8922.32 via Frontend Transport; Tue, 15 Jul 2025 16:11:54 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1PEPF000075F3.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Tue, 15 Jul 2025 16:11:54 +0000 Received: from xcbagarciav01.xilinx.com (10.180.168.240) 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, 15 Jul 2025 11:11:51 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 6df8c794-6196-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JO51kvlWCaVkpvXGx54RL20BgWtLwTNCcLfLV4eaD66nAF4swfeSsaCttBv0Vc64UMYiZ77S8LejbBdpKBuNAcAsfeZLhC5Tubjt1zdUzkzr/yMr5Gy96HWks+/X/fijNuWlAP1ItniclXM98jW4Ng0XGjHN+Mt4MGC2xPCwoQfXRVLagNdj4WcMG2XmYKhEEVNr0mzA3gwPQ6cdWXiz5+mQmZ3PLcyg4diPrkwg4Rt1AtNCK+1X04ii2JCfLRjHhkT3XLbxdnIXhCVjFzVd4A6DDKIGrUVakL5PqKiVRqfqXdajAOVI8Frzmt1ACigqZeurS5wgP3PWjTpXToLg/A== 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=oNVDBZczNBRoqWRYyqps8aS4iDKHYKUWvTxtQixG1P8=; b=B8Xoeuo1qdNG1W7jDIZ1dEKi9VJWVC9G6Iag11jOE07zMKF2Td691iiLnUVdg/Bzjsgplhc/4+uSaERV6BItRpKGzfqv5eb6pftN6i+w+Aw2YzVgA+zCGDShM6pXGtyLgYMvGcekn7r5uOx9fpigdpyr72KWojku0IdYJ1E6YgA5ci2VszB0nJOKkYwCAQiM4N9FIrnzxlUWgZuJAU63VdzlE7mAOYtVc9vFDb5JNlGb+UbnPtP/IvfVquQLGzQPqTiNYh28UDdgJaxTAyBoJCOVIjFEi3ZE9d2X+zxVo4JesV5gLKCVV68BNB0Dre1SZ2PaL8vkGdi08s0ki5HC7A== 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=oNVDBZczNBRoqWRYyqps8aS4iDKHYKUWvTxtQixG1P8=; b=emaEWjXImhrWSrx48C8OYxB4lt3kepzEck8+PtDSpilSNMVeG0x7fpxjpPAiQo/yNa27E2n7zYN2nheKu5NcxCkeTI0vM9Dj8/9o+Ee1ZVXtsiIdo47WrR0dikD+3PX+xfIQgoqssdvhhmxxh9fIvp62XjK2b/Hd+Nxwzp66CC0= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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: Alejandro Vallejo To: CC: Alejandro Vallejo , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , "Julien Grall" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , "Bertrand Marquis" , "Daniel P. Smith" Subject: [PATCH v7 11/11] xen/dt: Allow CONFIG_DEVICE_TREE_PARSE to include device-tree/ Date: Tue, 15 Jul 2025 18:11:06 +0200 Message-ID: <20250715161108.141126-12-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> References: <20250715161108.141126-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F3:EE_|IA4PR12MB9785:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b5627f7-e4e7-429e-44dd-08ddc3ba50c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LRPERG+KV77EjDKnsJwuyikELSJhzsrwIW1SrjkrcskLjs8bXx32Gbq+u+3d?= =?us-ascii?Q?UEaHFX8Dv2t/eGi2YNO6hkwIBKvH1XSMY5oQSuCin1EDZvmxI1+L3srb7HsM?= =?us-ascii?Q?z+BbqLFJSJVMy+8mQe9mxqrE2tl1HD8MMGG041yIEbS1LbLkRYoedRzcEXrI?= =?us-ascii?Q?Y8vDPmETR52ZoLG0AYP26O4v6EfKajvNbmUMnwzodm03P6W42euU06+ylxFe?= =?us-ascii?Q?qjlT1GygpTWR0sd6LkqJpli2Wut9BmhrVkGip/hYypZ72zYu9QlDcJry+TOX?= =?us-ascii?Q?LFoKpo8cu4+0+Bx30dbrBFXTaPefh/JcGzIk3i7NkHuPijR5LIOgBQJhurSP?= =?us-ascii?Q?ixBOOzz/YkXvKyLyiknKoL2NgQIFy+un1Hp7RC3hyECpWB8HgemuNZdrLPaa?= =?us-ascii?Q?Uiw+bEL28JRyitG+gd5IBViWGZk4GUtDYXr2eir/y4qNiOO+NDpGgQP7u02U?= =?us-ascii?Q?XodG7mzVJ4bYhQ5J0x791xmQ9rgxggpjv5qXFi6XUN5/uaZ15damZ174S/Xn?= =?us-ascii?Q?Pcw66cCGcwHd0CYWrGqCisCCK5azWzvBK8VDsC37ZOWO53DrhKUhg4iAMG3X?= =?us-ascii?Q?W0MU2ygb5NybTaB1a6D0x0Mv67PYxH+1QU+PXtFLP2XUHBVADUVSPEsay76F?= =?us-ascii?Q?5S92cUYosbm7pFKK6SdgTyGlhEwKlTAtCDRIIxVeLzJ0BVaz+X5Xm3KPlJTD?= =?us-ascii?Q?328QzUFEQ+qiRpEPqnr8pvtcmWCe7cK+yO+T6cFL1PhKpFbUDBsNOcGlcFjU?= =?us-ascii?Q?v+6d92oQEsBS6k/xx7LNZ27ppU98oc0gMt5/Dvygoj6jKrrvQN59YWDWQ4Tp?= =?us-ascii?Q?tzuq4deCRXcB+t6tnUIAKgmt15nhC6eGx4kyvZnpS7o05G/+qc1nFKph/vX2?= =?us-ascii?Q?+bvB2l/8iSgw4q/oN3qkvapSJdJU36D9okKtipE6QZ71ZIlXM/iAhzZN5/8f?= =?us-ascii?Q?uT5p7nECpkfFJ+MeEJFwdrVEPMjus4TwU9UgYdgwk1T+PHaHy0eQnpTzhqNg?= =?us-ascii?Q?W3+2GoNhcZ9GvRFPzoxD6JaK6GsyUbTJeb6jJk7IZtxvG+7MhvVQQvTClUL7?= =?us-ascii?Q?7TUgEguKFiBGrZspQ0vPhS4ucDzKKCaZSD1LHhlpsoOO0cAOb9grW4WBBlot?= =?us-ascii?Q?jeoHsVI8JHQ18OFSn/YQueU6A+zcg2gt262iAXX4BdZaVOXr5UeqERxUGv1X?= =?us-ascii?Q?UQT4r8TJ0jcv3kZoC2y41JojkrCB8meThF38iFjgY52CawVoN9RObiasVmgj?= =?us-ascii?Q?u3hCFrrSO1UEMnMLHhqk6Ti/5LuHUoCLJlGADXqSwLcoy86Q1+FTZ3z1o4VV?= =?us-ascii?Q?Fk6eKUgWhxa6YWqMI30Kow+W3wNAvAO81JdETKf/jGGwmYoViXbhkUsj6npD?= =?us-ascii?Q?gUIRoesqedhLLWjqclnT/QPWBuESnM9qOZ8vQQ6T5PiPvZcVNeOo+Z2ggyfO?= =?us-ascii?Q?0wP2pGgrYiSjKBv147ORS+CvbFTZ9B5CT8AHqmrjkKllciqoSvhidOjaoZ7s?= =?us-ascii?Q?ATzNn/4Q9w9GCBASrxjcLCMFXSPpsreIuinn?= 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)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2025 16:11:54.1620 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8b5627f7-e4e7-429e-44dd-08ddc3ba50c7 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: CO1PEPF000075F3.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9785 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1752597211881116600 Content-Type: text/plain; charset="utf-8" This allows bootfdt.c and device-tree.c to be usable without CONFIG_HAS_DEVICE_TREE_DISCOVERY. Gate everything else on CONFIG_HAS_DEVICE_TREE_DISCOVERY. Signed-off-by: Alejandro Vallejo --- xen/common/Makefile | 2 +- xen/common/device-tree/Makefile | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/xen/common/Makefile b/xen/common/Makefile index d541fbcf49..265468d751 100644 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -8,7 +8,7 @@ obj-y +=3D cpu.o obj-$(CONFIG_DEBUG_TRACE) +=3D debugtrace.o obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D device.o obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D device.o -obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D device-tree/ +obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/ obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o obj-y +=3D domain.o obj-y +=3D event_2l.o diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makef= ile index 8abc069c4b..1459e63c85 100644 --- a/xen/common/device-tree/Makefile +++ b/xen/common/device-tree/Makefile @@ -1,11 +1,13 @@ obj-y +=3D bootfdt.init.o obj-y +=3D bootinfo-fdt.init.o obj-y +=3D bootinfo.init.o +obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D bootinfo-fdt.init.o +obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D bootinfo.init.o obj-y +=3D device-tree.o obj-$(CONFIG_DOMAIN_BUILD_HELPERS) +=3D domain-build.init.o obj-$(CONFIG_DOM0LESS_BOOT) +=3D dom0less-build.init.o obj-$(CONFIG_OVERLAY_DTB) +=3D dt-overlay.o -obj-y +=3D intc.o +obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D intc.o obj-$(CONFIG_DOMAIN_BUILD_HELPERS) +=3D kernel.o obj-$(CONFIG_STATIC_EVTCHN) +=3D static-evtchn.init.o obj-$(CONFIG_STATIC_MEMORY) +=3D static-memory.init.o --=20 2.43.0