diff options
Diffstat (limited to 'arch/blackfin/kernel/reboot.c')
-rw-r--r-- | arch/blackfin/kernel/reboot.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/reboot.c b/arch/blackfin/kernel/reboot.c index b0434f89e8de..5272e6eefd92 100644 --- a/arch/blackfin/kernel/reboot.c +++ b/arch/blackfin/kernel/reboot.c | |||
@@ -22,6 +22,7 @@ | |||
22 | __attribute__ ((__l1_text__, __noreturn__)) | 22 | __attribute__ ((__l1_text__, __noreturn__)) |
23 | static void bfin_reset(void) | 23 | static void bfin_reset(void) |
24 | { | 24 | { |
25 | #ifndef CONFIG_BF60x | ||
25 | if (!ANOMALY_05000353 && !ANOMALY_05000386) | 26 | if (!ANOMALY_05000353 && !ANOMALY_05000386) |
26 | bfrom_SoftReset((void *)(L1_SCRATCH_START + L1_SCRATCH_LENGTH - 20)); | 27 | bfrom_SoftReset((void *)(L1_SCRATCH_START + L1_SCRATCH_LENGTH - 20)); |
27 | 28 | ||
@@ -57,7 +58,6 @@ static void bfin_reset(void) | |||
57 | if (__SILICON_REVISION__ < 1 && bfin_revid() < 1) | 58 | if (__SILICON_REVISION__ < 1 && bfin_revid() < 1) |
58 | bfin_read_SWRST(); | 59 | bfin_read_SWRST(); |
59 | #endif | 60 | #endif |
60 | |||
61 | /* Wait for the SWRST write to complete. Cannot rely on SSYNC | 61 | /* Wait for the SWRST write to complete. Cannot rely on SSYNC |
62 | * though as the System state is all reset now. | 62 | * though as the System state is all reset now. |
63 | */ | 63 | */ |
@@ -72,6 +72,10 @@ static void bfin_reset(void) | |||
72 | while (1) | 72 | while (1) |
73 | /* Issue core reset */ | 73 | /* Issue core reset */ |
74 | asm("raise 1"); | 74 | asm("raise 1"); |
75 | #else | ||
76 | while (1) | ||
77 | bfin_write_RCU0_CTL(0x1); | ||
78 | #endif | ||
75 | } | 79 | } |
76 | 80 | ||
77 | __attribute__((weak)) | 81 | __attribute__((weak)) |