2 * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
8 #include <plat/common/platform.h>
12 static unsigned char uniphier_power_domain_tree_desc
[UNIPHIER_CLUSTER_COUNT
+ 1];
14 const unsigned char *plat_get_power_domain_tree_desc(void)
18 uniphier_power_domain_tree_desc
[0] = UNIPHIER_CLUSTER_COUNT
;
20 for (i
= 0; i
< UNIPHIER_CLUSTER_COUNT
; i
++)
21 uniphier_power_domain_tree_desc
[i
+ 1] =
22 UNIPHIER_MAX_CPUS_PER_CLUSTER
;
24 return uniphier_power_domain_tree_desc
;
27 int plat_core_pos_by_mpidr(u_register_t mpidr
)
29 unsigned int cluster_id
, cpu_id
;
31 cluster_id
= (mpidr
>> MPIDR_AFF1_SHIFT
) & MPIDR_AFFLVL_MASK
;
32 if (cluster_id
>= UNIPHIER_CLUSTER_COUNT
)
35 cpu_id
= (mpidr
>> MPIDR_AFF0_SHIFT
) & MPIDR_AFFLVL_MASK
;
36 if (cpu_id
>= UNIPHIER_MAX_CPUS_PER_CLUSTER
)
39 return uniphier_calc_core_pos(mpidr
);