xref: /rk3399_ARM-atf/plat/xilinx/zynqmp/plat_zynqmp.c (revision c8284409e13ea72d08a9d858f8bcbddfb2f4df42)
1*c8284409SSoren Brinkmann /*
2*c8284409SSoren Brinkmann  * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
3*c8284409SSoren Brinkmann  *
4*c8284409SSoren Brinkmann  * Redistribution and use in source and binary forms, with or without
5*c8284409SSoren Brinkmann  * modification, are permitted provided that the following conditions are met:
6*c8284409SSoren Brinkmann  *
7*c8284409SSoren Brinkmann  * Redistributions of source code must retain the above copyright notice, this
8*c8284409SSoren Brinkmann  * list of conditions and the following disclaimer.
9*c8284409SSoren Brinkmann  *
10*c8284409SSoren Brinkmann  * Redistributions in binary form must reproduce the above copyright notice,
11*c8284409SSoren Brinkmann  * this list of conditions and the following disclaimer in the documentation
12*c8284409SSoren Brinkmann  * and/or other materials provided with the distribution.
13*c8284409SSoren Brinkmann  *
14*c8284409SSoren Brinkmann  * Neither the name of ARM nor the names of its contributors may be used
15*c8284409SSoren Brinkmann  * to endorse or promote products derived from this software without specific
16*c8284409SSoren Brinkmann  * prior written permission.
17*c8284409SSoren Brinkmann  *
18*c8284409SSoren Brinkmann  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19*c8284409SSoren Brinkmann  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20*c8284409SSoren Brinkmann  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21*c8284409SSoren Brinkmann  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22*c8284409SSoren Brinkmann  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23*c8284409SSoren Brinkmann  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24*c8284409SSoren Brinkmann  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25*c8284409SSoren Brinkmann  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26*c8284409SSoren Brinkmann  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27*c8284409SSoren Brinkmann  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28*c8284409SSoren Brinkmann  * POSSIBILITY OF SUCH DAMAGE.
29*c8284409SSoren Brinkmann  */
30*c8284409SSoren Brinkmann 
31*c8284409SSoren Brinkmann #include <plat_arm.h>
32*c8284409SSoren Brinkmann 
33*c8284409SSoren Brinkmann int plat_core_pos_by_mpidr(u_register_t mpidr)
34*c8284409SSoren Brinkmann {
35*c8284409SSoren Brinkmann 	if (mpidr & MPIDR_CLUSTER_MASK)
36*c8284409SSoren Brinkmann 		return -1;
37*c8284409SSoren Brinkmann 
38*c8284409SSoren Brinkmann 	if ((mpidr & MPIDR_CPU_MASK) >= PLATFORM_CORE_COUNT)
39*c8284409SSoren Brinkmann 		return -1;
40*c8284409SSoren Brinkmann 
41*c8284409SSoren Brinkmann 	return plat_arm_calc_core_pos(mpidr);
42*c8284409SSoren Brinkmann }
43