[rtems commit] bsps: BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN

Sebastian Huber sebh at rtems.org
Mon Sep 3 05:03:36 UTC 2018


Module:    rtems
Branch:    master
Commit:    fad3f79b883100394a5a7e51e93f95eaaafd50f8
Changeset: http://git.rtems.org/rtems/commit/?id=fad3f79b883100394a5a7e51e93f95eaaafd50f8

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug 31 07:44:53 2018 +0200

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 6a43e3c..4b2f440 100644
--- a/bsps/arm/raspberrypi/start/bspgetworkarea.c
+++ b/bsps/arm/raspberrypi/start/bspgetworkarea.c
@@ -25,9 +25,6 @@
 #include <bsp.h>
 #include <bsp/bootcard.h>
 #include <bsp/vc.h>
-#ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN
-  #include <rtems/config.h>
-#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 4070c56..70fcbea 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 eee5d20..9379356 100644
--- a/bsps/powerpc/mpc55xxevb/include/bsp.h
+++ b/bsps/powerpc/mpc55xxevb/include/bsp.h
@@ -25,8 +25,6 @@
 
 #include <bspopts.h>
 
-#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 e7d988c..c7267ed 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 34d59a9..b7c1d4b 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 1250715..e684097 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 cc79024..76af179 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 3c5a853..8a047a8 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 e8f288d..5a42ae1 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 faea72e..17af521 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 be7f004..5c0547a 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 302fc0f..18d4063 100644
--- a/bsps/shared/start/bspgetworkarea-default.c
+++ b/bsps/shared/start/bspgetworkarea-default.c
@@ -19,9 +19,6 @@
 
 #include <bsp.h>
 #include <bsp/bootcard.h>
-#ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN
-  #include <rtems/config.h>
-#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 37996f1..293148f 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 b042091..768f3cf 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 9c35aa7..08f5394 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])




More information about the vc mailing list