forked from Imagelibrary/rtems
@@ -49,15 +49,12 @@ static uintptr_t rtemsWorkAreaStart;
|
|||||||
*/
|
*/
|
||||||
uint32_t bsp_mem_size = 0;
|
uint32_t bsp_mem_size = 0;
|
||||||
|
|
||||||
/* Size of stack used during initialization. Defined in 'start.s'. */
|
|
||||||
extern uint32_t _stack_size;
|
|
||||||
|
|
||||||
static void bsp_size_memory(void)
|
static void bsp_size_memory(void)
|
||||||
{
|
{
|
||||||
uintptr_t topAddr;
|
uintptr_t topAddr;
|
||||||
|
|
||||||
/* Set the value of start of free memory. */
|
/* Set the value of start of free memory. */
|
||||||
rtemsWorkAreaStart = (uint32_t)WorkAreaBase + _stack_size;
|
rtemsWorkAreaStart = (uint32_t)WorkAreaBase;
|
||||||
|
|
||||||
/* Align the RTEMS Work Area at beginning of free memory. */
|
/* Align the RTEMS Work Area at beginning of free memory. */
|
||||||
if (rtemsWorkAreaStart & (CPU_ALIGNMENT - 1)) /* not aligned => align it */
|
if (rtemsWorkAreaStart & (CPU_ALIGNMENT - 1)) /* not aligned => align it */
|
||||||
|
|||||||
@@ -51,8 +51,6 @@
|
|||||||
#error "Missing header ? CPU_STACK_ALIGNMENT NOT DEFINED"
|
#error "Missing header ? CPU_STACK_ALIGNMENT NOT DEFINED"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.set STACK_SIZE, 0x1000
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------+
|
/*----------------------------------------------------------------------------+
|
||||||
| CODE section
|
| CODE section
|
||||||
+----------------------------------------------------------------------------*/
|
+----------------------------------------------------------------------------*/
|
||||||
@@ -176,9 +174,9 @@ speakl: jmp speakl # and SPIN!!!
|
|||||||
PUBLIC (_establish_stack)
|
PUBLIC (_establish_stack)
|
||||||
SYM (_establish_stack):
|
SYM (_establish_stack):
|
||||||
|
|
||||||
movl $_end, eax # eax = end of bss/start of heap
|
movl $_ISR_Stack_area_begin, eax # eax = end of bss/start of heap
|
||||||
addl $STACK_SIZE, eax # make room for stack
|
addl $_ISR_Stack_size, eax # make room for stack
|
||||||
subl $4, eax # reserve room for arg to 'boot_card'
|
subl $4, eax # reserve room for arg to 'boot_card'
|
||||||
andl $ - CPU_STACK_ALIGNMENT, eax # align SP on CPU_STACK_ALIGNMENT boundary
|
andl $ - CPU_STACK_ALIGNMENT, eax # align SP on CPU_STACK_ALIGNMENT boundary
|
||||||
movl eax, esp # set stack pointer
|
movl eax, esp # set stack pointer
|
||||||
movl eax, ebp # set base pointer
|
movl eax, ebp # set base pointer
|
||||||
@@ -305,10 +303,6 @@ SYM(_boot_multiboot_cmdline):
|
|||||||
.byte 0
|
.byte 0
|
||||||
.endr
|
.endr
|
||||||
|
|
||||||
PUBLIC(_stack_size)
|
|
||||||
SYM(_stack_size):
|
|
||||||
.long STACK_SIZE
|
|
||||||
|
|
||||||
#ifdef DEBUG_EARLY_START
|
#ifdef DEBUG_EARLY_START
|
||||||
|
|
||||||
PUBLIC (welcome_msg)
|
PUBLIC (welcome_msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user