Alchemy: fix reset for MTX-1 and XXS1500
PATCH 1/1 Alchemy: fix reset for MTX-1 and XXS1500
Since commit 32fd6901 (MIPS: Alchemy: get rid of common/reset.c) Alchemy-based boards use their own reset function. For MTX-1 and XXS1500, the reset function pokes at the BCSR.SYSTEM_RESET register, but this does not work. According to Bruno Randolf, this was not tested when written.
Previously, the generic au1000_restart() routine called the board specific reset function, which for MTX-1 and XXS1500 did not work, but finally made a jump to the reset vector, which really triggers a system restart. Fix reboot for both targets by jumping to the reset vector.
---
Stable: 2.6.34+
arch/mips/alchemy/mtx-1/board_setup.c +2 -2
@@ -54,8 +54,8 @@ int mtx1_pci_idsel(unsigned int devsel, int assert);static void mtx1_reset (char *c) { -/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ -au_writel (0x00000000 ,0xAE00001C ); +/* Jump to the reset vector */ + __asm__ __volatile__("jr\t%0" ::"r" (0xbfc00000 )); }static void mtx1_power_off (void )
arch/mips/alchemy/xxs1500/board_setup.c +2 -2
@@ -36,8 +36,8 @@static void xxs1500_reset (char *c) { -/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ -au_writel (0x00000000 ,0xAE00001C ); +/* Jump to the reset vector */ + __asm__ __volatile__("jr\t%0" ::"r" (0xbfc00000 )); }static void xxs1500_power_off (void )
--
1.7.1
Quoted 4 lines
Since commit
32fd6901(MIPS: Alchemy: get rid ofcommon/reset.c) Alchemy-based boards use their own reset function. For MTX-1 and XXS1500, the reset function pokes at the BCSR.SYSTEM_RESET register, but this does not work. According to Bruno Randolf, this was not tested when written.
Well, I don´t know wether it was tested or not, but since it doesn´t work i think we can assume it wasn´t.
Quoted 44 lines
Previously, the generic
au1000_restart()routine called the board specific reset function, which for MTX-1 and XXS1500 did not work, but finally made a jump to the reset vector, which really triggers a system restart. Fix reboot for both targets by jumping to the reset vector.CC Bruno Randolf <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Stable: 2.6.34+arch/mips/alchemy/mtx-1/board_setup.c +2
-2@@ -54,8 +54,8 @@ int mtx1_pci_idsel(unsigned int devsel, int assert);static void mtx1_reset (char *c) { -/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ -au_writel (0x00000000 ,0xAE00001C ); +/* Jump to the reset vector */ + __asm__ __volatile__("jr\t%0" ::"r" (0xbfc00000 )); }static void mtx1_power_off (void )arch/mips/alchemy/xxs1500/board_setup.c +2
-3@@ -36,8 +36,8 @@static void xxs1500_reset (char *c) { -/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ -au_writel (0x00000000 ,0xAE00001C ); +/* Jump to the reset vector */ + __asm__ __volatile__("jr\t%0" ::"r" (0xbfc00000 )); }static void xxs1500_power_off (void ) --
Quoted 3 lines
1.7.1
Ralf Baechle
AppliedQuoted 1 line · On Mon, Feb 21, 2011 at 09:38:27PM +0100, [email protected] wrote:
Acked-by Bruno Randolf <[email protected]>
Thanks, applied.
Ralf