bsps/powerpc: Simplify ppc_exc_initialize()

Remove parameters from ppc_exc_initialize() since all BSPs passed the
same values.

Update #3459.
This commit is contained in:
Sebastian Huber
2018-09-04 18:28:57 +02:00
parent 9a21fc7383
commit 54d87f2e52
21 changed files with 22 additions and 154 deletions

View File

@@ -177,8 +177,6 @@ void bsp_start( void )
{ {
unsigned char *stack; unsigned char *stack;
char *chpt; char *chpt;
uintptr_t intrStackStart;
uintptr_t intrStackSize;
Triv121PgTbl pt=0; Triv121PgTbl pt=0;
@@ -231,21 +229,7 @@ void bsp_start( void )
*((uint32_t *)stack) = 0; *((uint32_t *)stack) = 0;
/* ppc_exc_initialize();
* Initialize the interrupt related settings
* SPRG0 = interrupt nesting level count
* SPRG1 = software managed IRQ stack
*
* This could be done latter (e.g in IRQ_INIT) but it helps to understand
* some settings below...
*/
intrStackStart = (uintptr_t)_Configuration_Interrupt_stack_area_begin;
intrStackSize = rtems_configuration_get_interrupt_stack_size();
/*
* Initialize default raw exception handlers. See vectors/vectors_init.c
*/
ppc_exc_initialize(intrStackStart, intrStackSize);
printk("CPU: %s\n", get_ppc_cpu_type_name(current_ppc_cpu)); printk("CPU: %s\n", get_ppc_cpu_type_name(current_ppc_cpu));

View File

@@ -153,13 +153,10 @@ void bsp_start(void)
/* Initialize exception handler */ /* Initialize exception handler */
ppc_exc_cache_wb_check = 0; ppc_exc_cache_wb_check = 0;
ppc_exc_initialize( ppc_exc_initialize();
(uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size()
);
ppc_exc_set_handler(ASM_ALIGN_VECTOR, ppc_exc_alignment_handler); ppc_exc_set_handler(ASM_ALIGN_VECTOR, ppc_exc_alignment_handler);
/* Initalize interrupt support */ /* Initialize interrupt support */
bsp_interrupt_initialize(); bsp_interrupt_initialize();
/* /*

View File

@@ -113,10 +113,7 @@ void bsp_start( void)
#ifndef BSP_DATA_CACHE_ENABLED #ifndef BSP_DATA_CACHE_ENABLED
ppc_exc_cache_wb_check = 0; ppc_exc_cache_wb_check = 0;
#endif #endif
ppc_exc_initialize( ppc_exc_initialize();
(uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size()
);
/* Install default handler for the decrementer exception */ /* Install default handler for the decrementer exception */
sc = ppc_exc_set_handler( ASM_DEC_VECTOR, mpc83xx_decrementer_exception_handler); sc = ppc_exc_set_handler( ASM_DEC_VECTOR, mpc83xx_decrementer_exception_handler);

View File

@@ -181,13 +181,7 @@ void bsp_start( void )
/* timebase register ticks/microsecond = CPU Clk in MHz */ /* timebase register ticks/microsecond = CPU Clk in MHz */
bsp_clicks_per_usec = 400; bsp_clicks_per_usec = 400;
/* ppc_exc_initialize();
* Initialize default raw exception handlers.
*/
ppc_exc_initialize(
(uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size()
);
/* /*
* Install our own set of exception vectors * Install our own set of exception vectors

View File

@@ -300,11 +300,9 @@ rtems_status_code ppc_exc_make_prologue(
size_t *prologue_size size_t *prologue_size
); );
static inline void ppc_exc_initialize_interrupt_stack( static inline void ppc_exc_initialize_interrupt_stack(uintptr_t stack_begin)
uintptr_t stack_begin,
uintptr_t stack_size
)
{ {
uintptr_t stack_size = rtems_configuration_get_interrupt_stack_size();
uintptr_t stack_end = stack_begin + stack_size; uintptr_t stack_end = stack_begin + stack_size;
uintptr_t stack_pointer = stack_end - PPC_MINIMUM_STACK_FRAME_SIZE; uintptr_t stack_pointer = stack_end - PPC_MINIMUM_STACK_FRAME_SIZE;
@@ -326,7 +324,6 @@ static inline void ppc_exc_initialize_interrupt_stack(
*/ */
void ppc_exc_initialize_with_vector_base( void ppc_exc_initialize_with_vector_base(
uintptr_t interrupt_stack_begin, uintptr_t interrupt_stack_begin,
uintptr_t interrupt_stack_size,
void *vector_base void *vector_base
); );
@@ -343,14 +340,10 @@ void ppc_exc_initialize_with_vector_base(
* SVR4/EABI, or * SVR4/EABI, or
* - the minimal prologue creation failed. * - the minimal prologue creation failed.
*/ */
static inline void ppc_exc_initialize( static inline void ppc_exc_initialize(void)
uintptr_t interrupt_stack_begin,
uintptr_t interrupt_stack_size
)
{ {
ppc_exc_initialize_with_vector_base( ppc_exc_initialize_with_vector_base(
interrupt_stack_begin, (uintptr_t) _Configuration_Interrupt_stack_area_begin,
interrupt_stack_size,
NULL NULL
); );
} }

View File

@@ -135,8 +135,6 @@ void bsp_start( void )
#if !defined(mvme2100) #if !defined(mvme2100)
unsigned l2cr; unsigned l2cr;
#endif #endif
uintptr_t intrStackStart;
uintptr_t intrStackSize;
prep_t boardManufacturer; prep_t boardManufacturer;
motorolaBoard myBoard; motorolaBoard myBoard;
Triv121PgTbl pt=0; Triv121PgTbl pt=0;
@@ -217,16 +215,7 @@ void bsp_start( void )
set_L2CR(0xb9A14000); set_L2CR(0xb9A14000);
#endif #endif
/* ppc_exc_initialize();
* Initialize the interrupt related settings.
*/
intrStackStart = (uintptr_t)_Configuration_Interrupt_stack_area_begin;
intrStackSize = rtems_configuration_get_interrupt_stack_size();
/*
* Initialize default raw exception handlers.
*/
ppc_exc_initialize(intrStackStart, intrStackSize);
boardManufacturer = checkPrepBoardType(&residualCopy); boardManufacturer = checkPrepBoardType(&residualCopy);
if (boardManufacturer != PREP_Motorola) { if (boardManufacturer != PREP_Motorola) {
@@ -242,7 +231,6 @@ void bsp_start( void )
#ifdef SHOW_MORE_INIT_SETTINGS #ifdef SHOW_MORE_INIT_SETTINGS
printk("Residuals are located at %x\n", (unsigned) &residualCopy); printk("Residuals are located at %x\n", (unsigned) &residualCopy);
printk("Additionnal boot options are %s\n", loaderParam); printk("Additionnal boot options are %s\n", loaderParam);
printk("Software IRQ stack starts at %x with size %u\n", intrStackStart, intrStackSize);
printk("-----------------------------------------\n"); printk("-----------------------------------------\n");
#endif #endif

View File

@@ -88,14 +88,10 @@ void bsp_start(void)
/* Time reference value */ /* Time reference value */
bsp_clicks_per_usec = bsp_clock_speed / 1000000; bsp_clicks_per_usec = bsp_clock_speed / 1000000;
/* Initialize exceptions */
ppc_exc_initialize_with_vector_base( ppc_exc_initialize_with_vector_base(
(uintptr_t) _Configuration_Interrupt_stack_area_begin, (uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size(),
mpc55xx_exc_vector_base mpc55xx_exc_vector_base
); );
/* Initialize interrupts */
bsp_interrupt_initialize(); bsp_interrupt_initialize();
#if MPC55XX_CHIP_FAMILY != 566 #if MPC55XX_CHIP_FAMILY != 566

View File

@@ -138,13 +138,7 @@ void bsp_start(void)
mmu_init(); mmu_init();
*/ */
/* Initialize exception handler */ ppc_exc_initialize();
ppc_exc_initialize(
(uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size()
);
/* Initalize interrupt support */
bsp_interrupt_initialize(); bsp_interrupt_initialize();
/* /*

View File

@@ -210,8 +210,6 @@ SPR_RW(HID1)
void bsp_start( void ) void bsp_start( void )
{ {
unsigned char *stack; unsigned char *stack;
uintptr_t intrStackStart;
uintptr_t intrStackSize;
char *chpt; char *chpt;
int i; int i;
ppc_cpu_id_t myCpu; ppc_cpu_id_t myCpu;
@@ -252,23 +250,13 @@ VpdBufRec vpdData [] = {
/* tag the bottom */ /* tag the bottom */
*((uint32_t*)stack) = 0; *((uint32_t*)stack) = 0;
/* ppc_exc_initialize();
* Initialize the interrupt related settings.
*/
intrStackStart = (uintptr_t) _Configuration_Interrupt_stack_area_begin;
intrStackSize = rtems_configuration_get_interrupt_stack_size();
/*
* Initialize default raw exception handlers.
*/
ppc_exc_initialize(intrStackStart, intrStackSize);
printk("CPU 0x%x - rev 0x%x\n", myCpu, myCpuRevision); printk("CPU 0x%x - rev 0x%x\n", myCpu, myCpuRevision);
#ifdef SHOW_MORE_INIT_SETTINGS #ifdef SHOW_MORE_INIT_SETTINGS
printk("Additionnal boot options are %s\n", BSP_commandline_string); printk("Additionnal boot options are %s\n", BSP_commandline_string);
printk("Initial system stack at %" PRIxPTR "\n", (uintptr_t) stack); printk("Initial system stack at %" PRIxPTR "\n", (uintptr_t) stack);
printk("Software IRQ stack starts at %x with size %u\n", intrStackStart, intrStackSize);
#endif #endif
#ifdef SHOW_MORE_INIT_SETTINGS #ifdef SHOW_MORE_INIT_SETTINGS

View File

@@ -188,8 +188,6 @@ void bsp_start( void )
#ifdef SHOW_LCR3_REGISTER #ifdef SHOW_LCR3_REGISTER
unsigned l3cr; unsigned l3cr;
#endif #endif
uintptr_t intrStackStart;
uintptr_t intrStackSize;
Triv121PgTbl pt=0; Triv121PgTbl pt=0;
/* Till Straumann: 4/2005 /* Till Straumann: 4/2005
@@ -222,16 +220,7 @@ void bsp_start( void )
printk("Initial L1CR value = %x\n", l1cr); printk("Initial L1CR value = %x\n", l1cr);
#endif #endif
/* ppc_exc_initialize();
* Initialize the interrupt related settings.
*/
intrStackStart = (uintptr_t) _Configuration_Interrupt_stack_area_begin;
intrStackSize = rtems_configuration_get_interrupt_stack_size();
/*
* Initialize default raw exception handlers.
*/
ppc_exc_initialize(intrStackStart, intrStackSize);
/* /*
* Init MMU block address translation to enable hardware * Init MMU block address translation to enable hardware

View File

@@ -87,12 +87,8 @@ void bsp_start( void )
bsp_clicks_per_usec = BSP_bus_frequency; bsp_clicks_per_usec = BSP_bus_frequency;
BSP_time_base_divisor = 1; BSP_time_base_divisor = 1;
/*
* Initialize default raw exception handlers.
*/
ppc_exc_initialize_with_vector_base( ppc_exc_initialize_with_vector_base(
(uintptr_t) _Configuration_Interrupt_stack_area_begin, (uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size(),
(void *) 0xfff00000 (void *) 0xfff00000
); );

View File

@@ -66,8 +66,6 @@ uint32_t _CPU_Counter_frequency(void)
void bsp_start( void ) void bsp_start( void )
{ {
rtems_status_code sc = RTEMS_SUCCESSFUL; rtems_status_code sc = RTEMS_SUCCESSFUL;
uintptr_t intrStackStart;
uintptr_t intrStackSize;
/* /*
* Note we can not get CPU identification dynamically, so * Note we can not get CPU identification dynamically, so
@@ -84,18 +82,9 @@ void bsp_start( void )
bsp_time_base_frequency = 20000000; bsp_time_base_frequency = 20000000;
bsp_clicks_per_usec = BSP_bus_frequency; bsp_clicks_per_usec = BSP_bus_frequency;
/*
* Initialize the interrupt related settings.
*/
intrStackStart = (uintptr_t) _Configuration_Interrupt_stack_area_begin;
intrStackSize = rtems_configuration_get_interrupt_stack_size();
BSP_mem_size = (uint32_t )RamSize; BSP_mem_size = (uint32_t )RamSize;
/* ppc_exc_initialize();
* Initialize default raw exception handlers.
*/
ppc_exc_initialize(intrStackStart, intrStackSize);
/* Install default handler for the decrementer exception */ /* Install default handler for the decrementer exception */
sc = ppc_exc_set_handler( ASM_DEC_VECTOR, default_decrementer_exception_handler); sc = ppc_exc_set_handler( ASM_DEC_VECTOR, default_decrementer_exception_handler);

View File

@@ -47,8 +47,7 @@ static bool is_started_by_u_boot(uint32_t cpu_index)
void qoriq_start_thread(Per_CPU_Control *cpu_self) void qoriq_start_thread(Per_CPU_Control *cpu_self)
{ {
ppc_exc_initialize_interrupt_stack( ppc_exc_initialize_interrupt_stack(
(uintptr_t) cpu_self->interrupt_stack_low, (uintptr_t) cpu_self->interrupt_stack_low
rtems_configuration_get_interrupt_stack_size()
); );
bsp_interrupt_facility_initialize(); bsp_interrupt_facility_initialize();

View File

@@ -113,8 +113,7 @@ void qoriq_initialize_exceptions(void *interrupt_stack_begin)
uintptr_t addr; uintptr_t addr;
ppc_exc_initialize_interrupt_stack( ppc_exc_initialize_interrupt_stack(
(uintptr_t) interrupt_stack_begin, (uintptr_t) interrupt_stack_begin
rtems_configuration_get_interrupt_stack_size()
); );
addr = (uintptr_t) bsp_exc_vector_base; addr = (uintptr_t) bsp_exc_vector_base;

View File

@@ -82,7 +82,6 @@ static void ppc_exc_fatal_error(void)
void ppc_exc_initialize_with_vector_base( void ppc_exc_initialize_with_vector_base(
uintptr_t interrupt_stack_begin, uintptr_t interrupt_stack_begin,
uintptr_t interrupt_stack_size,
void *vector_base void *vector_base
) )
{ {
@@ -110,7 +109,7 @@ void ppc_exc_initialize_with_vector_base(
ppc_exc_fatal_error(); ppc_exc_fatal_error();
} }
ppc_exc_initialize_interrupt_stack(interrupt_stack_begin, interrupt_stack_size); ppc_exc_initialize_interrupt_stack(interrupt_stack_begin);
#ifndef PPC_EXC_CONFIG_BOOKE_ONLY #ifndef PPC_EXC_CONFIG_BOOKE_ONLY

View File

@@ -26,8 +26,7 @@ static void bsp_work_area_initialize_later(void)
uintptr_t work_size; uintptr_t work_size;
uintptr_t work_area; uintptr_t work_area;
work_area = (uintptr_t)__rtems_end + work_area = (uintptr_t)__rtems_end;
rtems_configuration_get_interrupt_stack_size();
work_size = (uintptr_t)BSP_mem_size - work_area; work_size = (uintptr_t)BSP_mem_size - work_area;
bsp_work_area_initialize_default((void *) work_area, work_size); bsp_work_area_initialize_default((void *) work_area, work_size);

View File

@@ -49,8 +49,7 @@ static void t32mppc_initialize_exceptions(void)
uintptr_t addr; uintptr_t addr;
ppc_exc_initialize_interrupt_stack( ppc_exc_initialize_interrupt_stack(
(uintptr_t) _Configuration_Interrupt_stack_area_begin, (uintptr_t) _Configuration_Interrupt_stack_area_begin
rtems_configuration_get_interrupt_stack_size()
); );
addr = (uintptr_t) bsp_exc_vector_base; addr = (uintptr_t) bsp_exc_vector_base;

View File

@@ -143,13 +143,7 @@ void bsp_start( void)
bsp_time_base_frequency = BSP_bus_frequency / 16; bsp_time_base_frequency = BSP_bus_frequency / 16;
bsp_clicks_per_usec = bsp_time_base_frequency / 1000000; bsp_clicks_per_usec = bsp_time_base_frequency / 1000000;
/* Initialize exception handler */ ppc_exc_initialize();
ppc_exc_initialize(
(uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size()
);
/* Initalize interrupt support */
bsp_interrupt_initialize(); bsp_interrupt_initialize();
#ifdef SHOW_MORE_INIT_SETTINGS #ifdef SHOW_MORE_INIT_SETTINGS

View File

@@ -94,12 +94,8 @@ void bsp_start( void )
get_ppc_cpu_type(); get_ppc_cpu_type();
get_ppc_cpu_revision(); get_ppc_cpu_revision();
/*
* Initialize default raw exception handlers.
*/
ppc_exc_initialize_with_vector_base( ppc_exc_initialize_with_vector_base(
(uintptr_t) _Configuration_Interrupt_stack_area_begin, (uintptr_t) _Configuration_Interrupt_stack_area_begin,
rtems_configuration_get_interrupt_stack_size(),
virtex_exc_vector_base virtex_exc_vector_base
); );
__asm__ volatile ("mtevpr %0" : : "r" (virtex_exc_vector_base)); __asm__ volatile ("mtevpr %0" : : "r" (virtex_exc_vector_base));

View File

@@ -141,9 +141,6 @@ uint32_t _CPU_Counter_frequency(void)
*/ */
void bsp_start(void) void bsp_start(void)
{ {
uintptr_t intrStackStart;
uintptr_t intrStackSize;
ppc_cpu_id_t myCpu; ppc_cpu_id_t myCpu;
ppc_cpu_revision_t myCpuRevision; ppc_cpu_revision_t myCpuRevision;
@@ -168,25 +165,17 @@ void bsp_start(void)
/* Timebase register ticks/microsecond; The application may override these */ /* Timebase register ticks/microsecond; The application may override these */
bsp_clicks_per_usec = 350; bsp_clicks_per_usec = 350;
/* ppc_exc_initialize();
* Initialize the interrupt related settings.
*/
intrStackStart = (uintptr_t) _Configuration_Interrupt_stack_area_begin;
intrStackSize = rtems_configuration_get_interrupt_stack_size();
ppc_exc_initialize(intrStackStart, intrStackSize);
/* Let the user know what parameters we were compiled with */ /* Let the user know what parameters we were compiled with */
printk(" Base/Start End Size\n" printk(" Base/Start End Size\n"
"RAM: %p %p\n" "RAM: %p %p\n"
"RTEMS: %p\n" "RTEMS: %p\n"
"Interrupt Stack: 0x%08x 0x%x\n"
"Workspace: %p %p\n" "Workspace: %p %p\n"
"MsgArea: %p %p\n" "MsgArea: %p %p\n"
"Physical RAM %p\n", "Physical RAM %p\n",
RamBase, RamSize, RamBase, RamSize,
__rtems_end, __rtems_end,
intrStackStart, intrStackSize,
WorkAreaBase, __bsp_ram_end, WorkAreaBase, __bsp_ram_end,
MsgAreaBase, MsgAreaSize, MsgAreaBase, MsgAreaSize,
__phy_ram_end); __phy_ram_end);

View File

@@ -155,9 +155,6 @@ uint32_t _CPU_Counter_frequency(void)
*/ */
void bsp_start(void) void bsp_start(void)
{ {
uintptr_t intrStackStart;
uintptr_t intrStackSize;
ppc_cpu_id_t myCpu; ppc_cpu_id_t myCpu;
ppc_cpu_revision_t myCpuRevision; ppc_cpu_revision_t myCpuRevision;
@@ -187,25 +184,17 @@ void bsp_start(void)
/* Timebase register ticks/microsecond; The application may override these */ /* Timebase register ticks/microsecond; The application may override these */
bsp_clicks_per_usec = BSP_bus_frequency/(BSP_time_base_divisor * 1000); bsp_clicks_per_usec = BSP_bus_frequency/(BSP_time_base_divisor * 1000);
/* ppc_exc_initialize();
* Initialize the interrupt related settings.
*/
intrStackStart = (uintptr_t)_Configuration_Interrupt_stack_area_begin;
intrStackSize = rtems_configuration_get_interrupt_stack_size();
ppc_exc_initialize(intrStackStart, intrStackSize);
/* Let the user know what parameters we were compiled with */ /* Let the user know what parameters we were compiled with */
printk(" Base/Start End Size\n" printk(" Base/Start End Size\n"
"RAM: %p %p\n" "RAM: %p %p\n"
"RTEMS: %p\n" "RTEMS: %p\n"
"Interrupt Stack: 0x%08x 0x%x\n"
"Workspace: %p %p\n" "Workspace: %p %p\n"
"MsgArea: %p %p\n" "MsgArea: %p %p\n"
"Physical RAM %p\n", "Physical RAM %p\n",
RamBase, RamSize, RamBase, RamSize,
__rtems_end, __rtems_end,
intrStackStart, intrStackSize,
WorkAreaBase, __bsp_ram_end, WorkAreaBase, __bsp_ram_end,
MsgAreaBase, MsgAreaSize, MsgAreaBase, MsgAreaSize,
__phy_ram_end); __phy_ram_end);