forked from Imagelibrary/rtems
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:
@@ -25,9 +25,6 @@
|
|||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/bootcard.h>
|
#include <bsp/bootcard.h>
|
||||||
#include <bsp/vc.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)
|
#if defined(HAS_UBOOT) && !defined(BSP_DISABLE_UBOOT_WORK_AREA_CONFIG)
|
||||||
#define USE_UBOOT
|
#define USE_UBOOT
|
||||||
@@ -65,10 +62,6 @@ void bsp_work_area_initialize(void)
|
|||||||
ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize;
|
ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize;
|
||||||
#endif
|
#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) );
|
memset( &vc_entry, 0, sizeof(vc_entry) );
|
||||||
if (bcm2835_mailbox_get_vc_memory( &vc_entry ) >= 0) {
|
if (bcm2835_mailbox_get_vc_memory( &vc_entry ) >= 0) {
|
||||||
if (vc_entry.base > 10 * 1024 *1024)
|
if (vc_entry.base > 10 * 1024 *1024)
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ void bsp_start( void)
|
|||||||
ppc_exc_cache_wb_check = 0;
|
ppc_exc_cache_wb_check = 0;
|
||||||
#endif
|
#endif
|
||||||
ppc_exc_initialize(
|
ppc_exc_initialize(
|
||||||
(uintptr_t) bsp_section_work_begin,
|
(uintptr_t) _Configuration_Interrupt_stack_area_begin,
|
||||||
rtems_configuration_get_interrupt_stack_size()
|
rtems_configuration_get_interrupt_stack_size()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,6 @@
|
|||||||
|
|
||||||
#include <bspopts.h>
|
#include <bspopts.h>
|
||||||
|
|
||||||
#define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN
|
|
||||||
|
|
||||||
#define BSP_FEATURE_IRQ_EXTENSION
|
#define BSP_FEATURE_IRQ_EXTENSION
|
||||||
|
|
||||||
#define MPC55XX_PERIPHERAL_CLOCK \
|
#define MPC55XX_PERIPHERAL_CLOCK \
|
||||||
|
|||||||
@@ -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(
|
bsp_work_area_initialize_with_table(
|
||||||
areas,
|
areas,
|
||||||
sizeof(areas) / sizeof(areas [0])
|
sizeof(areas) / sizeof(areas [0])
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ void bsp_start(void)
|
|||||||
|
|
||||||
/* Initialize exceptions */
|
/* Initialize exceptions */
|
||||||
ppc_exc_initialize_with_vector_base(
|
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(),
|
rtems_configuration_get_interrupt_stack_size(),
|
||||||
mpc55xx_exc_vector_base
|
mpc55xx_exc_vector_base
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ void bsp_start( void )
|
|||||||
* Initialize default raw exception handlers.
|
* Initialize default raw exception handlers.
|
||||||
*/
|
*/
|
||||||
ppc_exc_initialize_with_vector_base(
|
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(),
|
rtems_configuration_get_interrupt_stack_size(),
|
||||||
(void *) 0xfff00000
|
(void *) 0xfff00000
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -169,7 +169,9 @@ void bsp_start(void)
|
|||||||
|
|
||||||
initialize_frequency_parameters();
|
initialize_frequency_parameters();
|
||||||
|
|
||||||
qoriq_initialize_exceptions(bsp_section_work_begin);
|
qoriq_initialize_exceptions(
|
||||||
|
(uintptr_t) _Configuration_Interrupt_stack_area_begin
|
||||||
|
);
|
||||||
bsp_interrupt_initialize();
|
bsp_interrupt_initialize();
|
||||||
|
|
||||||
rtems_cache_coherent_add_area(
|
rtems_cache_coherent_add_area(
|
||||||
|
|||||||
@@ -344,9 +344,5 @@ void TEXT bsp_work_area_initialize(void)
|
|||||||
uintptr_t begin = we->begin;
|
uintptr_t begin = we->begin;
|
||||||
uintptr_t end = begin + we->size;
|
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);
|
bsp_work_area_initialize_default((void *) begin, end - begin);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,12 +44,12 @@ uint32_t bsp_time_base_frequency = 10000000;
|
|||||||
offset += VECTOR_TABLE_ENTRY_SIZE; \
|
offset += VECTOR_TABLE_ENTRY_SIZE; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
static void t32mppc_initialize_exceptions(void *interrupt_stack_begin)
|
static void t32mppc_initialize_exceptions(void)
|
||||||
{
|
{
|
||||||
uintptr_t addr;
|
uintptr_t addr;
|
||||||
|
|
||||||
ppc_exc_initialize_interrupt_stack(
|
ppc_exc_initialize_interrupt_stack(
|
||||||
(uintptr_t) interrupt_stack_begin,
|
(uintptr_t) _Configuration_Interrupt_stack_area_begin,
|
||||||
rtems_configuration_get_interrupt_stack_size()
|
rtems_configuration_get_interrupt_stack_size()
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -86,6 +86,6 @@ void bsp_start(void)
|
|||||||
{
|
{
|
||||||
get_ppc_cpu_type();
|
get_ppc_cpu_type();
|
||||||
get_ppc_cpu_revision();
|
get_ppc_cpu_revision();
|
||||||
t32mppc_initialize_exceptions(bsp_section_work_begin);
|
t32mppc_initialize_exceptions();
|
||||||
bsp_interrupt_initialize();
|
bsp_interrupt_initialize();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,8 +59,6 @@ extern "C" {
|
|||||||
|
|
||||||
#define BSP_FEATURE_IRQ_EXTENSION
|
#define BSP_FEATURE_IRQ_EXTENSION
|
||||||
|
|
||||||
#define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN
|
|
||||||
|
|
||||||
/* Network Defines */
|
/* Network Defines */
|
||||||
#if 1 /* EB/doe changes */
|
#if 1 /* EB/doe changes */
|
||||||
#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
|
#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ void bsp_start( void )
|
|||||||
* Initialize default raw exception handlers.
|
* Initialize default raw exception handlers.
|
||||||
*/
|
*/
|
||||||
ppc_exc_initialize_with_vector_base(
|
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(),
|
rtems_configuration_get_interrupt_stack_size(),
|
||||||
virtex_exc_vector_base
|
virtex_exc_vector_base
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -19,9 +19,6 @@
|
|||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/bootcard.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)
|
#if defined(HAS_UBOOT) && !defined(BSP_DISABLE_UBOOT_WORK_AREA_CONFIG)
|
||||||
#define USE_UBOOT
|
#define USE_UBOOT
|
||||||
@@ -54,9 +51,5 @@ void bsp_work_area_initialize(void)
|
|||||||
ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize;
|
ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize;
|
||||||
#endif
|
#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 );
|
bsp_work_area_initialize_default( (void *) work_base, ram_end - work_base );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ RTEMS_BSPOPTS_HELP_DATA_CACHE_ENABLED
|
|||||||
RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1])
|
RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1])
|
||||||
RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED
|
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_SET([MPC83XX_BOARD_MPC8313ERDB],[mpc8313erdb],[1])
|
||||||
RTEMS_BSPOPTS_HELP([MPC83XX_BOARD_MPC8313ERDB],
|
RTEMS_BSPOPTS_HELP([MPC83XX_BOARD_MPC8313ERDB],
|
||||||
[if defined, then use settings for the MPC8313ERDB board])
|
[if defined, then use settings for the MPC8313ERDB board])
|
||||||
|
|||||||
@@ -42,9 +42,6 @@ Note that the policy can still be defined by the application
|
|||||||
CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK this feature is removed
|
CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK this feature is removed
|
||||||
and a little memory is saved.])
|
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])
|
AC_DEFINE(ppc603e, 1, [PowerPC model option])
|
||||||
|
|
||||||
RTEMS_BSP_CLEANUP_OPTIONS
|
RTEMS_BSP_CLEANUP_OPTIONS
|
||||||
|
|||||||
@@ -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_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_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_SET([QORIQ_INTERCOM_AREA_BEGIN],[*],[0x3000000])
|
||||||
RTEMS_BSPOPTS_HELP([QORIQ_INTERCOM_AREA_BEGIN],[inter-processor communication area begin])
|
RTEMS_BSPOPTS_HELP([QORIQ_INTERCOM_AREA_BEGIN],[inter-processor communication area begin])
|
||||||
RTEMS_BSPOPTS_SET([QORIQ_INTERCOM_AREA_SIZE],[*],[0x1000000])
|
RTEMS_BSPOPTS_SET([QORIQ_INTERCOM_AREA_SIZE],[*],[0x1000000])
|
||||||
|
|||||||
Reference in New Issue
Block a user