diff mbox

[v5,22/22] xen/arm64: Add ACPI support

Message ID 1457072152-16128-23-git-send-email-zhaoshenglong@huawei.com (mailing list archive)
State New, archived
Headers show

Commit Message

Shannon Zhao March 4, 2016, 6:15 a.m. UTC
From: Naresh Bhat <naresh.bhat@linaro.org>

Add ACPI support on arm64 xen hypervisor. Enable EFI support on ARM.

Cc: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Naresh Bhat <naresh.bhat@linaro.org>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
---
v5: make ACPI selectable option
---
 xen/arch/arm/Kconfig         |  9 +++++++++
 xen/common/efi/runtime.c     | 12 +++++++-----
 xen/include/asm-arm/config.h |  4 ++++
 3 files changed, 20 insertions(+), 5 deletions(-)

Comments

Jan Beulich March 4, 2016, 10:33 a.m. UTC | #1
>>> On 04.03.16 at 07:15, <zhaoshenglong@huawei.com> wrote:
> From: Naresh Bhat <naresh.bhat@linaro.org>
> 
> Add ACPI support on arm64 xen hypervisor. Enable EFI support on ARM.
> 
> Cc: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Naresh Bhat <naresh.bhat@linaro.org>
> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
> ---
> v5: make ACPI selectable option
> ---
>  xen/arch/arm/Kconfig         |  9 +++++++++
>  xen/common/efi/runtime.c     | 12 +++++++-----

For the change to this file:
Acked-by: Jan Beulich <jbeulich@suse.com>
However ...

> +++ b/xen/arch/arm/Kconfig
> @@ -33,6 +33,15 @@ menu "Architecture Features"
>  
>  source "arch/Kconfig"
>  
> +config ACPI
> +	bool "ACPI (Advanced Configuration and Power Interface) Support"
> +	depends on ARM_64
> +	default y

... I recall Stefano having asked for this, but - are both of you sure?
Have you seen the earlier discussion about the introduction of new
user selectable config options? I.e. shouldn't the prompt at least
become conditional on EXPERT = "y", just like done elsewhere?

Jan
Stefano Stabellini March 4, 2016, 11:45 a.m. UTC | #2
On Fri, 4 Mar 2016, Jan Beulich wrote:
> >>> On 04.03.16 at 07:15, <zhaoshenglong@huawei.com> wrote:
> > From: Naresh Bhat <naresh.bhat@linaro.org>
> > 
> > Add ACPI support on arm64 xen hypervisor. Enable EFI support on ARM.
> > 
> > Cc: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Naresh Bhat <naresh.bhat@linaro.org>
> > Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
> > ---
> > v5: make ACPI selectable option
> > ---
> >  xen/arch/arm/Kconfig         |  9 +++++++++
> >  xen/common/efi/runtime.c     | 12 +++++++-----
> 
> For the change to this file:
> Acked-by: Jan Beulich <jbeulich@suse.com>
> However ...
> 
> > +++ b/xen/arch/arm/Kconfig
> > @@ -33,6 +33,15 @@ menu "Architecture Features"
> >  
> >  source "arch/Kconfig"
> >  
> > +config ACPI
> > +	bool "ACPI (Advanced Configuration and Power Interface) Support"
> > +	depends on ARM_64
> > +	default y
> 
> ... I recall Stefano having asked for this, but - are both of you sure?
> Have you seen the earlier discussion about the introduction of new
> user selectable config options? I.e. shouldn't the prompt at least
> become conditional on EXPERT = "y", just like done elsewhere?
 
ACPI is big chunk of code which people might want to reasonably disable
when booting on anything but servers. Think of all the small dev boards
(Cubieboard), or embedded use cases (set top boxes, etc): none of these
make sense with ACPI. On the other hand for arm64 distros is a must have.
This is why I think it is a good idea to have it selectable.

I am fine with it being conditional on EXPERT = "y", though.
Stefano Stabellini March 4, 2016, 11:45 a.m. UTC | #3
On Fri, 4 Mar 2016, Shannon Zhao wrote:
> From: Naresh Bhat <naresh.bhat@linaro.org>
> 
> Add ACPI support on arm64 xen hypervisor. Enable EFI support on ARM.
> 
> Cc: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Naresh Bhat <naresh.bhat@linaro.org>
> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>

Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>


