diff mbox series

arm: Add Kconfig entry to select CONFIG_DTB_FILE

Message ID 20210308095233.13329-1-michal.orzel@arm.com (mailing list archive)
State Superseded
Headers show
Series arm: Add Kconfig entry to select CONFIG_DTB_FILE | expand

Commit Message

Michal Orzel March 8, 2021, 9:52 a.m. UTC
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 entries: CONFIG_LINK_DTB and CONFIG_DTB_FILE
to be able to select this option and provide the path to
DTB we want to embed into Xen image.

Signed-off-by: Michal Orzel <michal.orzel@arm.com>
---
 xen/arch/arm/Makefile |  2 --
 xen/common/Kconfig    | 14 ++++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

Comments

Jan Beulich March 8, 2021, 10 a.m. UTC | #1
On 08.03.2021 10:52, Michal Orzel wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -400,6 +400,20 @@ config DOM0_MEM
>  
>  	  Leave empty if you are not sure what to specify.
>  
> +config LINK_DTB
> +	bool "Link DTB into Xen image"
> +	depends on ARM
> +	default n

I don't think this last line is needed.

> +config DTB_FILE
> +	string "Absolute path to device tree blob"
> +	default ""
> +	depends on LINK_DTB
> +	---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.

How is selecting LINK_DTB but leaving DTB_FILE at an empty string
different from not having a LINK_DTB setting at all?

Jan
Michal Orzel March 8, 2021, 11:02 a.m. UTC | #2
Hi Jan,

On 08.03.2021 11:00, Jan Beulich wrote:
> On 08.03.2021 10:52, Michal Orzel wrote:
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
>> @@ -400,6 +400,20 @@ config DOM0_MEM
>>  
>>  	  Leave empty if you are not sure what to specify.
>>  
>> +config LINK_DTB
>> +	bool "Link DTB into Xen image"
>> +	depends on ARM
>> +	default n
> 
> I don't think this last line is needed.
> 
I agree. I can fix it.
>> +config DTB_FILE
>> +	string "Absolute path to device tree blob"
>> +	default ""
>> +	depends on LINK_DTB
>> +	---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.
> 
> How is selecting LINK_DTB but leaving DTB_FILE at an empty string
> different from not having a LINK_DTB setting at all?
> 
LINK_DTB acts as a switch to allow setting the dtb path. Not having LINK_DTB option will result in
a build failure each time the user does not want to embed dtb into Xen(DTB_FILE is empty).
I do not see why someone would want to select LINK_DTB leaving DTB_FILE as an empty string.
> Jan
> 

Cheers,
Michal
Jan Beulich March 8, 2021, 11:28 a.m. UTC | #3
On 08.03.2021 12:02, Michal Orzel wrote:
> On 08.03.2021 11:00, Jan Beulich wrote:
>> On 08.03.2021 10:52, Michal Orzel wrote:
>>> +config DTB_FILE
>>> +	string "Absolute path to device tree blob"
>>> +	default ""
>>> +	depends on LINK_DTB
>>> +	---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.
>>
>> How is selecting LINK_DTB but leaving DTB_FILE at an empty string
>> different from not having a LINK_DTB setting at all?
>>
> LINK_DTB acts as a switch to allow setting the dtb path. Not having LINK_DTB option will result in
> a build failure each time the user does not want to embed dtb into Xen(DTB_FILE is empty).

Which isn't any different from having LINK_DTB and leaving the
string empty, is it? I.e. imo no improved user experience.

> I do not see why someone would want to select LINK_DTB leaving DTB_FILE as an empty string.

People may not "want" to, but simply think accepting the default
is fine, considering they've already said to link in some DTB.
It may be obvious to you that there's no good default here, but
it may not be to the person configuring their Xen. I'm guessing
here, but did you try leaving out the default line? Would this
make kconfig insist on the person to type in something? (Likely
an empty string would still be accepted. As would be a relative
path, despite what the help text says; I guess some forms of
relative paths may even work.)

Jan
Michal Orzel March 8, 2021, 1:11 p.m. UTC | #4
On 08.03.2021 12:28, Jan Beulich wrote:
> On 08.03.2021 12:02, Michal Orzel wrote:
>> On 08.03.2021 11:00, Jan Beulich wrote:
>>> On 08.03.2021 10:52, Michal Orzel wrote:
>>>> +config DTB_FILE
>>>> +	string "Absolute path to device tree blob"
>>>> +	default ""
>>>> +	depends on LINK_DTB
>>>> +	---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.
>>>
>>> How is selecting LINK_DTB but leaving DTB_FILE at an empty string
>>> different from not having a LINK_DTB setting at all?
>>>
>> LINK_DTB acts as a switch to allow setting the dtb path. Not having LINK_DTB option will result in
>> a build failure each time the user does not want to embed dtb into Xen(DTB_FILE is empty).
> 
> Which isn't any different from having LINK_DTB and leaving the
> string empty, is it? I.e. imo no improved user experience.
> 
>> I do not see why someone would want to select LINK_DTB leaving DTB_FILE as an empty string.
> 
> People may not "want" to, but simply think accepting the default
> is fine, considering they've already said to link in some DTB.
> It may be obvious to you that there's no good default here, but
> it may not be to the person configuring their Xen. I'm guessing
> here, but did you try leaving out the default line? Would this
> make kconfig insist on the person to type in something? (Likely
> an empty string would still be accepted. As would be a relative
> path, despite what the help text says; I guess some forms of
> relative paths may even work.)
> 
There is no option here to make kconfig insist on person to type something.
There is one solution. If I change in here:
https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/Makefile;h=16e6523e2cc6072b7d4cbcdeaf4726b7a9b1d381;hb=HEAD#l71
from:
ifdef CONFIG_DTB_FILE
to:
ifneq ($(CONFIG_DTB_FILE),"")
then if user selects LINK_DTB but does not provide dtb path, the dtb will not be embedded into Xen.
> Jan
> 

