diff mbox

xen/arm: domain_build: Add PSCI 1.0 compatibility

Message ID 1461159122-1484-1-git-send-email-dirk.behme@de.bosch.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dirk Behme April 20, 2016, 1:32 p.m. UTC
Add PSCI 1.0 compatibility strings to make Xen behave correctly with
device trees having

compatible = "arm,psci-1.0";

Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
---
 xen/arch/arm/domain_build.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Julien Grall April 20, 2016, 1:43 p.m. UTC | #1
Hello Dirk,

On 20/04/16 14:32, Dirk Behme wrote:
> Add PSCI 1.0 compatibility strings to make Xen behave correctly with
> device trees having
>
> compatible = "arm,psci-1.0";

You need to explain in the commit message what is the correct behavior. 
I.e Xen needs to blacklist any PSCI 1.0 node as it will be recreated for 
DOM0.

> Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
> ---
>   xen/arch/arm/domain_build.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index aba714c..f65bc46 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -666,6 +666,7 @@ static int make_psci_node(void *fdt, const struct dt_device_node *parent)
>   {
>       int res;
>       const char compat[] =
> +        "arm,psci-1.0""\0"

DOM0 will use the virtual PSCI implementation in Xen (see 
arch/arm/vpsci.c). This implementation only supports v0.1 and v0.2.

>           "arm,psci-0.2""\0"
>           "arm,psci";
>
> @@ -1190,6 +1191,7 @@ static int handle_node(struct domain *d, struct kernel_info *kinfo,
>           DT_MATCH_COMPATIBLE("multiboot,module"),
>           DT_MATCH_COMPATIBLE("arm,psci"),
>           DT_MATCH_COMPATIBLE("arm,psci-0.2"),
> +        DT_MATCH_COMPATIBLE("arm,psci-1.0"),
>           DT_MATCH_COMPATIBLE("arm,cortex-a7-pmu"),
>           DT_MATCH_COMPATIBLE("arm,cortex-a15-pmu"),
>           DT_MATCH_COMPATIBLE("arm,armv8-pmuv3"),
>

Regards,
diff mbox

Patch

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index aba714c..f65bc46 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -666,6 +666,7 @@  static int make_psci_node(void *fdt, const struct dt_device_node *parent)
 {
     int res;
     const char compat[] =
+        "arm,psci-1.0""\0"
         "arm,psci-0.2""\0"
         "arm,psci";
 
@@ -1190,6 +1191,7 @@  static int handle_node(struct domain *d, struct kernel_info *kinfo,
         DT_MATCH_COMPATIBLE("multiboot,module"),
         DT_MATCH_COMPATIBLE("arm,psci"),
         DT_MATCH_COMPATIBLE("arm,psci-0.2"),
+        DT_MATCH_COMPATIBLE("arm,psci-1.0"),
         DT_MATCH_COMPATIBLE("arm,cortex-a7-pmu"),
         DT_MATCH_COMPATIBLE("arm,cortex-a15-pmu"),
         DT_MATCH_COMPATIBLE("arm,armv8-pmuv3"),