summaryrefslogtreecommitdiffstats
path: root/arch/arm/include
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-03-14 09:21:31 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2018-03-29 08:16:40 +0200
commitfa8c3c03987f5e60df735583414d9a355b43ac5a (patch)
tree771966d3e7879903a3e4232693372144dff56808 /arch/arm/include
parentfa0d6412bf1d77e383f23f120688ecf495463d1e (diff)
downloadbarebox-fa8c3c03987f5e60df735583414d9a355b43ac5a.tar.gz
barebox-fa8c3c03987f5e60df735583414d9a355b43ac5a.tar.xz
ARM: aarch64: implement stacktraces
Implement stacktraces as a great debugging aid. On aarch64 this is cheap enough to be enabled unconditionally. Unwinding code is taken from the Kernel. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/include')
-rw-r--r--arch/arm/include/asm/barebox.h4
-rw-r--r--arch/arm/include/asm/stacktrace.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/include/asm/barebox.h b/arch/arm/include/asm/barebox.h
index 5a6622235b..4e89466593 100644
--- a/arch/arm/include/asm/barebox.h
+++ b/arch/arm/include/asm/barebox.h
@@ -2,9 +2,11 @@
#define _BAREBOX_H_ 1
#ifdef CONFIG_ARM_UNWIND
-#ifndef CONFIG_CPU_V8
#define ARCH_HAS_STACK_DUMP
#endif
+
+#ifdef CONFIG_CPU_V8
+#define ARCH_HAS_STACK_DUMP
#endif
#ifdef CONFIG_ARM_EXCEPTIONS
diff --git a/arch/arm/include/asm/stacktrace.h b/arch/arm/include/asm/stacktrace.h
index 10f70e1675..602e79ced4 100644
--- a/arch/arm/include/asm/stacktrace.h
+++ b/arch/arm/include/asm/stacktrace.h
@@ -4,7 +4,9 @@
struct stackframe {
unsigned long fp;
unsigned long sp;
+#ifdef CONFIG_CPU_32
unsigned long lr;
+#endif
unsigned long pc;
};