summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-08-01 08:41:07 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-08-22 16:27:02 +0200
commit0ae1916bcfbf5cc73ed9d932e1d58bc550514b9b (patch)
treed26d504d452827cdd9be8ddad8407d5b29a3e9b9
parentbsp/qoriq: Add basic 64-bit support (diff)
downloadrtems-0ae1916bcfbf5cc73ed9d932e1d58bc550514b9b.tar.bz2
bsp/qoriq: Copy FDT later
We need a ready to use TOC section before we can call bsp_fdt_copy(). Update #3082.
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/start/start.S14
1 files changed, 8 insertions, 6 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
index 85bcb3afcb..bf1e3b91dc 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
@@ -37,6 +37,7 @@
#define INITIAL_MSR r14
#define START_STACK r15
#define SAVED_LINK_REGISTER r16
+#define FDT_REGISTER r17
.globl _start
#ifdef RTEMS_SMP
@@ -50,8 +51,8 @@
.section ".bsp_start_text", "ax"
_start:
+ mr FDT_REGISTER, r3
bl .Linitearly
- bl bsp_fdt_copy
/* Get start stack */
LA START_STACK, start_stack_end
@@ -72,6 +73,12 @@ _start:
LA r4, bsp_section_rodata_load_begin
LA r5, bsp_section_rodata_size
bl .Lcopy
+
+ /* Copy FDT into read-only data */
+ mr r3, FDT_REGISTER
+ bl bsp_fdt_copy
+
+ /* Flush read-only data */
LA r3, bsp_section_rodata_begin
LA r4, bsp_section_rodata_size
bl rtems_cache_flush_multiple_data_lines
@@ -131,11 +138,6 @@ _start:
b memcpy
.Linitearly:
- /*
- * Do not use r3 here, since it holds the FDT base pointer provided by
- * the boot loader.
- */
-
#ifdef __powerpc64__
mfmsr r0
oris r0, r0, MSR_CM >> 16