blob: c3b4550d0928d87a543677e747b69f789e4497b0 [file] [log] [blame]
Deepak Pandey9cbacf62018-08-08 10:32:51 +05301/*
2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <plat_arm.h>
8
9/* Topology */
10typedef struct n1sdp_topology {
11 const unsigned char *power_tree;
12 unsigned int plat_cluster_core_count;
13} n1sdp_topology_t;
14
15/*
16 * The power domain tree descriptor. The cluster power domains are
17 * arranged so that when the PSCI generic code creates the power domain tree,
18 * the indices of the CPU power domain nodes it allocates match the linear
19 * indices returned by plat_core_pos_by_mpidr().
20 */
21const unsigned char n1sdp_pd_tree_desc[] = {
22 PLAT_ARM_CLUSTER_COUNT,
23 N1SDP_MAX_CPUS_PER_CLUSTER,
24 N1SDP_MAX_CPUS_PER_CLUSTER
25};
26
27/* Topology configuration for n1sdp */
28const n1sdp_topology_t n1sdp_topology = {
29 .power_tree = n1sdp_pd_tree_desc,
30 .plat_cluster_core_count = N1SDP_MAX_CPUS_PER_CLUSTER
31};
32
33/*******************************************************************************
34 * This function returns the topology tree information.
35 ******************************************************************************/
36const unsigned char *plat_get_power_domain_tree_desc(void)
37{
38 return n1sdp_topology.power_tree;
39}
40
41/*******************************************************************************
42 * This function returns the core count within the cluster corresponding to
43 * `mpidr`.
44 ******************************************************************************/
45unsigned int plat_arm_get_cluster_core_count(u_register_t mpidr)
46{
47 return n1sdp_topology.plat_cluster_core_count;
48}
49
50/*******************************************************************************
51 * The array mapping platform core position (implemented by plat_my_core_pos())
52 * to the SCMI power domain ID implemented by SCP.
53 ******************************************************************************/
54const uint32_t plat_css_core_pos_to_scmi_dmn_id_map[PLATFORM_CORE_COUNT] = {
55 0, 1, 2, 3};