From nobody Thu Oct 30 22:53:22 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=1753142784; cv=pass; d=zohomail.com; s=zohoarc; b=C+EyWP1wfuvvB+EqpsXGTqiLvZffVq+qoopHhReq+TIPD5lcpDfrPK12jfrlf9yDxYmzwKN/VrD5VD3B7SlmBaOY7lHPN418MNlLWrGZ3r7RgFIe7SR6IVc80G790BGIe+NsWvYLC9ZljtcxlbEpa66PqUOEoU/Zz9mJH7bYPIk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142784; 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=oB8ng73IVgXOg3FXbInmoFgeYPdwwPuZj8D4d+Tey1s=; b=nRgkZ+lWYKpzvmOve0ZN87JmzEuQfNUsAwpBj9pCoQbIroyb2Ao4dG3M3Tr2vbYVIPJ3ZMl7jT/RJX0hJbri881jCOz8Eo5HhLTFoFoQRqzfOs9WJsSLtfqeLXkHXeOAp1bEFBOi3RTCKCsBUKrajhStHNZlQ7n6eP5csxH1m3A= 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 1753142784795630.3387271958657; Mon, 21 Jul 2025 17:06:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051773.1420197 (Exim 4.92) (envelope-from ) id 1ue0W3-0005ae-Us; Tue, 22 Jul 2025 00:05:55 +0000 Received: by outflank-mailman (output) from mailman id 1051773.1420197; Tue, 22 Jul 2025 00:05: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 1ue0W3-0005aX-S7; Tue, 22 Jul 2025 00:05:55 +0000 Received: by outflank-mailman (input) for mailman id 1051773; Tue, 22 Jul 2025 00:05:54 +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 1ue0W2-0005Mp-P7 for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:05:54 +0000 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on20617.outbound.protection.outlook.com [2a01:111:f403:2408::617]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id a15350d1-668f-11f0-b894-0df219b8e170; Tue, 22 Jul 2025 02:05:52 +0200 (CEST) Received: from BN9PR03CA0714.namprd03.prod.outlook.com (2603:10b6:408:ef::29) by CH3PR12MB8969.namprd12.prod.outlook.com (2603:10b6:610:17c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 00:05:44 +0000 Received: from BN2PEPF00004FBC.namprd04.prod.outlook.com (2603:10b6:408:ef:cafe::a9) by BN9PR03CA0714.outlook.office365.com (2603:10b6:408:ef::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.23 via Frontend Transport; Tue, 22 Jul 2025 00:05:44 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FBC.mail.protection.outlook.com (10.167.243.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05:44 +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; Mon, 21 Jul 2025 19:05:41 -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: a15350d1-668f-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i29817FYUq+W86CO/++mHbue9ss/vts2ATJo0ZBWLlz7NnpWTnNsORco83VmE/slPpSROUEWAFHaD9j3/6NPOl17EC4jR4P8i/2avrRI+F+VlKEtDBWLvWPVUpikpsFXwQ+tQlLsD0IlMiAqpFKgNdfNhVGRygpedz3gpr3FOwXtoImXZuBEPvQfbUK3A+0fzFpZv1kSt5HBA9M3tGtjhpSQAXlI4IVllc2V5UZ4LsJ64uYmuz17TrHlAES+wPUJzco+dC7dW+FtdqZ/2WBm1rLI05DyWb7ZhigNDGkDOBilYY4iLHT9QFYs940YziUfjOVgXOIPC6qJFNAq4rIT1A== 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=oB8ng73IVgXOg3FXbInmoFgeYPdwwPuZj8D4d+Tey1s=; b=Z2cHqU7LA3VRBqwJaM+3HlFn0m4Fx1rhC1FyUJWJz4o1/N8LTucc8ffiii9oeS3oUvjNsD4XGPenuH7CnDN9lJ8xAa4WCbObbUQEbbeBubRFGmwsV6Y9dkOrZFK0LUCM+OUcoiv9S4LA7bQsYvgnACR1SWqAKn2YIr4qNkG/XijCtDqgVi4VIfVXohoiT/kXOvgzP0rLcJnxNJeII6uAwFHIYBt4AkMu9RUBVCkdjm7/4pyAOtAfCgyWuAwtLMMMWa+2wsD8xqRS5SY3dJA0fqJFXJqn5/walbbH3K6J6LegSUaH3m+BBOfwH02BnVtKRUaeEkiH4YqDzRnccc7jZw== 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=oB8ng73IVgXOg3FXbInmoFgeYPdwwPuZj8D4d+Tey1s=; b=z8zd5PJajrAvzj2MI4H/T8dcfxWImGtf9rbmmJ7k9xsjQ+oEGWUV1HJsFpaL/r8lIg5XIVMJBCfMrSV7ZqfuQsY9uOK8J8aDEyTtDRLErT+JxjuuIbHH1GSmo70uV4bSsZ6y/OfTXQ75eKqW4wM/tcL2iSYH5LnJwEfdaqh/nHs= 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 , "Daniel P. Smith" , Jan Beulich , "Andrew Cooper" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , "Julien Grall" , Bertrand Marquis , "Michal Orzel" Subject: [PATCH v8 01/11] x86: Replace arch-specific boot_module with common one Date: Tue, 22 Jul 2025 02:05:13 +0200 Message-ID: <20250722000525.7247-2-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FBC:EE_|CH3PR12MB8969:EE_ X-MS-Office365-Filtering-Correlation-Id: 6eaf80d8-15c7-4aee-4887-08ddc8b380d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?JjU//SuF/zfGsGfoGBh0l7M+zALke+ldn/EG3u2HUZCx8fyv1TDp/0n52Roo?= =?us-ascii?Q?nbbReejzEbv6K7m8QN0f1skUfMNKO4dswmvi9HksT18vCVXLRF62A6qYo331?= =?us-ascii?Q?QvQUqym1wYCaQ+inW2Z2TW1rEHPNF84Cf+QSK+yLdOp2KyUqVjj35FPvsPnr?= =?us-ascii?Q?kc2rJ48Faz5+ZeGDsGIuHnA54RcfTWE3T1wel/anILuPFUpP5wfzj3KUwIYl?= =?us-ascii?Q?f9b3KO93TnfR6TWhG1Wr334z+PIDEJgSGLkdJRtSooq80yukEiZKOx7q5LYr?= =?us-ascii?Q?w2GxHPDkvFDfTfSSVOtApjzT8C+O+4/v4q414tAKaZXXpmTvTcuz4c1Tf+N1?= =?us-ascii?Q?JPFul6kkxbjubG/F5brtIUSLVDbOd8g1/mipP+/BTEVRGuheaLgx5+IG+fUF?= =?us-ascii?Q?hfF/4Dwj8KZWqamt2K24pz4cKg3HfieJ4aYk0AGXt3TtJoFGhMIhiUatK8Ho?= =?us-ascii?Q?gnFye7bgkRwSQz6oBG9RVkdoV3/uf1HZiTieihnzsWiermpWXKu+hA7CGB3i?= =?us-ascii?Q?7Q//uI+gfcWX/P8zIVbba73Rk0ChNAoJvks7YtWBow4bE0JP316sn+FHHyMb?= =?us-ascii?Q?8yFEyuVXSxL9lREJ1zyiStoLKrxTcybtIC4e3qMyirMizwhhUYyvHzvdMxEZ?= =?us-ascii?Q?3UwdDW5Ncah2Z/rRvSS+1UV4PlgJCS4DBIa9ZFLHPLPF8u7UzBd/vUD4Xabw?= =?us-ascii?Q?WnbmFDLvFE+v+7reB7XTy+G7tStmi2z3UAdQ5Zt886QfA0Utmd3p1K7kf2C/?= =?us-ascii?Q?ci1ni1OfbVM2Ky/qJdz6nynaU9PBOanSgGyFt5EdSR/KNQkx7dYBgxRzr34A?= =?us-ascii?Q?dQt5KONWdlF5NdtzDs6TyHNaVTp8qlJ7k/xVqVu/JYErBbJ+FgakhT0LO5R2?= =?us-ascii?Q?DZaYLWVze3ICBH4341JCPSAV4/kGDrLdRGKrg6sc4nmzh4IqCajmrK/qrX8m?= =?us-ascii?Q?l4iD1d/7MmTdAl0NVuna37ItxrvqKjSGpmVRm9yk2CkBvijWa6WJ5h+Zg3V6?= =?us-ascii?Q?zR62y++EdBOIIuxb0jNWoUz7lQoYoJWjzUZOnXB7mZ9mC5Anhqr2+dZAPZcZ?= =?us-ascii?Q?4f7tFBzDnfVOkr5w/Deb2w7/NsXRfXKab8NThrLEiugvtETuECNJlwPG6AHI?= =?us-ascii?Q?armxKloxB8rALoOEjZ3WbEXZ3QqfyKgTLmuD0teodPoQ0pyNzXQebOHgdora?= =?us-ascii?Q?0eiVXFbUQIWJ1aLIbNKJt+z/tMCGVDhIdvS4YmsVeFYWAgag8dC0THmKbFLJ?= =?us-ascii?Q?xwqdK79FrWV+nZSHTm+6vVdvFhpt3iJJuDpDadgz0JQo90wRADRIU3UI29AA?= =?us-ascii?Q?ka6uWHLCI2fxAhyTi6RMgzDNZV3iAku469xqyYelvY4RAddHVR075s3/6Kd3?= =?us-ascii?Q?fxUEp2pYkSQ49NRwpgxWOrO5bGXDq4Yj939QoL7obyTbcBhZ56ER7p+v+9n3?= =?us-ascii?Q?x6TKQM7GOv7Mf8TDLdr6FDp+d30/asu3v9QFrezLXWTCPX7Skt65Z1tU0gAK?= =?us-ascii?Q?g6R2exPcVIKQNfo58WlZlM3WFp9THWTu2jII?= 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)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:05:44.1871 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6eaf80d8-15c7-4aee-4887-08ddc8b380d0 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: BN2PEPF00004FBC.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8969 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142785668116600 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. While doing this, s/BOOTMOD_XSM/BOOTMOD_XSM_POLICY/, as it was on x86. XSM doesn't support external modules, so don't let the name imply it through ambiguity. No functional change intended. Signed-off-by: Alejandro Vallejo Reviewed-by: Stefano Stabellini Acked-by: Jan Beulich Acked-by: Daniel P. Smith --- v8: * s/BOOTMOD_XSM/BOOTMOD_XSM_POLICY/ --- 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/common/device-tree/bootfdt.c | 4 +-- xen/common/device-tree/bootinfo.c | 2 +- xen/include/xen/bootfdt.h | 10 +++++- xen/xsm/xsm_policy.c | 4 +-- 10 files changed, 98 insertions(+), 88 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 9964068387..6be26cc66f 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 c6890669b9..58fd806072 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/common/device-tree/bootfdt.c b/xen/common/device-tree/boot= fdt.c index 08d919aba6..01f475510e 100644 --- a/xen/common/device-tree/bootfdt.c +++ b/xen/common/device-tree/bootfdt.c @@ -349,7 +349,7 @@ static void __init process_multiboot_node(const void *f= dt, int node, 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; + kind =3D BOOTMOD_XSM_POLICY; 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 ) @@ -377,7 +377,7 @@ static void __init process_multiboot_node(const void *f= dt, int node, default: break; } if ( kind_guess > 1 && has_xsm_magic(start) ) - kind =3D BOOTMOD_XSM; + kind =3D BOOTMOD_XSM_POLICY; } =20 domU =3D fdt_node_check_compatible(fdt, parent_node, "xen,domain") =3D= =3D 0; diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/boo= tinfo.c index 2a27d1318b..eb1b2b729d 100644 --- a/xen/common/device-tree/bootinfo.c +++ b/xen/common/device-tree/bootinfo.c @@ -29,7 +29,7 @@ const char * __init boot_module_kind_as_string(boot_modul= e_kind kind) case BOOTMOD_FDT: return "Device Tree"; case BOOTMOD_KERNEL: return "Kernel"; case BOOTMOD_RAMDISK: return "Ramdisk"; - case BOOTMOD_XSM: return "XSM"; + case BOOTMOD_XSM_POLICY: return "XSM Policy"; case BOOTMOD_GUEST_DTB: return "DTB"; case BOOTMOD_MICROCODE: return "Microcode"; case BOOTMOD_UNKNOWN: return "Unknown"; diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h index 7f49d0ccdd..1218b23bb4 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 @@ -19,7 +23,7 @@ typedef enum { BOOTMOD_FDT, BOOTMOD_KERNEL, BOOTMOD_RAMDISK, - BOOTMOD_XSM, + BOOTMOD_XSM_POLICY, BOOTMOD_GUEST_DTB, BOOTMOD_MICROCODE, BOOTMOD_UNKNOWN @@ -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..27bfc3b995 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_POLICY; break; =20 } @@ -68,7 +68,7 @@ int __init xsm_multiboot_policy_init( #ifdef CONFIG_HAS_DEVICE_TREE 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); + struct boot_module *mod =3D boot_module_find_by_kind(BOOTMOD_XSM_POLIC= Y); paddr_t paddr, len; =20 if ( !mod || !mod->size ) --=20 2.43.0 From nobody Thu Oct 30 22:53:22 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=1753142784; cv=pass; d=zohomail.com; s=zohoarc; b=Zt7oF3u4tQP4mkz+5hpLWf37y5jANKMzvhcPm/V1qoScAIbJzwrh+iOA04DJOS4PNvc431Y5N7ZQaoZHEOS8sk9jdvfNo+6l8Rga9lrTg4/eyRiAErb4nCxbCUl370Y0yteS3ug4XK4DVPlRUmROQDHE8oSSYzYkEFBGqpOkA6k= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142784; 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=oVmWUOR5tN0/J1VHr5jY2nMc+/jhOV+qqX3RTl/dlGg=; b=OOYzBPhKnDt71BhvmiiQ+lqq9ULdKaCJ5w58my87R9HJSdVEaQQgPNCODiERt+btV8vP04Wai0ILeUZ2C0yNxwKRvWlmbLHCsTzd2mf396W8oLdJOztBQFDmlM2GJYMDfKue5nPbVcPZG5a389vjBRJ1R61Wv7xEK5MReSyy/As= 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 1753142784233376.5868133659884; Mon, 21 Jul 2025 17:06:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051776.1420219 (Exim 4.92) (envelope-from ) id 1ue0W7-0005zU-0Z; Tue, 22 Jul 2025 00:05:59 +0000 Received: by outflank-mailman (output) from mailman id 1051776.1420219; Tue, 22 Jul 2025 00:05:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0W6-0005yO-Ra; Tue, 22 Jul 2025 00:05:58 +0000 Received: by outflank-mailman (input) for mailman id 1051776; Tue, 22 Jul 2025 00:05:57 +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 1ue0W5-0005Mp-FI for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:05:57 +0000 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on20604.outbound.protection.outlook.com [2a01:111:f403:2416::604]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id a2010e87-668f-11f0-b894-0df219b8e170; Tue, 22 Jul 2025 02:05:54 +0200 (CEST) Received: from BN8PR15CA0057.namprd15.prod.outlook.com (2603:10b6:408:80::34) by CH1PPFC908D89D1.namprd12.prod.outlook.com (2603:10b6:61f:fc00::623) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 00:05:47 +0000 Received: from BN2PEPF00004FC0.namprd04.prod.outlook.com (2603:10b6:408:80:cafe::1) by BN8PR15CA0057.outlook.office365.com (2603:10b6:408:80::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 00:05:46 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FC0.mail.protection.outlook.com (10.167.243.186) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05: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; Mon, 21 Jul 2025 19:05:44 -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: a2010e87-668f-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ouGISFxczYD+g2VZvYroZ+1CiHDZhecMyBnfsZ8Ssf0QNzZOwhbHhdvKo4WBDVZO8x9VM9/FWB1dp14fACw0J91eFY9Ga+dFV4R3TWg/cBrhnTTO+TmBUxcO3CW7K/YjDfXRAwR4o8zCZLmqb+AIOuThaPZlvVK2Po72pczoW+ZzClHOiGUqEWQjAUby2QM1K90hDJnuZ07zQATSOM3etzb6qNqx4jvpW42VpQmUWuA++hSgGaXBAigbAnllSCCKtz3mv1yCOsJQ/Rf/8hB6nbwPbREQ2CNWxROPd6f1D7FmzevCODlx6ELMLiii3nXyQOgt55EZNM8yCsVJwmoajA== 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=oVmWUOR5tN0/J1VHr5jY2nMc+/jhOV+qqX3RTl/dlGg=; b=Bw2rs/T5aD4Zup6WgvCvNU0kgxVTZOD+Tpl5vnp16pf5/53tGapDPNPn2KCkoKmtl3AE9UYs/JU1z48Sx2rjlIbAlkEtxZSssS/UuER2cocWUpSKBne/0DemIO4vxGooFYl+pCBkzFTuSa6Qm4VSvXTJLdO8F+a9Eaa4ruY9ZD/4DUbOOphHzdRLPBfc4J8PKNYfK8VS/d8pvHAN5nAdIqUJos9iEdOsvvxMNsgnl1t4sBga8JshTUtnLHvqLLZ96yHg42Q6WpFhAf9Q9FPOlVs7fOOpHFinohLcG6s7oBu1FLvLKaVsX+Z4BiSK/tTG62BU/F2yzJO7iFTTwaoIqg== 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=oVmWUOR5tN0/J1VHr5jY2nMc+/jhOV+qqX3RTl/dlGg=; b=DukQP0aOjVZElzo861dOY7FYmizzx3JiIr9XnhfEmgcjZopIr/NgBbg/zy4RTspBHNM52BZba0iecPPjF2kjogdE5wEyNy6o1obXKNIRYOGyA/+gt2ON2XcfEkXMA2Owg36ZS2gvQBCCYHe4StIdiIMV13UFF3VoL9Tja5dDa9k= 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 , "Daniel P. Smith" , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Andrew Cooper , Anthony PERARD , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH v8 02/11] xen: Refactor kernel_info to have a header like boot_domain Date: Tue, 22 Jul 2025 02:05:14 +0200 Message-ID: <20250722000525.7247-3-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FC0:EE_|CH1PPFC908D89D1:EE_ X-MS-Office365-Filtering-Correlation-Id: 77242410-a2f4-4ff5-3b6b-08ddc8b38244 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5sjf8HJDbSLsxrcylHWhyk2OUgqmZZ+DhXozLMBUumjK9BWrWoMHhsUtcxJO?= =?us-ascii?Q?HDmIfd4k97I8pahAxWULAdQMkD/OSAr3sLq72RF/85fVTyKNzE+Kh42nDf7D?= =?us-ascii?Q?XATC+eD04T60MDRepdxR5RNCN+Qy3O0LkxP8shMy8ZtP7mNx0gnkiDTUUNBd?= =?us-ascii?Q?i6rePBLme/KPHKUtLBAHZNHaMrrMNYbD5QZE6wpRIfMFWl7g8SDwd7PkzgVS?= =?us-ascii?Q?n85ikgnQmaBuTo7gKF2/6KNimL+UkT694GrCrVVP1wWZKIMvtSiPXU5OwGzY?= =?us-ascii?Q?FIEsi+Pc2LcS6/5WueQQCQoPqQSHtiuln0yL81CbpCjQRORPWVNHhqZSxBGX?= =?us-ascii?Q?QC8U70eRiV9rS2ElYPgFwlgZNWiHOQVV+sLlXNcO+hz+4JaDgw2g2PfOHLOR?= =?us-ascii?Q?livXRdb6dADze8JVIp5YErPHcBxuWXeRs/i4ujaOVlEG8fX+uFR+qMQfM5LS?= =?us-ascii?Q?NzYWreXqFb7Ini5TTLIrveP+QhJnKexVqIFWaHLatZLmP2WIjJuwOqJA0sDB?= =?us-ascii?Q?dGTIL8E0A8t2IxZ+MQykzpJQFKFf7C62c6U2F2by5cccqRGPQTPVLXWUyWK3?= =?us-ascii?Q?MvtAbEj8oFpfAyPPlRfVGr4S/MgbMx/zOt8hsV+eraQLRZpE+hdssfAHZN2C?= =?us-ascii?Q?rx7KGUdDsBH4N8j0F5PWLD2AialE64AV/Dn0YbVlbYmRsl4wTl8wRaLcl3MT?= =?us-ascii?Q?trnZdcgdTh30uGwty7tOy174+tFsTJQ65kEKHUr4z78reHHoZHl60rFFtgqj?= =?us-ascii?Q?Gs4wMolB+NfL4vs9FsarwSb9ZQ0zo16lwdIgiwhkrnYsLfRM46dnizqOAHYr?= =?us-ascii?Q?FWoMWOW6fGqumrQtDKRpzrg4EP5Gig8k4FyeU4n3ex8kry210Kxz5xEUG566?= =?us-ascii?Q?TKMMB0QPcdoV5H9BMxrr456YVCIma2WdL+UL4E7j/m0JRZugG7Exc6WiAGbD?= =?us-ascii?Q?9h85k9p15EOzX+jZob5cSgbUNNqTJjCIzHd/TPFXVsO3vIiSfyySIfkME0WM?= =?us-ascii?Q?9FmpiQ6rufLowwGreQ/tlA+CLr8wSsKJd252HYVUFfIV2k0YJEJrMwXeJM5H?= =?us-ascii?Q?B7/6BSpqG00OF4uLuUYuagKhilXtl41Iw5q232VDtNj6zD0Ph5mzZUtBlsNB?= =?us-ascii?Q?1Y4fAIjkCdDpmSs+WjNjU7qGKI88x0PpzuInk3z0d85ptLOlVqMpOwPxmcH9?= =?us-ascii?Q?n6J5692NwcCl67h7wsoiViFjmydjLz7gQb4wmX3rXpQqQc3J+uORX0rVFpxh?= =?us-ascii?Q?1SgCfcp3L32GU1KxA2eDfOYV7q3TVsJRWPbTMmg1cd6oyjJdBvybt7+jB57q?= =?us-ascii?Q?aU2dbxdusNQy1KMTPcqXuzm63lazKL31e0kQAcTN1NPXGFHZDu7P7kqzLR4j?= =?us-ascii?Q?t0WWE6rwXPgUbBPLkq1wcui9fIsi44Q/xX7M8WzERsZ9rclGV0o8thLL8cdi?= =?us-ascii?Q?z4/H4NOxKL2Pm02NZ/+ifptnWsDZitZbwpICdS8H/L+lWTMF+NLSlM3XL+wY?= =?us-ascii?Q?0NS+bVmadjEn5zMVvtbldz9JLbWOSFxN51Z1?= 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)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:05:46.6255 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 77242410-a2f4-4ff5-3b6b-08ddc8b38244 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: BN2PEPF00004FC0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPFC908D89D1 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142785690116600 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 ed668bd61c..5f81d060dd 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -459,8 +459,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 @@ -574,7 +574,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 ) { @@ -1456,7 +1456,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"); @@ -1468,7 +1468,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 @@ -1517,7 +1517,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"); @@ -1525,9 +1525,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; @@ -1976,7 +1976,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 ) @@ -1988,7 +1988,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 0012046574..15b3c4b241 100644 --- a/xen/common/device-tree/dom0less-build.c +++ b/xen/common/device-tree/dom0less-build.c @@ -170,18 +170,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), @@ -220,7 +220,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 @@ -232,7 +232,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, @@ -299,14 +299,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 @@ -608,7 +608,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 @@ -776,7 +776,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 1218b23bb4..fceffaf2ec 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:53:22 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=1753142774; cv=pass; d=zohomail.com; s=zohoarc; b=ijpta8EPcCU+O+a/72elGD8rFQ3oR+sobw8IyPPsxhnsZG5s1Q2c30KAF7S5XwNwlH/hk/Pd5cw9clmnqZa+NVDkfPL+Qn1Wz77iyyDoGKYntUAp/pezKo3/nYV1sE0D+x4haxXr0RrPMGVQXH2KT2RkABCSuQbhNJwD6sbexvA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142774; 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=ELaIPxq7xgDg3avsEyiAPuTrcMr/bWjgnIummXBRjC4=; b=ndIlphNWjmO4n7QvtUwDVC1j15GKGjmf3pxIbmV0fR8lHuvMxnyaWOJfLXZuoSbSjxSLUPvGOUk8Asz6t0L/kT14sS4VZd1VA2bLiTqK1yjpv8XyfjpflqoWY8e8yTRloASpiWBTh7YS/yiYW1nBey2q5w+EELtG9HyDgOg+/vQ= 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 1753142773966437.06224373940665; Mon, 21 Jul 2025 17:06:13 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051775.1420212 (Exim 4.92) (envelope-from ) id 1ue0W6-0005sK-Jd; Tue, 22 Jul 2025 00:05:58 +0000 Received: by outflank-mailman (output) from mailman id 1051775.1420212; Tue, 22 Jul 2025 00:05:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0W6-0005r7-FK; Tue, 22 Jul 2025 00:05:58 +0000 Received: by outflank-mailman (input) for mailman id 1051775; Tue, 22 Jul 2025 00:05:56 +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 1ue0W4-0005aW-PO for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:05:56 +0000 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2062d.outbound.protection.outlook.com [2a01:111:f403:2416::62d]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a2b9103a-668f-11f0-a31d-13f23c93f187; Tue, 22 Jul 2025 02:05:56 +0200 (CEST) Received: from BLAPR05CA0015.namprd05.prod.outlook.com (2603:10b6:208:36e::15) by DS0PR12MB7993.namprd12.prod.outlook.com (2603:10b6:8:14b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.22; Tue, 22 Jul 2025 00:05:49 +0000 Received: from BN2PEPF00004FBE.namprd04.prod.outlook.com (2603:10b6:208:36e:cafe::fe) by BLAPR05CA0015.outlook.office365.com (2603:10b6:208:36e::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8964.21 via Frontend Transport; Tue, 22 Jul 2025 00:05:49 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FBE.mail.protection.outlook.com (10.167.243.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05:48 +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; Mon, 21 Jul 2025 19:05: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: a2b9103a-668f-11f0-a31d-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rUMZxdKIrwcUd3n3WtpQF70VThl2HXDveG7K2iCkpMfYNYr0XEiftRvA8llvT8GbehLICuWvdWOtvMwF7MmISFGj/gMRUPv3K/SyfbhrTw9uykU5KlAHE6INxKEK5VpsTDH2lp1U+PrH0fHW5y/yR1iQs9wp/4MHc2Qwaxw6ueglCnOTsY5Sq/Y4xllwRtYbVDsYlgOBXcDj1osuQczvH2FJnKqXFBdFrevyTwj9DKliz0IfJZ/AGEc8oyxlgvxelwT883L9JselDOUG0/lLukIGRV16E/GBCHjDKpE0dS7Oib/8v2rNdFLvtHCtoLtBTWVb9zOijgHO+ThjTZX5sA== 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=ELaIPxq7xgDg3avsEyiAPuTrcMr/bWjgnIummXBRjC4=; b=Hxh2O8O3zpCZ2heYC2r4fXvOpevBPi9KceDTsGF9tS3VXPScBZDwIQofjtXJI1epM4CFf3Go3JsE35FlXOXuLOX1pz3gKQ+B1Y7/AUzt7WjlEniICV3zYJaFzX4VMhTG0q5v5x+CGtY29Q5GY5IfagtkFVeFLQpR+QYJDwQYNzPWNrF6ZXBP5VWmtJPyXBLj2OvXcX1dUZalgr38Vf6BN8lC0YFzxSBo+Km8Yck6PxBwHoanLQiC5hI0haVeSzs+ZuGryYnPGo9/eAi1N3yemuVbjL3Py5+z8oECXJg05EVqnYzcMyE1T5Si3raWc+sjJVJd2TuIi0nouHb97LGsNQ== 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=ELaIPxq7xgDg3avsEyiAPuTrcMr/bWjgnIummXBRjC4=; b=JYb1Iu6QZPRxSwxTlxL0nMmVnZynrsJ31h3vIiaMLXLMco8N3W7IlfjQTHlezCjop+0bIdg8t+eZreZrOLNLGfa6FXPBtGVDefqDM50yA3IH8Vked+NMYvKPWOxmdmVW757Ia2qy0RO9FOVfAEns/Tu+k/I3phqi3Gkgul8LNoU= 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 , "Daniel P. Smith" , Jan Beulich , "Andrew Cooper" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , "Julien Grall" , Bertrand Marquis , "Michal Orzel" Subject: [PATCH v8 03/11] x86: Replace arch-specific boot_domain with the common one Date: Tue, 22 Jul 2025 02:05:15 +0200 Message-ID: <20250722000525.7247-4-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FBE:EE_|DS0PR12MB7993:EE_ X-MS-Office365-Filtering-Correlation-Id: 603355c1-6c14-44e8-9210-08ddc8b3837c 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?unCTL6mTemCDxmIRc/w/vYK0MUY1hDpn8ib5hcux9pN1ELzinX4Co0asTF56?= =?us-ascii?Q?qGtC67xYUG0SPlbV8UVXoslGDoUfs7Q7B0T5ytoPBKAauK9uJXaTIzE3dc01?= =?us-ascii?Q?+3UbuZizOncjtQH8XpydzejUL5HIVHAA5pwIDpeByUJfep36HS4L1uCaKvs1?= =?us-ascii?Q?ojyW8lJafSquC3o6LvRKZAvdOdgQ8dxt1HI9+RQXqTAXGILFUzYFM6oF/db9?= =?us-ascii?Q?EvJ7RDitcOoLyNV6dDEDwCQxeSFKSbkqwXkQNUDI/Y8BgZGR1jqU0enPK3o9?= =?us-ascii?Q?w655//DwRQEtX0DC4d2pB86GA3eoCf5JRYMa2aipM1MTJ3i+tkVC5KsY48nC?= =?us-ascii?Q?Nf9RkbssGJ3Nd8eUpxRzLVfKg7xFaQND+rSIC6d3ooDs0XY5zvkz4UNE1P4h?= =?us-ascii?Q?8Eu5U4euZwxF0y1OrzN8IJy+omt3TyT6qxXxozTDt2ycEdi3v5MBwR54o6Y9?= =?us-ascii?Q?nA90TSIc1DYn+BMHLAa03WvSLTAjUInfRIQ8n6IG/+Jqk9vJoJ+CMf25AaL8?= =?us-ascii?Q?GQtdWdU8x1BlVFCXF1FnrSPsKFC5EcpZNXQk/58JUxbyplBhc9mpXS81V2zB?= =?us-ascii?Q?Sw05qxfTHVGacelN2mROBRlT/Vg1+KPd0bK5akA2vy+fgbY1VFvaSQh1gBQ5?= =?us-ascii?Q?GpVXjfaSVQemtZd+OvCbGBjXfv5cbm/x0idWyuwTHFrTn3oRj5f3yR6wgLns?= =?us-ascii?Q?bHLV94QguPenhC28oBETWuN+e9jx/M1zF32gGQ+uFAZAGpLWQMs/WFwdh+nD?= =?us-ascii?Q?b+HGA4TlwAf/IvasMNpbGBIVjAp+W4zsg9e3FMUNFACp5UXb2uLEqBri0sug?= =?us-ascii?Q?kg9FTHC7ObHPLIlCVAHnGgQU7MmVBT+DF7k8yP46fseB9st4FAgB6lapHTJb?= =?us-ascii?Q?IVumTcMcEVjS0Mu0r4vFHESdyth0cjhgWL38fw35W0oWiV8kRip+r2c75nJk?= =?us-ascii?Q?e087Ofld56a7d3U0F6i8XVGoMrIg1KlCLzYLQ96ZjTc68Xg195PptjlXM/9u?= =?us-ascii?Q?yfYalCZ9g9eisgqpvGHy5M2oDXMQ+LIj60hsuMvLAo9LKdYC0ySnvafxSk9/?= =?us-ascii?Q?kd96/TVTHiDPrvbG2DKnOWfZwkynnhn0ttpBw0DZgvJBSR45tLYbjvunq2FD?= =?us-ascii?Q?Ct0eXthC7S7wgWZqHQxcRbZy4TY6W3welPU4cZw2xLK0+bV/Cg0Lpong7VMI?= =?us-ascii?Q?FerVhQFEUXxehRL0MurqYDsRasgUQuNKc+cKBtK+Vs/6WVmpR9Qz152PNMbo?= =?us-ascii?Q?A8cERBOTNvTvybqsYJqH3z78BxtjpAovuXOJQKEvoTCy7Wtl7Hh+PIlnB8op?= =?us-ascii?Q?Fg42v/JgkVg5scFrKFtd5V5mGyk4Hu6VjryRnvNxrN8RG6lTxlDClHf1c/ot?= =?us-ascii?Q?5BXxjL0rLXbrMGigT5YRJOzsw0GfsWdLezPnK91wJ2B6ALt3Yb/lm1GaWiLA?= =?us-ascii?Q?u+wfVnmq8LB5JJdNkuDI2rWplq5wX4Xnx+V8k+Ga/nNOFchnSARpPQvY/N+/?= =?us-ascii?Q?Prnlj61QXujrtipxRvu0vUUrjKaUO3f3/TeH?= 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: 22 Jul 2025 00:05:48.6733 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 603355c1-6c14-44e8-9210-08ddc8b3837c 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: BN2PEPF00004FBE.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7993 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142775669116600 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 6be26cc66f..5551f90448 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 58fd806072..1543dd251c 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 fceffaf2ec..9c2b954121 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:53:22 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=1753142784; cv=pass; d=zohomail.com; s=zohoarc; b=GcWmpLfoqz9DUqyLnpiY+ccy+qRGGIv+sUoGe8RGtOS9SUGP3O6BMNLUMTy3TDXmTQ0VYq1FlWiQ+8MHWFJHRZU0N96rAxvkYiy2qLx3SS/t9HIxoDCqTnXCZvMjJsvqksgbs6iKMDjYh9o/OJcMqAUgjAgtqqTQWUrScCXu+JM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142784; 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=dE2U3OieLRAp19RylJfkfzh2oa2S8x64+UWGht0xC4c=; b=g1dYbeGJ4IxEP4bZ5vpKMrzesJbbBTi7hHzJaoMD2VMN8ZOITPJ72pXht0bSYbi54AuSgOvX1/j5vEC5K2wnb7Yuc9fML01QMWN81uzfPE4fLiRISC00Gry/vd/naMtx32Ct2jUnc5u6BokoBCQF2Y4HQrhRWCvg1iTpl8qHX24= 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 1753142784389714.5138135911907; Mon, 21 Jul 2025 17:06:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051774.1420207 (Exim 4.92) (envelope-from ) id 1ue0W6-0005pC-9f; Tue, 22 Jul 2025 00:05:58 +0000 Received: by outflank-mailman (output) from mailman id 1051774.1420207; Tue, 22 Jul 2025 00:05:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0W6-0005p5-6i; Tue, 22 Jul 2025 00:05:58 +0000 Received: by outflank-mailman (input) for mailman id 1051774; Tue, 22 Jul 2025 00:05:56 +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 1ue0W4-0005aW-Ee for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:05:56 +0000 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on20615.outbound.protection.outlook.com [2a01:111:f403:2408::615]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a261a0a4-668f-11f0-a31d-13f23c93f187; Tue, 22 Jul 2025 02:05:54 +0200 (CEST) Received: from BN9P220CA0007.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::12) by CY3PR12MB9631.namprd12.prod.outlook.com (2603:10b6:930:ff::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.20; Tue, 22 Jul 2025 00:05:51 +0000 Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com (2603:10b6:408:13e:cafe::9a) by BN9P220CA0007.outlook.office365.com (2603:10b6:408:13e::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 00:05:51 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FBA.mail.protection.outlook.com (10.167.243.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05: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; Mon, 21 Jul 2025 19:05:48 -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: a261a0a4-668f-11f0-a31d-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iAA3hPBQ3zMD0OWaQYwwR//jfj2XLkDOCJZsjN3QR/O597JE42ELJ5ax+dpqUa5zijUL1OcHiVwCvgo0km5JF9dqZmyfVqYjYslZFPR/nuWLEvONBGfdWyfoHMi8JlO7LP1p/JNa+x++yXyNcH30EMIrDG0Y79aCZWKOSbaB1j+Zn5Mbeb06Dd4BkbzSqRniDh79p9L858sGIV//dn1FwAeVKK8CnJeT9FPZMQ6wkQ6HHj5qlJZlFg/TOk8gS/nD2Qthx7n/sNgb0wsqZv1YO3Oq9rAyjVvKVNxDhxjNuXSBVURF1HlXTDgY1ZFre9uDkHGYFsPWw9kYjH9j3Oh5Mg== 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=dE2U3OieLRAp19RylJfkfzh2oa2S8x64+UWGht0xC4c=; b=muYSG0BfDPO20xaOmpvPa17a568LZfVXT4F12G6kxOLm6nFKcq+Gbm3kB0vCoZkFkGCiQDqvynbC+8JI0rLLWwIKOoe/tkAgUGafPvxVJliCUy9S3UW2FbDHxFqkmch18MQKFkDC+lwuT/OP6y4WeS5mfpB6nnH4KmhQOX4reTjtYMX6wnmEFLpI0+rWGhyb8V23piyI9l83NvZbBgtGtrZj5fU1UYbwVrI5JXihxdpNnJwbV1djzn2wXLn0atwBIHCWthOVyrRePYitUvseDPH4NW1avsBo7pC0LBpkzVw4OY//0mcsKArRNjiJmnlBt/VIo4G657wqZPjIkgyPTg== 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=dE2U3OieLRAp19RylJfkfzh2oa2S8x64+UWGht0xC4c=; b=lmkyW8Ridyz4PpBZDATjjDxNgkfXE/NTBZGX7X06+0ZY5rUSt2UnX0m/Ido95/I0eaQyL3Z8PifjSDVi7/Kio/sdKMlcTQAz4srejX02T+coLXfEvxz9WG9wXRuELP+gbUKbovKjfEYf9uQRnXol90mSVc1I3T5WLXhs423/1xY= 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 , "Daniel P. Smith" , Alistair Francis , Bob Eshleman , Connor Davis , Oleksii Kurochko , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Dario Faggioli" , Juergen Gross , George Dunlap Subject: [PATCH v8 04/11] xen/dt: Move bootfdt functions to xen/bootfdt.h Date: Tue, 22 Jul 2025 02:05:16 +0200 Message-ID: <20250722000525.7247-5-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FBA:EE_|CY3PR12MB9631:EE_ X-MS-Office365-Filtering-Correlation-Id: 718ce7f1-0585-4449-171a-08ddc8b38517 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2Tg9OHeHuPPir0Tegq40f/p5OwUpJMOhdq12rcluPXtt4rSA3fRa7KDc5AYG?= =?us-ascii?Q?Z4f8T+vTxB1mDYIBdfLx/d3FIVPhlcwVw0usoPLSfUW7aEyHh493X6mbQrKn?= =?us-ascii?Q?U9ksQLFX9Tz7WZ0q5lfc3ORwrEoTp0cggmP72eLyhcGIUIAa9yceuVz63AEX?= =?us-ascii?Q?kBLprZdKGcScP2dG8Obv0+MuQ/+DPxXmVrO2myran9zjRCMR0mpvHyovpnee?= =?us-ascii?Q?MsU4dPN20LBhcb4JfrdiwwIXtDx0ABSXnu+sOzlSiBXbPqN0HUySMfNYd7Fl?= =?us-ascii?Q?g8PxQnXJaI8GqpLtjK/Rh6z/VZYSmre2sn+zmI4L9C1cxRLGKJ4HU6zoui89?= =?us-ascii?Q?FP4EtpTJcMf8g2BJ99mD2d5dvLGgyVbVTQU2QmzfvGvMgvNV4vTtf2YYZaJe?= =?us-ascii?Q?nnojsvH9VSEkutNCREKX8bpa00F8qSQa8e79SXj3SD3k+6C5JOUrBUvXcbER?= =?us-ascii?Q?7ovJCsDLkecKM5vOrDWLGy1qQU33QTMu9de0yn6uAYtajZ8Je/xgjCeMLKrf?= =?us-ascii?Q?OtFIN7CxL7GwuGh0M+pOeRn8bC+qyMTRfsQ2/gSyCaoagLWddSohJoNuLBJ2?= =?us-ascii?Q?PQSTVgcr+3/PzjBcEdAcFayo7CIdsW66D1fAMVhLu/ny8F70CEhO+CftwjD6?= =?us-ascii?Q?J1ozPhApvdbsfMjwmtRVcuftUorPqqvGDx44T2pHOuiYY7olkzinR7BNMCSM?= =?us-ascii?Q?jLs9zFON86ThLCn5P7TcYwD3iPzLElbuon6nC77Q35C3HSuwXSMMJ/AdpOst?= =?us-ascii?Q?LM2qFmSM9iHbJGS2+8Z/zbTW6XHdl1hnbZe4bKQmZVrAllphFAuukC82973L?= =?us-ascii?Q?46XdgBgB5dO3k/JFlZVmNTQmNguNUFy98KNGNGOJlNUrfV9TTsSfUuTxPkYn?= =?us-ascii?Q?dLoBcfY/SQqXD5weD9zke9ezPBBeY3Hn2siK1LmowtqHeD8L05BAx7qhpFPw?= =?us-ascii?Q?+oR4oZwFgMcGmbu37f9gE6v81jocqwzmA3GNgk+gaJMBm6vsZv+t64sEIKLu?= =?us-ascii?Q?MUbJuUpvtNXsh+/++ftCuhZnQqOVeUY5X+FqQOhSQSgt85me5B+F4W8lL/GN?= =?us-ascii?Q?JCQJFGIZ8g+qtqSfgKu/yXUriQx1axP+Rbh4lrYyS5jgqlWuDkb5hDFMCsVu?= =?us-ascii?Q?khRo3oJQAeoxk9pAmwrLYNOCXMZZQQd++EUw6Gq0pM2z84Ryqo63jcQBXbMy?= =?us-ascii?Q?xtSDTK7vNJFmtwUxhrcrXLmTiBfpgJpQFISzq2qGAK4W5Kgtfs8iVsp+kXPQ?= =?us-ascii?Q?daCUUTr9FM4hlvjhQTG+m/V3L0eH7FO2oOz53ADt81YUvO+j4b2YCL/8+CZn?= =?us-ascii?Q?xr0KRCnSevRtNyittTySvtd7c/NgEJJcLTfx2NmPwaNi46bO1RdaPLIcxKyZ?= =?us-ascii?Q?QepUGGzajv8Z6i+3nI9vo5KIraNMGMvGx82upQIHdlKctyrubOfJYy/08ALF?= =?us-ascii?Q?FSPa84OyL8DBEY+xtc0NLeP+Z4+fi4S4f2G+nkAJFOXc1Li32KH3je0a6udD?= =?us-ascii?Q?q+2uKsBVgzDtAD5Ip1kAPYSMHfs/MjwcXU9D?= 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)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:05:51.3632 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 718ce7f1-0585-4449-171a-08ddc8b38517 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: BN2PEPF00004FBA.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9631 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142785687116600 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 Reviewed-by: Oleksii Kurochko # riscv --- 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 01f475510e..48ecbfd600 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 9c2b954121..93c5c357b1 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:53:22 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=1753142787; cv=pass; d=zohomail.com; s=zohoarc; b=YBodY8TKSXJ+BRKpjOQvxU7dWZMQQLoekBitBUf0VFcJN0nwy0krtzYnvBWNyO5HlANSI/fV/By18NfEQI1howNP07c/HA2X3UnmgURK7hVjeFW3seU72//V80oCn6a+PCqU6Y3qn98mOa+kM0qxz2tVQHyMyMX/AL8ee7fjv7I= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142787; 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=4VD/DcLeGzwzBKqK1Ds0rzAjcSgU2AXEa48oEx1p7Ao=; b=I7dq0Od67IIQUsLknsBfqmZFfyXXzftTwOV3gURl8Sv04W7VyIuuC927jHl0SP/t1c6doCOs1+t1filULHdYllorYiiFhy8AK39UJRkuGBtM8L1ezdenjWf2PprjDBUHe+u1lBve179Wfuvoz8u+0l3R2iXrseYPTLef3OBzPSA= 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 1753142787166648.8414197153331; Mon, 21 Jul 2025 17:06:27 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051777.1420237 (Exim 4.92) (envelope-from ) id 1ue0WA-0006aV-G7; Tue, 22 Jul 2025 00:06:02 +0000 Received: by outflank-mailman (output) from mailman id 1051777.1420237; Tue, 22 Jul 2025 00:06:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0WA-0006aM-Ca; Tue, 22 Jul 2025 00:06:02 +0000 Received: by outflank-mailman (input) for mailman id 1051777; Tue, 22 Jul 2025 00:06:00 +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 1ue0W8-0005aW-QF for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:06:00 +0000 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on20626.outbound.protection.outlook.com [2a01:111:f403:2406::626]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a554aad3-668f-11f0-a31d-13f23c93f187; Tue, 22 Jul 2025 02:05:59 +0200 (CEST) Received: from BLAPR05CA0001.namprd05.prod.outlook.com (2603:10b6:208:36e::6) by LV3PR12MB9094.namprd12.prod.outlook.com (2603:10b6:408:19e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 00:05:54 +0000 Received: from BN2PEPF00004FBE.namprd04.prod.outlook.com (2603:10b6:208:36e:cafe::18) by BLAPR05CA0001.outlook.office365.com (2603:10b6:208:36e::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8964.21 via Frontend Transport; Tue, 22 Jul 2025 00:05:54 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FBE.mail.protection.outlook.com (10.167.243.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05: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; Mon, 21 Jul 2025 19:05: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: a554aad3-668f-11f0-a31d-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p2W2Fy2qJWb4Mc1tpAYfCTrUnVfAHRFs/qJxVnHDvtfug8Q4VwO2x2qHHSw/YNvWEuB6977+IjO/jMglVH1TX+5VSKtgiM2fV63Ajv5IHX4OtPZA4NM0H+V3h4l9W9SqGpfSeAU4irc5VFgCaJfOfadwJmd8TLI+9K6vacPp+Z/+AxJEwQ/GBljG3tGhcAp2h1pxJ/ZS7G+8dNHEMks7rwWN/6jtsurvwzOmVfVZ1oDqevXgRGyuw2Sy5vBDKjJmAMjkuY4KeU+7dy6AciaCnjaV+wM0ODQDjXkiTEvqCFtMuRF1cvMigQaAJCokB7pyXrOYg/wUpIX4mrf+xEQ34g== 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=4VD/DcLeGzwzBKqK1Ds0rzAjcSgU2AXEa48oEx1p7Ao=; b=kijYSrqdwOPqOSQ7mQnB3M9Oj3uVV3JsijaEplr+m0+TcVL9ofc/ZzT9j8caOVr19ezOPNDGMUZqPHm6ABR8XYO6x4pMgHo10xVl3iErMw7KdJMj+e3Nj+g4ggQ0j9n/hOFS7GuSTzFzVVFwoMTEioRKfLWrEdmnFIqNguQBSa2dad4VvLThY4+CJgGdAJx8VxcGldDaKZOiYHyQmdTq+qW7TGbS2xJUKlPgG8WLXKdQk//1qZqu31lFLOc0VxxtFKirErafTFH+155j5qBnpgfvUZM7/YIIOC6jfCu3vT5mwFmQg82SCOGppO0a0sGqO9AkUIs/JZzA8Zp5UxJx3A== 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=4VD/DcLeGzwzBKqK1Ds0rzAjcSgU2AXEa48oEx1p7Ao=; b=AsHWy17B+lhCkyY/svoE5x9XlaubBxYzrg53i7UbBygTMkYUlecMNbL2DrdYLzcoFBdYLiY9eMxyBHHG8J2qWvbV40TjDo+ZClYbcoU5riQMNCqKe+lovJ7UZpyp/gbdgC3Jz8H3w0odzLzFzCWNJuXqnDc7jZ+uAiW1Q/Mt5jk= 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 , "Daniel P. Smith" , 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 Subject: [PATCH v8 05/11] xen/dt: Move bootinfo functions to a new bootinfo.h Date: Tue, 22 Jul 2025 02:05:17 +0200 Message-ID: <20250722000525.7247-6-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FBE:EE_|LV3PR12MB9094:EE_ X-MS-Office365-Filtering-Correlation-Id: a2b992ea-e5a8-4e4d-ce65-08ddc8b386d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yjuB0o06jjGgXZlg8lCP9892qt25yLcr2H15SgAaN0tYxp+p9zkJHhyJ475v?= =?us-ascii?Q?UPZP9LO1gjuCkLw3/bfTLs9TCj3m9jpa/YVXtvxU4AKwWMEgDEMPLN81l88o?= =?us-ascii?Q?v4IVm4Mi/YbxjSMXuv6N/7PyYA9AOiMT5pL2Bzq3JJWBRx66gITuAbuEIKB4?= =?us-ascii?Q?ntnHBD6EajYWVgpMQ3QX9p2ZSPyNn4zfSXZcsAng0Fzg6hB+bV0nrWCkjT6v?= =?us-ascii?Q?CVAWpmwADNdmopS6xj30VbwtXmQwVJDwRV2qlLuaSqurp1oUI5bnByCjzz1A?= =?us-ascii?Q?acI7ffhM4U/5G4/opHeSYrjd1pNiLiO3WK0PQiVB7bBw1hVrt36BT2B54lro?= =?us-ascii?Q?01p689os9yqrs1ifTiG17vZixH8UOD5p/oOJOGgGCRlJFGdJiGTWIj2SCibU?= =?us-ascii?Q?IYGzWRhMoo/iXZAX0fjZWMFhF40iQsC5uiU2Hd1LEqyhfCL9HZYyy1D2DT1R?= =?us-ascii?Q?WIVCWxHakwhkc1xYw1UYSCBFlaf3lW+GgDobEr3fcJfvatNVhtsJ1+aN0C/m?= =?us-ascii?Q?MNGwPQ8YqZc7iygMUv4usAR7EXA1xZ52a07cdVZQqLo2tEugyJiBNc2QWHqc?= =?us-ascii?Q?yzxUHraHxYT4TOXrEmQ8AlIeWjh2CVVNPbQYdGx13lD/RNKg+laiR9ra3iX6?= =?us-ascii?Q?SCwK6kftOhvJJcyR1fzk7ILGlqv/hDS4at3bbxlMaQN1jCcpcMz8Tb9u3htG?= =?us-ascii?Q?NCTfAYybm0R/tbXGwk1778YjXrgOGVb1jgC6u2CvJfyXHvZDKdxHR1hhZSjq?= =?us-ascii?Q?Uf8eJqoJmSxM8VUlW2Z+6faDrvX2kAftqZBVKdVco1WIW8leY01JZosDfZUA?= =?us-ascii?Q?f1zeiRlAiVilq9HGe5/ob8oB+HlyK8GFVLwrkFPyMky11d9plCROlQvHWrLd?= =?us-ascii?Q?KMQHyDoGhTEpG5RGl12SeJZGEr3ArLMS+o8iRD31Y+ifyDDGtqJa1H9tTw+Z?= =?us-ascii?Q?lOnt/S1joAXxe5YNLt5XLJDo0INhgnmB/6RtQ7zhQCB3sh9QTLUbuokqg/Q1?= =?us-ascii?Q?UtIoTyYssNDL99SzWyAr2twdLdxrOE9Aj6O2pcU5maxCiQEF2vDCnL+oTikW?= =?us-ascii?Q?moG5tUpvYBxIwF02HzxeAndbVoJG6/6Hzlor5DtIJJE5OAAGqIZOaACAq4PR?= =?us-ascii?Q?rxcIBhIJz3l7fJGSun7yGel3i64g1SLA2Bmobiuf22zayeFGPtLWEES+wOwn?= =?us-ascii?Q?DUoWZdJo/szLw8eN3OX23Ty4COD9eq/2inMpgJWyR6tWXF9H3Gk7EjSICViv?= =?us-ascii?Q?AF6VAP/0Hh3OQPe6DD/R+8uj2O6QSOrDoIjCjOEIPgK+3bjcz5+Vqaj2ygFj?= =?us-ascii?Q?mL6F27VisayTcjoecLP1BFIlXiuIY+gLs+iH2qB5VB47JkBrTypFW/TP+Tw8?= =?us-ascii?Q?RuX1+0xwYQ64t0xyZ04sexFU7I3+UUeL6bjZGA2WLa79YAOO3OE0/Q39NDAr?= =?us-ascii?Q?l988zcaETQJi6DPCWT/R0pckV2vFnsNHIIzwUp8hpqWH1CtRPfjgh0TEMq0m?= =?us-ascii?Q?M0sTW9hIGIS+Qu8tpg2TLC0b58SIH7FuJELe?= 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)(7416014)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:05:54.2580 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2b992ea-e5a8-4e4d-ce65-08ddc8b386d0 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: BN2PEPF00004FBE.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9094 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142789682116600 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 Reviewed-by: Oleksii Kurochko # riscv --- 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 5f81d060dd..d91a71acfd 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 48ecbfd600..8ed8e06872 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 eb1b2b729d..c637c45ad5 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 15b3c4b241..efa846da2a 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 93c5c357b1..5719bbfb93 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:53:22 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=1753142788; cv=pass; d=zohomail.com; s=zohoarc; b=e+i0uGZKhAOcMKrYfL6h9uDDCz4smTxAhr16VmKPrgdv9exgNNYVKxjdJOu08yUR9GVTomZsb5Tjl4/B1UrPsamw6hIu1ZoPFwLRuZFXfON6VAL8iypwgpnBhtE/CsfwzGg7sWkqY+b+YvSbGY/jq2bo34SPZ5kcgYc1PmvEsZA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142788; 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=rcJUu8FbvsQyOG8SGblhyV+uh/13+P9WHXWz0ZjRk3Q=; b=SiMOqUCCqxnMLGf4I2bJDkYNrvIKp4dS6HjGDrtFDcCUWsrFWpwTFbe7CCRGd2r9MgznSlEGljhqRwHKjSwm33LsMLyoePtMryaqf77ZXWTJ+C6cWVVWJ9Yp3qsK99dOumBajiKBlmZ7kKu5mSR243Rr9B8lHDMqAr9BaOfVRl0= 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 1753142788769238.4418770310523; Mon, 21 Jul 2025 17:06:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051779.1420248 (Exim 4.92) (envelope-from ) id 1ue0WD-0006wN-RV; Tue, 22 Jul 2025 00:06:05 +0000 Received: by outflank-mailman (output) from mailman id 1051779.1420248; Tue, 22 Jul 2025 00:06:05 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0WD-0006wE-Nb; Tue, 22 Jul 2025 00:06:05 +0000 Received: by outflank-mailman (input) for mailman id 1051779; Tue, 22 Jul 2025 00:06:03 +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 1ue0WB-0005Mp-Rw for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:06:03 +0000 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on20628.outbound.protection.outlook.com [2a01:111:f403:2412::628]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id a68da8e3-668f-11f0-b894-0df219b8e170; Tue, 22 Jul 2025 02:06:02 +0200 (CEST) Received: from BN8PR15CA0071.namprd15.prod.outlook.com (2603:10b6:408:80::48) by SJ2PR12MB9163.namprd12.prod.outlook.com (2603:10b6:a03:559::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.28; Tue, 22 Jul 2025 00:05:56 +0000 Received: from BN2PEPF00004FC0.namprd04.prod.outlook.com (2603:10b6:408:80:cafe::ad) by BN8PR15CA0071.outlook.office365.com (2603:10b6:408:80::48) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.23 via Frontend Transport; Tue, 22 Jul 2025 00:05:56 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FC0.mail.protection.outlook.com (10.167.243.186) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05:56 +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; Mon, 21 Jul 2025 19:05:54 -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: a68da8e3-668f-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gXcaiFAy58m13WYydu5X5TWFEd6nWJI2oPKFH0DKxt4GC04HLM58DSBr07+gKveiXvqndHCyAQkRo48vSISkqt1nUBH/2+epZRXj9XZwU9zVsHRGIr11T0qbU6p1Wux8beC909mNjw/1uagHNaVzA9/APnLilKMQvv3LrWwfCnSE2MsEMoLUMY77DIiNHWTQk4zdH2kwZjtlvjDaVlOGw6NWa80wXmp+B3tJrs9Nuw+C9+4LL6uXh9jNYZdfBRTDoFucALX/n+ARZq6PD1VeZQoF3FRwlkC6qnDQEySIivD3190JWkH37XGGoVjG8cTDtb1apzKSpDk7TBqfrnbPng== 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=rcJUu8FbvsQyOG8SGblhyV+uh/13+P9WHXWz0ZjRk3Q=; b=bkWXFA7tem72UK3hwQhCiVYnN1pLmvDjvP2jdtypX4W7wlmk8+vqbrI8LkczEKOcFD56v2kok3tMe1LA/6kjeArrn3AEENy9YGiT9CsivMCB9fcEACbRB7rN4441TiOXD2rPSQsy4p8WfPEBNG/948GntJJ5KUFUkFth6+C3mIzlNwX8zN4KaK2Kn6a4KhQpLqocvUIkD5LgBkznT9L4LxWSKcg42z+OIzGrm4NFLORrb/NwdVWJhbZW7LkTIx8kxeFLLmA9Phb7xQ6xcOQIsfmIy4E/Z/xtdXFoy3bwXTWyMnwJFDzN4jRR1hmvm7MrqPBEpSBSEJ1/xeH86iumwA== 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=rcJUu8FbvsQyOG8SGblhyV+uh/13+P9WHXWz0ZjRk3Q=; b=EnL5DHv0YRUOrbTIFwKuZfgEm5Id5QfMPlCKu+GnlZdfwDUDuVeiaXXiZ2RoFv/855IvIaopTUFQnU+bDBAKQGjwqe8/Yh7u+aKJFs9OtftMFRhSVwjmK/a9bJTUoA+JcR60V+wEsh6BnBJL6AB9pBbSPpnV1yp7yA1PNpYO83k= 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 , "Daniel P. Smith" , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel Subject: [PATCH v8 06/11] xen/dt: Rename bootfdt.c -> bootinfo-fdt.c Date: Tue, 22 Jul 2025 02:05:18 +0200 Message-ID: <20250722000525.7247-7-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FC0:EE_|SJ2PR12MB9163:EE_ X-MS-Office365-Filtering-Correlation-Id: f1f1424a-4a8e-4684-e4b9-08ddc8b38807 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Teq0ZgbWMKelzoUrpN43OtBgWhoiP+2mTZER4V5d+eZVOW4VVuSW2vH0zbdG?= =?us-ascii?Q?2rqUfysOwoxTGcMnYk9rFV5cp4XclxO5+rtyv9Omw3gzUtqhwH6V5U3BVxCt?= =?us-ascii?Q?6maZCl2xwAx8IDENKki5sCfPiSr+698/Ksxk2AZHy7lprEWInC2ciN1mcbAz?= =?us-ascii?Q?Tukr6OhZNwHsdIYIUoNJZ9BQTVCSH/gDG8cNY6oiwdRCorXDJQOk5uOQHtpQ?= =?us-ascii?Q?wlF9rUdZoAaIXpstsXWFjTF8yVGVWRb84m7gJHIPFW9I8IENfOwx+mmmQOyU?= =?us-ascii?Q?XMHhBuUiE4/y3DRWa7ItfY4ZwDD7xwXJYD7wiQFCotPnEhd/3GKlL4yZFIyP?= =?us-ascii?Q?QaMCxj3Z25Uj+OHe3bR1+NCAUKTx/8KmVjbAcHSyH2oqUuIXSed4vZLUmk3g?= =?us-ascii?Q?si9RgY7R1NR46JzCcshTBgGruXPg8rZxLfEbSHE5Jym7bIB1FTHIOy/GP69y?= =?us-ascii?Q?/LwE2gn9i1OGY1hRXnhXaX2QJDKuIlofbYfRMddF1GOtQYgbdqkgjIH9U1hp?= =?us-ascii?Q?yRwAJ5qCEc09iFuPYreJg1JFhAzZnQvzQ1/VtfuC9apMwOR7tOO1U7Ql2jVl?= =?us-ascii?Q?xCe587ILUClk0GHw/Nex/SQlgFRtBhsvg/RjB/7n3NoBc2wh9zKP/wzRTc0x?= =?us-ascii?Q?klNraIk4fwEdG9jO6RHdIoU4EXL1rfSSqXhJ9JGmCRdde3udwIGm0b3uqV8s?= =?us-ascii?Q?uvXI7yDtakFoDwdhvRC+r4Kkbv1F6ARn6zIYB6A9/ynOfpOFK33TRZgb53+T?= =?us-ascii?Q?bBoq7Dc7+FEvFk95XSHWuf45Rf/CA4G5ja2QSIE8CrQXwjDjyRpCg77MGq9W?= =?us-ascii?Q?UA5jzyA+/WzUW6ZI5N8IDq1Ba0Guzc/Xy9FOOLMM4YWRlsl+h0FNsASp0Bkc?= =?us-ascii?Q?XIFoHbD/mAndu7HQE69reo2Js2hZuZgFvsjGYt+cv2oOoQ5hiqtGg11hq1w6?= =?us-ascii?Q?XfUqgAkchumpoSDDAxW6DNwyHO8zKFbSZhOLrXF6EivWhNWM48/m+piMyJPz?= =?us-ascii?Q?upcOej8vIuOTwBNqVvOKYQCsGxO/xiZ0jqxIsrKVeb9Rcq6QuITRzH96x+9a?= =?us-ascii?Q?jCUabA8KqUIOYKIg/dbtl1/ZsRjNGhjVXZpBU+zsbU5meuloQKrWZmwoup4l?= =?us-ascii?Q?fxS5a1OrI0HrKSLKaXSMBuf1luGnkjhAnkoDAw6+svnmuAlKjnSRyW43JyCT?= =?us-ascii?Q?/2l7QbQ+Ilt5UgnwHA1NJPXJpXmZcsyssB2VaHvFLgDr/bZoNo2+qY/yp6v/?= =?us-ascii?Q?RyCW6AYAKEzemrapP6uzP1Y+f9GXU34bpQWIyfovuravSOQUtrRhX4VUl7pk?= =?us-ascii?Q?AFmmZz/MV56KyVG6XvgxyjZ2pmpqwWjyGgD4ngLnxzfxVppb70zsscCWbvJc?= =?us-ascii?Q?JxdvRlvQd6LIUZg0nN5cBn1ztcZ4GZmC+h//FxyXf3DTXpiAgcaEb+o4799R?= =?us-ascii?Q?53tJOeemDYEN/cou75zPVEjTrrfnVv9kWntjscDjy/VxDD5RKB5F78VGQfFs?= =?us-ascii?Q?atl96czdcrZcyxW+c6LBlvmxszMuArQQtCDS?= 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)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:05:56.2925 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f1f1424a-4a8e-4684-e4b9-08ddc8b38807 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: BN2PEPF00004FC0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9163 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142789348116600 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 --- 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:53:22 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=1753142798; cv=pass; d=zohomail.com; s=zohoarc; b=TJbx6LKEcYDEowTlKmTcwFxdVP6sobntSleWjV/zVuNxGugChgXXdcn+Tkzhazmun6jiqfdiCDK9dFVWSu8dioS4R7Dqw49iLZnd1RBn8Uzg/+Ygn7GKL5XBNTSRe/VlLTk3g4/k2E5dnM9Q8NXXXf5Ux3oXKotrxKLXGdHHheE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142798; 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=sGxaa+dSwgjrriqkjbe2PxTi0btSSmoTABqEFHqTwY4=; b=MTkoqq4rEo0Kow1ehCVByvy9WMi1QNgRmHwHd29jxw+xJ2+TPn5e6ch8tYr/GTEvo6S+je1ZxdDl470R6h8NaZ64ggpEjFPAtWaCXl3W8Ppg33437IBHy3Q7w0N54lvp2knAzcDUppzr1J5z0ED6OQ/kXRvHXyxHQMD9BbGkAoE= 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 1753142798851959.3593000227563; Mon, 21 Jul 2025 17:06:38 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051780.1420258 (Exim 4.92) (envelope-from ) id 1ue0WF-0007DC-4B; Tue, 22 Jul 2025 00:06:07 +0000 Received: by outflank-mailman (output) from mailman id 1051780.1420258; Tue, 22 Jul 2025 00:06:07 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0WE-0007C0-W1; Tue, 22 Jul 2025 00:06:06 +0000 Received: by outflank-mailman (input) for mailman id 1051780; Tue, 22 Jul 2025 00:06:05 +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 1ue0WC-0005Mp-S3 for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:06:04 +0000 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on20616.outbound.protection.outlook.com [2a01:111:f403:2417::616]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id a6fc5fbd-668f-11f0-b894-0df219b8e170; Tue, 22 Jul 2025 02:06:02 +0200 (CEST) Received: from BN8PR15CA0046.namprd15.prod.outlook.com (2603:10b6:408:80::23) by CYXPR12MB9442.namprd12.prod.outlook.com (2603:10b6:930:e3::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 00:05:58 +0000 Received: from BN2PEPF00004FC0.namprd04.prod.outlook.com (2603:10b6:408:80:cafe::c3) by BN8PR15CA0046.outlook.office365.com (2603:10b6:408:80::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 00:05:58 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FC0.mail.protection.outlook.com (10.167.243.186) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05:58 +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; Mon, 21 Jul 2025 19:05:55 -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: a6fc5fbd-668f-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AbHfkwGlU0o+9lJJ39u4DsTfkvFhG231rNk2GuofTBO117FewczK6CIZsvzV5IZ+Ae89b1sRx9n0P3YEAwqz8MvhGypRRgie6L8sd3gOnOU1MvGoPrSWDUm+auZ1shmLK4J8X2/tKxShIPUj7Jeeoq7hJiLYkPU61kEi3hy6O999OysalNM6R90vTJnOlEbsCvaNdD54ia91T9QL+Mzy85qWk+gmn18kkf60OmfsryUbZsUWZKcjRn+jn1cI+Wwhq1GMYgp3CjKf2gnyV0otcrL+oIRSKkn5hSYZczcQJa8yO8A4QX9nsZB8qy6GUXWLb/XxQMsQ8viktLIScG5IMQ== 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=sGxaa+dSwgjrriqkjbe2PxTi0btSSmoTABqEFHqTwY4=; b=YN2z0UVbNbuCA+zeBFq+iAKuZw8uzgeEStDK+9adUfM9RsAAJtnbZDjraUdjU+SmfXYHK0FO3JgcpZCMvQ6OT3uhdETFWIndRcorM6dx/hSCDe76GczLcNQ/F/df5aRwRaZAqheA60LbISf8aneimhawSEevgdf0Ov1iQlh0NeWyFwC75ekSuo5nMPWAFpbH/f/WMZjieCvVnuhFshb9UF5fWqLg+kwhmkRD2L50RfV2WIU+ALzn8V/CDbP916HhSfp8wGaUyhJ+B+FcMRuXmTFYSPMVarshPOJlvxc1d3BkDveK+OEjCVwjCx9DrRyH4UKEnQjlk+xXzP+uwMqBmQ== 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=sGxaa+dSwgjrriqkjbe2PxTi0btSSmoTABqEFHqTwY4=; b=P8tjciw7ZmUlwCh31en+nqbYCI9eiwJpW0mU6PCGFLdyuE5VNi5a5uQlznt8X19NWSnVs4e3PMAqo/TIlnTDaBp+XhYW+HCpsLkGyvHJUjGWFj/siM1SS/MAcQWPHZm2XP13RZWKkA7kpM5UKs/ntSYr+GzO4//8snUT7eKmQCk= 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 , "Daniel P. Smith" , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel Subject: [PATCH v8 07/11] xen/dt: Extract bootinfo-independent functions to bootfdt.c Date: Tue, 22 Jul 2025 02:05:19 +0200 Message-ID: <20250722000525.7247-8-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FC0:EE_|CYXPR12MB9442:EE_ X-MS-Office365-Filtering-Correlation-Id: c612de2f-352d-441b-4286-08ddc8b38935 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nOQ+PFVIR3jumJpBUK3ElliHmZBNhwQoveuU5Sz/lbZ4PtoXtFbceNXsObsl?= =?us-ascii?Q?MO5yB1inVVrR2V/Q0tuCPTzioQHigtUA8vszsA1e9wD2V8sd1XPpaRU0vCil?= =?us-ascii?Q?KJ1NcoOvKBWpf0p02Usb5C4A3n+thjEYcl8/6YyCsohppvZf0wf7t8zSmSF0?= =?us-ascii?Q?WreEA0SI199oEdafbFQ9Dq8U3P5B7dxaXBjRnbfjyONhhstszVQ/VoMd0mNQ?= =?us-ascii?Q?lZWXkj24igsaWbY5SLkapsaek1Wn0T6qnavdBncP5Ccoyq8i5ouAZQTveZJC?= =?us-ascii?Q?hJOTBZI+4c2UjLPrMZBdZoUD+OUDWv4G2jrYPEzoIpJwL2UEVCteSe5eQAAe?= =?us-ascii?Q?JmxvECvpYhzvuCHGCo5jxb7rtHH0nwcqjYAStj6TIHBdpK7jQFWmcxf1Ptfs?= =?us-ascii?Q?iIP0lWMDScfZtlI4zThBhTaPzLRfzUfeLu9yJ8XsRs+nlP+LeTVAkK44YaU0?= =?us-ascii?Q?ET55C/+Myn1Hkf/sCo4iSfCD1qEA5y4wY+EpVuBHbtEQgqvGgr2yzV4x+3wW?= =?us-ascii?Q?miMxjguuEQX87xuaGVJ4KEuV/MLGPxvoRSZkZNRMhfANrjUsufKKjsgNeDao?= =?us-ascii?Q?WwFMj1jXK7hS6PRUzvz20KhM2bWpln4gvu3d9X7bFn8IHofZe+igNMiFulDP?= =?us-ascii?Q?cZfVeYxUidu6QXZOhqaHcJEW3pd9xdQXaOsGb/diyLj/k5gTTJVoOTKSHN8d?= =?us-ascii?Q?vLsR8fHyKHrWj8bJ+HTlHjZXl897tdP1PCL2gi1JHHTv9rHfYWhJOR5/g1zT?= =?us-ascii?Q?vxzvkmANoolkRyw4VLs1HdxEALwlON6orusg4ilFtzaVjmehOusszj4vp+L7?= =?us-ascii?Q?3anGhF5Ax+EeknlRdBWiOSfBkstaMs2I3MtKzBzMhCCYiI6PiwnYvA7D59H4?= =?us-ascii?Q?F8vc9yQVNZ/GiAC3ALs9AylbXzXY+Jco0d8c+Q/tzlrkXmxKKLKygzJzgY6i?= =?us-ascii?Q?nNBsDl3x9LBglnOI9erim5B0KwN3t4RbA2HNr64O4C9Mh+AgIAiKO0ZcIa/H?= =?us-ascii?Q?mzt/Nqpc0np8iJx4TPhFfv6bx5w4TYsM5JcrTm/11AwAggvXuyLXMbrLOoHC?= =?us-ascii?Q?oyokvN+q+BrM+NvkLhYPDrF1kmsPkh+4FpcgKvMmY+GzS0tGk5aTtzCdZfzv?= =?us-ascii?Q?tS09Cj3gTOjSZ2gB3r2uFWtJyYgqfJSusAt9Ld4SYeREVpIiHDmlLQ0Fr15H?= =?us-ascii?Q?rDrpS/+qMY7t1LD+JgSL8yflBJgpPnTwKegDewitzSbIU0SMG67A4DpoEfDJ?= =?us-ascii?Q?ZRxVl1oOqF/dNwpsF+HlnLnUori90+9yOTruluNM6gqFHwrygjMNsrgi3kaL?= =?us-ascii?Q?N+P68xVXZjAG0sguxiUW8DTR+BFlP2EJc2fRVT0X2XvRbqwDzCZtvsyfwdCy?= =?us-ascii?Q?hVpkXizPQh49/3SNI3vBqENmrc308FKvDaqVpzVcNGgV+3qPEC48RxEdfJ+H?= =?us-ascii?Q?s41XGHJxrSGk4aAy8yncGTRxhk7g36Je2An0vecQjrMQhmK6n3Ai8LHHlP7F?= =?us-ascii?Q?iZ95FAzbz4GQfdkSAebFMbaK64nRqdRiomFq?= 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)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:05:58.2717 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c612de2f-352d-441b-4286-08ddc8b38935 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: BN2PEPF00004FC0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9442 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142799608116600 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 8ed8e06872..5111fc9436 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:53:22 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=1753142784; cv=pass; d=zohomail.com; s=zohoarc; b=mGpEX28QJEmGxy/R86Hgi1iXHEkoausyflCV7a+6V5OOXGLWJiP9vyWVg46ivLTbUhST+RLjvuCByPXetOMCur8zJDRXlkY1srVZ+cxfYclLPFohmGbEmtPhfAMeuctX0e/ZvNNQRzfXM/V/Md2KcrA9of5obzy3Ei9Z5VEBEWw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142784; 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=6fHjMn8lHWgcHqriNe2JjLS4lpBIsgJ/0Gm5CwwS0AA=; b=cKbbz8o58NxYnvVwpv5E98PBrS0Ncg3tk/4pOfgdDccjOyu3D2uAqJvm2nXNnlSqcJYAU3fsYwaM5sT7va9ucQa7m4vEaY/GZXBn8i9QTuReBcwtGq7SxofCCe5of8eCzn7D8AIMiijaYnHH03sZUkhDXv+e+0vhSITS9uoXdaw= 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 1753142784379914.1326421115231; Mon, 21 Jul 2025 17:06:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051782.1420269 (Exim 4.92) (envelope-from ) id 1ue0WG-0007UJ-Hw; Tue, 22 Jul 2025 00:06:08 +0000 Received: by outflank-mailman (output) from mailman id 1051782.1420269; Tue, 22 Jul 2025 00:06:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0WG-0007Tw-Bx; Tue, 22 Jul 2025 00:06:08 +0000 Received: by outflank-mailman (input) for mailman id 1051782; Tue, 22 Jul 2025 00:06:07 +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 1ue0WE-0005aW-Sx for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:06:06 +0000 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on20605.outbound.protection.outlook.com [2a01:111:f403:2409::605]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a92119c3-668f-11f0-a31d-13f23c93f187; Tue, 22 Jul 2025 02:06:06 +0200 (CEST) Received: from BN8PR15CA0044.namprd15.prod.outlook.com (2603:10b6:408:80::21) by DM6PR12MB4483.namprd12.prod.outlook.com (2603:10b6:5:2a2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 00:05:59 +0000 Received: from BN2PEPF00004FC0.namprd04.prod.outlook.com (2603:10b6:408:80:cafe::52) by BN8PR15CA0044.outlook.office365.com (2603:10b6:408:80::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 00:05:59 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF00004FC0.mail.protection.outlook.com (10.167.243.186) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:05:59 +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; Mon, 21 Jul 2025 19:05:57 -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: a92119c3-668f-11f0-a31d-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Us6m6B/HVR7INDA5fI94XPwfflNRuI/KVkKa4KIBo4JHNDZWSRfM3149IpIBUVDv5EAUSDxxmkNNublVtpO/UXsd3QSAaGx6ROi1OhkU6PGj3g1KsUcvIknjDFFA3ul8mSx+d2LCBbIiTmh98i0hpzMaurqUAkdzi2Fwb2eHBzoSzLMOifqcS6gyn1wWsmP3p442Im6JKhEkItRvKngy93pJ6z0cRl/6EoYHaNZtqU4Yx3fmLFok31Rni3AuVFiPnksGzZB61FpCptZaD2oLEhY5m8xoZSS3EIp2tscUBxyi/1xySHJWaCL5HsBh6q1r4YMTiXhkgwYCTIVZjqJGmQ== 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=6fHjMn8lHWgcHqriNe2JjLS4lpBIsgJ/0Gm5CwwS0AA=; b=j9wpaBNMRztqjz8AXBOukO76H5QU3D7Z7EdGMVEKJXZu1xMaKxHw2115xBHjkzsntR5MkIox54AWTJ3/M3hwdoMBu6D+2fsKhwyrBc7PLYZbvDjhx0drOKj65AwPvfcrsnkHO9uQXN6gO1/VQ+cGf1FMo+D2TLxFi8zDCtuU/ryU71EjUnLqPvtdl+3+cGMVu+tFcShi+2IeADO5VarvZidiyxaT4mX27pXertRwNeqOZqymCv9wX1GQzqZyfLfSg/OrsLAaThXRhnwIy4em0jbw+M+b+UABxfITLmsORNdgfQu8FF+8jZFgt0FSs15U1UT4EeQU4Hy14CtK87sn1A== 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=6fHjMn8lHWgcHqriNe2JjLS4lpBIsgJ/0Gm5CwwS0AA=; b=1WSDHv9c+rcl6Q6vTlAnrItJYleJBLtWJnLJWjEyu5NjmvbeiFemiilPMBUq6znnhd4atxMN1+QwjBwa8wdS+q3psyKCqE78Ll3MVFtSlqCwkiL+T7Yq+goaePaGs/oeG9xejcsN5KjlTaWFYib/cCGGcod0Bz8k/O5vq8zSkqo= 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 , "Daniel P. Smith" , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel Subject: [PATCH v8 08/11] xen/dt: Extract helper to map nodes to module kinds Date: Tue, 22 Jul 2025 02:05:20 +0200 Message-ID: <20250722000525.7247-9-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: BN2PEPF00004FC0:EE_|DM6PR12MB4483:EE_ X-MS-Office365-Filtering-Correlation-Id: 6a175454-2108-4902-7a77-08ddc8b389cc 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?s/WiHgRR8q8DZAC9I6PtZYlv0ETYP0/EAYaff6yvn8w1J7Q6id7voz+QLCZ8?= =?us-ascii?Q?b5C9sSxNsvPGNNQ5Q2DP63gIZ0iDLf8/3hltwEotWbsLF3qjtb7zzwyZ5QcX?= =?us-ascii?Q?Xea/ZZM0YiWoGKpRRLssQ8s86X+EDHevL7jOLSEHMdTINtGyi4KcUtDVWU0a?= =?us-ascii?Q?bK3ZYsKEdclpyO206GI1hWOmImywtWqARhJIP4m0bB+cu0WRLtED+IUplM8Q?= =?us-ascii?Q?hAU7ssSrkS+2B/Pk6QDCs1F4qciiAyajjQsksm8C7zzx8U3NxgXoaAi/Uj0e?= =?us-ascii?Q?W9tYJn0dOT7qU69Pk750mb90QWMmJZC/IMjHfwxJt2TBstESGsQNCDoAUhBb?= =?us-ascii?Q?Xc/9Kz3ju9kpF15zuy8vDu2kKG5bkfFeds7X7NAASLbXOaqFnph/TJdglLFb?= =?us-ascii?Q?lE0qolDfpNy1qL51hr85x1+8bY5cpG60HBTRN+lzORGLEEy2JoWbzq7VdlZt?= =?us-ascii?Q?aXe6lvISBb2CC2bc4rhFdVqu1Z+oRs05bgYg88LJdISgkVCkry2E+UMfZpW2?= =?us-ascii?Q?ozvOlW1OCkyVlRZstTztz55/qiGofnX9aSgVOkmMNOPXWsNnHZAsjpwNOFVe?= =?us-ascii?Q?6nXUjJKrLSn+Qe+TQuVzs7MLF9QZ/BOf5arPpDRYahokiZRvT8OTeDKgJjW/?= =?us-ascii?Q?2+iUbeBoFWEawmZHmQD9DmZp8ZmutEQZPBv0F2yxIAxyBO7Iglu1PqN775aU?= =?us-ascii?Q?yXt3nfMVopmv34dW0dGoZ+ZrCMRfbvjRRc4agHFC/T8Y7MMVDRJP0fFZwENv?= =?us-ascii?Q?sTEbwKaEY1WWZxhtWBUOtLyCgy3Qz4ig70ODAXxjLXxtZ0raBwAJm7RPOz2+?= =?us-ascii?Q?tGBjWS8QnD7+/YC/y9HSm+C+S+aCHKZ8rmm5ao6nLKCCNjTlxXVNUXnMwG7D?= =?us-ascii?Q?36woONdPYjILFnGsvNTrgyqmou8k9IJ1bkLo3Ie4FznlELlHptFLS/aDLAz1?= =?us-ascii?Q?zehj7PwUq4my4IRM8Oy/AjH3O+FiJ8NrxX6jwtu5oo2zqmE80pcJWO8Xjq3+?= =?us-ascii?Q?qVIcQHe142qs6vT1y2R7IetIuiFVI4zJpFb0B4dfF0i0b52W5f87G7jrkcZ6?= =?us-ascii?Q?sdRbRutswF/g4Kh/Is+2JdiOFY7ua6l+S5/E5ZTPfMd7BB2gE8DOdXD9AvNR?= =?us-ascii?Q?Q4e31LktvJlcLZHOoNSiXcbfcTI79Xg47qOdpDUxGGsrtd2JYKgdFH2s7Nd6?= =?us-ascii?Q?XpSCoDFNdxVB1G+TfZZke1tsP3R1thKvqN8dxkJ5y0OYISPGhhbLyE/P20JT?= =?us-ascii?Q?8+R6kpgbaFhNi3NzA5T2F/zrBw1b2G5/h+YYEHoSyzLIsL1l+08lBVjUApkX?= =?us-ascii?Q?q9cNzByny1ImqdHxhvHiSTP+AmdUtz6AfOoak7ng0LJ1uOQ0Li6pKbXSrOY7?= =?us-ascii?Q?/Fw3ZXHuDevkUw2IfNUSpQKlUmWgnsFi5yQVK0FrGNwWme+0MkboRZ2Fc9av?= =?us-ascii?Q?wS8azwlk34Wm1Rps+ShRfh4YMzLd1kkzytLGS0k9czo4+wuC/ArbqxZSO7MP?= =?us-ascii?Q?VyvBy6jjmbX0XqZGts4HRpo8JXY6FDobPfsz?= 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: 22 Jul 2025 00:05:59.2619 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a175454-2108-4902-7a77-08ddc8b389cc 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: BN2PEPF00004FC0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4483 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142785509116600 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..7c790b9a4d 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_POLICY; + 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 5111fc9436..2aa94b91a4 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_POLICY; - 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 5719bbfb93..6cf05b5cdd 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:53:22 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=1753142806; cv=pass; d=zohomail.com; s=zohoarc; b=ABzbHIAmDhmWaj3XHejt8iWgH9DJLJXceoDlrTe3s/tI1AzhytMO2XdSqvxZPqiXRya3W7HRu/A2ppm1YLUBc9s4Rv68y7nGJdkSRz9jMwKtiXpe2YWnjYn6Jzmc5uqdKZAkCEoTDqupO/URTEeiGJwZHtVYkoeKQrwtOG+pwdE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142806; 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=qtzFgpnqhRtQj2C70nYm1kK4rqn4LjFeX/2U3o2Gs+Y=; b=SnFCnQYSQv4CtG/r7zV4O9H0LAh0bzdL2/eaMBrRQPZRGgyDDnoYVRllXUE5SREbHXTb9tv4h4a1k1Pm9X1clJppRIJ6dInzoUgx4biqPmzAiTTrNn8VFeyDu/3MyxWJwXQlttnr38uEF/KUs1IdfoMZNyJqQV5yjNleTCPwFoY= 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 175314280616853.79888958050287; Mon, 21 Jul 2025 17:06:46 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051784.1420278 (Exim 4.92) (envelope-from ) id 1ue0WM-0008CE-2Q; Tue, 22 Jul 2025 00:06:14 +0000 Received: by outflank-mailman (output) from mailman id 1051784.1420278; Tue, 22 Jul 2025 00:06:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0WL-0008Bx-U2; Tue, 22 Jul 2025 00:06:13 +0000 Received: by outflank-mailman (input) for mailman id 1051784; Tue, 22 Jul 2025 00:06:11 +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 1ue0WJ-0005aW-P6 for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:06:11 +0000 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on20614.outbound.protection.outlook.com [2a01:111:f403:2009::614]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id ac0877ed-668f-11f0-a31d-13f23c93f187; Tue, 22 Jul 2025 02:06:10 +0200 (CEST) Received: from SA1PR03CA0022.namprd03.prod.outlook.com (2603:10b6:806:2d3::27) by BL1PR12MB5923.namprd12.prod.outlook.com (2603:10b6:208:39a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.28; Tue, 22 Jul 2025 00:06:05 +0000 Received: from SA2PEPF00003AE8.namprd02.prod.outlook.com (2603:10b6:806:2d3:cafe::af) by SA1PR03CA0022.outlook.office365.com (2603:10b6:806:2d3::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 00:06:04 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF00003AE8.mail.protection.outlook.com (10.167.248.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:06:02 +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; Mon, 21 Jul 2025 19:05:59 -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: ac0877ed-668f-11f0-a31d-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OZ1TUVhSPmLlgY9pR7Rn+rWV2u9QoEI+oUnMwZBQ2r6MmIeC05J6pdbGeoYbP35NwCdqduRxbsfyVfHqO8TvCJQle8mEqgq6r2CqgBDQFLrknWW9cq5j7WmPWsiHVOT+NXn3LPaZLfZIkGchwTeLkP6Kh3x+5uGreB2xYUV0/SyZWy6uZXmJr9PBaHSk3cYNJN+JCEtZ6Sco1SnexQtuXh0EynCYVRJXiJMOQAjn3bYs5LTdfbkfsnNzlnV0T/jYmatMrMrlN3m/CRup6bfuU6RwdIN6Iw5bWw94Bg6H1gxNGaJsKkc7ZKQYvtpy1zFgwymxHtSEnU4bAqXs94W72w== 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=qtzFgpnqhRtQj2C70nYm1kK4rqn4LjFeX/2U3o2Gs+Y=; b=G8AwHBXbXze7MyW4dqz81ggn8AD3TNfuvjznkpT5HFpFWhPdCwEMks9N1NNpm50BO6+Th2BIazJwfgOCdHox6hsqbSwkive74Ozcy+d6BpJKBtRaEbWpoeJrK3TIHjlBRRXT+rDnssZ5FBE8zx2SSAYzl6gdmyuHkTPNOInWe0NaBP00cR8EnUrrA+4JKqFXnSJf3fooryyLCfz4L1EqSt4PB45dzMi/iNlVsu+bFK8aYe1XeRRONO1c0IL7bZNxg/AdoPvFSefCfRZj3ZhYsDyJMmPJsu09hzIdgeR3aZrfYbMBkemlHCG4nETBSTB4ymb5ukuhXvXyTxW1lfE8jQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=temperror 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=qtzFgpnqhRtQj2C70nYm1kK4rqn4LjFeX/2U3o2Gs+Y=; b=U5QzdX/gfiAcwhDgLDnIZQ4BGROzlqWgAUqV57VRe2y1Z8PPsFV+PClrXuIOr8LoUdfH9uI6hkbKKlqN7F0/3pi/QmLHdSOdijxA4rdU3FmGVabyBn7omXXbwSs03yWXaNHDd0b2TeNmBM4LBwk4LNfuCeOXSubvnUxq7hXh9G0= X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=temperror 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: TempError (protection.outlook.com: error in processing during lookup of amd.com: DNS Timeout) From: Alejandro Vallejo To: CC: Alejandro Vallejo , "Daniel P. Smith" , 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 Subject: [PATCH v8 09/11] xen: Split HAS_DEVICE_TREE in two Date: Tue, 22 Jul 2025 02:05:21 +0200 Message-ID: <20250722000525.7247-10-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: SA2PEPF00003AE8:EE_|BL1PR12MB5923:EE_ X-MS-Office365-Filtering-Correlation-Id: 28bfe61d-0867-49d3-cc7d-08ddc8b38c0a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rkgrwyi1gEh3/YytArnSIthyVZEfEDLu1ESvKWuGtFPrP6Q37FbhT/+ovOTL?= =?us-ascii?Q?c75i9+7u3bu90GndKAVXJHMpO6AYQv8vTmnwJ2hRy8Qi01N0NN/0mNckTzZx?= =?us-ascii?Q?NpCsWU3+TsPTEsOsZDXjW1dT2BU7mt82qvdN57llQ9FhQojnyxozz/QtU1Lp?= =?us-ascii?Q?TY5mKQosV3mDc1s2SSLY3eAl6v7lbYasUqHCgJHIK9UsgTMiUTSah8p1GuEv?= =?us-ascii?Q?9MAmV/EkQcv2fRoxtc1VDISIdZ8vMBwqZFHBFp98i84awKToj+VsUuaSFaBc?= =?us-ascii?Q?hCZjhsR8MC+UBFkdRR4wTuKK16vLAByL1N+vzISZ+8eHB6Pd9S6RZ/hCrqJq?= =?us-ascii?Q?DovExCl/JwCjZVGZHCxs7jbg3SjA14DNvbF0ZZQ7J/h2xwBcR25rH3Vn8O4z?= =?us-ascii?Q?KnWjEPMqEl0ncCHJKNzHZIMxddXE7rdXsBWja68dDhk+rqUrDDBisdFNmO+I?= =?us-ascii?Q?O6KqPPzMNRsLiIp0Nw3tTKKtcDgJ0LhL9cfaIhX2lOvCzrFRtH+cOg8F6ttY?= =?us-ascii?Q?tmzeI1gHfh7BK4umvVzqQUSWOg8op8D6sMfeMtS5rn4gDatgCDaMsC9CbxgU?= =?us-ascii?Q?IlCnfFMmZF+WY9RLtwUOxqiIVytzF4J9iMODl5UpqI+c66T2a4MqhlRE2ayi?= =?us-ascii?Q?lpFbR1RT2rdMLCCNSaKyGw4dCoep1yWFW9RPNcyo876CcAOEScZ+iwna48FF?= =?us-ascii?Q?rWBkkSDfTNvRQxS1mbxXjEUboFmaDJ+XsVFyWvTTOvo3mPqQ1YsPnRQrvoRl?= =?us-ascii?Q?T2MWdvbRIgwR0psw/sYtmdoFjZh/ZtYD4mQoooF0v3sz3fxH59fSlWq3Q2wC?= =?us-ascii?Q?qUnirIJphpqscbEHBmCYU8yKFRMH5ygis8V0BtkUZ0JcgWnjcCnSDVLMGeHK?= =?us-ascii?Q?5OBU/MtOdcrWoykT4kK2tzc2Q2tbJ7FlzX8RMRp+lHPUA9cEetdXdASM+Zmk?= =?us-ascii?Q?HQB9Tlzkn0axW8laqI7vLK4Ue9tC4gca2jkBwZJA+JCu8F0tHq4OivVHNJ3+?= =?us-ascii?Q?4szuMI39mcrDuL2Grjvx991nlxpUvNcMxtSShn5aT+UdspJkK6MrxO3D77l+?= =?us-ascii?Q?FNKIn1NkMMIZoJ3P/sExb5DZo/UdkhBTO3eynIbl/n9EVIwimNY8hamMzv/2?= =?us-ascii?Q?87T06p7mWfxViSzxNInGLur1OV8+O/QCZzz9suq4eTTh3Pz4QvT7pGcc3iU8?= =?us-ascii?Q?BDcBQjYcaW+zZzBSc7p5xNjkLorWExSzroNPXitHFoXSd1CMtz4ntCPF/MnR?= =?us-ascii?Q?kGrsRc70M24+UUCdnofrdaoCR74j9fdpPy6Zafwj/MICqpwGmuUQwXml4IQa?= =?us-ascii?Q?0QWh0mwbzpXy3vo+k/YTY0aIHgkSFgZ+dj9hzrBUYs4SuQNzOdSVSifhGuvr?= =?us-ascii?Q?TUksujwQPaMVpOFNMzd1l7FakQ+E4Dl5vzZkGhAYkdJzzyVsYjbGl2XEp3+P?= =?us-ascii?Q?pmGkf1IUxCXYNQ4fsica54CrXXQfUkCdaEkslhn//JCCp3qo1lVd2rJYMQTg?= =?us-ascii?Q?79yZlIaZ7uuPtVWB4N5GosOb89tdWlgMNkJX?= 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)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:06:02.9912 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 28bfe61d-0867-49d3-cc7d-08ddc8b38c0a 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: SA2PEPF00003AE8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5923 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142807877116600 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 Reviewed-by: Oleksii Kurochko # riscv 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 bf6d1cf88e..17df147b25 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 64865112a1..2539a635f1 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 15ab048244..c6e8a36cd8 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 1019de6950..df29444220 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 6e1789c314..9a23d2827c 100644 --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -127,7 +127,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 @@ -549,7 +549,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) { @@ -562,7 +562,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) { @@ -807,7 +807,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 * @@ -857,7 +857,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; @@ -867,7 +867,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 8d44f5bfb6..8b7e01b506 100644 --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -85,7 +85,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 a7cb33a718..b0308e1b26 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1464,7 +1464,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; @@ -1525,7 +1525,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) { @@ -1995,7 +1995,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 27bfc3b995..cb4f54b542 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_POLIC= Y); --=20 2.43.0 From nobody Thu Oct 30 22:53:22 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=1753142805; cv=pass; d=zohomail.com; s=zohoarc; b=cW0d2H3wOd5J+AJcfqpZW8oUX1SLsyH4le+t4UE67ECSHoqlOrPWbi3o86aTrJ3svUPlvxo4afi0RhrMcpgDKdARYL7qik5uumqKfv80MH0JseARnLIa4RRjzmtPnoNtoWxSiKPHh7hIhyPemq59vErv8NuqgipS54V5BTjCDa0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753142805; 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=WSNs6VGYeP0WB6O3Pupp+lNvgGJLqwj8a1hrR438/5HgKYha8+uSn6FXYHWmZH38f47IGo6oWDq/tP0V64Vnl1BxvoLRK6OS9gQY20377+qxTsvpOsMFFEJz/DenFPWYpt+oci95krcNlM8hLsCEMI4LKcgvrf0x/y6sxLSi390= 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 175314280520697.64103294100642; Mon, 21 Jul 2025 17:06:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051798.1420288 (Exim 4.92) (envelope-from ) id 1ue0WT-0000i3-Cp; Tue, 22 Jul 2025 00:06:21 +0000 Received: by outflank-mailman (output) from mailman id 1051798.1420288; Tue, 22 Jul 2025 00:06:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0WT-0000hP-7x; Tue, 22 Jul 2025 00:06:21 +0000 Received: by outflank-mailman (input) for mailman id 1051798; Tue, 22 Jul 2025 00:06:19 +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 1ue0WR-0005Mp-MP for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:06:19 +0000 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2061e.outbound.protection.outlook.com [2a01:111:f403:2413::61e]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id ad2a8233-668f-11f0-b894-0df219b8e170; Tue, 22 Jul 2025 02:06:13 +0200 (CEST) Received: from SA1PR03CA0020.namprd03.prod.outlook.com (2603:10b6:806:2d3::17) by CY5PR12MB6273.namprd12.prod.outlook.com (2603:10b6:930:22::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 00:06:08 +0000 Received: from SA2PEPF00003AE8.namprd02.prod.outlook.com (2603:10b6:806:2d3:cafe::df) by SA1PR03CA0020.outlook.office365.com (2603:10b6:806:2d3::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 00:06:08 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF00003AE8.mail.protection.outlook.com (10.167.248.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:06:07 +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; Mon, 21 Jul 2025 19:06:02 -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: ad2a8233-668f-11f0-b894-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n3cc3dYIbB0N1D+04HUf0GjCea9WeOmO1DdST52kEjb9/tnhIOYUdd44mMjTaPIxKBcLX07oW/gVJQY1gE4E3d9W3h3g5K/okpZc0Txfa8IE9hiUl02RIYZkWliy9TzDZDhQ/8qErqbOKHzIBStqqZ4wcG7ldWd3PlBmP3wD1Y7VXxADXSt65By7hRyNAZ6HC3iexdnOxbVjnOsQJLV/YQSsM6eWOxJTYsgi8jbtIbsjGpSnSD9i1mJFm3J8tWF7B2TXEduz5vDpI3SEbdFUSYZUvMwykbYIhIxzlhj3h/5rNmOliNyTCYV6Fbodq2GCILeCmb2FObwcKcTzgpoGVQ== 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=PIISeavlvTR4ARzaEzi6VBnezrJ+Y8W3pOC3nNRqQkFileCqpNf71S+XUAXtm2peP0o86O2DBDLD3P7Yt8iaNcsT9QaT16kg8G0Y5OD9rtrIBfxQqrWeVrMLsdH/H7hh/J1HOGkDQaCOl/lGVvACLEqpb+01OLyO39u472boUIMJRSBMNcZpYbgv83XV9mda6+Sy395obKrHeWtx2BCYWcG2/96ZJeXE3Ydidmh5w4e4GvSxXynOSGmoTShW7l4PgmBu8UB4w+PRr6TxcdXRY5CbytAza6rhrUgI2K8UFNavwdk7SZlJ6m5GJD4HBWyP1rjXGrsCaqblloalY7ZqHQ== 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=EsePPzUjUMBSHXEjwwQ/qSJYdAE8mJDzeWUU0A7mXxYjacVkWk9v3scVxgLb0kwlWX6g7daFWE691dTthuwukP5ZClPYNyNFzffn1UIu70qEbtNw7wIjInZBW/kHwPEcFD95ZkH1NHojXtjR98GYUoPpiyMfefmsbA7rxu7GdOU= 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 , "Daniel P. Smith" , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel Subject: [PATCH v8 10/11] xen/dt: ifdef out DEV_DT-related bits from device_tree.{c,h} Date: Tue, 22 Jul 2025 02:05:22 +0200 Message-ID: <20250722000525.7247-11-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: SA2PEPF00003AE8:EE_|CY5PR12MB6273:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ae5cd52-830d-435d-8a1b-08ddc8b38ed5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?UqJWbycPSdNdoI5nSfrCTYOO0J6GHYU1J2xK/GX6Yj8N/g+5o5hCMm0GOJyX?= =?us-ascii?Q?neVTmWp3mIc7vfk3Kv2l47o8oN6OFYoidAIM6GXHaZWVYZMBjBQeRozSgBjB?= =?us-ascii?Q?JP4a4+6g+1uxCMA/+1fByK2LNlN7HCMNvuAZnY9LOWFOBgP5qPKmWgGDLZyr?= =?us-ascii?Q?k8aD2V9yyzSgHaDF9WXtw0q0DhtHUkXFdWjdi8cgrJ4VcoD333D5feHeBFVq?= =?us-ascii?Q?T5zPGXmQ7WcCExXJ+lWgS2KfNJdkXPBE0YhQY+AOI/NHdZ2Hgq83FqQq/IJ0?= =?us-ascii?Q?dai4meSEP08gIzbbB8vD9gzgrS8FA8/bpUpIP9w+ECUwPSa5fJ4XMp6Ctj5/?= =?us-ascii?Q?/fx6Hu9qUwasj5Gj5LNd6uHm7hWxQZx95yTDSlnSsZTGgLA+wM6qT2XqhkTn?= =?us-ascii?Q?dJmfnP0/u+mVOQsL1iHG2g5SgSJjkluyIM5IXIzlxQb/Yl+jvoAn2W4sa2nt?= =?us-ascii?Q?jLALiK2EPe32MoVDl9yGUKZ3TF6LVT32kGjWA+T1iwvibC06J/uBaKDichyW?= =?us-ascii?Q?BjTGebva+DCk3a/RVP9JJOrk17QS1FRTmc9da0fVGZLoMxx6Q3fNxFJqOMni?= =?us-ascii?Q?gU7t5BBIR3O5XWEMtqB0EtO9HUUy3AtTuNdj7bQRMBX9DV9w+gUIQlDCJ0F8?= =?us-ascii?Q?pu9FpEd1IHchvbPYb4mT9LPLomX+1ZUl4CHKy0YhX+XVTbkbx8Z094y6opoa?= =?us-ascii?Q?0TwSN/5KKOlAPydKOQtn+nDWwKYxDeXCCX0VWVHB81yCUNFPe0MipRlW1ibs?= =?us-ascii?Q?JktXnYqXrRUQYz3bL8Ly+wHXV8gF7WzliK+yMFrcYTc1mbYuww0kM7ao9It2?= =?us-ascii?Q?6AepEtIzkYNdUcVV01uw6WoH9DUXs6pb7pbptl/ot8sXukautjNz1H4Qbi5u?= =?us-ascii?Q?cI2WxVfhsuIFuZ2pcAD34fNX0gX+DLaPkUgo/cgwltjGY7uebwo4Cor+LKdY?= =?us-ascii?Q?HCfiFYRGYQncKmmf55XSTRAbrWVZL7oRvcHCtmg4VRbDdyU65QP4/yjcpESu?= =?us-ascii?Q?XaZAIhX/JCX52TdT2yXEceHkKnU8jvvgc3VlmhSKJWI1+zXNuB6MtDoZFwPZ?= =?us-ascii?Q?KL0LhKHfW2oGZ/I9cKoeaNwb1KbYQXAGGOmt2DMgvV/Y0ZYoGK32wkV/412D?= =?us-ascii?Q?hXTYYOiijWPiBlZyRlajPAsWnwiPdH9fA+v4gKqL490xVPTHg5FtYzzwd4mp?= =?us-ascii?Q?loZmGafZ6rPwQdQLdZg0fyd4n0FCY3TYLX0zKS37eE126Eu9jioXvpGLHPBx?= =?us-ascii?Q?1ahPSObciMtnGwHOkqxNCYgRSupOWkfxrYtHU0DsiISOI8AfTg3tAZoZ0JU6?= =?us-ascii?Q?38CmnGg0pwzk5YSUJcaw1jb+m0ug1+fUZmAdBJoPsdoKlSw9HO990bRsxocm?= =?us-ascii?Q?s4LlDJapUnWSqpvewe/LZ7BRbvhVEt2HlVcTyEuuXfmZN0+Uecdq67Gq3eIg?= =?us-ascii?Q?e7tMZP9DSQh1cCNK72LpU7XHSfdIIS2sPB4jweDQ8yfu94Y1xwY9zof1jO67?= =?us-ascii?Q?lZ2+3fKGCYd9iEBRAQkQPvmkeD3Rng4lO8D0?= 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)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:06:07.6887 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2ae5cd52-830d-435d-8a1b-08ddc8b38ed5 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: SA2PEPF00003AE8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6273 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753142807548116600 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:53:22 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=1753143064; cv=pass; d=zohomail.com; s=zohoarc; b=FXQR/YJsgRfYae2YmWLM3hrnDDvtd1yTq5k+v9hfuUplEuKDC0Y6NlOmK55OtTAVhDVkBld7XPCSu+0q2mRknc1a01o/XBxUXiKUNrxuE7T0XzWiL6EssjNqhJiSUpW/HtodH+ghMCvIVw/9oyG+ozqLEjwHKSzhgKw02F1Rrdo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753143064; 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=YuZAV/ZlkHtFzr30EhBJl223Vb8fALCS+9rIBB4xF/M=; b=jxgKe46kOTfBYf+osGIAMY+fYV3zOfVKZv0IK6hOyxBTpCKJq37/oqoAghXYtDnSxaJkhoqCo/HBjM8wrwVa4sxnR2HARSnAcTf24fwr47CfyrxqlSG81blRMV4d8Hj4RsC3UeZT+IJKTPYyqz3uzuET1Lxtk1HpoZN3r9GlIr8= 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 1753143064664976.9703849330969; Mon, 21 Jul 2025 17:11:04 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1051868.1420308 (Exim 4.92) (envelope-from ) id 1ue0aq-0004mX-EA; Tue, 22 Jul 2025 00:10:52 +0000 Received: by outflank-mailman (output) from mailman id 1051868.1420308; Tue, 22 Jul 2025 00:10:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ue0aq-0004mO-A7; Tue, 22 Jul 2025 00:10:52 +0000 Received: by outflank-mailman (input) for mailman id 1051868; Tue, 22 Jul 2025 00:10:51 +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 1ue0WX-0005aW-3x for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 00:06:25 +0000 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on20618.outbound.protection.outlook.com [2a01:111:f403:200a::618]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id ad712e9f-668f-11f0-a31d-13f23c93f187; Tue, 22 Jul 2025 02:06:13 +0200 (CEST) Received: from SA1PR03CA0003.namprd03.prod.outlook.com (2603:10b6:806:2d3::14) by SA1PR12MB7296.namprd12.prod.outlook.com (2603:10b6:806:2ba::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 00:06:08 +0000 Received: from SA2PEPF00003AE8.namprd02.prod.outlook.com (2603:10b6:806:2d3:cafe::79) by SA1PR03CA0003.outlook.office365.com (2603:10b6:806:2d3::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 00:06:08 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF00003AE8.mail.protection.outlook.com (10.167.248.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 00:06:08 +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; Mon, 21 Jul 2025 19:06:04 -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: ad712e9f-668f-11f0-a31d-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fvj+j56XF2pfvR91B46uwcskoPYkjiBKs3i5MOpX7KvzyqtW7SSd6KbrsNetKhk/xP0kBm8YSN3Ltgt5frwmgaGG2aZwYOoVeaRkWCuexfCqEVjjOcTywKbGnrxrukeMxLBTaxhet5AV5CWEB5iM6JO9StrwroXetKR2UU8RrX8wsXNNkyjIWWr6Aava2OfVgLWkSsLUl/dBQLo5Hyu0HXyrnqtVJb6x8QL4tAAvUM7pF4ZBnQP2f27GHmcYynn/SvSMgv7OAePkrYy35srZLG5YS2AKd0tqDhgLOgjwLgtdwupDWHdlc4M/7w70XLDZsScbD6uhw4tQB237x3GLbw== 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=YuZAV/ZlkHtFzr30EhBJl223Vb8fALCS+9rIBB4xF/M=; b=AOT7g1z7Oeb1U7x7Oe/uzE8L9TFG2u9U3LHB/0/BYWXHs5P5lQuSQ9295v2JZLgtxUPfp6LcABEqn5kbOis8MRT+zcmqFlDcTCZtDWPCHj7YT+mEwS55DidCO3Gb+40epLdClc4FEwiG8h/ewUy6To1sDog6n4H0TNUSsZ84vicjbMT3HiUUTxbRTPpLrQJ1wr9BLb+VSvqCCKV2+Jfp0BeOtWNeE6p+NWKS5vv8JuQLRubjsLG9ItLGDJjFimjjsqNF6JnmhZBUVzXSqqPhkp8ObBWZfM4YmLBa7K9s0bQDvoAlrTgUN6ZpxjipTctFRwW+TOxz+UMdlhTDZubNUA== 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=YuZAV/ZlkHtFzr30EhBJl223Vb8fALCS+9rIBB4xF/M=; b=GnCam3886WUOESTwDvMdcp8TZtc1FgJbpQEka6wkp0lcLmoNdnxBvc2bQEehyxfsSE0LNi1x3t02dzUmMKzVFkaTOdSxVPgAOL7pUzyJ1XpYj0MqRPdKf6imqifp9MdOhrfJsbRrUJ0yh3Mi4dpkuhJMUS+xrF+DOXzVj1l4Wao= 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 , "Daniel P. Smith" , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , "Bertrand Marquis" Subject: [PATCH v8 11/11] xen/dt: Allow CONFIG_DEVICE_TREE_PARSE to include device-tree/ Date: Tue, 22 Jul 2025 02:05:23 +0200 Message-ID: <20250722000525.7247-12-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722000525.7247-1-alejandro.garciavallejo@amd.com> References: <20250722000525.7247-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: SA2PEPF00003AE8:EE_|SA1PR12MB7296:EE_ X-MS-Office365-Filtering-Correlation-Id: 842acead-0fb5-4f7c-f935-08ddc8b38f71 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?eJFMqT6yFagVZSPrE3ORHC2zYIi/TO5e2i66NMXjCnCPsLD6zVb3mF0Co3in?= =?us-ascii?Q?y0DyRXtl9jDRfLIDYdXiJCvdPH+SKiXcwFJdTyDFVG9JYdmJnRbIREX9nq4q?= =?us-ascii?Q?c2NtETwo0bkjAVn2dqbC4mC7DlcLTIEIVR50i3zK3HKqmGCLRKd/ti6BWDFQ?= =?us-ascii?Q?apzoPsaqSVq8zXXro6Z8jBQbrO9ZW/Z5bSfN8RfMBkvzhQGuoNgUjhyBuhr7?= =?us-ascii?Q?nbnehjaqoahtHbiP4mSpwbioUzdayLTG5eKyO49G2efDK30VDLjq5zUYDeZE?= =?us-ascii?Q?yWwKuYS/zKyc2CmcDfdcIVhJHejhgOMyuJTfvtbNz+uTBmF0gqXOsOspk4qZ?= =?us-ascii?Q?DDVcIRbHTMyw2XL6ZwdKMRXgsHo8Uz5VfJh5DCw+4OlQNkg4GPZEk/o42+xX?= =?us-ascii?Q?TtLHItr3I2/87v24aQ1ldWpyzz3fOatocYeNLmOJrW3tzKD/ofQYYDDUleWb?= =?us-ascii?Q?2LMiQtjxV5zg4iI0k7Yc6gBJrC8XlaUOCahHkz2B9C+E5pnqvXKge806LPIM?= =?us-ascii?Q?H4/ULORwQhf6LJcrLthyYkkrFbodZefAUSqTvkuW1qneYXnl1xkbbnlbO+JY?= =?us-ascii?Q?zCsZze6ZwtUhOBgQfRtsWX+mhT3Q4M6LNBOnwAAw6o797iNbR/oJbh4YT61Y?= =?us-ascii?Q?0ABKV4E4YRuqEA8JDt1Qw1BtCposhxxL0//0StwGpHUxP7Wd6z35e7LI7p3A?= =?us-ascii?Q?5YVhNXKVixz0iA2cUTqlJ/taAnFb5zfyqxuKSx3Z482BAxUxxgBXyJwzIW8a?= =?us-ascii?Q?EcKrq2/uq4zQ/2KY+DREn/3fgnoC9yFoK0DiWDMUXtrWhvipc7OGxXicUhjN?= =?us-ascii?Q?FZIEjbdmXXl3Jkm+fQaT2/VzaYWvsiSvSgswjEec9QsLYIhC4SuzEPcV6GG8?= =?us-ascii?Q?dLAGvAJq4/zGdhT8QZBzjaUAjrVkJxg5DPU5ZkwxGuJZJX2JOe9U3ueZVBXG?= =?us-ascii?Q?LiLRriqzH9MB4Z1MMkhrhY5V3yi8ngAvQaYKfqH1jWNIJmzioRvnkPppXOfQ?= =?us-ascii?Q?gyf4OTNb6CpvoFSinA9obgO1QkbMsWvQL9JxVbq+yT/YLHgE0sXb8cVyppTJ?= =?us-ascii?Q?kS5GYV7dzEGuHVT5xbdy9N6fQJO4lx2qJvqM9excYW4sKRN20zn4etpGHb98?= =?us-ascii?Q?31Xe2IzBxXXkUJHbkTNqDoCvJEJ1vUxvckmwtWRSpV48oqM3ImAAXVwMTllx?= =?us-ascii?Q?QwHcTiUqss+ZppDOIs5zZYACcxsR6860UiZUvmPHWBWGpm01uMAIVJRzqqeB?= =?us-ascii?Q?HK45Dd7uDFTTdGbi2HiEpNeHkXomq99nJ4r9Hc73QACJDSOdHMsxQ9J8E60G?= =?us-ascii?Q?buTFe5q7YJCr7/uIq2JMum7JzPXF86yIP8OHLcundi+dmnXoy5R6YOQjQ6Mx?= =?us-ascii?Q?Yt+BnDvKgKhKEYf8+wJx5YCgMlB8qYgzc9p+W3MWz/ZumeV4dVKyA5m5IVqQ?= =?us-ascii?Q?VKGjVwyKh590lLD0dSwMc2rFgVAKpBSeeSo+4ZKWnBlEijEOwpoFSEHsbF3j?= =?us-ascii?Q?lbOOHWI8iahoh2HBheBAZpuCHdwmdpWWyGv2?= 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)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 00:06:08.7153 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 842acead-0fb5-4f7c-f935-08ddc8b38f71 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: SA2PEPF00003AE8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7296 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1753143066515116600 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 --- v8: * Remove duplicate obj-y introduced in v7 --- xen/common/Makefile | 2 +- xen/common/device-tree/Makefile | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/common/Makefile b/xen/common/Makefile index c6e8a36cd8..8dce771970 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..e399242cdf 100644 --- a/xen/common/device-tree/Makefile +++ b/xen/common/device-tree/Makefile @@ -1,11 +1,11 @@ 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