blob: 66c68337461f8b8fd5afdbb28d2533126a247d16 [file] [log] [blame]
Purna Chandra Mandal5c2dcd22016-01-28 15:30:16 +05301/*
2 * (c) 2015 Purna Chandra Mandal <purna.mandal@microchip.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 *
6 */
7
8#include <common.h>
9#include <asm/io.h>
10#include <mach/pic32.h>
11
12/* SYSKEY */
13#define UNLOCK_KEY1 0xaa996655
14#define UNLOCK_KEY2 0x556699aa
15#define LOCK_KEY 0
16
17#define RSWRST 0x1250
18
19void _machine_restart(void)
20{
21 void __iomem *base;
22
23 base = pic32_get_syscfg_base();
24
25 /* unlock sequence */
26 writel(LOCK_KEY, base + SYSKEY);
27 writel(UNLOCK_KEY1, base + SYSKEY);
28 writel(UNLOCK_KEY2, base + SYSKEY);
29
30 /* soft reset */
31 writel(0x1, base + RSWRST);
32 (void) readl(base + RSWRST);
33
34 while (1)
35 ;
36}