40 lines
		
	
	
		
			663 B
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			663 B
		
	
	
	
		
			ArmAsm
		
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * SoC-specific setup info
 | |
|  *
 | |
|  * (C) Copyright 2010,2011
 | |
|  * NVIDIA Corporation <www.nvidia.com>
 | |
|  */
 | |
| 
 | |
| #include <config.h>
 | |
| #include <linux/linkage.h>
 | |
| 
 | |
| #ifdef CONFIG_ARM64
 | |
| 	.align	5
 | |
| ENTRY(reset_cpu)
 | |
| 	/* get address for global reset register */
 | |
| 	ldr	x1, =PRM_RSTCTRL
 | |
| 	ldr	w3, [x1]
 | |
| 	/* force reset */
 | |
| 	orr	w3, w3, #0x10
 | |
| 	str	w3, [x1]
 | |
| 	mov	w0, w0
 | |
| 1:
 | |
| 	b	1b
 | |
| ENDPROC(reset_cpu)
 | |
| #else
 | |
| 	.align	5
 | |
| ENTRY(reset_cpu)
 | |
| 	ldr	r1, rstctl			@ get addr for global reset
 | |
| 						@ reg
 | |
| 	ldr	r3, [r1]
 | |
| 	orr	r3, r3, #0x10
 | |
| 	str	r3, [r1]			@ force reset
 | |
| 	mov	r0, r0
 | |
| _loop_forever:
 | |
| 	b	_loop_forever
 | |
| rstctl:
 | |
| 	.word	PRM_RSTCTRL
 | |
| ENDPROC(reset_cpu)
 | |
| #endif
 |