Tom Warren | 41b6838 | 2011-01-27 10:58:05 +0000 | [diff] [blame] | 1 | /* |
| 2 | * SoC-specific setup info |
| 3 | * |
| 4 | * (C) Copyright 2010,2011 |
| 5 | * NVIDIA Corporation <www.nvidia.com> |
| 6 | * |
Wolfgang Denk | d79de1d | 2013-07-08 09:37:19 +0200 | [diff] [blame] | 7 | * SPDX-License-Identifier: GPL-2.0+ |
Tom Warren | 41b6838 | 2011-01-27 10:58:05 +0000 | [diff] [blame] | 8 | */ |
| 9 | |
| 10 | #include <config.h> |
Aneesh V | fd8798b | 2012-03-08 07:20:18 +0000 | [diff] [blame] | 11 | #include <linux/linkage.h> |
Tom Warren | 41b6838 | 2011-01-27 10:58:05 +0000 | [diff] [blame] | 12 | |
Tom Warren | ab0cc6b | 2015-03-04 16:36:00 -0700 | [diff] [blame] | 13 | #ifdef CONFIG_ARM64 |
Tom Warren | 41b6838 | 2011-01-27 10:58:05 +0000 | [diff] [blame] | 14 | .align 5 |
Aneesh V | fd8798b | 2012-03-08 07:20:18 +0000 | [diff] [blame] | 15 | ENTRY(reset_cpu) |
Tom Warren | ab0cc6b | 2015-03-04 16:36:00 -0700 | [diff] [blame] | 16 | /* get address for global reset register */ |
| 17 | ldr x1, =PRM_RSTCTRL |
| 18 | ldr w3, [x1] |
| 19 | /* force reset */ |
| 20 | orr w3, w3, #0x10 |
| 21 | str w3, [x1] |
| 22 | mov w0, w0 |
| 23 | 1: |
| 24 | b 1b |
| 25 | ENDPROC(reset_cpu) |
| 26 | #else |
| 27 | .align 5 |
| 28 | ENTRY(reset_cpu) |
Tom Warren | 41b6838 | 2011-01-27 10:58:05 +0000 | [diff] [blame] | 29 | ldr r1, rstctl @ get addr for global reset |
| 30 | @ reg |
| 31 | ldr r3, [r1] |
| 32 | orr r3, r3, #0x10 |
| 33 | str r3, [r1] @ force reset |
| 34 | mov r0, r0 |
| 35 | _loop_forever: |
| 36 | b _loop_forever |
| 37 | rstctl: |
| 38 | .word PRM_RSTCTRL |
Aneesh V | fd8798b | 2012-03-08 07:20:18 +0000 | [diff] [blame] | 39 | ENDPROC(reset_cpu) |
Tom Warren | ab0cc6b | 2015-03-04 16:36:00 -0700 | [diff] [blame] | 40 | #endif |