| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Add the BSP option BSP_START_VECTOR_ADDRESS_TABLE_ALIGNMENT to
optionally define an alignment of the vector address table begin.
|
|
|
|
|
| |
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
|
| |
|
|
|
|
|
|
|
| |
Add the function type to _start() and bsp_start_hook_0_done() so that
the linker can generate ARM/Thumb interworking code.
Update #4202.
|
| |
|
|
|
|
| |
Updates #4625.
|
|
|
|
|
| |
Do not continue execution on processors which are not configured to prevent the
use of arbitrary memory for the initialization stack.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
Use BSP_INTERRUPT_VECTOR_COUNT instead of BSP_INTERRUPT_VECTOR_MAX.
Update #3269.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Update #4202.
|
|
|
|
|
|
|
| |
Initialize the data and unified cache levels. Invalidate the
instruction cache levels.
Update #4202.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Make sure the branch predictors are invalidated before the first branch
is executed.
Update #4202.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Close #3789.
|
|
|
|
|
| |
Xen currently only supports the zImage loader for 32 bit guests on ARM
targets.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This makes it easier to review changes in start.S.
Update #3773.
|
|
|
|
|
|
| |
There are no known ARMv7-M chips with a dual lockstep mode.
Update #3773.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
The boot_card() function does not return.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
This patch is a part of the BSP source reorganization.
Update #3285.
|