From patchwork Mon Mar 15 06:51:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Orzel X-Patchwork-Id: 12138491 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB6F0C433E0 for ; Mon, 15 Mar 2021 06:51:54 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 93199601FD for ; Mon, 15 Mar 2021 06:51:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 93199601FD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.97849.185626 (Exim 4.92) (envelope-from ) id 1lLh4p-0007l2-2C; Mon, 15 Mar 2021 06:51:43 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 97849.185626; Mon, 15 Mar 2021 06:51:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lLh4o-0007kv-VZ; Mon, 15 Mar 2021 06:51:42 +0000 Received: by outflank-mailman (input) for mailman id 97849; Mon, 15 Mar 2021 06:51:41 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lLh4m-0007kq-Vo for xen-devel@lists.xenproject.org; Mon, 15 Mar 2021 06:51:41 +0000 Received: from foss.arm.com (unknown [217.140.110.172]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 78b7bac2-4a26-4bc9-804d-b716a9726baf; Mon, 15 Mar 2021 06:51:38 +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 44FDCD6E; Sun, 14 Mar 2021 23:51:38 -0700 (PDT) Received: from e123311-lin.arm.com (unknown [10.57.18.146]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 650793F792; Sun, 14 Mar 2021 23:51:36 -0700 (PDT) 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: 78b7bac2-4a26-4bc9-804d-b716a9726baf 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 v6] arm: Add Kconfig entry to select CONFIG_DTB_FILE Date: Mon, 15 Mar 2021 07:51:29 +0100 Message-Id: <20210315065129.27036-1-michal.orzel@arm.com> X-Mailer: git-send-email 2.29.0 MIME-Version: 1.0 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 += -DCONFIG_DTB_FILE=\"$(CONFIG_DTB_FILE)\" as it is not needed since Kconfig will define it in a header with all the other config options. Make a change in the linker script from: _sdtb = .; to: PROVIDE(_sdtb = .); to avoid creation of _sdtb if there is no reference to it. Signed-off-by: Michal Orzel --- xen/arch/arm/Makefile | 5 ++--- xen/arch/arm/arm32/head.S | 4 ++-- xen/arch/arm/arm64/head.S | 4 ++-- xen/arch/arm/xen.lds.S | 4 +--- xen/common/Kconfig | 8 ++++++++ 5 files changed, 15 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 += $(TARGET_SUBARCH)/head.o #obj-bin-y += ....o -ifdef CONFIG_DTB_FILE +ifneq ($(CONFIG_DTB_FILE),"") obj-y += dtb.o -AFLAGS-y += -DCONFIG_DTB_FILE=\"$(CONFIG_DTB_FILE)\" endif ALL_OBJS := $(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 $@ $< -dtb.o: $(CONFIG_DTB_FILE) +dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE)) .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 := phys-offset */ /* Using the DTB in the .dtb section? */ -#ifdef CONFIG_DTB_FILE +.ifnes CONFIG_DTB_FILE,"" ldr r8, =_sdtb add r8, r10 /* r8 := paddr(DTB) */ -#endif +.endif /* 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 := phys-offset */ /* Using the DTB in the .dtb section? */ -#ifdef CONFIG_DTB_FILE +.ifnes CONFIG_DTB_FILE,"" load_paddr x21, _sdtb -#endif +.endif /* Initialize the UART if earlyprintk has been enabled. */ #ifdef CONFIG_EARLY_PRINTK diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S index 004b182acb..540a7ccc9d 100644 --- a/xen/arch/arm/xen.lds.S +++ b/xen/arch/arm/xen.lds.S @@ -220,11 +220,9 @@ SECTIONS } :text _end = . ; -#ifdef CONFIG_DTB_FILE /* Section for the device tree blob (if any). */ - _sdtb = .; + PROVIDE(_sdtb = .); .dtb : { *(.dtb) } :text -#endif /* Sections to be discarded */ /DISCARD/ : { diff --git a/xen/common/Kconfig b/xen/common/Kconfig index eb953d171e..71fc9e00cb 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -400,6 +400,14 @@ config DOM0_MEM Leave empty if you are not sure what to specify. +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. + config TRACEBUFFER bool "Enable tracing infrastructure" if EXPERT default y