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
 |