summaryrefslogtreecommitdiffstats
path: root/bsps/arm/shared/start/start.S (follow)
Commit message (Collapse)AuthorAgeFilesLines
* bsps/arm: BSP_START_VECTOR_ADDRESS_TABLE_ALIGNMENTSebastian Huber2023-12-061-0/+4
| | | | | Add the BSP option BSP_START_VECTOR_ADDRESS_TABLE_ALIGNMENT to optionally define an alignment of the vector address table begin.
* Update company nameSebastian Huber2023-05-201-1/+1
| | | | | The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
* bsps/arm: Fix wordingSebastian Huber2023-03-171-1/+1
|
* bsps/arm: Mark functions in start.SSebastian Huber2022-09-221-0/+2
| | | | | | | Add the function type to _start() and bsp_start_hook_0_done() so that the linker can generate ARM/Thumb interworking code. Update #4202.
* bsps/arm: Add comment about banked FIQ registersSebastian Huber2022-09-221-0/+1
|
* bsps/arm/: Scripted embedded brains header file clean upJoel Sherrill2022-03-101-6/+0
| | | | Updates #4625.
* bsps/arm: More robust SMP startSebastian Huber2021-08-121-2/+14
| | | | | Do not continue execution on processors which are not configured to prevent the use of arbitrary memory for the initialization stack.
* bsps/arm: Fix SMP startSebastian Huber2021-07-091-0/+6
| | | | | | | | Skip the data cache initialization if we are a secondary processor. The bug was introduced by e164df5e33608576443b4cd5923a9046358ee773 and did not show up in tests using Qemu since the data cache behaviour is not emulated.
* bsps/arm: Add start up support for ARMv6 RPi ModelsPranav Dangi2021-07-071-1/+7
|
* bsps/irq: Use BSP_INTERRUPT_VECTOR_COUNTSebastian Huber2021-06-241-1/+1
| | | | | | Use BSP_INTERRUPT_VECTOR_COUNT instead of BSP_INTERRUPT_VECTOR_MAX. Update #3269.
* bsps/arm: Set MSP in ARMv7-M start codeSebastian Huber2021-04-211-0/+8
| | | | | | Set the Main Stack Pointer (MSP) to the ISR stack area end just in case we run using the Process Stack Pointer (PSP). This helps if applications are started by a boot loader.
* bsps/arm: Invalidate TLB in start.SSebastian Huber2020-12-231-0/+9
| | | | Update #4202.
* bsps/arm: Clear SCTLR[M, I, A, C] in start.SSebastian Huber2020-12-231-2/+35
| | | | | | | Initialize the data and unified cache levels. Invalidate the instruction cache levels. Update #4202.
* bsps/arm: Remove optional start hook argumentsSebastian Huber2020-12-231-37/+26
| | | | | | | The start hook arguments are not used by a BSP. Removing them avoids the need for a stack during the very early system initialization. Update #4202.
* bsps/arm: Invalidate branch predictors earlierSebastian Huber2020-12-231-0/+11
| | | | | | | Make sure the branch predictors are invalidated before the first branch is executed. Update #4202.
* bsps/arm: Set VBAR in start.SSebastian Huber2020-12-231-1/+27
| | | | | | | | | | Set the VBAR to the vector table in the start section before bsp_start_hook_0() is called to earlier handle exceptions in RTEMS. Set the VBAR to the normal vector table in start.S for the main processor. Secondary processors set it in bsp_start_hook_0(). Update #4202.
* arm: ARMv7-M statically initialized vector tableSebastian Huber2020-04-031-5/+5
| | | | | | | Statically initialize the ARMv7-M vector table to allow a placement in ROM with read-only MPU settings. Change licence to BSD-2-Clause in some files.
* bsps/arm: Export bsp_start_hook_0_doneSebastian Huber2019-12-191-5/+8
| | | | Close #3789.
* bsps/arm: Add zImage boot headerJeff Kubascik2019-12-051-0/+11
| | | | | Xen currently only supports the zImage loader for 32 bit guests on ARM targets.
* bsps/arm: Move HYP to SVC change to start.SSebastian Huber2019-07-261-2/+40
| | | | | | | | | This fixes the corruption of r3 by the call to bsp_start_arm_drop_hyp_mode(). Moving the code makes it easier to review changes in start.S. Close #3773.
* bsps/arm: Move register init to start.SSebastian Huber2019-07-261-4/+55
| | | | | | This makes it easier to review changes in start.S. Update #3773.
* bsps/arm: Remove register init for ARMv7-MSebastian Huber2019-07-261-12/+1
| | | | | | There are no known ARMv7-M chips with a dual lockstep mode. Update #3773.
* bsps/arm: Move device tree copySebastian Huber2019-02-181-23/+24
| | | | | | 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.
* bsps/arm: Avoid short range branch in start.SSebastian Huber2018-11-211-14/+13
|
* bsps/arm: Use local labels in start.SSebastian Huber2018-11-211-44/+40
|
* bsps/arm: Simplify start.SSebastian Huber2018-11-211-12/+0
| | | | The boot_card() function does not return.
* score: Rename interrupt stack symbolsSebastian Huber2018-11-081-4/+4
| | | | | | | | | | | | | Rename * _Configuration_Interrupt_stack_area_begin in _ISR_Stack_area_begin, * _Configuration_Interrupt_stack_area_end in _ISR_Stack_area_end, and * _Configuration_Interrupt_stack_size in _ISR_Stack_size. Move definitions to <rtems/score/isr.h>. The new names are considerable shorter and in the right namespace. Update #3459.
* Rework initialization and interrupt stack supportSebastian Huber2018-06-271-83/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Statically initialize the interrupt stack area (_Configuration_Interrupt_stack_area_begin, _Configuration_Interrupt_stack_area_end, and _Configuration_Interrupt_stack_size) via <rtems/confdefs.h>. Place the interrupt stack area in a special section ".rtemsstack.interrupt". Let BSPs define the optimal placement of this section in their linker command files (e.g. in a fast on-chip memory). This change makes makes the CPU_HAS_SOFTWARE_INTERRUPT_STACK and CPU_HAS_HARDWARE_INTERRUPT_STACK CPU port defines superfluous, since the low level initialization code has all information available via global symbols. This change makes the CPU_ALLOCATE_INTERRUPT_STACK CPU port define superfluous, since the interrupt stacks are allocated by confdefs.h for all architectures. There is no need for BSP-specific linker command file magic (except the section placement), see previous ARM linker command file as a bad example. Remove _CPU_Install_interrupt_stack(). Initialize the hardware interrupt stack in _CPU_Initialize() if necessary (e.g. m68k_install_interrupt_stack()). The optional _CPU_Interrupt_stack_setup() is still useful to customize the registration of the interrupt stack area in the per-CPU information. The initialization stack can reuse the interrupt stack, since * interrupts are disabled during the sequential system initialization, and * the boot_card() function does not return. This stack resuse saves memory. Changes per architecture: arm: * Mostly replace the linker symbol based configuration of stacks with the standard <rtems/confdefs.h> configuration via CONFIGURE_INTERRUPT_STACK_SIZE. The size of the FIQ, ABT and UND mode stack is still defined via linker symbols. These modes are rarely used in applications and the default values provided by the BSP should be sufficient in most cases. * Remove the bsp_processor_count linker symbol hack used for the SMP support. This is possible since the interrupt stack area is now allocated by the linker and not allocated from the heap. This makes some configure.ac stuff obsolete. Remove the now superfluous BSP variants altcycv_devkit_smp and realview_pbx_a9_qemu_smp. bfin: * Remove unused magic linker command file allocation of initialization stack. Maybe a previous linker command file copy and paste problem? In the start.S the initialization stack is set to a hard coded value. lm32, m32c, mips, nios2, riscv, sh, v850: * Remove magic linker command file allocation of initialization stack. Reuse interrupt stack for initialization stack. m68k: * Remove magic linker command file allocation of initialization stack. Reuse interrupt stack for initialization stack. powerpc: * Remove magic linker command file allocation of initialization stack. Reuse interrupt stack for initialization stack. * Used dedicated memory region (REGION_RTEMSSTACK) for the interrupt stack on BSPs using the shared linkcmds.base (replacement for REGION_RWEXTRA). sparc: * Remove the hard coded initialization stack. Use the interrupt stack for the initialization stack on the boot processor. This saves 16KiB of RAM. Update #3459.
* Drop executable permissions on .[S] filesJoel Sherrill2018-05-141-0/+0
|
* bsps: Move start files to bspsSebastian Huber2018-04-201-0/+462
This patch is a part of the BSP source reorganization. Update #3285.