forked from Imagelibrary/rtems
bsp/qoriq: Copy FDT later
We need a ready to use TOC section before we can call bsp_fdt_copy(). Update #3082.
This commit is contained in:
@@ -37,6 +37,7 @@
|
|||||||
#define INITIAL_MSR r14
|
#define INITIAL_MSR r14
|
||||||
#define START_STACK r15
|
#define START_STACK r15
|
||||||
#define SAVED_LINK_REGISTER r16
|
#define SAVED_LINK_REGISTER r16
|
||||||
|
#define FDT_REGISTER r17
|
||||||
|
|
||||||
.globl _start
|
.globl _start
|
||||||
#ifdef RTEMS_SMP
|
#ifdef RTEMS_SMP
|
||||||
@@ -50,8 +51,8 @@
|
|||||||
.section ".bsp_start_text", "ax"
|
.section ".bsp_start_text", "ax"
|
||||||
|
|
||||||
_start:
|
_start:
|
||||||
|
mr FDT_REGISTER, r3
|
||||||
bl .Linitearly
|
bl .Linitearly
|
||||||
bl bsp_fdt_copy
|
|
||||||
|
|
||||||
/* Get start stack */
|
/* Get start stack */
|
||||||
LA START_STACK, start_stack_end
|
LA START_STACK, start_stack_end
|
||||||
@@ -72,6 +73,12 @@ _start:
|
|||||||
LA r4, bsp_section_rodata_load_begin
|
LA r4, bsp_section_rodata_load_begin
|
||||||
LA r5, bsp_section_rodata_size
|
LA r5, bsp_section_rodata_size
|
||||||
bl .Lcopy
|
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 r3, bsp_section_rodata_begin
|
||||||
LA r4, bsp_section_rodata_size
|
LA r4, bsp_section_rodata_size
|
||||||
bl rtems_cache_flush_multiple_data_lines
|
bl rtems_cache_flush_multiple_data_lines
|
||||||
@@ -131,11 +138,6 @@ _start:
|
|||||||
b memcpy
|
b memcpy
|
||||||
|
|
||||||
.Linitearly:
|
.Linitearly:
|
||||||
/*
|
|
||||||
* Do not use r3 here, since it holds the FDT base pointer provided by
|
|
||||||
* the boot loader.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __powerpc64__
|
#ifdef __powerpc64__
|
||||||
mfmsr r0
|
mfmsr r0
|
||||||
oris r0, r0, MSR_CM >> 16
|
oris r0, r0, MSR_CM >> 16
|
||||||
|
|||||||
Reference in New Issue
Block a user