diff mbox

[v4,24/24] xen/arm64: Add ACPI support

Message ID 1456658360-16080-25-git-send-email-zhaoshenglong@huawei.com (mailing list archive)
State New, archived
Headers show

Commit Message

Shannon Zhao Feb. 28, 2016, 11:19 a.m. UTC
From: Naresh Bhat <naresh.bhat@linaro.org>

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

Signed-off-by: Naresh Bhat <naresh.bhat@linaro.org>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
---
V4: add comments to explain why efi_enabled = 1 needs
---
 xen/arch/arm/Kconfig         | 1 +
 xen/common/efi/runtime.c     | 8 ++++++--
 xen/include/asm-arm/config.h | 5 +++++
 3 files changed, 12 insertions(+), 2 deletions(-)

Comments

Jan Beulich Feb. 29, 2016, 11:34 a.m. UTC | #1
>>> On 28.02.16 at 12:19, <zhaoshenglong@huawei.com> wrote:
> ---
>  xen/arch/arm/Kconfig         | 1 +
>  xen/common/efi/runtime.c     | 8 ++++++--
>  xen/include/asm-arm/config.h | 5 +++++
>  3 files changed, 12 insertions(+), 2 deletions(-)

Again - please Cc maintainers of all code modified.

> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -10,8 +10,12 @@ DEFINE_XEN_GUEST_HANDLE(CHAR16);
>  
>  #ifndef COMPAT
>  
> -#ifdef CONFIG_ARM  /* Disabled until runtime services implemented */
> -const bool_t efi_enabled = 0;
> +#ifdef CONFIG_ARM
> +/* Currently it doesn't implement runtime services on ARM, but to boot Dom0 with
> + * ACPI it needs to assign efi_enabled with 1 to get acpi_os_get_root_pointer
> + * work.
> + */
> +const bool_t efi_enabled = 1;

This is now the same as x86's - the two should thus be folded.

Jan
Stefano Stabellini Feb. 29, 2016, 5:15 p.m. UTC | #2
On Sun, 28 Feb 2016, Shannon Zhao wrote:

> From: Naresh Bhat <naresh.bhat@linaro.org>
> 
> Add ACPI support on arm64 xen hypervisor. Enable EFI support on ARM.
> 
> Signed-off-by: Naresh Bhat <naresh.bhat@linaro.org>
> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
> ---
> V4: add comments to explain why efi_enabled = 1 needs
> ---
>  xen/arch/arm/Kconfig         | 1 +
>  xen/common/efi/runtime.c     | 8 ++++++--
>  xen/include/asm-arm/config.h | 5 +++++
>  3 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 60e923c..e39b05b 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -14,6 +14,7 @@ config ARM_64
>  	def_bool y
>  	depends on 64BIT
>  	select HAS_GICV3
> +	select HAS_ACPI

Actually ACPI is one of the things that would be nice if users were
actually asked if they want to enable or not.

I would prefer if ACPI had is own separate config entry, with default y,
like SHADOW_PAGING on x86.


>  config ARM
>  	def_bool y
> diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
> index ae87557..26a82a7 100644
> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -10,8 +10,12 @@ DEFINE_XEN_GUEST_HANDLE(CHAR16);
>  
>  #ifndef COMPAT
>  
> -#ifdef CONFIG_ARM  /* Disabled until runtime services implemented */
> -const bool_t efi_enabled = 0;
> +#ifdef CONFIG_ARM
> +/* Currently it doesn't implement runtime services on ARM, but to boot Dom0 with
> + * ACPI it needs to assign efi_enabled with 1 to get acpi_os_get_root_pointer
> + * work.

"Currently runtime services are not implemented on ARM. To boot Dom0
with ACPI, set efi_enabled to 1, so that the guest OS can get the ACPI
root pointer from EFI."


> + */
> +const bool_t efi_enabled = 1;
>  #else
>  # include <asm/i387.h>
>  # include <asm/xstate.h>
> diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
> index a26cb1a..98710fe 100644
> --- a/xen/include/asm-arm/config.h
> +++ b/xen/include/asm-arm/config.h
> @@ -36,6 +36,11 @@
>  
>  #define CONFIG_ARM_L1_CACHE_SHIFT 7 /* XXX */
>  
> +#if defined(CONFIG_ARM_64)
> +#define CONFIG_ACPI 1
> +#define CONFIG_ACPI_BOOT 1
> +#endif
> +
>  #define CONFIG_SMP 1
>  
>  #define CONFIG_VIDEO 1
> -- 
> 2.0.4
> 
>
diff mbox

Patch

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 60e923c..e39b05b 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -14,6 +14,7 @@  config ARM_64
 	def_bool y
 	depends on 64BIT
 	select HAS_GICV3
+	select HAS_ACPI
 
 config ARM
 	def_bool y
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index ae87557..26a82a7 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -10,8 +10,12 @@  DEFINE_XEN_GUEST_HANDLE(CHAR16);
 
 #ifndef COMPAT
 
-#ifdef CONFIG_ARM  /* Disabled until runtime services implemented */
-const bool_t efi_enabled = 0;
+#ifdef CONFIG_ARM
+/* Currently it doesn't implement runtime services on ARM, but to boot Dom0 with
+ * ACPI it needs to assign efi_enabled with 1 to get acpi_os_get_root_pointer
+ * work.
+ */
+const bool_t efi_enabled = 1;
 #else
 # include <asm/i387.h>
 # include <asm/xstate.h>
diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
index a26cb1a..98710fe 100644
--- a/xen/include/asm-arm/config.h
+++ b/xen/include/asm-arm/config.h
@@ -36,6 +36,11 @@ 
 
 #define CONFIG_ARM_L1_CACHE_SHIFT 7 /* XXX */
 
+#if defined(CONFIG_ARM_64)
+#define CONFIG_ACPI 1
+#define CONFIG_ACPI_BOOT 1
+#endif
+
 #define CONFIG_SMP 1
 
 #define CONFIG_VIDEO 1