From 0eede05d70e90502fe77a5af4989579801870e34 Mon Sep 17 00:00:00 2001 From: Jay Monkman Date: Fri, 2 Jun 2006 21:53:04 +0000 Subject: [PATCH] 2006-06-02 Jay Monkman * start/start.S, startup/linkcmds: Defined UNDEF exception stack space. --- c/src/lib/libbsp/arm/csb336/ChangeLog | 5 +++++ c/src/lib/libbsp/arm/csb336/start/start.S | 7 +++++++ c/src/lib/libbsp/arm/csb336/startup/linkcmds | 7 ++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/c/src/lib/libbsp/arm/csb336/ChangeLog b/c/src/lib/libbsp/arm/csb336/ChangeLog index 724401dcae..e4e1eba35f 100644 --- a/c/src/lib/libbsp/arm/csb336/ChangeLog +++ b/c/src/lib/libbsp/arm/csb336/ChangeLog @@ -1,3 +1,8 @@ +2006-06-02 Jay Monkman + + * start/start.S, startup/linkcmds: Defined UNDEF exception + stack space. + 2006-01-11 Ralf Corsepius * Makefile.am: Add preinstall.am. diff --git a/c/src/lib/libbsp/arm/csb336/start/start.S b/c/src/lib/libbsp/arm/csb336/start/start.S index 1dc6f3d205..f162258edd 100644 --- a/c/src/lib/libbsp/arm/csb336/start/start.S +++ b/c/src/lib/libbsp/arm/csb336/start/start.S @@ -72,6 +72,13 @@ _bss_init: ldr sp, =_abt_stack add sp, sp, r1 + /* Enter UNDEF mode and set up the UNDEF stack pointer */ + mov r0, #(PSR_MODE_UNDEF | PSR_I | PSR_F) /* No interrupts */ + msr cpsr, r0 + ldr r1, =_undef_stack_size + ldr sp, =_undef_stack + add sp, sp, r1 + /* Set up the SVC stack pointer last and stay in SVC mode */ mov r0, #(PSR_MODE_SVC | PSR_I | PSR_F) /* No interrupts */ msr cpsr, r0 diff --git a/c/src/lib/libbsp/arm/csb336/startup/linkcmds b/c/src/lib/libbsp/arm/csb336/startup/linkcmds index 5c50ffa30b..c71a8c7cdf 100644 --- a/c/src/lib/libbsp/arm/csb336/startup/linkcmds +++ b/c/src/lib/libbsp/arm/csb336/startup/linkcmds @@ -33,7 +33,8 @@ _sdram_size = DEFINED(_sdram_size) ? _sdram_size : 30M; _irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000; _fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400; -_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x100; +_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x400; +_undef_stack_size = DEFINED(_undef_stack_size) ? _undef_stack_size : 0x400; _svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000; @@ -169,6 +170,10 @@ SECTIONS _abt_stack = .; . += _abt_stack_size; + . = ALIGN (256); + _undef_stack = .; + . += _undef_stack_size; + . = ALIGN (256); _irq_stack = .; . += _irq_stack_size;