mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-30 19:48:19 +00:00 
			
		
		
		
	We use information from ATF to know whether OP-TEE is running or not. So save args passed from ATF. Signed-off-by: Peng Fan <peng.fan@nxp.com>
		
			
				
	
	
		
			37 lines
		
	
	
		
			1014 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1014 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * Copyright 2019 NXP
 | |
|  */
 | |
| 
 | |
| #include <config.h>
 | |
| 
 | |
| .align 8
 | |
| .global boot_pointer
 | |
| boot_pointer:
 | |
| 	.space 32
 | |
| 
 | |
| /*
 | |
|  * Routine: save_boot_params (called after reset from start.S)
 | |
|  */
 | |
| 
 | |
| .global save_boot_params
 | |
| save_boot_params:
 | |
| 	/* The firmware provided ATAG/FDT address can be found in r2/x0 */
 | |
| 	adr	x0, boot_pointer
 | |
| 	stp	x1, x2, [x0], #16
 | |
| 	stp	x3, x4, [x0], #16
 | |
| 
 | |
| 	/*
 | |
| 	 * We use absolute address not PC relative address for return.
 | |
| 	 * When running SPL on iMX8, the A core starts at address 0,
 | |
| 	 * an alias to OCRAM 0x100000, our linker address for SPL is
 | |
| 	 * from 0x100000. So using absolute address can jump to the OCRAM
 | |
| 	 * address from the alias. The alias only map first 96KB of OCRAM,
 | |
| 	 * so this require the SPL size can't beyond 96KB.
 | |
| 	 * But when using SPL DM, the size increase significantly and
 | |
| 	 * always beyonds 96KB. That's why we have to jump to OCRAM.
 | |
| 	 * Normal u-boot also runs into this codes, but there is no impact.
 | |
| 	 */
 | |
| 	ldr	x1, =save_boot_params_ret
 | |
| 	br	x1
 |