From fad3f79b883100394a5a7e51e93f95eaaafd50f8 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 31 Aug 2018 07:44:53 +0200 Subject: bsps: BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN Remove the BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN hack. The interrupt stacks are now allocated by the linker. Update #3459. --- bsps/arm/raspberrypi/start/bspgetworkarea.c | 7 ------- bsps/powerpc/gen83xx/start/bspstart.c | 2 +- bsps/powerpc/mpc55xxevb/include/bsp.h | 2 -- bsps/powerpc/mpc55xxevb/start/bspgetworkarea.c | 9 --------- bsps/powerpc/mpc55xxevb/start/bspstart.c | 2 +- bsps/powerpc/psim/start/bspstart.c | 2 +- bsps/powerpc/qoriq/start/bspstart.c | 4 +++- bsps/powerpc/qoriq/start/mmu-config.c | 4 ---- bsps/powerpc/t32mppc/start/bspstart.c | 6 +++--- bsps/powerpc/virtex/include/bsp.h | 2 -- bsps/powerpc/virtex/start/bspstart.c | 2 +- bsps/shared/start/bspgetworkarea-default.c | 7 ------- c/src/lib/libbsp/powerpc/gen83xx/configure.ac | 3 --- c/src/lib/libbsp/powerpc/psim/configure.ac | 3 --- c/src/lib/libbsp/powerpc/qoriq/configure.ac | 3 --- 15 files changed, 10 insertions(+), 48 deletions(-) diff --git a/bsps/arm/raspberrypi/start/bspgetworkarea.c b/bsps/arm/raspberrypi/start/bspgetworkarea.c index 6a43e3c437..4b2f440183 100644 --- a/bsps/arm/raspberrypi/start/bspgetworkarea.c +++ b/bsps/arm/raspberrypi/start/bspgetworkarea.c @@ -25,9 +25,6 @@ #include #include #include -#ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - #include -#endif #if defined(HAS_UBOOT) && !defined(BSP_DISABLE_UBOOT_WORK_AREA_CONFIG) #define USE_UBOOT @@ -65,10 +62,6 @@ void bsp_work_area_initialize(void) ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize; #endif - #ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - work_base += rtems_configuration_get_interrupt_stack_size(); - #endif - memset( &vc_entry, 0, sizeof(vc_entry) ); if (bcm2835_mailbox_get_vc_memory( &vc_entry ) >= 0) { if (vc_entry.base > 10 * 1024 *1024) diff --git a/bsps/powerpc/gen83xx/start/bspstart.c b/bsps/powerpc/gen83xx/start/bspstart.c index 4070c56347..70fcbea36e 100644 --- a/bsps/powerpc/gen83xx/start/bspstart.c +++ b/bsps/powerpc/gen83xx/start/bspstart.c @@ -114,7 +114,7 @@ void bsp_start( void) ppc_exc_cache_wb_check = 0; #endif ppc_exc_initialize( - (uintptr_t) bsp_section_work_begin, + (uintptr_t) _Configuration_Interrupt_stack_area_begin, rtems_configuration_get_interrupt_stack_size() ); diff --git a/bsps/powerpc/mpc55xxevb/include/bsp.h b/bsps/powerpc/mpc55xxevb/include/bsp.h index eee5d208c1..9379356f96 100644 --- a/bsps/powerpc/mpc55xxevb/include/bsp.h +++ b/bsps/powerpc/mpc55xxevb/include/bsp.h @@ -25,8 +25,6 @@ #include -#define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - #define BSP_FEATURE_IRQ_EXTENSION #define MPC55XX_PERIPHERAL_CLOCK \ diff --git a/bsps/powerpc/mpc55xxevb/start/bspgetworkarea.c b/bsps/powerpc/mpc55xxevb/start/bspgetworkarea.c index e7d988cf87..c7267eddd3 100644 --- a/bsps/powerpc/mpc55xxevb/start/bspgetworkarea.c +++ b/bsps/powerpc/mpc55xxevb/start/bspgetworkarea.c @@ -37,15 +37,6 @@ void bsp_work_area_initialize(void) } }; - #ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - { - uint32_t stack_size = rtems_configuration_get_interrupt_stack_size(); - - areas [0].begin = (char *) areas [0].begin + stack_size; - areas [0].size -= stack_size; - } - #endif - bsp_work_area_initialize_with_table( areas, sizeof(areas) / sizeof(areas [0]) diff --git a/bsps/powerpc/mpc55xxevb/start/bspstart.c b/bsps/powerpc/mpc55xxevb/start/bspstart.c index 34d59a9ac2..b7c1d4b036 100644 --- a/bsps/powerpc/mpc55xxevb/start/bspstart.c +++ b/bsps/powerpc/mpc55xxevb/start/bspstart.c @@ -90,7 +90,7 @@ void bsp_start(void) /* Initialize exceptions */ ppc_exc_initialize_with_vector_base( - (uintptr_t) bsp_section_work_begin, + (uintptr_t) _Configuration_Interrupt_stack_area_begin, rtems_configuration_get_interrupt_stack_size(), mpc55xx_exc_vector_base ); diff --git a/bsps/powerpc/psim/start/bspstart.c b/bsps/powerpc/psim/start/bspstart.c index 1250715275..e684097788 100644 --- a/bsps/powerpc/psim/start/bspstart.c +++ b/bsps/powerpc/psim/start/bspstart.c @@ -91,7 +91,7 @@ void bsp_start( void ) * Initialize default raw exception handlers. */ ppc_exc_initialize_with_vector_base( - (uintptr_t) bsp_section_work_begin, + (uintptr_t) _Configuration_Interrupt_stack_area_begin, rtems_configuration_get_interrupt_stack_size(), (void *) 0xfff00000 ); diff --git a/bsps/powerpc/qoriq/start/bspstart.c b/bsps/powerpc/qoriq/start/bspstart.c index cc7902428b..76af17919e 100644 --- a/bsps/powerpc/qoriq/start/bspstart.c +++ b/bsps/powerpc/qoriq/start/bspstart.c @@ -169,7 +169,9 @@ void bsp_start(void) initialize_frequency_parameters(); - qoriq_initialize_exceptions(bsp_section_work_begin); + qoriq_initialize_exceptions( + (uintptr_t) _Configuration_Interrupt_stack_area_begin + ); bsp_interrupt_initialize(); rtems_cache_coherent_add_area( diff --git a/bsps/powerpc/qoriq/start/mmu-config.c b/bsps/powerpc/qoriq/start/mmu-config.c index 3c5a8538c8..8a047a83bd 100644 --- a/bsps/powerpc/qoriq/start/mmu-config.c +++ b/bsps/powerpc/qoriq/start/mmu-config.c @@ -344,9 +344,5 @@ void TEXT bsp_work_area_initialize(void) uintptr_t begin = we->begin; uintptr_t end = begin + we->size; -#ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - begin += rtems_configuration_get_interrupt_stack_size(); -#endif - bsp_work_area_initialize_default((void *) begin, end - begin); } diff --git a/bsps/powerpc/t32mppc/start/bspstart.c b/bsps/powerpc/t32mppc/start/bspstart.c index e8f288df59..5a42ae1bbf 100644 --- a/bsps/powerpc/t32mppc/start/bspstart.c +++ b/bsps/powerpc/t32mppc/start/bspstart.c @@ -44,12 +44,12 @@ uint32_t bsp_time_base_frequency = 10000000; offset += VECTOR_TABLE_ENTRY_SIZE; \ } while (0) -static void t32mppc_initialize_exceptions(void *interrupt_stack_begin) +static void t32mppc_initialize_exceptions(void) { uintptr_t addr; ppc_exc_initialize_interrupt_stack( - (uintptr_t) interrupt_stack_begin, + (uintptr_t) _Configuration_Interrupt_stack_area_begin, rtems_configuration_get_interrupt_stack_size() ); @@ -86,6 +86,6 @@ void bsp_start(void) { get_ppc_cpu_type(); get_ppc_cpu_revision(); - t32mppc_initialize_exceptions(bsp_section_work_begin); + t32mppc_initialize_exceptions(); bsp_interrupt_initialize(); } diff --git a/bsps/powerpc/virtex/include/bsp.h b/bsps/powerpc/virtex/include/bsp.h index faea72e25e..17af5214c2 100644 --- a/bsps/powerpc/virtex/include/bsp.h +++ b/bsps/powerpc/virtex/include/bsp.h @@ -59,8 +59,6 @@ extern "C" { #define BSP_FEATURE_IRQ_EXTENSION -#define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - /* Network Defines */ #if 1 /* EB/doe changes */ #define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0" diff --git a/bsps/powerpc/virtex/start/bspstart.c b/bsps/powerpc/virtex/start/bspstart.c index be7f00437a..5c0547aa24 100644 --- a/bsps/powerpc/virtex/start/bspstart.c +++ b/bsps/powerpc/virtex/start/bspstart.c @@ -98,7 +98,7 @@ void bsp_start( void ) * Initialize default raw exception handlers. */ ppc_exc_initialize_with_vector_base( - (uintptr_t) bsp_section_work_begin, + (uintptr_t) _Configuration_Interrupt_stack_area_begin, rtems_configuration_get_interrupt_stack_size(), virtex_exc_vector_base ); diff --git a/bsps/shared/start/bspgetworkarea-default.c b/bsps/shared/start/bspgetworkarea-default.c index 302fc0f335..18d4063089 100644 --- a/bsps/shared/start/bspgetworkarea-default.c +++ b/bsps/shared/start/bspgetworkarea-default.c @@ -19,9 +19,6 @@ #include #include -#ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - #include -#endif #if defined(HAS_UBOOT) && !defined(BSP_DISABLE_UBOOT_WORK_AREA_CONFIG) #define USE_UBOOT @@ -54,9 +51,5 @@ void bsp_work_area_initialize(void) ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize; #endif - #ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - work_base += rtems_configuration_get_interrupt_stack_size(); - #endif - bsp_work_area_initialize_default( (void *) work_base, ram_end - work_base ); } diff --git a/c/src/lib/libbsp/powerpc/gen83xx/configure.ac b/c/src/lib/libbsp/powerpc/gen83xx/configure.ac index 37996f17e8..293148f3ac 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/configure.ac +++ b/c/src/lib/libbsp/powerpc/gen83xx/configure.ac @@ -18,9 +18,6 @@ RTEMS_BSPOPTS_HELP_DATA_CACHE_ENABLED RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1]) RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED -RTEMS_BSPOPTS_SET([BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN],[*],[1]) -RTEMS_BSPOPTS_HELP([BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN],[indicate that the interrupt stack is at the work area begin]) - RTEMS_BSPOPTS_SET([MPC83XX_BOARD_MPC8313ERDB],[mpc8313erdb],[1]) RTEMS_BSPOPTS_HELP([MPC83XX_BOARD_MPC8313ERDB], [if defined, then use settings for the MPC8313ERDB board]) diff --git a/c/src/lib/libbsp/powerpc/psim/configure.ac b/c/src/lib/libbsp/powerpc/psim/configure.ac index b04209153a..768f3cfa6d 100644 --- a/c/src/lib/libbsp/powerpc/psim/configure.ac +++ b/c/src/lib/libbsp/powerpc/psim/configure.ac @@ -42,9 +42,6 @@ Note that the policy can still be defined by the application CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK this feature is removed and a little memory is saved.]) -RTEMS_BSPOPTS_SET([BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN],[*],[1]) -RTEMS_BSPOPTS_HELP([BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN],[indicate that the interrupt stack is at the work area begin]) - AC_DEFINE(ppc603e, 1, [PowerPC model option]) RTEMS_BSP_CLEANUP_OPTIONS diff --git a/c/src/lib/libbsp/powerpc/qoriq/configure.ac b/c/src/lib/libbsp/powerpc/qoriq/configure.ac index 9c35aa79e4..08f5394d45 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/configure.ac +++ b/c/src/lib/libbsp/powerpc/qoriq/configure.ac @@ -99,9 +99,6 @@ RTEMS_BSPOPTS_SET([QORIQ_UART_BRIDGE_1_ENABLE],[qoriq_core_1],[1]) RTEMS_BSPOPTS_SET([QORIQ_UART_BRIDGE_1_ENABLE],[*],[0]) RTEMS_BSPOPTS_HELP([QORIQ_UART_BRIDGE_1_ENABLE],[use 1 to enable UART 1 to Intercom bridge, otherwise use 0]) -RTEMS_BSPOPTS_SET([BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN],[*],[1]) -RTEMS_BSPOPTS_HELP([BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN],[indicate that the interrupt stack is at the work area begin]) - RTEMS_BSPOPTS_SET([QORIQ_INTERCOM_AREA_BEGIN],[*],[0x3000000]) RTEMS_BSPOPTS_HELP([QORIQ_INTERCOM_AREA_BEGIN],[inter-processor communication area begin]) RTEMS_BSPOPTS_SET([QORIQ_INTERCOM_AREA_SIZE],[*],[0x1000000]) -- cgit v1.2.3