Also handle psci 1.0. This can be seen as a bug fix update for the 0.2

specification we already support, with the only changes in functions we
don't currently use.

Sponsored by:	DARPA, AFRL
This commit is contained in:
Andrew Turner 2017-10-06 15:46:11 +00:00
parent d7026b9671
commit 845ed71645
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=324368

View File

@ -97,6 +97,7 @@ struct psci_softc *psci_softc = NULL;
#ifdef FDT
static struct ofw_compat_data compat_data[] = {
{"arm,psci-1.0", (uintptr_t)psci_v0_2_init},
{"arm,psci-0.2", (uintptr_t)psci_v0_2_init},
{"arm,psci", (uintptr_t)psci_v0_1_init},
{NULL, 0}
@ -332,9 +333,11 @@ psci_fdt_callfn(psci_callfn_t *callfn)
phandle_t node;
node = ofw_bus_find_compatible(OF_peer(0), "arm,psci-0.2");
if (node == 0)
/* TODO: Handle psci 0.1 */
return (PSCI_MISSING);
if (node == 0) {
node = ofw_bus_find_compatible(OF_peer(0), "arm,psci-1.0");
if (node == 0)
return (PSCI_MISSING);
}
*callfn = psci_fdt_get_callfn(node);
return (0);