diff options
author | Eric Norum <WENorum@lbl.gov> | 2008-05-19 19:07:10 +0000 |
---|---|---|
committer | Eric Norum <WENorum@lbl.gov> | 2008-05-19 19:07:10 +0000 |
commit | b5b9e75f7da818601b870b8c6aad68456823a795 (patch) | |
tree | 9948e1c92254a9e3aa46a9f193fef7d63e23beda /c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c | |
parent | Use shared version of bootstrap to set up workspace. (diff) | |
download | rtems-b5b9e75f7da818601b870b8c6aad68456823a795.tar.bz2 |
Back out changes from 2008-05-16 -- they don't seem to work.
Diffstat (limited to 'c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c')
-rw-r--r-- | c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c index cc4ed30f67..ebbda06d6e 100644 --- a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c @@ -227,14 +227,34 @@ static void handler(int pc) void bsp_start( void ) { int i; + extern char _WorkspaceBase[]; extern char _RamBase[], _RamSize[]; + extern unsigned long _M68k_Ramsize; + + _M68k_Ramsize = (unsigned long)_RamSize; /* RAM size set in linker script */ + + /* + * 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. + */ + + /* + * Set up default exception handler + */ + for (i = 2 ; i < 256 ; i++) + if (i != (32+2)) /* Catch all but bootrom system calls */ + *((void (**)(int))(i * 4)) = handler; /* - * Set up default exception handler + * Need to "allocate" the memory for the RTEMS Workspace and + * tell the RTEMS configuration where it is. This memory is + * not malloc'ed. It is just "pulled from the air". */ - for (i = 2 ; i < 256 ; i++) - if (i != (32+2)) /* Catch all but bootrom system calls */ - *((void (**)(int))(i * 4)) = handler; + + Configuration.work_space_start = (void *)_WorkspaceBase; /* * Invalidate the cache and disable it |