[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH RFC 29/35] arm : acpi enable PSCI and hvc in acpi FADT table

Hi Parth,

On 06/02/2015 01:12, Stefano Stabellini wrote:
On Wed, 4 Feb 2015, parth.dixit@xxxxxxxxxx wrote:
From: Parth Dixit <parth.dixit@xxxxxxxxxx>

Enable PSCI and hvc flags in FADT table so that dom0 uses PSCI to
boot vcpu's

Signed-off-by: Parth Dixit <parth.dixit@xxxxxxxxxx>
  xen/arch/arm/arm64/acpi/arm-core.c | 16 ++++++++++++++++
  1 file changed, 16 insertions(+)

diff --git a/xen/arch/arm/arm64/acpi/arm-core.c 
index 6707e4c..9a26202 100644
--- a/xen/arch/arm/arm64/acpi/arm-core.c
+++ b/xen/arch/arm/arm64/acpi/arm-core.c
@@ -28,6 +28,7 @@
  #include <xen/errno.h>
  #include <xen/stdbool.h>
  #include <xen/cpumask.h>
+#include <acpi/actables.h>

  #include <asm/cputype.h>
  #include <asm/acpi.h>
@@ -242,6 +243,19 @@ static int __init acpi_parse_fadt(struct acpi_table_header 
         return 0;

+static void set_psci_fadt(void)
+    struct acpi_table_fadt *fadt=NULL;
+    struct acpi_table_header *table=NULL;
+    u8 checksum;
+    acpi_get_table(ACPI_SIG_FADT, 0, &table);
+    fadt = (struct acpi_table_fadt *)table;
+    fadt->arm_boot_flags |= ( ACPI_FADT_PSCI_COMPLIANT | 

Are we actually allowed to modify the real acpi table passed by the firmware?
Could it be read-only?

If we can change it,  do we need a dsb() before the acpi_tb_checksum?

IIRC, the ACPI memory region is mapped cached and preparing the ACPI blob is only done in one processor. So the dsb() is not necessary here.

But ... that made me think that we should clear the cache after changes in the table. We can't assume that the guest will map with cache attribute the ACPI tables.


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.