All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien@xen.org>
To: Michal Orzel <michal.orzel@arm.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	bertrand.marquis@arm.com
Subject: Re: [PATCH v4] arm: Add Kconfig entry to select CONFIG_DTB_FILE
Date: Thu, 11 Mar 2021 10:34:26 +0000	[thread overview]
Message-ID: <3d3e5573-6d64-98cd-1f6f-897eb860d8ba@xen.org> (raw)
In-Reply-To: <20210310065803.348-1-michal.orzel@arm.com>

Hi Michal,

On 10/03/2021 06:58, Michal Orzel wrote:
> 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.
> 
> Signed-off-by: Michal Orzel <michal.orzel@arm.com>
> ---
>   xen/arch/arm/Makefile | 5 ++---
>   xen/common/Kconfig    | 8 ++++++++
>   2 files changed, 10 insertions(+), 3 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/common/Kconfig b/xen/common/Kconfig
> index eb953d171e..a27836bf47 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.

With this approach, CONFIG_DTB_FILE will always be defined. This means 
that Xen will always be compiled to use the "embedded" DTB. When the 
string is "", it will be garbagge.

So I think we need a second config to that indicates whether the string 
is empty or not.

Interestingly, your first version of patch didn't expose the problem 
because CONFIG_DTB_FILE would not be defined if the CONFIG_LINK_DTB is 
not selected. Although, it would still happily build if CONFIG_DTB_FILE 
is "".

Cheers,

-- 
Julien Grall


  parent reply	other threads:[~2021-03-11 10:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-10  6:58 [PATCH v4] arm: Add Kconfig entry to select CONFIG_DTB_FILE Michal Orzel
2021-03-10  8:05 ` Bertrand Marquis
2021-03-10  9:00 ` Jan Beulich
2021-03-10 11:33   ` Ian Jackson
2021-03-10 11:40     ` Julien Grall
2021-03-10 13:36       ` Ian Jackson
2021-03-11  9:17         ` Michal Orzel
2021-03-11 10:34 ` Julien Grall [this message]
2021-03-11 10:41   ` Michal Orzel
2021-03-11 11:11     ` Julien Grall
2021-03-11 12:39       ` Michal Orzel
2021-03-11 13:10         ` Jan Beulich
2021-03-11 13:32           ` Julien Grall
2021-03-11 14:16             ` Michal Orzel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3d3e5573-6d64-98cd-1f6f-897eb860d8ba@xen.org \
    --to=julien@xen.org \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=bertrand.marquis@arm.com \
    --cc=george.dunlap@citrix.com \
    --cc=iwj@xenproject.org \
    --cc=jbeulich@suse.com \
    --cc=michal.orzel@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.