Changeset 84e59b7c in rtems for bsps


Ignore:
Timestamp:
Nov 15, 2018, 7:47:22 PM (8 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
508f319e
Parents:
cc61d5c
git-author:
Sebastian Huber <sebastian.huber@…> (11/15/18 19:47:22)
git-committer:
Sebastian Huber <sebastian.huber@…> (11/19/18 06:15:47)
Message:

bsps/powerpc: Use interrupt stack for init stack

Move start.o to separate file.

Update #3459.

Location:
bsps/powerpc
Files:
12 edited
1 moved

Legend:

Unmodified
Added
Removed
  • bsps/powerpc/gen5200/start/start.S

    rcc61d5c r84e59b7c  
    9191/***********************************************************************/
    9292
     93#include <rtems/asm.h>
    9394#include <rtems/powerpc/cache.h>
     95#include <libcpu/powerpc-utility.h>
    9496
    9597#include <bsp.h>
     
    471473#endif /* HAS_UBOOT */
    472474
    473 /* set stack pointer (common for RAM/ROM startup) */
    474         LA      r1, bsp_section_text_start
    475         addi    r1, r1, -0x10                   /* Set up stack pointer = beginning of text section - 0x10 */
    476         /* tag TOS with a NULL pointer (termination mark for stack dump) */
    477         li  r0, 0
    478         stw r0, 0(r1)
     475        /*
     476         * Initialize start stack (common for RAM/ROM startup).  The stacks are
     477         * statically allocated and properly aligned.
     478         */
     479        LA      r1, _ISR_Stack_area_end
     480        subi    r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE
     481        li      r0, 0
     482        stw     r0, 0(r1)
    479483
    480484        bl      __eabi                          /* Set up EABI and SYSV environment */
  • bsps/powerpc/gen83xx/start/start.S

    rcc61d5c r84e59b7c  
    414414        LA r13, _SDA_BASE_
    415415
    416         /* Clear cmdline */
     416        /* Clear cmdline */
    417417        li      r3, 0
    418418
    419         /* Set start stack pointer */
     419        /*
     420         * Initialize start stack.  The stacks are statically allocated and
     421         * properly aligned.
     422         */
    420423        LA      r1, _ISR_Stack_area_end
    421         stwu    r3, -4(r1)
    422         stwu    r3, -4(r1)
     424        subi    r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE
     425        stw     r3, 0(r1)
    423426
    424427        /* Call the first C routine */
  • bsps/powerpc/haleakala/start/linkcmds

    rcc61d5c r84e59b7c  
    1212OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
    1313OUTPUT_ARCH(powerpc)
     14STARTUP(start.o)
    1415ENTRY(download_entry)
    1516EXTERN(__vectors)
  • bsps/powerpc/mpc8260ads/start/start.S

    rcc61d5c r84e59b7c  
    3131
    3232#include <rtems/asm.h>
     33#include <libcpu/powerpc-utility.h>
    3334
    3435/*
    35  *  The initial stack is set to run BELOW the code base address.
    36  *  (between the vectors and text sections)
    37  *
    3836 *  The entry veneer has to clear the BSS and copy the read only
    3937 *  version of the data segment to the correct location.
     
    135133        lwz r2, toc_pointer-base_addr(r1)
    136134
    137         /* Set up stack pointer = beginning of text section - 56 */
    138         addi    r1, r1, -56-4
     135        /* Clear cmdline */
     136        li      r3, 0
    139137
    140         /* Clear cmdline */
    141         xor r3, r3, r3
     138        /*
     139         * Initialize start stack.  The stacks are statically allocated and
     140         * properly aligned.
     141         */
     142        LA      r1, _ISR_Stack_area_end
     143        subi    r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE
     144        stw     r3, 0(r1)
    142145
    143146        .extern SYM (boot_card)
  • bsps/powerpc/mvme3100/start/start.S

    rcc61d5c r84e59b7c  
    1313
    1414#include <rtems/asm.h>
    15 #include <rtems/score/cpu.h>
    16 #include <rtems/powerpc/powerpc.h>
     15#include <libcpu/powerpc-utility.h>
    1716
    1817#include <bspopts.h>
     
    7271        mr      r7,r27
    7372        bl      save_boot_params
    74         addis   r9,r0, (__stack-PPC_MINIMUM_STACK_FRAME_SIZE)@ha
    75         addi    r9,r9, (__stack-PPC_MINIMUM_STACK_FRAME_SIZE)@l
    76         /* align down to 16-bytes */
    77         li  r5, (CPU_STACK_ALIGNMENT - 1)
    78         andc r1, r9, r5
    7973
    80         /* NULL ptr to back chain */
    81         li  r0, 0
    82         stw r0, 0(r1)
     74        /*
     75         * Initialize start stack.  The stacks are statically allocated and
     76         * properly aligned.
     77         */
     78        LA      r1, _ISR_Stack_area_end
     79        subi    r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE
     80        li      r0, 0
     81        stw     r0, 0(r1)
    8382
    8483        /*
  • bsps/powerpc/mvme5500/start/start.S

    rcc61d5c r84e59b7c  
    1414
    1515#include <rtems/asm.h>
    16 #include <rtems/score/cpu.h>
    17 #include <rtems/powerpc/powerpc.h>
     16#include <libcpu/powerpc-utility.h>
    1817
    1918#include <libcpu/io.h>
     
    135134        mr      r7,r27
    136135        bl      save_boot_params
     136
    137137        /*
    138          * stack = &__rtems_end + 4096
     138         * Initialize start stack.  The stacks are statically allocated and
     139         * properly aligned.
    139140         */
    140         addis   r9,r0, __stack-PPC_MINIMUM_STACK_FRAME_SIZE@ha
    141         addi    r9,r9, __stack-PPC_MINIMUM_STACK_FRAME_SIZE@l
    142         /*
    143          * align initial stack
    144          * (we hope that the bootloader stack was 16-byte aligned
    145          * or we haven't used altivec yet...)
    146          */
    147         li   r0, (CPU_STACK_ALIGNMENT-1)
    148         andc r1, r9, r0
    149         /*
    150          * NULL ptr to back chain
    151          */
    152         li   r0, 0
    153         stw  r0, 0(r1)
     141        LA      r1, _ISR_Stack_area_end
     142        subi    r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE
     143        li      r0, 0
     144        stw     r0, 0(r1)
    154145
    155146        /*
  • bsps/powerpc/shared/start/linkcmds.share

    rcc61d5c r84e59b7c  
    44/* Do we need any of these for elf?
    55   __DYNAMIC = 0;    */
    6 PROVIDE (__stack = 0);
    76MEMORY {
    87        VECTORS : ORIGIN = 0x0 ,  LENGTH = 0x3000
     
    248247  } > CODE
    249248  . = ALIGN(16);
    250   . += 0x1000;
    251   __stack = .;
    252249  _end = . ;
    253250  __rtems_end = . ;
  • bsps/powerpc/shared/start/start.S

    rcc61d5c r84e59b7c  
    1111
    1212#include <rtems/asm.h>
    13 #include <rtems/score/cpu.h>
    14 #include <rtems/powerpc/powerpc.h>
     13#include <libcpu/powerpc-utility.h>
    1514
    1615#include <libcpu/io.h>
     
    134133        mr      r7,r27
    135134        bl      save_boot_params
     135
    136136        /*
    137          * stack = &__rtems_end + 4096
     137         * Initialize start stack.  The stacks are statically allocated and
     138         * properly aligned.
    138139         */
    139         addis   r9,r0, __stack-PPC_MINIMUM_STACK_FRAME_SIZE@ha
    140         addi    r9,r9, __stack-PPC_MINIMUM_STACK_FRAME_SIZE@l
    141         /*
    142          * align initial stack
    143          * (we hope that the bootloader stack was 16-byte aligned
    144          * or we haven't used altivec yet...)
    145          */
    146         li   r0, (CPU_STACK_ALIGNMENT-1)
    147         andc r1, r9, r0
    148         /*
    149          * Tag TOS with a NULL (terminator for stack dump)
    150          */
    151         li   r0, 0
    152         stw  r0, 0(r1)
    153        
     140        LA      r1, _ISR_Stack_area_end
     141        subi    r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE
     142        li      r0, 0
     143        stw     r0, 0(r1)
     144
    154145        /*
    155146         * We are now in a environment that is totally independent from
  • bsps/powerpc/ss555/start/linkcmds

    rcc61d5c r84e59b7c  
    1717OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
    1818OUTPUT_ARCH(powerpc)
     19STARTUP(start.o)
    1920ENTRY(start)
    2021EXTERN(_vectors)
  • bsps/powerpc/virtex/start/start.S

    rcc61d5c r84e59b7c  
    4848.endr
    4949
    50         /* Start stack area */
    51 .rept BSP_START_STACK_SIZE / 4
    52         b       twiddle
    53 .endr
    54 
    5550_start:
    5651
     
    6055        mtspr   TBWL, r0
    6156
    62         /* Initialize start stack */
    63         LWI     r1, _start
    64         stwu    r0, -4(r1)
    65         stwu    r0, -4(r1)
     57        /*
     58         * Initialize start stack.  The stacks are statically allocated and
     59         * properly aligned.
     60         */
     61        LA      r1, _ISR_Stack_area_end
     62        subi    r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE
     63        stw     r0, 0(r1)
    6664
    6765        /* Copy fast text */
  • bsps/powerpc/virtex4/start/linkcmds

    rcc61d5c r84e59b7c  
    99OUTPUT_ARCH(powerpc)
    1010
     11STARTUP(start.o)
    1112ENTRY(download_entry)
    1213EXTERN(download_entry)
  • bsps/powerpc/virtex5/start/linkcmds

    rcc61d5c r84e59b7c  
    99OUTPUT_ARCH(powerpc)
    1010
     11STARTUP(start.o)
    1112ENTRY(download_entry)
    1213EXTERN(download_entry)
Note: See TracChangeset for help on using the changeset viewer.