From nobody Mon May 6 13:57:08 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1616401092; cv=none; d=zohomail.com; s=zohoarc; b=JJDNsmWpN9q8GvF5UhXBBptoS8Cv68RpWUKX4oUXpLTsWttns31oIBxL2gy+cQqjj8d49P2tfPuUAcQ4Fe+1XwJ47uHnDWpHzM8DfZtVrJqLQ/BWF1i9GLZW01yoUK8pKGxQCambrZIBVdDncA5DdznMNS6OC/3nm/Tm2WuMbAY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616401092; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=keCCKLdOLTjTACvXWjSNang1flyMKZc92YNcUS67FMM=; b=iuSUsZeV/RFqAmnpzhQWOadTj4upjgnbBml3GSsowLbeZPP/WeE/tatqYMAg8j5BR6nicn3lWQviWp7bKzrqM1nEbSvWjBjrUiEyXq1z/omoPo1dyBKtJJ2hOXTqmEavSIakXxqhkAmc4D53CsLtkqTnmZX9AIlkdQbJR7qI/Io= ARC-Authentication-Results: i=1; mx.zohomail.com; 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; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1616401092269740.4104794924189; Mon, 22 Mar 2021 01:18:12 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.100032.190448 (Exim 4.92) (envelope-from ) id 1lOFkd-0003yE-4Y; Mon, 22 Mar 2021 08:17:27 +0000 Received: by outflank-mailman (output) from mailman id 100032.190448; Mon, 22 Mar 2021 08:17:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lOFkd-0003y7-0M; Mon, 22 Mar 2021 08:17:27 +0000 Received: by outflank-mailman (input) for mailman id 100032; Mon, 22 Mar 2021 08:17:26 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lOFkc-0003y2-I8 for xen-devel@lists.xenproject.org; Mon, 22 Mar 2021 08:17:26 +0000 Received: from foss.arm.com (unknown [217.140.110.172]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 361744bb-cdba-4ba6-a5ec-7bacc7b3d8cb; Mon, 22 Mar 2021 08:17:24 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7C3591042; Mon, 22 Mar 2021 01:17:23 -0700 (PDT) Received: from e123311-lin.arm.com (unknown [10.57.15.231]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 084413F719; Mon, 22 Mar 2021 01:17:20 -0700 (PDT) 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: 361744bb-cdba-4ba6-a5ec-7bacc7b3d8cb From: Michal Orzel To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Andrew Cooper , George Dunlap , Ian Jackson , Jan Beulich , Wei Liu , bertrand.marquis@arm.com Subject: [PATCH v8] arm: Add Kconfig entry to select CONFIG_DTB_FILE Date: Mon, 22 Mar 2021 09:17:15 +0100 Message-Id: <20210322081715.26175-1-michal.orzel@arm.com> X-Mailer: git-send-email 2.29.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently in order to link existing DTB into Xen image we need to either specify option CONFIG_DTB_FILE on the command line or manually add it into .config. Add Kconfig entry: CONFIG_DTB_FILE to be able to provide the path to DTB we want to embed into Xen image. If no path provided - the dtb will not be embedded. Remove the line: AFLAGS-y +=3D -DCONFIG_DTB_FILE=3D\"$(CONFIG_DTB_FILE)\" as it is not needed since Kconfig will define it in a header with all the other config options. Move definition of _sdtb into dtb.S to prevent defining it if there is no reference to it or if someone protects _sdtb with #ifdef rather than with .ifnes. If the latter, we will get a compiler error. Signed-off-by: Michal Orzel Reviewed-by: Bertrand Marquis Reviewed-by: Julien Grall --- xen/arch/arm/Makefile | 5 ++--- xen/arch/arm/arm32/head.S | 4 ++-- xen/arch/arm/arm64/head.S | 4 ++-- xen/arch/arm/dtb.S | 1 + xen/arch/arm/xen.lds.S | 3 --- xen/common/Kconfig | 10 ++++++++++ 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile index 16e6523e2c..46e6a95fec 100644 --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Makefile @@ -68,9 +68,8 @@ extra-y +=3D $(TARGET_SUBARCH)/head.o =20 #obj-bin-y +=3D ....o =20 -ifdef CONFIG_DTB_FILE +ifneq ($(CONFIG_DTB_FILE),"") obj-y +=3D dtb.o -AFLAGS-y +=3D -DCONFIG_DTB_FILE=3D\"$(CONFIG_DTB_FILE)\" endif =20 ALL_OBJS :=3D $(TARGET_SUBARCH)/head.o $(ALL_OBJS) @@ -137,7 +136,7 @@ asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c xen.lds: xen.lds.S $(CPP) -P $(a_flags) -MQ $@ -o $@ $< =20 -dtb.o: $(CONFIG_DTB_FILE) +dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE)) =20 .PHONY: clean clean:: diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S index c404fa973e..50f019ed98 100644 --- a/xen/arch/arm/arm32/head.S +++ b/xen/arch/arm/arm32/head.S @@ -156,10 +156,10 @@ past_zImage: sub r10, r9, r0 /* r10 :=3D phys-offset */ =20 /* Using the DTB in the .dtb section? */ -#ifdef CONFIG_DTB_FILE +.ifnes CONFIG_DTB_FILE,"" ldr r8, =3D_sdtb add r8, r10 /* r8 :=3D paddr(DTB) */ -#endif +.endif =20 /* Initialize the UART if earlyprintk has been enabled. */ #ifdef CONFIG_EARLY_PRINTK diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S index 5d44667bd8..f38a8dfca7 100644 --- a/xen/arch/arm/arm64/head.S +++ b/xen/arch/arm/arm64/head.S @@ -296,9 +296,9 @@ real_start_efi: sub x20, x19, x0 /* x20 :=3D phys-offset */ =20 /* Using the DTB in the .dtb section? */ -#ifdef CONFIG_DTB_FILE +.ifnes CONFIG_DTB_FILE,"" load_paddr x21, _sdtb -#endif +.endif =20 /* Initialize the UART if earlyprintk has been enabled. */ #ifdef CONFIG_EARLY_PRINTK diff --git a/xen/arch/arm/dtb.S b/xen/arch/arm/dtb.S index c703aef12b..c39f3a095c 100644 --- a/xen/arch/arm/dtb.S +++ b/xen/arch/arm/dtb.S @@ -1,2 +1,3 @@ .section .dtb,#alloc + GLOBAL(_sdtb) .incbin CONFIG_DTB_FILE diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S index 004b182acb..fc1d39a886 100644 --- a/xen/arch/arm/xen.lds.S +++ b/xen/arch/arm/xen.lds.S @@ -220,11 +220,8 @@ SECTIONS } :text _end =3D . ; =20 -#ifdef CONFIG_DTB_FILE /* Section for the device tree blob (if any). */ - _sdtb =3D .; .dtb : { *(.dtb) } :text -#endif =20 /* Sections to be discarded */ /DISCARD/ : { diff --git a/xen/common/Kconfig b/xen/common/Kconfig index eb953d171e..a1755cd380 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -400,6 +400,16 @@ config DOM0_MEM =20 Leave empty if you are not sure what to specify. =20 +config DTB_FILE + string "Absolute path to device tree blob" + depends on HAS_DEVICE_TREE + 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 + to a device tree that will be linked directly inside Xen binary. + + This is an optional config. Leave empty if not needed. + config TRACEBUFFER bool "Enable tracing infrastructure" if EXPERT default y --=20 2.29.0