forked from Imagelibrary/rtems
2008-09-15 Joel Sherrill <joel.sherrill@oarcorp.com>
* startup/bspstart.c, startup/bspstart.c.nocache: Add use of bsp_get_work_area() in its own file and rely on BSP Framework to perform more initialization.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2008-09-15 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* startup/bspstart.c, startup/bspstart.c.nocache: Add use of
|
||||
bsp_get_work_area() in its own file and rely on BSP Framework to
|
||||
perform more initialization.
|
||||
|
||||
2008-09-14 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* Makefile.am, configure.ac, startup/bspstart.c, startup/linkcmds:
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
|
||||
#warning The interrupt disable mask is now stored in SPRG0, please verify that this is compatible to this BSP (see also bootcard.c).
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <bsp.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <rtems/libio.h>
|
||||
|
||||
@@ -18,11 +18,7 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <bsp.h>
|
||||
#include <rtems/libio.h>
|
||||
#include <rtems/libcsupport.h>
|
||||
|
||||
/*
|
||||
* Driver configuration parameters
|
||||
@@ -37,47 +33,6 @@ uint32_t bsp_timer_average_overhead; /* Average overhead of timer in ticks */
|
||||
uint32_t bsp_timer_least_valid; /* Least valid number from timer */
|
||||
bool bsp_timer_internal_clock; /* TRUE, when timer runs with CPU clk */
|
||||
|
||||
/*
|
||||
* Use the shared implementations of the following routines.
|
||||
* Look in rtems/c/src/lib/libbsp/shared/bsppost.c and
|
||||
* rtems/c/src/lib/libbsp/shared/bsplibc.c.
|
||||
*/
|
||||
void bsp_libc_init( void *, uint32_t, int );
|
||||
|
||||
/*
|
||||
* bsp_pretasking_hook
|
||||
*
|
||||
* Called when RTEMS initialization is complete but before interrupts and
|
||||
* tasking are enabled. Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* Must not use libc (to do io) from here, since drivers are not yet
|
||||
* initialized.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values: NONE
|
||||
*/
|
||||
void bsp_pretasking_hook(void)
|
||||
{
|
||||
/*
|
||||
* These are assigned addresses in the linkcmds file for the BSP. This
|
||||
* approach is better than having these defined as manifest constants and
|
||||
* compiled into the kernel, but it is still not ideal when dealing with
|
||||
* multiprocessor configuration in which each board as a different memory
|
||||
* map. A better place for defining these symbols might be the makefiles.
|
||||
* Consideration should also be given to developing an approach in which
|
||||
* the kernel and the application can be linked and burned into ROM
|
||||
* independently of each other.
|
||||
*/
|
||||
extern unsigned char _HeapStart;
|
||||
extern unsigned char _HeapEnd;
|
||||
|
||||
bsp_libc_init( &_HeapStart, &_HeapEnd - &_HeapStart, 0 );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* bsp_start()
|
||||
*
|
||||
@@ -104,7 +59,6 @@ void bsp_pretasking_hook(void)
|
||||
*/
|
||||
void bsp_start(void)
|
||||
{
|
||||
extern void *_WorkspaceBase;
|
||||
uint32_t r1;
|
||||
|
||||
mmu_init();
|
||||
@@ -128,18 +82,6 @@ void bsp_start(void)
|
||||
_isync;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Allocate the memory for the RTEMS Work Space. This can come from
|
||||
* a variety of places: hard coded address, malloc'ed from outside
|
||||
* RTEMS world (e.g. simulator or primitive memory manager), or (as
|
||||
* typically done by stock BSPs) by subtracting the required amount
|
||||
* of work space from the last physical address on the CPU board.
|
||||
*
|
||||
* In this case, the memory is not malloc'ed. It is just
|
||||
* "pulled from the air".
|
||||
*/
|
||||
Configuration.work_space_start = (void *)&_WorkspaceBase;
|
||||
|
||||
/*
|
||||
* initialize the device driver parameters
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user