summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-12-08 08:27:08 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-12-08 08:27:08 +0100
commitfe68ba4526ed666a2c3a5ddd84d964dbaae0f2d0 (patch)
treea37811c5b1566c0433af4df012ea6449998b0c2e /arch
parente6b83bd498ce7c5449a65207bdb8f45fbcaeeb54 (diff)
parenta2b3a25417593e97500cd746f0632d36edfac1a5 (diff)
downloadbarebox-fe68ba4526ed666a2c3a5ddd84d964dbaae0f2d0.tar.gz
barebox-fe68ba4526ed666a2c3a5ddd84d964dbaae0f2d0.tar.xz
Merge branch 'for-next/arm'
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/cpu/cpu.c26
-rw-r--r--arch/arm/cpu/interrupts.c7
-rw-r--r--arch/arm/lib/armlinux.c12
-rw-r--r--arch/arm/lib/unwind.c5
5 files changed, 5 insertions, 46 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 95103c1c9a..c03f7dc883 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -322,7 +322,6 @@ config ARM_EXCEPTIONS
config ARM_UNWIND
bool "enable stack unwinding support"
depends on AEABI
- depends on ARM_EXCEPTIONS
help
This option enables stack unwinding support in barebox
using the information automatically generated by the
diff --git a/arch/arm/cpu/cpu.c b/arch/arm/cpu/cpu.c
index e8191ecde5..eb12166c16 100644
--- a/arch/arm/cpu/cpu.c
+++ b/arch/arm/cpu/cpu.c
@@ -121,29 +121,3 @@ static int arm_request_stack(void)
return 0;
}
coredevice_initcall(arm_request_stack);
-
-#ifdef CONFIG_THUMB2_BAREBOX
-static void thumb2_execute(void *func, int argc, char *argv[])
-{
- /*
- * Switch back to ARM mode before executing external
- * programs.
- */
- __asm__ __volatile__ (
- "mov r0, #0\n"
- "mov r1, %0\n"
- "mov r2, %1\n"
- "bx %2\n"
- :
- : "r" (argc - 1), "r" (&argv[1]), "r" (func)
- : "r0", "r1", "r2"
- );
-}
-
-static int execute_init(void)
-{
- do_execute = thumb2_execute;
- return 0;
-}
-postcore_initcall(execute_init);
-#endif
diff --git a/arch/arm/cpu/interrupts.c b/arch/arm/cpu/interrupts.c
index c437af7188..fb4bb78dae 100644
--- a/arch/arm/cpu/interrupts.c
+++ b/arch/arm/cpu/interrupts.c
@@ -71,13 +71,6 @@ void show_regs (struct pt_regs *regs)
#endif
}
-#ifdef CONFIG_ARM_UNWIND
-void dump_stack(void)
-{
- unwind_backtrace(NULL);
-}
-#endif
-
static void __noreturn do_exception(struct pt_regs *pt_regs)
{
show_regs(pt_regs);
diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c
index 16879f8e59..47b9bd33ed 100644
--- a/arch/arm/lib/armlinux.c
+++ b/arch/arm/lib/armlinux.c
@@ -277,17 +277,5 @@ void start_linux(void *adr, int swap, unsigned long initrd_address,
__asm__ __volatile__("mcr p15, 0, %0, c1, c0" :: "r" (reg));
}
-#ifdef CONFIG_THUMB2_BAREBOX
- __asm__ __volatile__ (
- "mov r0, #0\n"
- "mov r1, %0\n"
- "mov r2, %1\n"
- "bx %2\n"
- :
- : "r" (architecture), "r" (params), "r" (kernel)
- : "r0", "r1", "r2"
- );
-#else
kernel(0, architecture, params);
-#endif
}
diff --git a/arch/arm/lib/unwind.c b/arch/arm/lib/unwind.c
index 7932bca702..c3dca5b61d 100644
--- a/arch/arm/lib/unwind.c
+++ b/arch/arm/lib/unwind.c
@@ -331,6 +331,11 @@ void unwind_backtrace(struct pt_regs *regs)
}
}
+void dump_stack(void)
+{
+ unwind_backtrace(NULL);
+}
+
static int unwind_init(void)
{
struct unwind_idx *idx;