diff options
author | Andre Heider <a.heider@gmail.com> | 2018-02-09 08:10:22 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-02-14 12:14:15 -0500 |
commit | 678382c73a08145262e95b5639607f72e49c0ee9 (patch) | |
tree | af1ce959e206cfeef69881c066bea97f58ee0b70 /arch/arm | |
parent | d877a6c50e886af089bf8fb947e566982672fd0a (diff) |
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 <a.heider@gmail.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/lib/psci-dt.c | 16 |
1 files 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) |