From 678382c73a08145262e95b5639607f72e49c0ee9 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Fri, 9 Feb 2018 08:10:22 +0100 Subject: [PATCH] arm/PSCI: support PSCI versions greater than 1.0 ATF recently began announcing PSCI v1.1. Since that version is unknown to u-boot, the PSCI device nodes were not updated. Switch from the case statement to a greater/less-than comparison so that v1.1, as well as future versions, get at least the compatible nodes of known versions. PSCI v1.1 doesn't seem to have introduced a new corresponding compatible. Signed-off-by: Andre Heider --- arch/arm/lib/psci-dt.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/arch/arm/lib/psci-dt.c b/arch/arm/lib/psci-dt.c index 05e0ad6e70..7f228537f6 100644 --- a/arch/arm/lib/psci-dt.c +++ b/arch/arm/lib/psci-dt.c @@ -69,22 +69,25 @@ init_psci_node: #elif defined(CONFIG_ARMV7_PSCI_1_0) || defined(CONFIG_ARMV8_PSCI) psci_ver = ARM_PSCI_VER_1_0; #endif - switch (psci_ver) { - case ARM_PSCI_VER_1_0: + if (psci_ver >= ARM_PSCI_VER_1_0) { tmp = fdt_setprop_string(fdt, nodeoff, "compatible", "arm,psci-1.0"); if (tmp) return tmp; - case ARM_PSCI_VER_0_2: + } + + if (psci_ver >= ARM_PSCI_VER_0_2) { tmp = fdt_appendprop_string(fdt, nodeoff, "compatible", "arm,psci-0.2"); if (tmp) return tmp; - default: + } + +#ifndef CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT /* * The Secure firmware framework isn't able to support PSCI version 0.1. */ -#ifndef CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT + if (psci_ver < ARM_PSCI_VER_0_2) { tmp = fdt_appendprop_string(fdt, nodeoff, "compatible", "arm,psci"); if (tmp) @@ -105,9 +108,8 @@ init_psci_node: ARM_PSCI_FN_MIGRATE); if (tmp) return tmp; -#endif - break; } +#endif tmp = fdt_setprop_string(fdt, nodeoff, "method", "smc"); if (tmp) -- 2.39.5