MIPS: 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.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
To: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/2093/
Acked-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
bf3a1eb859
commit
9ced975711
|
@ -54,8 +54,8 @@ int mtx1_pci_idsel(unsigned int devsel, int assert);
|
||||||
|
|
||||||
static void mtx1_reset(char *c)
|
static void mtx1_reset(char *c)
|
||||||
{
|
{
|
||||||
/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
|
/* Jump to the reset vector */
|
||||||
au_writel(0x00000000, 0xAE00001C);
|
__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mtx1_power_off(void)
|
static void mtx1_power_off(void)
|
||||||
|
|
|
@ -36,8 +36,8 @@
|
||||||
|
|
||||||
static void xxs1500_reset(char *c)
|
static void xxs1500_reset(char *c)
|
||||||
{
|
{
|
||||||
/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
|
/* Jump to the reset vector */
|
||||||
au_writel(0x00000000, 0xAE00001C);
|
__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xxs1500_power_off(void)
|
static void xxs1500_power_off(void)
|
||||||
|
|
Loading…
Reference in a new issue