From 3460c5228637b784edf68011d0e15d3f65517d61 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 25 Apr 2018 14:51:49 +0200 Subject: bsps/powerpc: Move bsp-start-zero.S to bsps This patch is a part of the BSP source reorganization. Update #3285. --- bsps/powerpc/shared/start/bsp-start-zero.S | 115 +++++++++++++++++++++ c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am | 2 +- c/src/lib/libbsp/powerpc/qoriq/Makefile.am | 2 +- .../lib/libbsp/powerpc/shared/src/bsp-start-zero.S | 115 --------------------- c/src/lib/libbsp/powerpc/t32mppc/Makefile.am | 2 +- c/src/lib/libbsp/powerpc/virtex/Makefile.am | 2 +- 6 files changed, 119 insertions(+), 119 deletions(-) create mode 100644 bsps/powerpc/shared/start/bsp-start-zero.S delete mode 100644 c/src/lib/libbsp/powerpc/shared/src/bsp-start-zero.S diff --git a/bsps/powerpc/shared/start/bsp-start-zero.S b/bsps/powerpc/shared/start/bsp-start-zero.S new file mode 100644 index 0000000000..e87efff8c3 --- /dev/null +++ b/bsps/powerpc/shared/start/bsp-start-zero.S @@ -0,0 +1,115 @@ +/** + * @file + * + * @ingroup bsp_start + * + * @brief bsp_start_zero() implementation. + */ + +/* + * Copyright (c) 2010-2014 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#include +#include +#include + + .globl bsp_start_zero + .globl bsp_start_zero_begin + .globl bsp_start_zero_end + .globl bsp_start_zero_size + + .section ".bsp_start_text", "ax" + .type bsp_start_zero, @function +bsp_start_zero: +bsp_start_zero_begin: + li r0, 0 + subi r11, r3, 1 + clrrwi r11, r11, PPC_CACHE_ALIGN_POWER + addi r10, r11, PPC_CACHE_ALIGNMENT + subf r11, r3, r10 + cmplw cr7, r11, r4 + add r9, r3, r4 + ble- cr7, head_end_done + mr r10, r9 +head_end_done: + subf r11, r3, r10 + addi r11, r11, 1 + mtctr r11 + + /* Head loop */ + b head_loop_update +head_loop_begin: + stb r0, 0(r3) + addi r3, r3, 1 +head_loop_update: + bdnz+ head_loop_begin + + subf r11, r3, r9 + srwi r11, r11, PPC_CACHE_ALIGN_POWER + addi r11, r11, 1 + mtctr r11 + + /* Main loop */ + b main_loop_update +main_loop_begin: +#if BSP_DATA_CACHE_ENABLED + dcbz r0, r3 + dcbf r0, r3 +#else + #if PPC_CACHE_ALIGNMENT == 32 || PPC_CACHE_ALIGNMENT == 64 + stw r0, 0(r3) + stw r0, 4(r3) + stw r0, 8(r3) + stw r0, 12(r3) + stw r0, 16(r3) + stw r0, 20(r3) + stw r0, 24(r3) + stw r0, 28(r3) + #if PPC_CACHE_ALIGNMENT == 64 + stw r0, 32(r3) + stw r0, 36(r3) + stw r0, 40(r3) + stw r0, 44(r3) + stw r0, 48(r3) + stw r0, 52(r3) + stw r0, 56(r3) + stw r0, 60(r3) + #endif + #else + #error "unsupported cache alignment" + #endif +#endif + addi r3, r3, PPC_CACHE_ALIGNMENT +main_loop_update: + bdnz+ main_loop_begin + + subf r9, r3, r9 + addi r9, r9, 1 + mtctr r9 + + /* Tail loop */ + b tail_loop_update +tail_loop_begin: + stb r0, 0(r3) + addi r3, r3, 1 +tail_loop_update: + bdnz+ tail_loop_begin + + /* Return */ + sync + isync + blr + +bsp_start_zero_end: + .set bsp_start_zero_size, bsp_start_zero_end - bsp_start_zero_begin diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am index 1c3851c4ee..2f52f84116 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am @@ -43,7 +43,7 @@ librtemsbsp_a_SOURCES = librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/getentropy/getentropy-cpucounter.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspfatal-default.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/stackalloc.c -librtemsbsp_a_SOURCES += ../shared/src/bsp-start-zero.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/bsp-start-zero.S librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/memcpy.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/tictac.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/exceptions/ppc-exc-handler-table.c diff --git a/c/src/lib/libbsp/powerpc/qoriq/Makefile.am b/c/src/lib/libbsp/powerpc/qoriq/Makefile.am index 782f254d39..3ef89313dd 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/Makefile.am +++ b/c/src/lib/libbsp/powerpc/qoriq/Makefile.am @@ -40,7 +40,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspfatal-default.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bsp-fdt.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/exceptions/ppc-exc-handler-table.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/tictac.c -librtemsbsp_a_SOURCES += ../shared/src/bsp-start-zero.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/bsp-start-zero.S librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/bspidle.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/qoriq/start/epapr_hcalls.S librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/qoriq/start/l1cache.S diff --git a/c/src/lib/libbsp/powerpc/shared/src/bsp-start-zero.S b/c/src/lib/libbsp/powerpc/shared/src/bsp-start-zero.S deleted file mode 100644 index e87efff8c3..0000000000 --- a/c/src/lib/libbsp/powerpc/shared/src/bsp-start-zero.S +++ /dev/null @@ -1,115 +0,0 @@ -/** - * @file - * - * @ingroup bsp_start - * - * @brief bsp_start_zero() implementation. - */ - -/* - * Copyright (c) 2010-2014 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#include -#include -#include - - .globl bsp_start_zero - .globl bsp_start_zero_begin - .globl bsp_start_zero_end - .globl bsp_start_zero_size - - .section ".bsp_start_text", "ax" - .type bsp_start_zero, @function -bsp_start_zero: -bsp_start_zero_begin: - li r0, 0 - subi r11, r3, 1 - clrrwi r11, r11, PPC_CACHE_ALIGN_POWER - addi r10, r11, PPC_CACHE_ALIGNMENT - subf r11, r3, r10 - cmplw cr7, r11, r4 - add r9, r3, r4 - ble- cr7, head_end_done - mr r10, r9 -head_end_done: - subf r11, r3, r10 - addi r11, r11, 1 - mtctr r11 - - /* Head loop */ - b head_loop_update -head_loop_begin: - stb r0, 0(r3) - addi r3, r3, 1 -head_loop_update: - bdnz+ head_loop_begin - - subf r11, r3, r9 - srwi r11, r11, PPC_CACHE_ALIGN_POWER - addi r11, r11, 1 - mtctr r11 - - /* Main loop */ - b main_loop_update -main_loop_begin: -#if BSP_DATA_CACHE_ENABLED - dcbz r0, r3 - dcbf r0, r3 -#else - #if PPC_CACHE_ALIGNMENT == 32 || PPC_CACHE_ALIGNMENT == 64 - stw r0, 0(r3) - stw r0, 4(r3) - stw r0, 8(r3) - stw r0, 12(r3) - stw r0, 16(r3) - stw r0, 20(r3) - stw r0, 24(r3) - stw r0, 28(r3) - #if PPC_CACHE_ALIGNMENT == 64 - stw r0, 32(r3) - stw r0, 36(r3) - stw r0, 40(r3) - stw r0, 44(r3) - stw r0, 48(r3) - stw r0, 52(r3) - stw r0, 56(r3) - stw r0, 60(r3) - #endif - #else - #error "unsupported cache alignment" - #endif -#endif - addi r3, r3, PPC_CACHE_ALIGNMENT -main_loop_update: - bdnz+ main_loop_begin - - subf r9, r3, r9 - addi r9, r9, 1 - mtctr r9 - - /* Tail loop */ - b tail_loop_update -tail_loop_begin: - stb r0, 0(r3) - addi r3, r3, 1 -tail_loop_update: - bdnz+ tail_loop_begin - - /* Return */ - sync - isync - blr - -bsp_start_zero_end: - .set bsp_start_zero_size, bsp_start_zero_end - bsp_start_zero_begin diff --git a/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am b/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am index 811f2e0679..944c54c4ed 100644 --- a/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am +++ b/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am @@ -32,7 +32,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspfatal-default.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspgetworkarea-default.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/exceptions/ppc-exc-handler-table.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/tictac.c -librtemsbsp_a_SOURCES += ../shared/src/bsp-start-zero.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/bsp-start-zero.S librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/t32mppc/start/bspstart.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/t32mppc/start/bspreset.c diff --git a/c/src/lib/libbsp/powerpc/virtex/Makefile.am b/c/src/lib/libbsp/powerpc/virtex/Makefile.am index 54cef149a7..c0820c7906 100644 --- a/c/src/lib/libbsp/powerpc/virtex/Makefile.am +++ b/c/src/lib/libbsp/powerpc/virtex/Makefile.am @@ -35,7 +35,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspreset-loop.c librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/virtex/start/bspstart.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/getentropy/getentropy-cpucounter.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/sbrk.c -librtemsbsp_a_SOURCES += ../shared/src/bsp-start-zero.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/start/bsp-start-zero.S # bspconsole librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/serial/legacy-console.c -- cgit v1.2.3