forked from Imagelibrary/rtems
2008-09-12 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac, startup/bspstart.c: Split out bsp_get_work_area() into its own file and user BSP Framework to perform more initialization. Let edb7312 and csb336 shared the implementation.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
2008-09-12 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* Makefile.am, configure.ac, startup/bspstart.c: Split out
|
||||||
|
bsp_get_work_area() into its own file and user BSP Framework to
|
||||||
|
perform more initialization. Let edb7312 and csb336 shared the
|
||||||
|
implementation.
|
||||||
|
|
||||||
2008-08-21 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2008-08-21 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* Makefile.am: No BSP should use exit.c as a file name. exit() is POSIX
|
* Makefile.am: No BSP should use exit.c as a file name. exit() is POSIX
|
||||||
|
|||||||
@@ -26,9 +26,9 @@ project_lib_DATA = start.$(OBJEXT)
|
|||||||
dist_project_lib_DATA += startup/linkcmds
|
dist_project_lib_DATA += startup/linkcmds
|
||||||
|
|
||||||
startup_SOURCES = ../../shared/bsplibc.c ../../shared/bsppost.c \
|
startup_SOURCES = ../../shared/bsplibc.c ../../shared/bsppost.c \
|
||||||
../../shared/bsppredriverhook.c \
|
../shared/bspgetworkarea.c ../../shared/bsppretaskinghook.c \
|
||||||
startup/bspstart.c startup/bspclean.c startup/memmap.c \
|
../../shared/bsppredriverhook.c startup/bspstart.c startup/bspclean.c \
|
||||||
../../shared/bootcard.c ../../shared/sbrk.c \
|
startup/memmap.c ../../shared/bootcard.c ../../shared/sbrk.c \
|
||||||
../../shared/gnatinstallhandler.c
|
../../shared/gnatinstallhandler.c
|
||||||
console_SOURCES = console/uart.c
|
console_SOURCES = console/uart.c
|
||||||
abort_SOURCES = ../shared/abort/abort.c
|
abort_SOURCES = ../shared/abort/abort.c
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ RTEMS_PROG_CCAS
|
|||||||
RTEMS_CHECK_NETWORKING
|
RTEMS_CHECK_NETWORKING
|
||||||
AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
|
AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
|
||||||
|
|
||||||
|
RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION
|
||||||
|
|
||||||
# Explicitly list all Makefiles here
|
# Explicitly list all Makefiles here
|
||||||
AC_CONFIG_FILES([Makefile])
|
AC_CONFIG_FILES([Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
@@ -6,74 +6,32 @@
|
|||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
* found in the file LICENSE in this distribution or at
|
* found in the file LICENSE in this distribution or at
|
||||||
*
|
|
||||||
* http://www.rtems.com/license/LICENSE.
|
* http://www.rtems.com/license/LICENSE.
|
||||||
*
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <rtems/libcsupport.h>
|
#include <rtems/libcsupport.h>
|
||||||
#include <rtems/bspIo.h>
|
#include <rtems/bspIo.h>
|
||||||
#include <rtems/libio.h>
|
#include <rtems/libio.h>
|
||||||
#include <mc9328mxl.h>
|
#include <mc9328mxl.h>
|
||||||
|
|
||||||
/* Global Variables */
|
|
||||||
extern void *_flash_size;
|
|
||||||
extern void *_flash_base;
|
|
||||||
extern void *_sdram_size;
|
|
||||||
extern void *_sdram_base;
|
|
||||||
extern void *_bss_free_start;
|
|
||||||
|
|
||||||
unsigned long free_mem_start;
|
|
||||||
unsigned long free_mem_end;
|
|
||||||
|
|
||||||
extern void rtems_irq_mngt_init(void);
|
extern void rtems_irq_mngt_init(void);
|
||||||
void bsp_libc_init( void *, uint32_t, int );
|
extern void mmu_set_cpu_async_mode(void);
|
||||||
|
|
||||||
/**************************************************************************/
|
/*
|
||||||
/* */
|
* bsp_start_default - BSP initialization function
|
||||||
/* NAME: bsp_pretasking_hook - Function to setup system before startup */
|
*
|
||||||
/* */
|
* This function is called before RTEMS is initialized and used
|
||||||
/* DESCRIPTION: */
|
* adjust the kernel's configuration.
|
||||||
/* This function is called before drivers are initialized and used */
|
*
|
||||||
/* to setup libc and BSP extensions. */
|
* This function also configures the CPU's memory protection unit.
|
||||||
/* */
|
*
|
||||||
/* RESTRICTIONS/LIMITATIONS: */
|
* RESTRICTIONS/LIMITATIONS:
|
||||||
/* Since this function is setting up libc, it cannot use and libc */
|
* Since RTEMS is not configured, no RTEMS functions can be called.
|
||||||
/* functions. */
|
*
|
||||||
/* */
|
|
||||||
/**************************************************************************/
|
|
||||||
void bsp_pretasking_hook(void)
|
|
||||||
{
|
|
||||||
uint32_t heap_start;
|
|
||||||
uint32_t heap_size;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set up the heap.
|
|
||||||
*/
|
*/
|
||||||
heap_start = free_mem_start;
|
|
||||||
heap_size = free_mem_end - free_mem_start;
|
|
||||||
|
|
||||||
/* call rtems lib init - malloc stuff */
|
|
||||||
bsp_libc_init((void *)heap_start, heap_size, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************/
|
|
||||||
/* */
|
|
||||||
/* NAME: bsp_start_default - BSP initialization function */
|
|
||||||
/* */
|
|
||||||
/* DESCRIPTION: */
|
|
||||||
/* This function is called before RTEMS is initialized and used */
|
|
||||||
/* adjust the kernel's configuration. */
|
|
||||||
/* */
|
|
||||||
/* This function also configures the CPU's memory protection unit. */
|
|
||||||
/* */
|
|
||||||
/* RESTRICTIONS/LIMITATIONS: */
|
|
||||||
/* Since RTEMS is not configured, no RTEMS functions can be called. */
|
|
||||||
/* */
|
|
||||||
/**************************************************************************/
|
|
||||||
void mmu_set_cpu_async_mode(void);
|
|
||||||
void bsp_start_default( void )
|
void bsp_start_default( void )
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -99,14 +57,6 @@ void bsp_start_default( void )
|
|||||||
/* Set interrupt priority to -1 (allow all priorities) */
|
/* Set interrupt priority to -1 (allow all priorities) */
|
||||||
MC9328MXL_AITC_NIMASK = 0x1f;
|
MC9328MXL_AITC_NIMASK = 0x1f;
|
||||||
|
|
||||||
/* Place RTEMS workspace at beginning of free memory. */
|
|
||||||
Configuration.work_space_start = (void *)&_bss_free_start;
|
|
||||||
|
|
||||||
free_mem_start = ((uint32_t)&_bss_free_start +
|
|
||||||
rtems_configuration_get_work_space_size());
|
|
||||||
|
|
||||||
free_mem_end = ((uint32_t)&_sdram_base + (uint32_t)&_sdram_size);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init rtems exceptions management
|
* Init rtems exceptions management
|
||||||
*/
|
*/
|
||||||
@@ -116,27 +66,8 @@ void bsp_start_default( void )
|
|||||||
* Init rtems interrupt management
|
* Init rtems interrupt management
|
||||||
*/
|
*/
|
||||||
rtems_irq_mngt_init();
|
rtems_irq_mngt_init();
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The following information is very useful when debugging.
|
|
||||||
*/
|
|
||||||
#if 0
|
|
||||||
printk( "work_space_size = 0x%x\n",
|
|
||||||
rtems_configuration_get_work_space_size() );
|
|
||||||
printk( "microseconds_per_tick = 0x%x\n",
|
|
||||||
rtems_configuration_get_microseconds_per_tick() );
|
|
||||||
printk( "ticks_per_timeslice = 0x%x\n",
|
|
||||||
rtems_configuration_get_ticks_per_timeslice() );
|
|
||||||
printk( "work_space_start = 0x%x\n",
|
|
||||||
Configuration.work_space_start );
|
|
||||||
printk( "work_space_size = 0x%x\n",
|
|
||||||
rtems_configuration_get_work_space_size() );
|
|
||||||
#endif
|
|
||||||
} /* bsp_start */
|
} /* bsp_start */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Calcuate the frequency for perclk1 */
|
/* Calcuate the frequency for perclk1 */
|
||||||
int get_perclk1_freq(void)
|
int get_perclk1_freq(void)
|
||||||
{
|
{
|
||||||
@@ -195,16 +126,8 @@ int get_perclk1_freq(void)
|
|||||||
* By making this a weak alias for bsp_start_default, a brave soul
|
* By making this a weak alias for bsp_start_default, a brave soul
|
||||||
* can override the actual bsp_start routine used.
|
* can override the actual bsp_start routine used.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default")));
|
void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default")));
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reset the system.
|
|
||||||
*
|
|
||||||
* This functions enables the watchdog and waits for it to
|
|
||||||
* fire, thus resetting the system.
|
|
||||||
*/
|
|
||||||
/**
|
/**
|
||||||
* Reset the system.
|
* Reset the system.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user