> v5: make ACPI selectable option
> ---
>  xen/arch/arm/Kconfig         |  9 +++++++++
>  xen/common/efi/runtime.c     | 12 +++++++-----
>  xen/include/asm-arm/config.h |  4 ++++
>  3 files changed, 20 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index cb99df5..25cec31 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -33,6 +33,15 @@ menu "Architecture Features"
>  
>  source "arch/Kconfig"
>  
> +config ACPI
> +	bool "ACPI (Advanced Configuration and Power Interface) Support"
> +	depends on ARM_64
> +	default y
> +	---help---
> +
> +	  Advanced Configuration and Power Interface (ACPI) support for Xen is
> +	  an alternative to device tree on ARM64.
> +
>  # Select HAS_GICV3 if GICv3 is supported
>  config HAS_GICV3
>  	bool
> diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
> index ae87557..c256814 100644
> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -10,14 +10,16 @@ DEFINE_XEN_GUEST_HANDLE(CHAR16);
>  
>  #ifndef COMPAT
>  
> -#ifdef CONFIG_ARM  /* Disabled until runtime services implemented */
> -const bool_t efi_enabled = 0;
> -#else
> +/*
> + * Currently runtime services are not implemented on ARM. To boot Xen with ACPI,
> + * set efi_enabled to 1, so that Xen can get the ACPI root pointer from EFI.
> + */
> +const bool_t efi_enabled = 1;
> +
> +#ifndef CONFIG_ARM
>  # include <asm/i387.h>
>  # include <asm/xstate.h>
>  # include <public/platform.h>
> -
> -const bool_t efi_enabled = 1;
>  #endif
>  
>  unsigned int __read_mostly efi_num_ct;
> diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
> index 7ceb5c5..5fc9aa2 100644
> --- a/xen/include/asm-arm/config.h
> +++ b/xen/include/asm-arm/config.h
> @@ -31,6 +31,10 @@
>  
>  #define CONFIG_ARM_L1_CACHE_SHIFT 7 /* XXX */
>  
> +#ifdef CONFIG_ACPI
> +#define CONFIG_ACPI_BOOT 1
> +#endif
> +
>  #define CONFIG_SMP 1
>  
>  #define CONFIG_IRQ_HAS_MULTIPLE_ACTION 1
> -- 
> 2.0.4
> 
>
diff mbox

Patch

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index cb99df5..25cec31 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -33,6 +33,15 @@  menu "Architecture Features"
 
 source "arch/Kconfig"
 
+config ACPI
+	bool "ACPI (Advanced Configuration and Power Interface) Support"
+	depends on ARM_64
+	default y
+	---help---
+
+	  Advanced Configuration and Power Interface (ACPI) support for Xen is
+	  an alternative to device tree on ARM64.
+
 # Select HAS_GICV3 if GICv3 is supported
 config HAS_GICV3
 	bool
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index ae87557..c256814 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -10,14 +10,16 @@  DEFINE_XEN_GUEST_HANDLE(CHAR16);
 
 #ifndef COMPAT
 
-#ifdef CONFIG_ARM  /* Disabled until runtime services implemented */
-const bool_t efi_enabled = 0;
-#else
+/*
+ * Currently runtime services are not implemented on ARM. To boot Xen with ACPI,
+ * set efi_enabled to 1, so that Xen can get the ACPI root pointer from EFI.
+ */
+const bool_t efi_enabled = 1;
+
+#ifndef CONFIG_ARM
 # include <asm/i387.h>
 # include <asm/xstate.h>
 # include <public/platform.h>
-
-const bool_t efi_enabled = 1;
 #endif
 
 unsigned int __read_mostly efi_num_ct;
diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
index 7ceb5c5..5fc9aa2 100644
--- a/xen/include/asm-arm/config.h
+++ b/xen/include/asm-arm/config.h
@@ -31,6 +31,10 @@ 
 
 #define CONFIG_ARM_L1_CACHE_SHIFT 7 /* XXX */
 
+#ifdef CONFIG_ACPI
+#define CONFIG_ACPI_BOOT 1
+#endif
+
 #define CONFIG_SMP 1
 
 #define CONFIG_IRQ_HAS_MULTIPLE_ACTION 1