Michal
Jan Beulich March 8, 2021, 1:13 p.m. UTC | #5
On 08.03.2021 14:11, Michal Orzel wrote:
> 
> 
> On 08.03.2021 12:28, Jan Beulich wrote:
>> On 08.03.2021 12:02, Michal Orzel wrote:
>>> On 08.03.2021 11:00, Jan Beulich wrote:
>>>> On 08.03.2021 10:52, Michal Orzel wrote:
>>>>> +config DTB_FILE
>>>>> +	string "Absolute path to device tree blob"
>>>>> +	default ""
>>>>> +	depends on LINK_DTB
>>>>> +	---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.
>>>>
>>>> How is selecting LINK_DTB but leaving DTB_FILE at an empty string
>>>> different from not having a LINK_DTB setting at all?
>>>>
>>> LINK_DTB acts as a switch to allow setting the dtb path. Not having LINK_DTB option will result in
>>> a build failure each time the user does not want to embed dtb into Xen(DTB_FILE is empty).
>>
>> Which isn't any different from having LINK_DTB and leaving the
>> string empty, is it? I.e. imo no improved user experience.
>>
>>> I do not see why someone would want to select LINK_DTB leaving DTB_FILE as an empty string.
>>
>> People may not "want" to, but simply think accepting the default
>> is fine, considering they've already said to link in some DTB.
>> It may be obvious to you that there's no good default here, but
>> it may not be to the person configuring their Xen. I'm guessing
>> here, but did you try leaving out the default line? Would this
>> make kconfig insist on the person to type in something? (Likely
>> an empty string would still be accepted. As would be a relative
>> path, despite what the help text says; I guess some forms of
>> relative paths may even work.)
>>
> There is no option here to make kconfig insist on person to type something.
> There is one solution. If I change in here:
> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/Makefile;h=16e6523e2cc6072b7d4cbcdeaf4726b7a9b1d381;hb=HEAD#l71
> from:
> ifdef CONFIG_DTB_FILE
> to:
> ifneq ($(CONFIG_DTB_FILE),"")
> then if user selects LINK_DTB but does not provide dtb path, the dtb will not be embedded into Xen.

I think this would be preferable plus eliminate the need for the
separate LINK_DTB option.

Jan
Michal Orzel March 8, 2021, 1:44 p.m. UTC | #6
On 08.03.2021 14:13, Jan Beulich wrote:
> On 08.03.2021 14:11, Michal Orzel wrote:
>>
>>
>> On 08.03.2021 12:28, Jan Beulich wrote:
>>> On 08.03.2021 12:02, Michal Orzel wrote:
>>>> On 08.03.2021 11:00, Jan Beulich wrote:
>>>>> On 08.03.2021 10:52, Michal Orzel wrote:
>>>>>> +config DTB_FILE
>>>>>> +	string "Absolute path to device tree blob"
>>>>>> +	default ""
>>>>>> +	depends on LINK_DTB
>>>>>> +	---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.
>>>>>
>>>>> How is selecting LINK_DTB but leaving DTB_FILE at an empty string
>>>>> different from not having a LINK_DTB setting at all?
>>>>>
>>>> LINK_DTB acts as a switch to allow setting the dtb path. Not having LINK_DTB option will result in
>>>> a build failure each time the user does not want to embed dtb into Xen(DTB_FILE is empty).
>>>
>>> Which isn't any different from having LINK_DTB and leaving the
>>> string empty, is it? I.e. imo no improved user experience.
>>>
>>>> I do not see why someone would want to select LINK_DTB leaving DTB_FILE as an empty string.
>>>
>>> People may not "want" to, but simply think accepting the default
>>> is fine, considering they've already said to link in some DTB.
>>> It may be obvious to you that there's no good default here, but
>>> it may not be to the person configuring their Xen. I'm guessing
>>> here, but did you try leaving out the default line? Would this
>>> make kconfig insist on the person to type in something? (Likely
>>> an empty string would still be accepted. As would be a relative
>>> path, despite what the help text says; I guess some forms of
>>> relative paths may even work.)
>>>
>> There is no option here to make kconfig insist on person to type something.
>> There is one solution. If I change in here:
>> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/Makefile;h=16e6523e2cc6072b7d4cbcdeaf4726b7a9b1d381;hb=HEAD#l71
>> from:
>> ifdef CONFIG_DTB_FILE
>> to:
>> ifneq ($(CONFIG_DTB_FILE),"")
>> then if user selects LINK_DTB but does not provide dtb path, the dtb will not be embedded into Xen.
> 
> I think this would be preferable plus eliminate the need for the
> separate LINK_DTB option.
> 
Will do this and send as v2
> Jan
> 
Michal
diff mbox series

Patch

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 16e6523e2c..104422960a 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -137,8 +137,6 @@  asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c
 xen.lds: xen.lds.S
 	$(CPP) -P $(a_flags) -MQ $@ -o $@ $<
 
-dtb.o: $(CONFIG_DTB_FILE)
-
 .PHONY: clean
 clean::
 	rm -f asm-offsets.s xen.lds
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index eb953d171e..c032079c7e 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -400,6 +400,20 @@  config DOM0_MEM
 
 	  Leave empty if you are not sure what to specify.
 
+config LINK_DTB
+	bool "Link DTB into Xen image"
+	depends on ARM
+	default n
+
+config DTB_FILE
+	string "Absolute path to device tree blob"
+	default ""
+	depends on LINK_DTB
+	---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