diff mbox

[U-Boot,v3,06/12] avr32: use generic gd->start_addr_sp

Message ID 1423260410-9290-7-git-send-email-andreas.devel@googlemail.com
State Accepted, archived
Delegated to: Andreas Bießmann
Headers show

Commit Message

Andreas Bießmann Feb. 6, 2015, 10:06 p.m. UTC
Before avr32 had an extra storage for stack end to have a nice stack printout
on exception. Remove this extra storage and use generic gd->start_addr_sp
instead.

Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
---

Changes in v3:
- new in v3

Changes in v2: None
Changes in v1: None

 arch/avr32/cpu/exception.c           |    6 +++---
 arch/avr32/include/asm/global_data.h |    1 -
 arch/avr32/lib/board.c               |    2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)

Comments

Andreas Bießmann Feb. 16, 2015, 8:22 p.m. UTC | #1
Dear Andreas Devel,

Andreas Devel <andreas.devel@googlemail.com> writes:
>Before avr32 had an extra storage for stack end to have a nice stack printout
>on exception. Remove this extra storage and use generic gd->start_addr_sp
>instead.
>
>Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
>---
>
>Changes in v3:
>- new in v3
>
>Changes in v2: None
>Changes in v1: None
>
> arch/avr32/cpu/exception.c           |    6 +++---
> arch/avr32/include/asm/global_data.h |    1 -
> arch/avr32/lib/board.c               |    2 +-
> 3 files changed, 4 insertions(+), 5 deletions(-)

applied to u-boot-avr32/master, thanks!

Best regards,
Andreas Bießmann
diff mbox

Patch

diff --git a/arch/avr32/cpu/exception.c b/arch/avr32/cpu/exception.c
index 5d1bc68..d6991f6 100644
--- a/arch/avr32/cpu/exception.c
+++ b/arch/avr32/cpu/exception.c
@@ -96,11 +96,11 @@  void do_unknown_exception(unsigned int ecr, struct pt_regs *regs)
 	printf("CPU Mode: %s\n", cpu_modes[mode]);
 
 	/* Avoid exception loops */
-	if (regs->sp < (gd->arch.stack_end - CONFIG_STACKSIZE)
-			|| regs->sp >= gd->arch.stack_end)
+	if (regs->sp < (gd->start_addr_sp - CONFIG_STACKSIZE) ||
+	    regs->sp >= gd->start_addr_sp)
 		printf("\nStack pointer seems bogus, won't do stack dump\n");
 	else
-		dump_mem("\nStack: ", regs->sp, gd->arch.stack_end);
+		dump_mem("\nStack: ", regs->sp, gd->start_addr_sp);
 
 	panic("Unhandled exception\n");
 }
diff --git a/arch/avr32/include/asm/global_data.h b/arch/avr32/include/asm/global_data.h
index d82fb7c..60abd00 100644
--- a/arch/avr32/include/asm/global_data.h
+++ b/arch/avr32/include/asm/global_data.h
@@ -8,7 +8,6 @@ 
 
 /* Architecture-specific global data */
 struct arch_global_data {
-	unsigned long stack_end;	/* highest stack address */
 	unsigned long cpu_hz;		/* cpu core clock frequency */
 };
 
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 13b7fed..99aa96e 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -157,7 +157,7 @@  void board_init_f(ulong board_type)
 
 	/* And finally, a new, bigger stack. */
 	new_sp = (unsigned long *)addr;
-	gd->arch.stack_end = addr;
+	gd->start_addr_sp = addr;
 	*(--new_sp) = 0;
 	*(--new_sp) = 0;