Merge branch 'master' of git://www.denx.de/git/u-boot-socfpga
[oweals/u-boot.git] / arch / arm / cpu / armv7m / cpu.c
1 /*
2  * (C) Copyright 2010,2011
3  * Vladimir Khusainov, Emcraft Systems, vlad@emcraft.com
4  *
5  * (C) Copyright 2015
6  * Kamil Lulko, <rev13@wp.pl>
7  *
8  * SPDX-License-Identifier:     GPL-2.0+
9  */
10
11 #include <common.h>
12 #include <asm/io.h>
13 #include <asm/armv7m.h>
14
15 /*
16  * This is called right before passing control to
17  * the Linux kernel point.
18  */
19 int cleanup_before_linux(void)
20 {
21         return 0;
22 }
23
24 /*
25  * Perform the low-level reset.
26  */
27 void reset_cpu(ulong addr)
28 {
29         /*
30          * Perform reset but keep priority group unchanged.
31          */
32         writel((V7M_AIRCR_VECTKEY << V7M_AIRCR_VECTKEY_SHIFT)
33                 | (V7M_SCB->aircr & V7M_AIRCR_PRIGROUP_MSK)
34                 | V7M_AIRCR_SYSRESET, &V7M_SCB->aircr);
35 }