bsps/arm: Set VBAR in start.S

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.
This commit is contained in:
Sebastian Huber
2020-12-18 10:11:51 +01:00
parent 854ea2b4d8
commit 272534eb72
11 changed files with 34 additions and 94 deletions

View File

@@ -55,6 +55,9 @@ void rpi_start_rtems_on_secondary_processor(void)
{
uint32_t ctrl;
/* Change the VBAR from the start to the normal vector table */
arm_cp15_set_vector_base_address(bsp_vector_table_begin);
ctrl = arm_cp15_start_setup_mmu_and_cache(
0,
ARM_CP15_CTRL_AFE | ARM_CP15_CTRL_Z

View File

@@ -117,9 +117,6 @@ void BSP_START_TEXT_SECTION bsp_start_hook_0(void)
/* Clear Translation Table Base Control Register */
arm_cp15_set_translation_table_base_control_register(0);
/* Clear Secure or Non-secure Vector Base Address Register */
arm_cp15_set_vector_base_address(bsp_vector_table_begin);
#ifdef RTEMS_SMP
if (cpu_index_self == 0) {
rpi_ipi_initialize();