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.
This commit is contained in:
Sebastian Huber
2018-08-31 07:44:53 +02:00
parent 7b1a711d3b
commit fad3f79b88
15 changed files with 10 additions and 48 deletions

View File

@@ -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)

View File

@@ -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()
);

View File

@@ -25,8 +25,6 @@
#include <bspopts.h>
#define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN
#define BSP_FEATURE_IRQ_EXTENSION
#define MPC55XX_PERIPHERAL_CLOCK \

View File

@@ -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])

View File

@@ -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
);

View File

@@ -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
);

View File

@@ -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(

View File

@@ -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);
}

View File

@@ -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();
}

View File

@@ -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"

View File

@@ -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
);

View File

@@ -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 );
}

View File

@@ -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])

View File

@@ -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

View File

@@ -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])