summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-22 13:48:03 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-22 14:15:51 +0200
commit8e6a407a2a8fa2948a1372855062a7d1bdb2980d (patch)
tree41435edcadd9105dd19d8df726a810ca7f828418
parentscore: Include missing header file (diff)
downloadrtems-8e6a407a2a8fa2948a1372855062a7d1bdb2980d.tar.bz2
bsps/arm: Copy FDT only on boot processor
Update #3090.
-rwxr-xr-xc/src/lib/libbsp/arm/shared/start/start.S21
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 */