juno: Override platform_get_core_pos and platform_is_primary_cpu

Signed-off-by: Jon Medhurst <tixy@linaro.org>
This commit is contained in:
Jon Medhurst 2014-01-13 20:47:24 +00:00 committed by Sandrine Bailleux
parent c30556a13b
commit 4c47d98a44
3 changed files with 30 additions and 1 deletions

View File

@ -46,3 +46,31 @@
plat_report_exception:
/* Juno todo: Come up with a way of reporting errors */
ret
/*
* Return 0 to 3 for the A53s and 4 or 5 for the A57s
*/
.globl platform_get_core_pos
platform_get_core_pos:; .type platform_get_core_pos, %function
and x1, x0, #MPIDR_CPU_MASK
and x0, x0, #MPIDR_CLUSTER_MASK
eor x0, x0, #(1 << MPIDR_AFFINITY_BITS) // swap A53/A57 order
add x0, x1, x0, LSR #6
ret
/* -----------------------------------------------------
* void platform_is_primary_cpu (unsigned int mpid);
*
* Given the mpidr say whether this cpu is the primary
* cpu (applicable ony after a cold boot)
* -----------------------------------------------------
*/
.globl platform_is_primary_cpu
platform_is_primary_cpu:; .type platform_is_primary_cpu, %function
/* Warning: this function is called without a valid stack */
/* Juno todo: allow configuration of primary CPU using SCC */
and x0, x0, #(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK)
cmp x0, #PRIMARY_CPU
cset x0, eq
ret

View File

@ -74,7 +74,7 @@
#define PLATFORM_CORE_COUNT (PLATFORM_CLUSTER1_CORE_COUNT + \
PLATFORM_CLUSTER0_CORE_COUNT)
#define PLATFORM_MAX_CPUS_PER_CLUSTER 4
#define PRIMARY_CPU 0x0
#define PRIMARY_CPU 0x100
#define MAX_IO_DEVICES 3
#define MAX_IO_HANDLES 4

View File

@ -78,6 +78,7 @@ BL1_SOURCES += bl1_plat_setup.c \
cci400.c
BL2_SOURCES += bl2_plat_setup.c \
plat_helpers.S \
plat_common.c
BL31_SOURCES += bl31_plat_setup.c \