diff options
Diffstat (limited to 'bsps/powerpc/shared/start/start.S')
-rw-r--r-- | bsps/powerpc/shared/start/start.S | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/bsps/powerpc/shared/start/start.S b/bsps/powerpc/shared/start/start.S index 354b9a967e..faffaf9f31 100644 --- a/bsps/powerpc/shared/start/start.S +++ b/bsps/powerpc/shared/start/start.S @@ -10,8 +10,7 @@ */ #include <rtems/asm.h> -#include <rtems/score/cpu.h> -#include <rtems/powerpc/powerpc.h> +#include <libcpu/powerpc-utility.h> #include <libcpu/io.h> #include <libcpu/bat.h> @@ -133,24 +132,16 @@ enter_C_code: mr r6,r28 mr r7,r27 bl save_boot_params + /* - * stack = &__rtems_end + 4096 - */ - addis r9,r0, __stack-PPC_MINIMUM_STACK_FRAME_SIZE@ha - addi r9,r9, __stack-PPC_MINIMUM_STACK_FRAME_SIZE@l - /* - * align initial stack - * (we hope that the bootloader stack was 16-byte aligned - * or we haven't used altivec yet...) - */ - li r0, (CPU_STACK_ALIGNMENT-1) - andc r1, r9, r0 - /* - * Tag TOS with a NULL (terminator for stack dump) + * Initialize start stack. The stacks are statically allocated and + * properly aligned. */ - li r0, 0 - stw r0, 0(r1) - + LA r1, _ISR_Stack_area_end + subi r1, r1, PPC_DEFAULT_CACHE_LINE_SIZE + li r0, 0 + stw r0, 0(r1) + /* * We are now in a environment that is totally independent from * bootloader setup. |