mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	ARMv8: SError exception handling in PSCI exception vectors
Allow platform vendors to handle SError interrupt exceptions from ARMv8 PSCI exception vectors by overriding this weak function 'plat_error_handler'. Signed-off-by: Chee Hong Ang <chee.hong.ang@intel.com>
This commit is contained in:
		
							parent
							
								
									c0f3296f83
								
							
						
					
					
						commit
						eb13dddd2c
					
				@ -236,6 +236,28 @@ handle_sync:
 | 
			
		||||
 | 
			
		||||
	b	unhandled_exception
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_ARMV8_EA_EL3_FIRST
 | 
			
		||||
/*
 | 
			
		||||
 * Override this function if custom error handling is
 | 
			
		||||
 * needed for asynchronous aborts
 | 
			
		||||
 */
 | 
			
		||||
ENTRY(plat_error_handler)
 | 
			
		||||
	ret
 | 
			
		||||
ENDPROC(plat_error_handler)
 | 
			
		||||
.weak plat_error_handler
 | 
			
		||||
 | 
			
		||||
handle_error:
 | 
			
		||||
	bl	psci_get_cpu_id
 | 
			
		||||
	bl	psci_get_cpu_stack_top
 | 
			
		||||
	mov	x9, #1
 | 
			
		||||
	msr	spsel, x9
 | 
			
		||||
	mov	sp, x0
 | 
			
		||||
 | 
			
		||||
	bl	plat_error_handler	/* Platform specific error handling */
 | 
			
		||||
deadloop:
 | 
			
		||||
	b	deadloop		/* Never return */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	.align	11
 | 
			
		||||
	.globl	el3_exception_vectors
 | 
			
		||||
el3_exception_vectors:
 | 
			
		||||
@ -261,7 +283,11 @@ el3_exception_vectors:
 | 
			
		||||
	.align	7
 | 
			
		||||
	b	unhandled_exception	/* FIQ, Lower EL using AArch64 */
 | 
			
		||||
	.align	7
 | 
			
		||||
#ifdef CONFIG_ARMV8_EA_EL3_FIRST
 | 
			
		||||
	b	handle_error		/* SError, Lower EL using AArch64 */
 | 
			
		||||
#else
 | 
			
		||||
	b	unhandled_exception	/* SError, Lower EL using AArch64 */
 | 
			
		||||
#endif
 | 
			
		||||
	.align	7
 | 
			
		||||
	b	unhandled_exception	/* Sync, Lower EL using AArch32 */
 | 
			
		||||
	.align	7
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user