diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-09-22 13:48:03 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-09-22 14:15:51 +0200 |
commit | 8e6a407a2a8fa2948a1372855062a7d1bdb2980d (patch) | |
tree | 41435edcadd9105dd19d8df726a810ca7f828418 | |
parent | score: Include missing header file (diff) | |
download | rtems-8e6a407a2a8fa2948a1372855062a7d1bdb2980d.tar.bz2 |
bsps/arm: Copy FDT only on boot processor
Update #3090.
-rwxr-xr-x | c/src/lib/libbsp/arm/shared/start/start.S | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/c/src/lib/libbsp/arm/shared/start/start.S b/c/src/lib/libbsp/arm/shared/start/start.S index 547cce3d2c..aa0f3782c9 100755 --- a/c/src/lib/libbsp/arm/shared/start/start.S +++ b/c/src/lib/libbsp/arm/shared/start/start.S @@ -183,27 +183,34 @@ _start: bl bsp_start_init_registers_core #endif +#ifdef RTEMS_SMP + /* Read MPIDR and get current processor index */ + mrc p15, 0, r7, c0, c0, 5 + and r7, #0xff +#endif + #ifdef BSP_START_COPY_FDT_FROM_U_BOOT +#ifdef RTEMS_SMP + cmp r7, #0 + bne 1f +#endif mov r0, r6 - bl bsp_fdt_copy + bl bsp_fdt_copy +1: #endif #ifdef RTEMS_SMP - /* Read MPIDR and get current processor index */ - mrc p15, 0, r0, c0, c0, 5 - and r0, #0xff - /* * Get current per-CPU control and store it in PL1 only Thread ID * Register (TPIDRPRW). */ ldr r1, =_Per_CPU_Information - add r1, r1, r0, asl #PER_CPU_CONTROL_SIZE_LOG2 + add r1, r1, r7, asl #PER_CPU_CONTROL_SIZE_LOG2 mcr p15, 0, r1, c13, c0, 4 /* Calculate stack offset */ ldr r1, =bsp_stack_all_size - mul r1, r0 + mul r1, r7 #endif mrs r4, cpsr /* save original procesor status value */ |