diff options
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r-- | arch/blackfin/kernel/reboot.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/reboot.c b/arch/blackfin/kernel/reboot.c index d0ead640d992..ae97ca407b0d 100644 --- a/arch/blackfin/kernel/reboot.c +++ b/arch/blackfin/kernel/reboot.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <asm/bfin-global.h> | 10 | #include <asm/bfin-global.h> |
11 | #include <asm/reboot.h> | 11 | #include <asm/reboot.h> |
12 | #include <asm/system.h> | 12 | #include <asm/system.h> |
13 | #include <asm/bfrom.h> | ||
13 | 14 | ||
14 | /* A system soft reset makes external memory unusable so force | 15 | /* A system soft reset makes external memory unusable so force |
15 | * this function into L1. We use the compiler ssync here rather | 16 | * this function into L1. We use the compiler ssync here rather |
@@ -74,7 +75,14 @@ void machine_restart(char *cmd) | |||
74 | { | 75 | { |
75 | native_machine_restart(cmd); | 76 | native_machine_restart(cmd); |
76 | local_irq_disable(); | 77 | local_irq_disable(); |
77 | bfin_reset(); | 78 | if (ANOMALY_05000353 || ANOMALY_05000386) |
79 | bfin_reset(); | ||
80 | else | ||
81 | /* the bootrom checks to see how it was reset and will | ||
82 | * automatically perform a software reset for us when | ||
83 | * it starts executing boot | ||
84 | */ | ||
85 | asm("raise 1;"); | ||
78 | } | 86 | } |
79 | 87 | ||
80 | __attribute__((weak)) | 88 | __attribute__((weak)) |