Changeset bdec62c4 in rtems


Ignore:
Timestamp:
Feb 18, 2019, 8:01:27 AM (2 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
22afb034
Parents:
af80b0a
Message:

bsps/arm: Move device tree copy

Move device tree copy operation after the mode initialization so that
bsp_fdt_copy() uses the initialization stack and not the stack provided
up by the boot loader.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • bsps/arm/shared/start/start.S

    raf80b0a rbdec62c4  
    156156#endif
    157157
    158 #ifdef BSP_START_COPY_FDT_FROM_U_BOOT
    159 #ifdef RTEMS_SMP
    160         cmp     r7, #0
    161         bne     1f
    162 #endif
    163         mov     r0, r6
    164         bl      bsp_fdt_copy
    165 1:
    166 #endif
    167 
    168158#ifdef RTEMS_SMP
    169159        /*
     
    180170        ldr     r1, =_ISR_Stack_size
    181171#ifdef RTEMS_SMP
    182         add     r7, #1
    183         mul     r1, r1, r7
     172        add     r3, r7, #1
     173        mul     r1, r1, r3
    184174#endif
    185175        ldr     r2, =_ISR_Stack_area_begin
    186         add     r7, r1, r2
     176        add     r3, r1, r2
    187177
    188178        /* Save original CPSR value */
     
    199189        /* Boot loader starts kernel in HYP mode, switch to SVC necessary */
    200190        ldr     r1, =bsp_stack_hyp_size
    201         mov     sp, r7
    202         sub     r7, r7, r1
     191        mov     sp, r3
     192        sub     r3, r3, r1
    203193        bl      bsp_start_arm_drop_hyp_mode
    204194
     
    211201        msr     cpsr, r0
    212202        ldr     r1, =bsp_stack_fiq_size
    213         mov     sp, r7
    214         sub     r7, r7, r1
     203        mov     sp, r3
     204        sub     r3, r3, r1
    215205
    216206#ifdef BSP_START_NEEDS_REGISTER_INITIALIZATION
     
    222212        msr     cpsr, r0
    223213        ldr     r1, =bsp_stack_abt_size
    224         mov     sp, r7
    225         sub     r7, r7, r1
     214        mov     sp, r3
     215        sub     r3, r3, r1
    226216
    227217        /* Enter UND mode and set up the UND stack pointer */
     
    229219        msr     cpsr, r0
    230220        ldr     r1, =bsp_stack_und_size
    231         mov     sp, r7
    232         sub     r7, r7, r1
     221        mov     sp, r3
     222        sub     r3, r3, r1
    233223
    234224        /* Enter IRQ mode and set up the IRQ stack pointer */
    235225        mov     r0, #(ARM_PSR_M_IRQ | ARM_PSR_I | ARM_PSR_F)
    236226        msr     cpsr, r0
    237         mov     sp, r7
     227        mov     sp, r3
    238228
    239229        /*
     
    243233        mov     r0, #(ARM_PSR_M_SVC | ARM_PSR_I | ARM_PSR_F)
    244234        msr     cpsr, r0
    245         mov     sp, r7
     235        mov     sp, r3
    246236
    247237        /* Stay in SVC mode */
     238
     239        /* Copy device tree from boot loader */
     240#ifdef BSP_START_COPY_FDT_FROM_U_BOOT
     241#ifdef RTEMS_SMP
     242        cmp     r7, #0
     243        bne     1f
     244#endif
     245        mov     r0, r6
     246        bl      bsp_fdt_copy
     2471:
     248#endif
    248249
    249250#ifdef ARM_MULTILIB_VFP
Note: See TracChangeset for help on using the changeset viewer.