forked from Mirrors/opensbi
		
	lib: sbi_hsm: Assume a consistent resume address
The suspend code needs to know the resume address for two reasons:
  1) Programming some hardware register or management firmware. Here we
     assume the hardware/firmware maintains its state between suspends,
     so it only needs to be programmed once at startup.
  2) When a non-retentive suspend request ends up being retentive, due
     to lack of hardware support, pending interrupt, or for some other
     reason. However, the behavior here is not platform-dependent, and
     this can be handled in the generic hart suspend function.
Since neither situation requires the platform-level suspend function to
know the resume address, stop passing it to that function. Instead,
handle the non-retentive to retentive situation generically.
Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Samuel Holland <samuel@sholland.org>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							b20ed9febe
						
					
				
				
					commit
					79e42eb2d6
				
			@@ -34,9 +34,9 @@ struct sbi_hsm_device {
 | 
			
		||||
	 * the hart resumes normal execution.
 | 
			
		||||
	 *
 | 
			
		||||
	 * For successful non-retentive suspend, the hart will resume from
 | 
			
		||||
	 * specified resume address
 | 
			
		||||
	 * the warm boot entry point.
 | 
			
		||||
	 */
 | 
			
		||||
	int (*hart_suspend)(u32 suspend_type, ulong raddr);
 | 
			
		||||
	int (*hart_suspend)(u32 suspend_type);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Perform platform-specific actions to resume from a suspended state.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user