All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
@ 2016-04-11 11:19 Ard Biesheuvel
  2016-04-11 12:01 ` Graeme Gregory
  2016-04-12 13:07 ` Catalin Marinas
  0 siblings, 2 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2016-04-11 11:19 UTC (permalink / raw)
  To: linux-arm-kernel

If both ACPI and DT platform descriptions are available, and the
kernel was configured at build time to support both flavours, the
default policy in absence of a acpi=[off|force] kernel command line
parameter is to prefer DT over ACPI.

This adds an option to invert that default policy, and prefer ACPI
over DT instead. Note that this policy is still superseded by the
value of the acpi= command line parameter.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 arch/arm64/Kconfig       | 13 +++++++++++++
 arch/arm64/kernel/acpi.c |  3 ++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 4f436220384f..f3aef40ad0ac 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -918,6 +918,19 @@ config DMI
 	  However, even with this option, the resultant kernel should
 	  continue to boot on existing non-UEFI platforms.
 
+config PREFER_ACPI_OVER_DT
+	bool "Prefer booting via ACPI if both ACPI and DT are available"
+	depends on ACPI
+	help
+	  If both ACPI and DT platform descriptions are available, and the
+	  kernel was configured at build time to support both flavours, the
+	  default policy in absence of a acpi=[off|force] kernel command line
+	  parameter is to prefer DT over ACPI.
+
+	  This option inverts that default policy, by preferring ACPI over DT
+	  instead. Note that this default policy is still superseded by the
+	  value of the acpi= command line parameter.
+
 endmenu
 
 menu "Userspace binary formats"
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
index d1ce8e2f98b9..50ac056fb1fd 100644
--- a/arch/arm64/kernel/acpi.c
+++ b/arch/arm64/kernel/acpi.c
@@ -188,7 +188,8 @@ void __init acpi_boot_table_init(void)
 	 *   and ACPI has not been force enabled (acpi=force)
 	 */
 	if (param_acpi_off ||
-	    (!param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
+	    (!IS_ENABLED(CONFIG_PREFER_ACPI_OVER_DT) &&
+	     !param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
 		return;
 
 	/*
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-11 11:19 [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT Ard Biesheuvel
@ 2016-04-11 12:01 ` Graeme Gregory
  2016-04-11 23:53   ` Roy Franz
  2016-04-12 13:07 ` Catalin Marinas
  1 sibling, 1 reply; 10+ messages in thread
From: Graeme Gregory @ 2016-04-11 12:01 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
> If both ACPI and DT platform descriptions are available, and the
> kernel was configured at build time to support both flavours, the
> default policy in absence of a acpi=[off|force] kernel command line
> parameter is to prefer DT over ACPI.
> 
> This adds an option to invert that default policy, and prefer ACPI
> over DT instead. Note that this policy is still superseded by the
> value of the acpi= command line parameter.
> 

Looks sane to me

Reviewed-by: Graeme Gregory <graeme.gregory@linaro.org>

G

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  arch/arm64/Kconfig       | 13 +++++++++++++
>  arch/arm64/kernel/acpi.c |  3 ++-
>  2 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 4f436220384f..f3aef40ad0ac 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -918,6 +918,19 @@ config DMI
>  	  However, even with this option, the resultant kernel should
>  	  continue to boot on existing non-UEFI platforms.
>  
> +config PREFER_ACPI_OVER_DT
> +	bool "Prefer booting via ACPI if both ACPI and DT are available"
> +	depends on ACPI
> +	help
> +	  If both ACPI and DT platform descriptions are available, and the
> +	  kernel was configured at build time to support both flavours, the
> +	  default policy in absence of a acpi=[off|force] kernel command line
> +	  parameter is to prefer DT over ACPI.
> +
> +	  This option inverts that default policy, by preferring ACPI over DT
> +	  instead. Note that this default policy is still superseded by the
> +	  value of the acpi= command line parameter.
> +
>  endmenu
>  
>  menu "Userspace binary formats"
> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
> index d1ce8e2f98b9..50ac056fb1fd 100644
> --- a/arch/arm64/kernel/acpi.c
> +++ b/arch/arm64/kernel/acpi.c
> @@ -188,7 +188,8 @@ void __init acpi_boot_table_init(void)
>  	 *   and ACPI has not been force enabled (acpi=force)
>  	 */
>  	if (param_acpi_off ||
> -	    (!param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
> +	    (!IS_ENABLED(CONFIG_PREFER_ACPI_OVER_DT) &&
> +	     !param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
>  		return;
>  
>  	/*
> -- 
> 2.5.0
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-11 12:01 ` Graeme Gregory
@ 2016-04-11 23:53   ` Roy Franz
  0 siblings, 0 replies; 10+ messages in thread
From: Roy Franz @ 2016-04-11 23:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Apr 11, 2016 at 5:01 AM, Graeme Gregory
<graeme.gregory@linaro.org> wrote:
> On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
>> If both ACPI and DT platform descriptions are available, and the
>> kernel was configured at build time to support both flavours, the
>> default policy in absence of a acpi=[off|force] kernel command line
>> parameter is to prefer DT over ACPI.
>>
>> This adds an option to invert that default policy, and prefer ACPI
>> over DT instead. Note that this policy is still superseded by the
>> value of the acpi= command line parameter.
>>
>
> Looks sane to me
>
> Reviewed-by: Graeme Gregory <graeme.gregory@linaro.org>
>
> G
>
Reviewed-by: Roy Franz <roy.franz@hpe.com>


>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> ---
>>  arch/arm64/Kconfig       | 13 +++++++++++++
>>  arch/arm64/kernel/acpi.c |  3 ++-
>>  2 files changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>> index 4f436220384f..f3aef40ad0ac 100644
>> --- a/arch/arm64/Kconfig
>> +++ b/arch/arm64/Kconfig
>> @@ -918,6 +918,19 @@ config DMI
>>         However, even with this option, the resultant kernel should
>>         continue to boot on existing non-UEFI platforms.
>>
>> +config PREFER_ACPI_OVER_DT
>> +     bool "Prefer booting via ACPI if both ACPI and DT are available"
>> +     depends on ACPI
>> +     help
>> +       If both ACPI and DT platform descriptions are available, and the
>> +       kernel was configured at build time to support both flavours, the
>> +       default policy in absence of a acpi=[off|force] kernel command line
>> +       parameter is to prefer DT over ACPI.
>> +
>> +       This option inverts that default policy, by preferring ACPI over DT
>> +       instead. Note that this default policy is still superseded by the
>> +       value of the acpi= command line parameter.
>> +
>>  endmenu
>>
>>  menu "Userspace binary formats"
>> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
>> index d1ce8e2f98b9..50ac056fb1fd 100644
>> --- a/arch/arm64/kernel/acpi.c
>> +++ b/arch/arm64/kernel/acpi.c
>> @@ -188,7 +188,8 @@ void __init acpi_boot_table_init(void)
>>        *   and ACPI has not been force enabled (acpi=force)
>>        */
>>       if (param_acpi_off ||
>> -         (!param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
>> +         (!IS_ENABLED(CONFIG_PREFER_ACPI_OVER_DT) &&
>> +          !param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
>>               return;
>>
>>       /*
>> --
>> 2.5.0
>>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-11 11:19 [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT Ard Biesheuvel
  2016-04-11 12:01 ` Graeme Gregory
@ 2016-04-12 13:07 ` Catalin Marinas
  2016-04-12 13:19   ` Ard Biesheuvel
  1 sibling, 1 reply; 10+ messages in thread
From: Catalin Marinas @ 2016-04-12 13:07 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
> If both ACPI and DT platform descriptions are available, and the
> kernel was configured at build time to support both flavours, the
> default policy in absence of a acpi=[off|force] kernel command line
> parameter is to prefer DT over ACPI.
> 
> This adds an option to invert that default policy, and prefer ACPI
> over DT instead. Note that this policy is still superseded by the
> value of the acpi= command line parameter.

Why do we need another method to specify an ACPI boot? I thought those
vendors going for ACPI wouldn't be bothered with DT anyway.

I'm not keen on having kernel builds with different behavior in respect
of whether ACPI or DT is preferred.

-- 
Catalin

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-12 13:07 ` Catalin Marinas
@ 2016-04-12 13:19   ` Ard Biesheuvel
  2016-04-12 13:35     ` Catalin Marinas
  0 siblings, 1 reply; 10+ messages in thread
From: Ard Biesheuvel @ 2016-04-12 13:19 UTC (permalink / raw)
  To: linux-arm-kernel

On 12 April 2016 at 15:07, Catalin Marinas <catalin.marinas@arm.com> wrote:
> On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
>> If both ACPI and DT platform descriptions are available, and the
>> kernel was configured at build time to support both flavours, the
>> default policy in absence of a acpi=[off|force] kernel command line
>> parameter is to prefer DT over ACPI.
>>
>> This adds an option to invert that default policy, and prefer ACPI
>> over DT instead. Note that this policy is still superseded by the
>> value of the acpi= command line parameter.
>
> Why do we need another method to specify an ACPI boot? I thought those
> vendors going for ACPI wouldn't be bothered with DT anyway.
>
> I'm not keen on having kernel builds with different behavior in respect
> of whether ACPI or DT is preferred.
>

How about adding support for acpi=on then? Currently, we only have
acpi=off or acpi=force, and there is no way (i.e., for a distro
installer) to boot via ACPI if it can but fall back to DT otherwise.
Some enterprise features (like RAS) depend on ACPI boot so it may
simply preferred but not mandated in some cases.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-12 13:19   ` Ard Biesheuvel
@ 2016-04-12 13:35     ` Catalin Marinas
  2016-04-12 19:41       ` Roy Franz (HPE)
  0 siblings, 1 reply; 10+ messages in thread
From: Catalin Marinas @ 2016-04-12 13:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Apr 12, 2016 at 03:19:58PM +0200, Ard Biesheuvel wrote:
> On 12 April 2016 at 15:07, Catalin Marinas <catalin.marinas@arm.com> wrote:
> > On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
> >> If both ACPI and DT platform descriptions are available, and the
> >> kernel was configured at build time to support both flavours, the
> >> default policy in absence of a acpi=[off|force] kernel command line
> >> parameter is to prefer DT over ACPI.
> >>
> >> This adds an option to invert that default policy, and prefer ACPI
> >> over DT instead. Note that this policy is still superseded by the
> >> value of the acpi= command line parameter.
> >
> > Why do we need another method to specify an ACPI boot? I thought those
> > vendors going for ACPI wouldn't be bothered with DT anyway.
> >
> > I'm not keen on having kernel builds with different behavior in respect
> > of whether ACPI or DT is preferred.
> 
> How about adding support for acpi=on then? Currently, we only have
> acpi=off or acpi=force, and there is no way (i.e., for a distro
> installer) to boot via ACPI if it can but fall back to DT otherwise.
> Some enterprise features (like RAS) depend on ACPI boot so it may
> simply preferred but not mandated in some cases.

Since this is a distro preference, I would rather have an acpi=on
option.

-- 
Catalin

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-12 13:35     ` Catalin Marinas
@ 2016-04-12 19:41       ` Roy Franz (HPE)
  2016-04-13 13:59         ` Catalin Marinas
  0 siblings, 1 reply; 10+ messages in thread
From: Roy Franz (HPE) @ 2016-04-12 19:41 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Apr 12, 2016 at 6:35 AM, Catalin Marinas
<catalin.marinas@arm.com> wrote:
> On Tue, Apr 12, 2016 at 03:19:58PM +0200, Ard Biesheuvel wrote:
>> On 12 April 2016 at 15:07, Catalin Marinas <catalin.marinas@arm.com> wrote:
>> > On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
>> >> If both ACPI and DT platform descriptions are available, and the
>> >> kernel was configured at build time to support both flavours, the
>> >> default policy in absence of a acpi=[off|force] kernel command line
>> >> parameter is to prefer DT over ACPI.
>> >>
>> >> This adds an option to invert that default policy, and prefer ACPI
>> >> over DT instead. Note that this policy is still superseded by the
>> >> value of the acpi= command line parameter.
>> >
>> > Why do we need another method to specify an ACPI boot? I thought those
>> > vendors going for ACPI wouldn't be bothered with DT anyway.
>> >
>> > I'm not keen on having kernel builds with different behavior in respect
>> > of whether ACPI or DT is preferred.
>>
>> How about adding support for acpi=on then? Currently, we only have
>> acpi=off or acpi=force, and there is no way (i.e., for a distro
>> installer) to boot via ACPI if it can but fall back to DT otherwise.
>> Some enterprise features (like RAS) depend on ACPI boot so it may
>> simply preferred but not mandated in some cases.
>
> Since this is a distro preference, I would rather have an acpi=on
> option.

While this is a 'distro preference', I think it is somewhat ugly for
this to be configured on
the commandline.   We (HPE) don't support DT, and I don't think that
is likely to change.
While we control the firmware for our main internal platform, and
don't provide a DT there,
we also do development and testing on other platforms where the
firmware may provide a DT,
but we never want to use it.  This requires developers/users to
specify "acpi=force" on the
command-line to boot in a supported manner.
I would much rather be able to configure the kernel to prefer (or even
unconditionally require)
ACPI to boot, as this will be the normal, default, and only supported
way to boot for our platform,
and I expect this to also be the case in much of the enterprise space.

Since I don't think it is possible to build an arm64 kernel with only
ACPI, and no DT support,
I think a kconfig option to select the preferred HW description to be
used is the better solution.

Roy


>
> --
> Catalin
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-12 19:41       ` Roy Franz (HPE)
@ 2016-04-13 13:59         ` Catalin Marinas
  2016-04-13 17:21           ` Roy Franz
  0 siblings, 1 reply; 10+ messages in thread
From: Catalin Marinas @ 2016-04-13 13:59 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Apr 12, 2016 at 12:41:23PM -0700, Roy Franz (HPE) wrote:
> On Tue, Apr 12, 2016 at 6:35 AM, Catalin Marinas
> <catalin.marinas@arm.com> wrote:
> > On Tue, Apr 12, 2016 at 03:19:58PM +0200, Ard Biesheuvel wrote:
> >> On 12 April 2016 at 15:07, Catalin Marinas <catalin.marinas@arm.com> wrote:
> >> > On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
> >> >> If both ACPI and DT platform descriptions are available, and the
> >> >> kernel was configured at build time to support both flavours, the
> >> >> default policy in absence of a acpi=[off|force] kernel command line
> >> >> parameter is to prefer DT over ACPI.
> >> >>
> >> >> This adds an option to invert that default policy, and prefer ACPI
> >> >> over DT instead. Note that this policy is still superseded by the
> >> >> value of the acpi= command line parameter.
> >> >
> >> > Why do we need another method to specify an ACPI boot? I thought those
> >> > vendors going for ACPI wouldn't be bothered with DT anyway.
> >> >
> >> > I'm not keen on having kernel builds with different behavior in respect
> >> > of whether ACPI or DT is preferred.
> >>
> >> How about adding support for acpi=on then? Currently, we only have
> >> acpi=off or acpi=force, and there is no way (i.e., for a distro
> >> installer) to boot via ACPI if it can but fall back to DT otherwise.
> >> Some enterprise features (like RAS) depend on ACPI boot so it may
> >> simply preferred but not mandated in some cases.
> >
> > Since this is a distro preference, I would rather have an acpi=on
> > option.
> 
> While this is a 'distro preference', I think it is somewhat ugly for
> this to be configured on the commandline.   We (HPE) don't support DT,
> and I don't think that is likely to change. While we control the
> firmware for our main internal platform, and don't provide a DT there,
> we also do development and testing on other platforms where the
> firmware may provide a DT, but we never want to use it.  This requires
> developers/users to specify "acpi=force" on the command-line to boot
> in a supported manner.

You wrongly assume that everyone wants ACPI by generalising "we" (HPE)
to "developers/users".

In an ideal world where both ACPI and DT (if provided by firmware) are
equally supported, such option wouldn't be much of an issue. But we are
not there yet with some platforms having ACPI in an experimental state
or relying on distro-only kernel patches. This means that a _mainline_
kernel configured with such ACPI default on option would require an
explicit acpi=off on the command line to boot with DT. Since you don't
always know which kernel you'd run, you pretty much end up with an acpi=
option on the command line permanently.

Maybe those vendors providing both ACPI and DT have a good reason like
ACPI support not ready.

> I would much rather be able to configure the kernel to prefer (or even
> unconditionally require) ACPI to boot, as this will be the normal,
> default, and only supported way to boot for our platform, and I expect
> this to also be the case in much of the enterprise space.

I really don't care about which platform recommends ACPI or DT. What I
care about is not having to enable certain config option depending on
which platform you target as this leads to config fragmentation (think
of single Image). I much prefer a clear kernel policy on whether ACPI or
DT is used if both are provided by firmware and we've already made that
call - DT takes precedence.

> Since I don't think it is possible to build an arm64 kernel with only
> ACPI, and no DT support, I think a kconfig option to select the
> preferred HW description to be used is the better solution.

The (multi-platform, single Image) kernel is not in a position to assess
whether ACPI or DT is in a better state for a given SoC. We should leave
this "ACPI preferred" choice to the code running before the kernel by
simply providing only ACPI tables.

-- 
Catalin

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-13 13:59         ` Catalin Marinas
@ 2016-04-13 17:21           ` Roy Franz
  2016-04-14 16:46             ` Catalin Marinas
  0 siblings, 1 reply; 10+ messages in thread
From: Roy Franz @ 2016-04-13 17:21 UTC (permalink / raw)
  To: linux-arm-kernel

On 04/13/2016 06:59 AM, Catalin Marinas wrote:
> On Tue, Apr 12, 2016 at 12:41:23PM -0700, Roy Franz (HPE) wrote:
>> On Tue, Apr 12, 2016 at 6:35 AM, Catalin Marinas
>> <catalin.marinas@arm.com> wrote:
>>> On Tue, Apr 12, 2016 at 03:19:58PM +0200, Ard Biesheuvel wrote:
>>>> On 12 April 2016 at 15:07, Catalin Marinas <catalin.marinas@arm.com> wrote:
>>>>> On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
>>>>>> If both ACPI and DT platform descriptions are available, and the
>>>>>> kernel was configured at build time to support both flavours, the
>>>>>> default policy in absence of a acpi=[off|force] kernel command line
>>>>>> parameter is to prefer DT over ACPI.
>>>>>>
>>>>>> This adds an option to invert that default policy, and prefer ACPI
>>>>>> over DT instead. Note that this policy is still superseded by the
>>>>>> value of the acpi= command line parameter.
>>>>>
>>>>> Why do we need another method to specify an ACPI boot? I thought those
>>>>> vendors going for ACPI wouldn't be bothered with DT anyway.
>>>>>
>>>>> I'm not keen on having kernel builds with different behavior in respect
>>>>> of whether ACPI or DT is preferred.
>>>>
>>>> How about adding support for acpi=on then? Currently, we only have
>>>> acpi=off or acpi=force, and there is no way (i.e., for a distro
>>>> installer) to boot via ACPI if it can but fall back to DT otherwise.
>>>> Some enterprise features (like RAS) depend on ACPI boot so it may
>>>> simply preferred but not mandated in some cases.
>>>
>>> Since this is a distro preference, I would rather have an acpi=on
>>> option.
>>
>> While this is a 'distro preference', I think it is somewhat ugly for
>> this to be configured on the commandline.   We (HPE) don't support DT,
>> and I don't think that is likely to change. While we control the
>> firmware for our main internal platform, and don't provide a DT there,
>> we also do development and testing on other platforms where the
>> firmware may provide a DT, but we never want to use it.  This requires
>> developers/users to specify "acpi=force" on the command-line to boot
>> in a supported manner.
>
> You wrongly assume that everyone wants ACPI by generalising "we" (HPE)
> to "developers/users".
This is not what I am assuming or thinking.  I think that a large enough 
set of arm64 developers and users care primarily/only about ACPI,
and would benefit from not having to have an "acpi=xx" on the 
command-line forevermore.  The 'we' I used, referring to HPE, is in that 
set.

>
> In an ideal world where both ACPI and DT (if provided by firmware) are
> equally supported, such option wouldn't be much of an issue. But we are
> not there yet with some platforms having ACPI in an experimental state
> or relying on distro-only kernel patches. This means that a _mainline_
> kernel configured with such ACPI default on option would require an
> explicit acpi=off on the command line to boot with DT. Since you don't
> always know which kernel you'd run, you pretty much end up with an acpi=
> option on the command line permanently.
>
> Maybe those vendors providing both ACPI and DT have a good reason like
> ACPI support not ready.
>
>> I would much rather be able to configure the kernel to prefer (or even
>> unconditionally require) ACPI to boot, as this will be the normal,
>> default, and only supported way to boot for our platform, and I expect
>> this to also be the case in much of the enterprise space.
>
> I really don't care about which platform recommends ACPI or DT. What I
> care about is not having to enable certain config option depending on
> which platform you target as this leads to config fragmentation (think
> of single Image). I much prefer a clear kernel policy on whether ACPI or
> DT is used if both are provided by firmware and we've already made that
> call - DT takes precedence.
>
>> Since I don't think it is possible to build an arm64 kernel with only
>> ACPI, and no DT support, I think a kconfig option to select the
>> preferred HW description to be used is the better solution.
>
> The (multi-platform, single Image) kernel is not in a position to assess
> whether ACPI or DT is in a better state for a given SoC. We should leave
> this "ACPI preferred" choice to the code running before the kernel by
> simply providing only ACPI tables.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
  2016-04-13 17:21           ` Roy Franz
@ 2016-04-14 16:46             ` Catalin Marinas
  0 siblings, 0 replies; 10+ messages in thread
From: Catalin Marinas @ 2016-04-14 16:46 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Apr 13, 2016 at 10:21:02AM -0700, Roy Franz wrote:
> On 04/13/2016 06:59 AM, Catalin Marinas wrote:
> >On Tue, Apr 12, 2016 at 12:41:23PM -0700, Roy Franz (HPE) wrote:
> >>While this is a 'distro preference', I think it is somewhat ugly for
> >>this to be configured on the commandline.   We (HPE) don't support DT,
> >>and I don't think that is likely to change. While we control the
> >>firmware for our main internal platform, and don't provide a DT there,
> >>we also do development and testing on other platforms where the
> >>firmware may provide a DT, but we never want to use it.  This requires
> >>developers/users to specify "acpi=force" on the command-line to boot
> >>in a supported manner.
> >
> >You wrongly assume that everyone wants ACPI by generalising "we" (HPE)
> >to "developers/users".
> 
> This is not what I am assuming or thinking.  I think that a large enough set
> of arm64 developers and users care primarily/only about ACPI,
> and would benefit from not having to have an "acpi=xx" on the command-line
> forevermore.

That's to the detriment of those wanting to use DT on such platforms and
would have to pass "acpi=off" (because I don't believe in different
kernel images/configurations for different platforms).

You may argue that no-one wants to use DT if the firmware also provides
ACPI. As we currently stand, there are two main camps on ARM:

1. The DT one, unlikely to ever bother with ACPI for their platforms
   (e.g. mobile). This camp never cares about DT vs ACPI preference
   because their firmware would never provide the latter

2. The ACPI early adopters. Of these, there are two sub-categories:
   a) those who care about mainline Linux and provide a DT (in addition
      to ACPI) with their firmware as the more mature solution
   b) those who only run distro kernels with tons of patches and think
      that ACPI on ARM is ready, the last thing to solve being the boot
      priority

As maintainer, I only care about (1) and (2.a). When ACPI on ARM will be
mature enough and more feature-rich than DT (e.g. RAS features), we can
revisit the ACPI vs DT boot priority, potentially making a switch
without any additional config options. Who knows, maybe at that point no
firmware will provide both DT and ACPI and we won't need to do anything
in the kernel.

But in the meantime, from a _mainline_ perspective, DT is considered the
recommended/better supported option and the boot preference should only
be overridden by users explicitly via command line arguments.

-- 
Catalin

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-04-14 16:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-11 11:19 [PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT Ard Biesheuvel
2016-04-11 12:01 ` Graeme Gregory
2016-04-11 23:53   ` Roy Franz
2016-04-12 13:07 ` Catalin Marinas
2016-04-12 13:19   ` Ard Biesheuvel
2016-04-12 13:35     ` Catalin Marinas
2016-04-12 19:41       ` Roy Franz (HPE)
2016-04-13 13:59         ` Catalin Marinas
2016-04-13 17:21           ` Roy Franz
2016-04-14 16:46             ` Catalin Marinas

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.