From 0ee2125a9268c8480f6995a789f30a85ff4831a5 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 26 Jul 2019 07:59:27 +0200 Subject: bsps/arm: Move register init to start.S This makes it easier to review changes in start.S. Update #3773. --- bsps/arm/shared/start/bsp-start-init-registers.S | 105 ----------------------- bsps/arm/shared/start/start.S | 59 ++++++++++++- c/src/lib/libbsp/arm/tms570/Makefile.am | 1 - 3 files changed, 55 insertions(+), 110 deletions(-) delete mode 100644 bsps/arm/shared/start/bsp-start-init-registers.S diff --git a/bsps/arm/shared/start/bsp-start-init-registers.S b/bsps/arm/shared/start/bsp-start-init-registers.S deleted file mode 100644 index 961d3172bf..0000000000 --- a/bsps/arm/shared/start/bsp-start-init-registers.S +++ /dev/null @@ -1,105 +0,0 @@ -/** - * @file - * - * @brief ARM register initialization routines. - */ - -/* - * Copyright (c) 2015 Taller Technologies. All rights reserved. - * - * @author Martin Galvan - * - * 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. - */ - -/* - * These routines initialize the core and VFP registers of ARM CPUs. - * This is necessary for boards that operate in a 1oo1D fashion, - * such as the TMS570. - */ - -#include - -.section .text -.syntax unified -.cpu cortex-r4 -.arm - -/* Initialization of the ARM core registers. */ -FUNCTION_ENTRY(bsp_start_init_registers_core) - mov r0, #0 - mov r1, #0 - mov r2, #0 - mov r3, #0 - mov r4, #0 - mov r5, #0 - mov r6, #0 - mov r7, #0 - mov r8, #0 - mov r9, #0 - mov r10, #0 - mov r11, #0 - mov r12, #0 - mov r13, #0 - - bx lr -FUNCTION_END(bsp_start_init_registers_core) - -/* Initialization of the FIQ mode banked registers. */ -FUNCTION_ENTRY(bsp_start_init_registers_banked_fiq) - mov r8, #0 - mov r9, #0 - mov r10, #0 - mov r11, #0 - mov r12, #0 - - bx lr -FUNCTION_END(bsp_start_init_registers_banked_fiq) - -#ifdef ARM_MULTILIB_VFP - -/* Initialization of the FPU registers. */ -FUNCTION_ENTRY(bsp_start_init_registers_vfp) - mov r0, #0 - vmov d0, r0, r0 - vmov d1, r0, r0 - vmov d2, r0, r0 - vmov d3, r0, r0 - vmov d4, r0, r0 - vmov d5, r0, r0 - vmov d6, r0, r0 - vmov d7, r0, r0 - vmov d8, r0, r0 - vmov d9, r0, r0 - vmov d10, r0, r0 - vmov d11, r0, r0 - vmov d12, r0, r0 - vmov d13, r0, r0 - vmov d14, r0, r0 - vmov d15, r0, r0 - -#ifdef ARM_MULTILIB_VFP_D32 - vmov d16, r0, r0 - vmov d17, r0, r0 - vmov d18, r0, r0 - vmov d19, r0, r0 - vmov d20, r0, r0 - vmov d21, r0, r0 - vmov d22, r0, r0 - vmov d23, r0, r0 - vmov d24, r0, r0 - vmov d25, r0, r0 - vmov d26, r0, r0 - vmov d27, r0, r0 - vmov d28, r0, r0 - vmov d29, r0, r0 - vmov d30, r0, r0 - vmov d31, r0, r0 -#endif /* ARM_MULTILIB_VFP_D32 */ - - bx lr -FUNCTION_END(bsp_start_init_registers_vfp) - -#endif /* ARM_MULTILIB_VFP */ diff --git a/bsps/arm/shared/start/start.S b/bsps/arm/shared/start/start.S index a7fd7eda62..1f6d38f564 100644 --- a/bsps/arm/shared/start/start.S +++ b/bsps/arm/shared/start/start.S @@ -146,7 +146,20 @@ _start: mov r5, r1 /* machine type number or ~0 for DT boot */ mov r6, r2 /* physical address of ATAGs or DTB */ #else /* BSP_START_NEEDS_REGISTER_INITIALIZATION */ - bl bsp_start_init_registers_core + mov r0, #0 + mov r1, #0 + mov r2, #0 + mov r3, #0 + mov r4, #0 + mov r5, #0 + mov r6, #0 + mov r7, #0 + mov r8, #0 + mov r9, #0 + mov r10, #0 + mov r11, #0 + mov r12, #0 + mov r13, #0 #endif #ifdef RTEMS_SMP @@ -204,7 +217,11 @@ _start: sub r3, r3, r1 #ifdef BSP_START_NEEDS_REGISTER_INITIALIZATION - bl bsp_start_init_registers_banked_fiq + mov r8, #0 + mov r9, #0 + mov r10, #0 + mov r11, #0 + mov r12, #0 #endif /* Enter ABT mode and set up the ABT stack pointer */ @@ -271,8 +288,42 @@ _start: vmsr FPEXC, r0 #ifdef BSP_START_NEEDS_REGISTER_INITIALIZATION - bl bsp_start_init_registers_vfp -#endif + mov r0, #0 + vmov d0, r0, r0 + vmov d1, r0, r0 + vmov d2, r0, r0 + vmov d3, r0, r0 + vmov d4, r0, r0 + vmov d5, r0, r0 + vmov d6, r0, r0 + vmov d7, r0, r0 + vmov d8, r0, r0 + vmov d9, r0, r0 + vmov d10, r0, r0 + vmov d11, r0, r0 + vmov d12, r0, r0 + vmov d13, r0, r0 + vmov d14, r0, r0 + vmov d15, r0, r0 +#ifdef ARM_MULTILIB_VFP_D32 + vmov d16, r0, r0 + vmov d17, r0, r0 + vmov d18, r0, r0 + vmov d19, r0, r0 + vmov d20, r0, r0 + vmov d21, r0, r0 + vmov d22, r0, r0 + vmov d23, r0, r0 + vmov d24, r0, r0 + vmov d25, r0, r0 + vmov d26, r0, r0 + vmov d27, r0, r0 + vmov d28, r0, r0 + vmov d29, r0, r0 + vmov d30, r0, r0 + vmov d31, r0, r0 +#endif /* ARM_MULTILIB_VFP_D32 */ +#endif /* BSP_START_NEEDS_REGISTER_INITIALIZATION */ #endif /* ARM_MULTILIB_VFP */ diff --git a/c/src/lib/libbsp/arm/tms570/Makefile.am b/c/src/lib/libbsp/arm/tms570/Makefile.am index bbff1ec7a6..40aed64f3f 100644 --- a/c/src/lib/libbsp/arm/tms570/Makefile.am +++ b/c/src/lib/libbsp/arm/tms570/Makefile.am @@ -49,7 +49,6 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/shared/cp15/arm-cp15-set-ttb # Startup librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/shared/start/bsp-start-memcpy.S -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/shared/start/bsp-start-init-registers.S librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/tms570/start/bspreset.c librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/tms570/start/bspstart.c -- cgit v1.2.3